VirtualBox

Changeset 68807 in vbox


Ignore:
Timestamp:
Sep 21, 2017 9:07:14 AM (7 years ago)
Author:
vboxsync
Message:

FE/Qt: Fixing flickering on resize in popup pane details widget

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

Legend:

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

    r68540 r68807  
    133133                             iTextPaneYOffset + iTextPaneHeight + m_iLayoutSpacing);
    134134        m_pDetailsPane->resize(iTextPaneWidth + iButtonPaneMinimumWidth,
    135                                m_pDetailsPane->minimumSizeHint().height() -  m_iLayoutMargin);
     135                               m_pDetailsPane->minimumSizeHint().height());
    136136        m_pDetailsPane->layoutContent();
    137137    }
     
    196196        /* Take into account layout: */
    197197        iMinimumHeightHint += 2 * m_iLayoutMargin;
     198        iMinimumHeightHint += m_iLayoutSpacing;
    198199        {
    199200            /* Take into account widgets: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneDetails.cpp

    r68540 r68807  
    3333UIPopupPaneDetails::UIPopupPaneDetails(QWidget *pParent, const QString &strText, bool fFocused)
    3434    : QWidget(pParent)
    35     , m_iLayoutMargin(0)
     35    , m_iLayoutMargin(5)
    3636    , m_iLayoutSpacing(10)
    3737    , m_strText(strText)
    3838    , m_pTextEdit(0)
    3939    , m_iDesiredTextEditWidth(-1)
    40     , m_iDesiredTextEditHeight(-1)
     40    , m_iMaximumPaneHeight(-1)
     41    , m_iMaximumTextEditHeight(0)
     42    , m_iTextContentMargin(5)
    4143    , m_fFocused(fFocused)
    4244    , m_pAnimation(0)
     
    9597    m_pTextEdit->move(m_iLayoutMargin, m_iLayoutMargin);
    9698    m_pTextEdit->resize(qMin(iWidth, iTextEditWidth), qMin(iHeight, iTextEditHeight));
     99    /* Text-document: */
     100    QTextDocument *pTextDocument = m_pTextEdit->document();
     101    if (pTextDocument)
     102    {
     103        pTextDocument->adjustSize();
     104        pTextDocument->setTextWidth(m_pTextEdit->width() - m_iTextContentMargin);
     105    }
    97106}
    98107
     
    121130{
    122131    /* Make sure the desired-height has changed: */
    123     if (m_iDesiredTextEditHeight == iHeight)
     132    if (m_iMaximumPaneHeight == iHeight)
    124133        return;
    125134
    126135    /* Fetch new desired-height: */
    127     m_iDesiredTextEditHeight = iHeight;
     136    m_iMaximumPaneHeight = iHeight;
     137    m_iMaximumTextEditHeight = m_iMaximumPaneHeight - 2 * m_iLayoutMargin;
    128138
    129139    /* Update size-hint: */
     
    184194        m_pTextEdit->setText(m_strText);
    185195        m_pTextEdit->setFocusProxy(this);
    186         m_pTextEdit->setLineWrapMode(QTextEdit::NoWrap);
    187196    }
    188197}
     
    208217    /* Recalculate expanded size-hint: */
    209218    {
    210         int iNewHeight = m_iDesiredTextEditHeight;
     219        int iNewHeight = m_iMaximumPaneHeight;
    211220        QTextDocument *pTextDocument = m_pTextEdit->document();
    212221        if(pTextDocument)
     
    217226            QSize textSize = pTextDocument->size().toSize();
    218227            /* Make sure the text edits height is no larger than that of container widget: */
    219             iNewHeight = qMin(iNewHeight, textSize.height());
     228            iNewHeight = qMin(m_iMaximumTextEditHeight, textSize.height() + 2 * m_iLayoutMargin);
    220229        }
    221230        /* Recalculate label size-hint: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneDetails.h

    r68540 r68807  
    9696    QTextEdit *m_pTextEdit;
    9797    int m_iDesiredTextEditWidth;
    98     int m_iDesiredTextEditHeight;
     98    int m_iMaximumPaneHeight;
     99    int m_iMaximumTextEditHeight;
     100    int m_iTextContentMargin;
    99101
    100102    /* Variables: Focus stuff: */
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