VirtualBox

Changeset 90333 in vbox


Ignore:
Timestamp:
Jul 26, 2021 1:00:19 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9996. UITooolBox minimum size hint fix.

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

Legend:

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

    r88862 r90333  
    8888    int totalHeight() const;
    8989    int titleHeight() const;
    90     int pageWidgetHeight() const;
     90    QSize pageWidgetSize() const;
    9191    void setTitleIcon(const QIcon &icon, const QString &strToolTip);
    9292
     
    268268int UIToolBoxPage::totalHeight() const
    269269{
    270     return pageWidgetHeight() + titleHeight();
     270    return pageWidgetSize().height() + titleHeight();
    271271}
    272272
     
    292292}
    293293
    294 int UIToolBoxPage::pageWidgetHeight() const
    295 {
    296     if (m_pWidget && m_pWidget->isVisible() && m_pWidget->sizeHint().isValid())
    297         return m_pWidget->sizeHint().height();
    298     return 0;
     294QSize UIToolBoxPage::pageWidgetSize() const
     295{
     296    if (m_pWidget && m_pWidget->sizeHint().isValid())
     297        return m_pWidget->sizeHint();
     298    return QSize();
    299299}
    300300
     
    376376            this, &UIToolBox::sltHandleShowPageWidget);
    377377
    378     static int iMaxPageHeight = 0;
    379     int iTotalTitleHeight = 0;
    380     foreach(UIToolBoxPage *pPage, m_pages)
    381     {
    382         if (pWidget && pWidget->sizeHint().isValid())
    383             iMaxPageHeight = qMax(iMaxPageHeight, pWidget->sizeHint().height());
    384         iTotalTitleHeight += pPage->titleHeight();
    385     }
    386     setMinimumHeight(m_iPageCount * (qApp->style()->pixelMetric(QStyle::PM_LayoutTopMargin) +
    387                                      qApp->style()->pixelMetric(QStyle::PM_LayoutBottomMargin)) +
    388                      iTotalTitleHeight +
    389                      iMaxPageHeight);
    390378    /* Add stretch at the end: */
    391379    m_pMainLayout->addStretch();
     
    393381}
    394382
     383QSize UIToolBox::minimumSizeHint() const
     384{
     385
     386    int iMaxPageHeight = 0;
     387    int iTotalTitleHeight = 0;
     388    int iWidth = 0;
     389    foreach(UIToolBoxPage *pPage, m_pages)
     390    {
     391        QSize pageWidgetSize(pPage->pageWidgetSize());
     392        iMaxPageHeight = qMax(iMaxPageHeight, pageWidgetSize.height());
     393        iTotalTitleHeight += pPage->titleHeight();
     394        iWidth = qMax(pageWidgetSize.width(), iWidth);
     395    }
     396    int iHeight = m_iPageCount * (qApp->style()->pixelMetric(QStyle::PM_LayoutTopMargin) +
     397                                  qApp->style()->pixelMetric(QStyle::PM_LayoutBottomMargin)) +
     398        iTotalTitleHeight +
     399        iMaxPageHeight;
     400    return QSize(iWidth, iHeight);
     401}
     402
    395403void UIToolBox::setPageEnabled(int iIndex, bool fEnabled)
    396404{
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBox.h

    r88271 r90333  
    5252    void setPageTitleIcon(int iIndex, const QIcon &icon, const QString &strIconToolTip = QString());
    5353    void setCurrentPage(int iIndex);
     54    virtual QSize minimumSizeHint() const /* override */;
    5455
    5556protected:
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