VirtualBox

Changeset 50138 in vbox for trunk


Ignore:
Timestamp:
Jan 21, 2014 1:00:00 PM (11 years ago)
Author:
vboxsync
Message:

FE/Qt: 6066: Replacing auto-confirmation checkbox with corresponding popup-button.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
11 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc

    r47935 r50138  
    257257        <file alias="restore_16px.png">images/restore_16px.png</file>
    258258        <file alias="close_16px.png">images/close_16px.png</file>
     259        <file alias="close_popup_16px.png">images/close_popup_16px.png</file>
    259260        <file alias="ok_16px.png">images/ok_16px.png</file>
    260261        <file alias="cancel_16px.png">images/cancel_16px.png</file>
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp

    r49267 r50138  
    295295        if (iButton2 != 0)
    296296            buttonDescriptions[iButton2] = strButtonText2;
     297        if (fProposeAutoConfirmation)
     298            buttonDescriptions[AlertButton_Cancel | AlertOption_AutoConfirmed] = QString();
    297299        /* Create new one: */
    298         pPopupStack->createPopupPane(strPopupPaneID, strMessage, strDetails,
    299                                      buttonDescriptions, fProposeAutoConfirmation);
     300        pPopupStack->createPopupPane(strPopupPaneID, strMessage, strDetails, buttonDescriptions);
    300301    }
    301302
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp

    r47949 r50138  
    3030UIPopupPane::UIPopupPane(QWidget *pParent,
    3131                         const QString &strMessage, const QString &strDetails,
    32                          const QMap<int, QString> &buttonDescriptions,
    33                          bool fProposeAutoConfirmation)
     32                         const QMap<int, QString> &buttonDescriptions)
    3433    : QIWithRetranslateUI<QWidget>(pParent)
    3534    , m_fPolished(false)
    3635    , m_iLayoutMargin(10), m_iLayoutSpacing(5)
    3736    , m_strMessage(strMessage), m_strDetails(strDetails)
    38     , m_fProposeAutoConfirmation(fProposeAutoConfirmation)
    3937    , m_buttonDescriptions(buttonDescriptions)
    4038    , m_fShown(false)
     
    7775    /* Fetch new details: */
    7876    m_strDetails = strDetails;
    79 }
    80 
    81 void UIPopupPane::setProposeAutoConfirmation(bool fPropose)
    82 {
    83     /* Make sure the auto-confirmation-proposal has changed: */
    84     if (m_fProposeAutoConfirmation == fPropose)
    85         return;
    86 
    87     /* Fetch new auto-confirmation-proposal: */
    88     m_fProposeAutoConfirmation = fPropose;
    89     m_pTextPane->setProposeAutoConfirmation(m_fProposeAutoConfirmation);
    9077}
    9178
     
    199186{
    200187    /* Complete popup with corresponding code: */
    201     done(iButtonID & AlertButtonMask);
     188    done(iButtonID);
    202189}
    203190
     
    228215{
    229216    /* Create message-label: */
    230     m_pTextPane = new UIPopupPaneTextPane(this, m_strMessage, m_fProposeAutoConfirmation, m_fFocused);
     217    m_pTextPane = new UIPopupPaneTextPane(this, m_strMessage, m_fFocused);
    231218    {
    232219        /* Prepare label: */
     
    448435void UIPopupPane::done(int iResultCode)
    449436{
    450     /* Was the popup auto-confirmed? */
    451     if (m_pTextPane->isAutoConfirmed())
    452         iResultCode |= AlertOption_AutoConfirmed;
    453 
    454437    /* Notify listeners: */
    455438    emit sigDone(iResultCode);
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h

    r47694 r50138  
    7171    UIPopupPane(QWidget *pParent,
    7272                const QString &strMessage, const QString &strDetails,
    73                 const QMap<int, QString> &buttonDescriptions,
    74                 bool fProposeAutoConfirmation);
     73                const QMap<int, QString> &buttonDescriptions);
    7574
    7675    /* API: Recall stuff: */
     
    8079    void setMessage(const QString &strMessage);
    8180    void setDetails(const QString &strDetails);
    82 
    83     /* API: Auto-confirmation stuff: */
    84     void setProposeAutoConfirmation(bool fPropose);
    8581
    8682    /* API: Layout stuff: */
     
    149145    QString m_strMessage, m_strDetails;
    150146
    151     /* Variables: Auto-confirmation stuff: */
    152     bool m_fProposeAutoConfirmation;
    153 
    154147    /* Variables: Button stuff: */
    155148    QMap<int, QString> m_buttonDescriptions;
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneButtonPane.cpp

    r48534 r50138  
    1919
    2020/* Qt includes: */
     21#include <QApplication>
    2122#include <QHBoxLayout>
    2223#include <QVBoxLayout>
     
    173174    switch (iButtonID & AlertButtonMask)
    174175    {
    175         case AlertButton_Ok:      strToolTip = QIMessageBox::tr("OK");     break;
    176         case AlertButton_Cancel:  strToolTip = QIMessageBox::tr("Cancel"); break;
    177         case AlertButton_Choice1: strToolTip = QIMessageBox::tr("Yes");    break;
    178         case AlertButton_Choice2: strToolTip = QIMessageBox::tr("No");     break;
    179         default:                  strToolTip = QString();                  break;
     176        case AlertButton_Ok: strToolTip = QIMessageBox::tr("OK"); break;
     177        case AlertButton_Cancel:
     178        {
     179            switch (iButtonID & AlertOptionMask)
     180            {
     181                case AlertOption_AutoConfirmed: strToolTip = QApplication::translate("UIMessageCenter", "Do not show this message again"); break;
     182                default: strToolTip = QIMessageBox::tr("Cancel"); break;
     183            }
     184            break;
     185        }
     186        case AlertButton_Choice1: strToolTip = QIMessageBox::tr("Yes"); break;
     187        case AlertButton_Choice2: strToolTip = QIMessageBox::tr("No"); break;
     188        default: strToolTip = QString(); break;
    180189    }
    181190    return strToolTip;
     
    188197    switch (iButtonID & AlertButtonMask)
    189198    {
    190         case AlertButton_Ok:      icon = UIIconPool::iconSet(":/ok_16px.png"); break;
    191         case AlertButton_Cancel:  icon = UIIconPool::iconSet(":/cancel_16px.png"); break;
     199        case AlertButton_Ok: icon = UIIconPool::iconSet(":/ok_16px.png"); break;
     200        case AlertButton_Cancel:
     201        {
     202            switch (iButtonID & AlertOptionMask)
     203            {
     204                case AlertOption_AutoConfirmed: icon = UIIconPool::iconSet(":/close_popup_16px.png"); break;
     205                default: icon = UIIconPool::iconSet(":/cancel_16px.png"); break;
     206            }
     207            break;
     208        }
    192209        case AlertButton_Choice1: break;
    193210        case AlertButton_Choice2: break;
    194         default:                  break;
     211        default: break;
    195212    }
    196213    return icon;
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneTextPane.cpp

    r47694 r50138  
    2626#include "UIAnimationFramework.h"
    2727
    28 UIPopupPaneTextPane::UIPopupPaneTextPane(QWidget *pParent, const QString &strText,
    29                                          bool fProposeAutoConfirmation, bool fFocused)
    30     : QIWithRetranslateUI<QWidget>(pParent)
     28UIPopupPaneTextPane::UIPopupPaneTextPane(QWidget *pParent, const QString &strText, bool fFocused)
     29    : QWidget(pParent)
    3130    , m_iLayoutMargin(0)
    3231    , m_iLayoutSpacing(10)
     
    3433    , m_pLabel(0)
    3534    , m_iDesiredLabelWidth(-1)
    36     , m_pAutoConfirmCheckBox(0)
    37     , m_fProposeAutoConfirmation(fProposeAutoConfirmation)
    3835    , m_fFocused(fFocused)
    3936    , m_pAnimation(0)
     
    5552    /* Update size-hint: */
    5653    updateSizeHint();
    57 }
    58 
    59 void UIPopupPaneTextPane::setProposeAutoConfirmation(bool fPropose)
    60 {
    61     /* Make sure the auto-confirmation-proposal has changed: */
    62     if (m_fProposeAutoConfirmation == fPropose)
    63         return;
    64 
    65     /* Fetch new auto-confirmation-proposal: */
    66     m_fProposeAutoConfirmation = fPropose;
    67 
    68     /* Update size-hint: */
    69     updateSizeHint();
    70 }
    71 
    72 bool UIPopupPaneTextPane::autoConfirmationProposed() const
    73 {
    74     return m_fProposeAutoConfirmation;
    75 }
    76 
    77 bool UIPopupPaneTextPane::isAutoConfirmed() const
    78 {
    79     return autoConfirmationProposed() &&
    80            m_pAutoConfirmCheckBox &&
    81            m_pAutoConfirmCheckBox->isChecked();
    8254}
    8355
     
    11688    m_pLabel->move(m_iLayoutMargin, m_iLayoutMargin);
    11789    m_pLabel->resize(qMin(iWidth, iLabelWidth), qMin(iHeight, iLabelHeight));
    118 
    119     /* Check-box: */
    120     if (m_fProposeAutoConfirmation)
    121     {
    122         /* Variables: */
    123         const int iCheckBoxWidth = m_checkBoxSizeHint.width();
    124         const int iCheckBoxHeight = m_checkBoxSizeHint.height();
    125         const int iCheckBoxY = m_iLayoutMargin + iLabelHeight + m_iLayoutSpacing;
    126         /* Layout check-box: */
    127         if (iHeight - m_iLayoutMargin - iCheckBoxHeight - iCheckBoxY >= 0)
    128         {
    129             m_pAutoConfirmCheckBox->move(m_iLayoutMargin, iCheckBoxY);
    130             m_pAutoConfirmCheckBox->resize(iCheckBoxWidth, iCheckBoxHeight);
    131             if (m_pAutoConfirmCheckBox->isHidden())
    132                 m_pAutoConfirmCheckBox->show();
    133         }
    134         else if (!m_pAutoConfirmCheckBox->isHidden())
    135             m_pAutoConfirmCheckBox->hide();
    136     }
    137     else if (!m_pAutoConfirmCheckBox->isHidden())
    138         m_pAutoConfirmCheckBox->hide();
    13990}
    14091
     
    200151        m_pLabel->setText(m_strText);
    201152    }
    202 
    203     /* Create check-box: */
    204     m_pAutoConfirmCheckBox = new QCheckBox(this);
    205     {
    206         /* Prepare check-box: */
    207         m_pAutoConfirmCheckBox->setFont(tuneFont(m_pAutoConfirmCheckBox->font()));
    208         m_pAutoConfirmCheckBox->setFocusPolicy(Qt::NoFocus);
    209     }
    210 
    211     /* Translate UI finally: */
    212     retranslateUi();
    213153}
    214154
     
    223163}
    224164
    225 void UIPopupPaneTextPane::retranslateUi()
    226 {
    227     /* Translate auto-confirm check-box: */
    228     m_pAutoConfirmCheckBox->setText(QApplication::translate("UIMessageCenter", "Do not show this message again"));
    229 }
    230 
    231165void UIPopupPaneTextPane::updateSizeHint()
    232166{
     
    242176        /* Recalculate label size-hint: */
    243177        m_labelSizeHint = QSize(m_iDesiredLabelWidth, m_pLabel->heightForWidth(m_iDesiredLabelWidth));
    244         /* Recalculate check-box size-hint: */
    245         m_checkBoxSizeHint = m_fProposeAutoConfirmation ? m_pAutoConfirmCheckBox->sizeHint() : QSize();
    246178        /* Expanded size-hint contains full-size label: */
    247179        m_expandedSizeHint = m_labelSizeHint;
    248         /* Expanded size-hint can contain check-box: */
    249         if (m_checkBoxSizeHint.isValid())
    250         {
    251             m_expandedSizeHint.setWidth(qMax(m_expandedSizeHint.width(), m_checkBoxSizeHint.width()));
    252             m_expandedSizeHint.setHeight(m_expandedSizeHint.height() + m_iLayoutSpacing + m_checkBoxSizeHint.height());
    253         }
    254180    }
    255181
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPaneTextPane.h

    r47694 r50138  
    2323#include <QWidget>
    2424
    25 /* GUI includes: */
    26 #include "QIWithRetranslateUI.h"
    27 
    2825/* Forward declarations: */
    2926class QLabel;
    30 class QCheckBox;
    3127class UIAnimation;
    3228
    3329/* Popup-pane text-pane prototype class: */
    34 class UIPopupPaneTextPane : public QIWithRetranslateUI<QWidget>
     30class UIPopupPaneTextPane : public QWidget
    3531{
    3632    Q_OBJECT;
     
    5147
    5248    /* Constructor: */
    53     UIPopupPaneTextPane(QWidget *pParent, const QString &strText,
    54                         bool fProposeAutoConfirmation, bool fFocused);
     49    UIPopupPaneTextPane(QWidget *pParent, const QString &strText, bool fFocused);
    5550
    5651    /* API: Text stuff: */
    5752    void setText(const QString &strText);
    58 
    59     /* API: Auto-confirmation stuff: */
    60     void setProposeAutoConfirmation(bool fPropose);
    61     bool autoConfirmationProposed() const;
    62     bool isAutoConfirmed() const;
    6353
    6454    /* API: Layout stuff: */
     
    8373    void prepareAnimation();
    8474
    85     /* Helper: Translate stuff: */
    86     void retranslateUi();
    87 
    8875    /* Helper: Layout stuff: */
    8976    void updateSizeHint();
     
    10087    const int m_iLayoutSpacing;
    10188    QSize m_labelSizeHint;
    102     QSize m_checkBoxSizeHint;
    10389    QSize m_collapsedSizeHint;
    10490    QSize m_expandedSizeHint;
     
    10995    QLabel *m_pLabel;
    11096    int m_iDesiredLabelWidth;
    111     QCheckBox *m_pAutoConfirmCheckBox;
    112     bool m_fProposeAutoConfirmation;
    11397
    11498    /* Variables: Focus stuff: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.cpp

    r47693 r50138  
    5050void UIPopupStack::createPopupPane(const QString &strPopupPaneID,
    5151                                   const QString &strMessage, const QString &strDetails,
    52                                    const QMap<int, QString> &buttonDescriptions,
    53                                    bool fProposeAutoConfirmation)
     52                                   const QMap<int, QString> &buttonDescriptions)
    5453{
    5554    /* Redirect request to viewport: */
    5655    m_pScrollViewport->createPopupPane(strPopupPaneID,
    5756                                       strMessage, strDetails,
    58                                        buttonDescriptions,
    59                                        fProposeAutoConfirmation);
     57                                       buttonDescriptions);
    6058
    6159    /* Propagate width: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.h

    r47644 r50138  
    5757    void createPopupPane(const QString &strPopupPaneID,
    5858                         const QString &strMessage, const QString &strDetails,
    59                          const QMap<int, QString> &buttonDescriptions,
    60                          bool fProposeAutoConfirmation);
     59                         const QMap<int, QString> &buttonDescriptions);
    6160    void updatePopupPane(const QString &strPopupPaneID,
    6261                         const QString &strMessage, const QString &strDetails);
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.cpp

    r47609 r50138  
    3939void UIPopupStackViewport::createPopupPane(const QString &strPopupPaneID,
    4040                                           const QString &strMessage, const QString &strDetails,
    41                                            const QMap<int, QString> &buttonDescriptions,
    42                                            bool fProposeAutoConfirmation)
     41                                           const QMap<int, QString> &buttonDescriptions)
    4342{
    4443    /* Make sure there is no such popup-pane already: */
     
    5251    UIPopupPane *pPopupPane = m_panes[strPopupPaneID] = new UIPopupPane(this,
    5352                                                                        strMessage, strDetails,
    54                                                                         buttonDescriptions,
    55                                                                         fProposeAutoConfirmation);
     53                                                                        buttonDescriptions);
    5654
    5755    /* Attach popup-pane connection: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.h

    r47523 r50138  
    5252    void createPopupPane(const QString &strPopupPaneID,
    5353                         const QString &strMessage, const QString &strDetails,
    54                          const QMap<int, QString> &buttonDescriptions,
    55                          bool fProposeAutoConfirmation);
     54                         const QMap<int, QString> &buttonDescriptions);
    5655    void updatePopupPane(const QString &strPopupPaneID,
    5756                         const QString &strMessage, const QString &strDetails);
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