VirtualBox

Ignore:
Timestamp:
Jun 11, 2013 3:26:17 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86345
Message:

FE/Qt: Advanced slider: Make sure tickmark area is properly (manually) calculated; Forbid support for tickmark repositioning (it was not used anyway).

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp

    r28800 r46496  
    4444      , m_minErr(-1)
    4545      , m_maxErr(-1)
    46     {}
     46    {
     47        /* Make sure ticks *always* positioned below: */
     48        setTickPosition(QSlider::TicksBelow);
     49    }
    4750
    4851    int positionForValue(int val) const
     
    6669        QSize s = size();
    6770
     71        /* We want to acquire SC_SliderTickmarks sub-control rectangle
     72         * and fill it with necessary background colors: */
     73#ifdef Q_WS_MAC
     74        /* Under MacOS X SC_SliderTickmarks is not fully reliable
     75         * source of the information we need, providing us with incorrect width.
     76         * So we have to calculate tickmarks rectangle ourself: */
    6877        QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderTickmarks, this);
    69 #ifdef Q_WS_MAC
    7078        ticks.setRect((s.width() - available) / 2, s.height() - ticks.y(), available, ticks.height());
    7179#else /* Q_WS_MAC */
    72         if (ticks.isNull() || ticks.isEmpty())
    73         {
    74             ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this) | style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
    75             ticks.setRect((s.width() - available) / 2, ticks.bottom() + 1, available, s.height() - ticks.bottom() - 1);
    76         }
     80        /* Under Windows SC_SliderTickmarks is fully unreliable
     81         * source of the information we need, providing us with empty rectangle.
     82         * Under X11 SC_SliderTickmarks is not fully reliable
     83         * source of the information we need, providing us with different rectangles
     84         * (correct or incorrect) under different look&feel styles.
     85         * So we have to calculate tickmarks rectangle ourself: */
     86        QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this) |
     87                      style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
     88        ticks.setRect((s.width() - available) / 2, ticks.bottom() + 1, available, s.height() - ticks.bottom() - 1);
    7789#endif /* Q_WS_MAC */
     90
    7891        if ((m_minOpt != -1 &&
    7992             m_maxOpt != -1) &&
     
    189202}
    190203
    191 void QIAdvancedSlider::setTickPosition(QSlider::TickPosition fPos)
    192 {
    193     m_pSlider->setTickPosition(fPos);
    194 }
    195 
    196 QSlider::TickPosition QIAdvancedSlider::tickPosition() const
    197 {
    198     return m_pSlider->tickPosition();
    199 }
    200 
    201204Qt::Orientation QIAdvancedSlider::orientation() const
    202205{
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.h

    r28800 r46496  
    5353    int tickInterval() const;
    5454
    55     void setTickPosition(QSlider::TickPosition fPos);
    56     QSlider::TickPosition tickPosition() const;
    57 
    5855    Qt::Orientation orientation() const;
    5956
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic2.cpp

    r41587 r46496  
    6565                m_pRamSlider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    6666                m_pRamSlider->setOrientation(Qt::Horizontal);
    67                 m_pRamSlider->setTickPosition(QSlider::TicksBelow);
    6867            }
    6968            m_pRamEditor = new QILineEdit(this);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp

    r45080 r46496  
    6464                    m_pRamSlider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    6565                    m_pRamSlider->setOrientation(Qt::Horizontal);
    66                     m_pRamSlider->setTickPosition(QSlider::TicksBelow);
    6766                    m_pRamSlider->setValue(m_pNameAndSystemEditor->type().GetRecommendedRAM());
    6867                }
Note: See TracChangeset for help on using the changeset viewer.

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