VirtualBox

Ignore:
Timestamp:
Aug 23, 2023 11:19:15 AM (18 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158893
Message:

FE/Qt: bugref:10496. Uncheck panel actions when panel container is closed via its close buttom.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDialogPanel.cpp

    r100952 r100955  
    4646
    4747UIDialogPanelBase::UIDialogPanelBase(QWidget *pParent /* = 0 */)
    48     : QWidget(pParent)
     48    : QIWithRetranslateUI<QWidget>(pParent)
    4949    , m_pTabWidget(0)
    5050    , m_pCloseButton(0)
    5151{
    5252    prepare();
     53    retranslateUi();
    5354}
    5455
    55 //     m_pCloseButton = new QIToolButton;
    56 //     if (m_pCloseButton)
    57 //     {
    58 //         m_pCloseButton->setIcon(UIIconPool::iconSet(":/close_16px.png"));
    59 //         m_pMainLayout->addWidget(m_pCloseButton, 0, Qt::AlignLeft);
    60 //     }
    61 // }
    62 
    63 // void UIDialogPanel::prepareConnections()
    64 // {
    65 //     if (m_pCloseButton)
    66 //         connect(m_pCloseButton, &QIToolButton::clicked, this, &UIDialogPanel::hide);
    67 // }
    68 
    69 // void UIDialogPanel::retranslateUi()
    70 // {
    71 //     if (m_pCloseButton)
    72 //         m_pCloseButton->setToolTip(tr("Close the pane"));
    73 // }
     56void UIDialogPanelBase::retranslateUi()
     57{
     58    if (m_pCloseButton)
     59        m_pCloseButton->setToolTip(tr("Close"));
     60}
    7461
    7562void UIDialogPanelBase::prepare()
     
    8673    AssertReturnVoid(m_pCloseButton);
    8774    m_pCloseButton->setIcon(UIIconPool::iconSet(":/close_16px.png"));
     75    connect(m_pCloseButton, &QIToolButton::clicked, this, &UIDialogPanelBase::sltHide);
     76
    8877    m_pTabWidget->setCornerWidget(m_pCloseButton);
     78}
    8979
     80void UIDialogPanelBase::sltHide()
     81{
     82    hide();
     83    emit sigHidden();
    9084}
    9185
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDialogPanel.h

    r100952 r100955  
    4444
    4545/** QWidget extension acting as the base class for all the dialog panels like file manager, logviewer etc. */
    46 class SHARED_LIBRARY_STUFF UIDialogPanelBase : public QWidget
     46class SHARED_LIBRARY_STUFF UIDialogPanelBase : public QIWithRetranslateUI<QWidget>
    4747{
    4848    Q_OBJECT;
     
    5151
    5252    void sigCurrentTabChanged(int iIndex);
     53    void sigHidden();
    5354
    5455public:
     
    6364    void insertTab(int iIndex, QWidget *pPage, const QString &strLabel = QString());
    6465    void setTabText(int iIndex, const QString &strText);
     66    void retranslateUi() override;
     67
     68private slots:
     69
     70    void sltHide();
    6571
    6672private:
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp

    r100906 r100955  
    330330        connect(m_pPanel, &UIFileManagerPanel::sigCurrentTabChanged,
    331331                this, &UIFileManager::sltPanelCurrentTabChanged);
     332        connect(m_pPanel, &UIFileManagerPanel::sigHidden,
     333                this, &UIFileManager::sltPanelContainerHidden);
    332334    }
    333335
     
    575577        default:
    576578            break;
     579    }
     580}
     581
     582void UIFileManager::sltPanelContainerHidden()
     583{
     584    foreach (QAction *pPanelAction, m_panelActions)
     585    {
     586        if (!pPanelAction)
     587            continue;
     588        pPanelAction->blockSignals(true);
     589        pPanelAction->setChecked(false);
     590        pPanelAction->blockSignals(false);
    577591    }
    578592}
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.h

    r100906 r100955  
    130130    void sltHandleOptionsUpdated();
    131131    void sltPanelCurrentTabChanged(int iIndex);
     132    void sltPanelContainerHidden();
    132133
    133134private:
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerPanel.cpp

    r100907 r100955  
    369369
    370370UIFileManagerPanel::UIFileManagerPanel(QWidget *pParent, UIFileManagerOptions *pFileManagerOptions)
    371     : QIWithRetranslateUI<UIDialogPanelBase>(pParent)
     371    : UIDialogPanelBase(pParent)
    372372    , m_pListDirectoriesOnTopCheckBox(0)
    373373    , m_pDeleteConfirmationCheckBox(0)
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerPanel.h

    r100906 r100955  
    5353class QVBoxLayout;
    5454
    55 class UIFileManagerPanel : public QIWithRetranslateUI<UIDialogPanelBase>
     55class UIFileManagerPanel : public UIDialogPanelBase
    5656{
    5757    Q_OBJECT;
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerPanel.cpp

    r100936 r100955  
    4646
    4747UIVMLogViewerPanelNew::UIVMLogViewerPanelNew(QWidget *pParent, UIVMLogViewerWidget *pViewer)
    48     : QIWithRetranslateUI<UIDialogPanelBase>(pParent)
     48    : UIDialogPanelBase(pParent)
    4949    , m_pViewer(pViewer)
    5050    , m_pSearchWidget(0)
     
    174174            return true;
    175175    }
    176     return QIWithRetranslateUI<UIDialogPanelBase>::eventFilter(pObject, pEvent);
     176    return UIDialogPanelBase::eventFilter(pObject, pEvent);
    177177}
    178178
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerPanel.h

    r100936 r100955  
    4545class UIVMLogViewerPreferencesWidget;
    4646
    47 class UIVMLogViewerPanelNew : public QIWithRetranslateUI<UIDialogPanelBase>
     47class UIVMLogViewerPanelNew : public UIDialogPanelBase
    4848{
    4949    Q_OBJECT;
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp

    r100952 r100955  
    521521}
    522522
     523void UIVMLogViewerWidget::sltPanelContainerHidden()
     524{
     525    foreach (QAction *pPanelAction, m_panelActions)
     526    {
     527        if (!pPanelAction)
     528            continue;
     529        pPanelAction->blockSignals(true);
     530        pPanelAction->setChecked(false);
     531        pPanelAction->blockSignals(false);
     532    }
     533}
     534
    523535void UIVMLogViewerWidget::sltPanelActionToggled(bool fChecked)
    524536{
     
    799811    connect(m_pPanel, &UIVMLogViewerPanelNew::sigBookmarkSelected,
    800812            this, &UIVMLogViewerWidget::gotoBookmark);
     813    connect(m_pPanel, &UIVMLogViewerPanelNew::sigHidden,
     814            this, &UIVMLogViewerWidget::sltPanelContainerHidden);
    801815
    802816    m_pMainLayout->addWidget(m_pPanel);
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h

    r100946 r100955  
    145145    void sltTabCloseButtonClick();
    146146    void sltCommitDataSignalReceived();
     147    void sltPanelContainerHidden();
    147148
    148149private:
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r100907 r100955  
    6565*********************************************************************************************************************************/
    6666
    67 class SHARED_LIBRARY_STUFF UIVisoSettingWidget : public QIWithRetranslateUI<UIDialogPanelBase>
     67class SHARED_LIBRARY_STUFF UIVisoSettingWidget : public UIDialogPanelBase
    6868{
    6969    Q_OBJECT;
     
    102102
    103103UIVisoSettingWidget::UIVisoSettingWidget(QWidget *pParent)
    104     :QIWithRetranslateUI<UIDialogPanelBase>(pParent)
     104    : UIDialogPanelBase(pParent)
    105105    , m_pVisoNameLabel(0)
    106106    , m_pCustomOptionsLabel(0)
     
    440440}
    441441
     442void UIVisoCreatorWidget::sltPanelContainerHidden()
     443{
     444    m_pActionPool->action(UIActionIndex_M_VISOCreator_ToggleSettingsDialog)->blockSignals(true);
     445    m_pActionPool->action(UIActionIndex_M_VISOCreator_ToggleSettingsDialog)->setChecked(false);
     446    m_pActionPool->action(UIActionIndex_M_VISOCreator_ToggleSettingsDialog)->blockSignals(false);
     447}
     448
    442449void UIVisoCreatorWidget::prepareWidgets()
    443450{
     
    530537        connect(m_pSettingsWidget, &UIVisoSettingWidget::sigSettingsChanged,
    531538                this, &UIVisoCreatorWidget::sltSettingsChanged);
     539        connect(m_pSettingsWidget, &UIVisoSettingWidget::sigHidden,
     540                this, &UIVisoCreatorWidget::sltPanelContainerHidden);
    532541    }
    533542
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h

    r100812 r100955  
    119119    void sltISOContentImportedOrRemoved(bool fImported);
    120120    void sltSettingsChanged();
     121    void sltPanelContainerHidden();
    121122
    122123private:
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