VirtualBox

Changeset 104929 in vbox


Ignore:
Timestamp:
Jun 14, 2024 4:13:09 PM (3 months ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10666, bugref:10669: UIMediumSizeSlider: Implementing own accessibility interface; Adjusting tool-tip to have no HTML tags.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/widgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.cpp

    r104928 r104929  
    2727
    2828/* Qt includes: */
     29#include <QAccessibleWidget>
    2930#include <QGridLayout>
    3031#include <QLabel>
     
    4344
    4445
     46/** QAccessibleWidget extension used as an accessibility interface for UIMediumSizeSlider. */
     47class UIAccessibilityInterfaceForUIMediumSizeSlider : public QAccessibleWidget
     48{
     49public:
     50
     51    /** Returns an accessibility interface for passed @a strClassname and @a pObject. */
     52    static QAccessibleInterface *pFactory(const QString &strClassname, QObject *pObject)
     53    {
     54        /* Creating QIRichTextLabel accessibility interface: */
     55        if (pObject && strClassname == QLatin1String("UIMediumSizeSlider"))
     56            return new UIAccessibilityInterfaceForUIMediumSizeSlider(qobject_cast<QWidget*>(pObject));
     57
     58        /* Null by default: */
     59        return 0;
     60    }
     61
     62    /** Constructs an accessibility interface passing @a pWidget to the base-class. */
     63    UIAccessibilityInterfaceForUIMediumSizeSlider(QWidget *pWidget)
     64        : QAccessibleWidget(pWidget, QAccessible::Slider)
     65    {}
     66
     67    /** Returns a text for the passed @a enmTextRole. */
     68    virtual QString text(QAccessible::Text enmTextRole) const RT_OVERRIDE
     69    {
     70        /* Make sure label still alive: */
     71        AssertPtrReturn(slider(), QString());
     72
     73        /* Non-macOS screen-readers using QAccessible::Value for slider: */
     74        if (enmTextRole == QAccessible::Value)
     75            return slider()->scaledValueToString();
     76
     77        /* Call to base-class: */
     78        return QAccessibleWidget::text(enmTextRole);
     79    }
     80
     81private:
     82
     83    /** Returns corresponding UIMediumSizeSlider. */
     84    UIMediumSizeSlider *slider() const
     85    {
     86        return qobject_cast<UIMediumSizeSlider*>(widget());
     87    }
     88};
     89
     90
    4591/*********************************************************************************************************************************
    4692*   Class UIMediumSizeSlider implementation.                                                                                     *
     
    54100    , m_uScaledValue(0)
    55101{
     102    /* Install UIMediumSizeSlider accessibility interface factory: */
     103    QAccessible::installFactory(UIAccessibilityInterfaceForUIMediumSizeSlider::pFactory);
     104
    56105    /* Configure basic properties: */
    57106    setFocusPolicy(Qt::StrongFocus);
     
    100149    /* Call to base-class: */
    101150    QSlider::setValue(sizeMBToSlider(m_uScaledValue, m_iSliderScale));
     151}
     152
     153QString UIMediumSizeSlider::scaledValueToString()
     154{
     155    return UITranslator::formatSize(m_uScaledValue);
    102156}
    103157
     
    345399void UIMediumSizeEditor::updateSizeToolTips(qulonglong uSize)
    346400{
    347     const QString strToolTip = tr("<nobr>%1 (%2 B)</nobr>").arg(UITranslator::formatSize(uSize)).arg(uSize);
     401    const QString strToolTip = tr("%1 (%2 B)").arg(UITranslator::formatSize(uSize)).arg(uSize);
    348402    m_pSlider->setToolTip(strToolTip);
    349403    m_pEditor->setToolTip(strToolTip);
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.h

    r104928 r104929  
    6868    /** Defines scaled @a uValue. */
    6969    void setScaledValue(qulonglong uValue);
     70
     71    /** Returns scaled value in readable format. */
     72    QString scaledValueToString();
    7073
    7174private slots:
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette