VirtualBox

Changeset 100320 in vbox


Ignore:
Timestamp:
Jun 28, 2023 10:47:08 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158035
Message:

FE/Qt: bugref:9080. Moving some of the actions to viso file table's toolbar.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoBrowserBase.cpp

    r100306 r100320  
    3636#include "QIToolBar.h"
    3737#include "QIToolButton.h"
     38#include "UIActionPool.h"
    3839#include "UIFileTableNavigationWidget.h"
    3940#include "UIIconPool.h"
     
    4344#include <iprt/assert.h>
    4445
    45 /*********************************************************************************************************************************
    46 *   UIVisoBrowserBase implementation.                                                                                   *
    47 *********************************************************************************************************************************/
    4846
    49 UIVisoBrowserBase::UIVisoBrowserBase(QWidget *pParent /* = 0 */)
     47UIVisoBrowserBase::UIVisoBrowserBase(UIActionPool *pActionPool, QWidget *pParent /* = 0 */)
    5048    : QIWithRetranslateUI<QWidget>(pParent)
    5149    , m_pMainLayout(0)
    5250    , m_pToolBar(0)
     51    , m_pActionPool(pActionPool)
    5352    , m_pNavigationWidget(0)
    5453    , m_pFileTableLabel(0)
     
    110109}
    111110
    112 void UIVisoBrowserBase::sltFileTableViewContextMenu(const QPoint &point)
    113 {
    114     QWidget *pSender = qobject_cast<QWidget*>(sender());
    115     if (!pSender)
    116         return;
    117     emit sigCreateFileTableViewContextMenu(pSender, point);
    118 }
    119 
    120111void UIVisoBrowserBase::sltTableViewItemDoubleClick(const QModelIndex &index)
    121112{
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoBrowserBase.h

    r100306 r100320  
    3434/* Qt includes: */
    3535#include <QModelIndex>
     36#include <QPointer>
    3637#include <QWidget>
    3738
     
    4445class QLabel;
    4546class QIToolBar;
     47class UIActionPool;
    4648class UIFileTableNavigationWidget;
    4749
     
    5355signals:
    5456
    55     void sigCreateFileTableViewContextMenu(QWidget *pMenuRequester, const QPoint &point);
     57    ////void sigCreateFileTableViewContextMenu(QWidget *pMenuRequester, const QPoint &point);
    5658
    5759public:
    5860
    59     UIVisoBrowserBase(QWidget *pParent = 0);
     61    UIVisoBrowserBase(UIActionPool *pActionPool, QWidget *pParent = 0);
    6062    ~UIVisoBrowserBase();
    6163    virtual void showHideHiddenObjects(bool bShow) = 0;
     
    8385    QGridLayout        *m_pMainLayout;
    8486    QIToolBar          *m_pToolBar;
    85 
     87    QPointer<UIActionPool> m_pActionPool;
    8688protected slots:
    87 
    88     void sltFileTableViewContextMenu(const QPoint &point);
    8989
    9090private slots:
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp

    r100306 r100320  
    3737
    3838/* GUI includes: */
     39#include "QIToolBar.h"
     40#include "UIActionPool.h"
    3941#include "UICustomFileSystemModel.h"
    4042#include "UIPathOperations.h"
     
    224226*********************************************************************************************************************************/
    225227
    226 UIVisoContentBrowser::UIVisoContentBrowser(QWidget *pParent)
    227     : UIVisoBrowserBase(pParent)
     228UIVisoContentBrowser::UIVisoContentBrowser(UIActionPool *pActionPool, QWidget *pParent)
     229    : UIVisoBrowserBase(pActionPool, pParent)
    228230    , m_pTableView(0)
    229231    , m_pModel(0)
    230232    , m_pTableProxyModel(0)
     233    , m_pRemoveAction(0)
     234    , m_pCreateNewDirectoryAction(0)
     235    , m_pRenameAction(0)
     236    , m_pResetAction(0)
    231237{
    232238    prepareObjects();
     239    prepareToolBar();
    233240    prepareConnections();
     241    retranslateUi();
    234242
    235243    /* Assuming the root items only child is the one with the path '/', navigate into it. */
     
    544552        m_pTableView->setDragDropMode(QAbstractItemView::DropOnly);
    545553    }
    546     retranslateUi();
     554}
     555
     556void UIVisoContentBrowser::prepareToolBar()
     557{
     558    m_pRemoveAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Remove);
     559    m_pCreateNewDirectoryAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_CreateNewDirectory);
     560    m_pRenameAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Rename);
     561    m_pResetAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Reset);
     562    AssertReturnVoid(m_pRemoveAction);
     563    AssertReturnVoid(m_pCreateNewDirectoryAction);
     564    AssertReturnVoid(m_pRenameAction);
     565    AssertReturnVoid(m_pResetAction);
     566    AssertReturnVoid(m_pToolBar);
     567
     568    m_pRemoveAction->setEnabled(tableViewHasSelection());
     569    m_pRenameAction->setEnabled(tableViewHasSelection());
     570
     571    m_pToolBar->addAction(m_pRemoveAction);
     572    m_pToolBar->addAction(m_pCreateNewDirectoryAction);
     573    m_pToolBar->addAction(m_pRenameAction);
     574    m_pToolBar->addAction(m_pResetAction);
     575}
     576
     577void UIVisoContentBrowser::prepareMainMenu(QMenu *pMenu)
     578{
     579    AssertReturnVoid(pMenu);
     580
     581    pMenu->addAction(m_pRemoveAction);
     582    pMenu->addAction(m_pRenameAction);
     583    pMenu->addAction(m_pCreateNewDirectoryAction);
     584    pMenu->addAction(m_pResetAction);
    547585}
    548586
     
    558596                this, &UIVisoContentBrowser::sltDroppedItems);
    559597        connect(m_pTableView, &QTableView::customContextMenuRequested,
    560                 this, &UIVisoContentBrowser::sltFileTableViewContextMenu);
     598                this, &UIVisoContentBrowser::sltShowContextMenu);
    561599    }
    562600
     
    567605        connect(m_pModel, &UICustomFileSystemModel::sigItemRenamed,
    568606                this, &UIVisoContentBrowser::sltItemRenameAttempt);
     607
     608    if (m_pCreateNewDirectoryAction)
     609        connect(m_pCreateNewDirectoryAction, &QAction::triggered,
     610                this, &UIVisoContentBrowser::sltCreateNewDirectory);
     611    if (m_pRemoveAction)
     612        connect(m_pRemoveAction, &QAction::triggered,
     613                this, &UIVisoContentBrowser::sltRemoveItems);
     614    if (m_pResetAction)
     615        connect(m_pResetAction, &QAction::triggered,
     616                this, &UIVisoContentBrowser::sltResetAction);
     617    if (m_pRenameAction)
     618        connect(m_pRenameAction, &QAction::triggered,
     619                this,&UIVisoContentBrowser::sltItemRenameAction);
    569620}
    570621
     
    783834    Q_UNUSED(deselected);
    784835    emit sigTableSelectionChanged(selected.isEmpty());
     836
     837    if (m_pRemoveAction)
     838        m_pRemoveAction->setEnabled(!selected.isEmpty());
     839    if (m_pRenameAction)
     840        m_pRenameAction->setEnabled(!selected.isEmpty());
    785841}
    786842
     
    798854{
    799855    addObjectsToViso(pathList);
     856}
     857
     858void UIVisoContentBrowser::sltShowContextMenu(const QPoint &point)
     859{
     860    QWidget *pSender = qobject_cast<QWidget*>(sender());
     861    AssertReturnVoid(pSender);
     862
     863    QMenu menu;
     864
     865    menu.addAction(m_pRemoveAction);
     866    menu.addAction(m_pCreateNewDirectoryAction);
     867    menu.addAction(m_pResetAction);
     868    menu.exec(pSender->mapToGlobal(point));
    800869}
    801870
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.h

    r100298 r100320  
    5959public:
    6060
    61     UIVisoContentBrowser(QWidget *pParent = 0);
     61    UIVisoContentBrowser(UIActionPool *pActionPool, QWidget *pParent = 0);
    6262    ~UIVisoContentBrowser();
    6363    /* Imports pathList (relative to ISO file's root) to VISO content. */
     
    7474    virtual bool tableViewHasSelection() const final override;
    7575    void parseVisoFileContent(const QString &strFileName);
     76    void prepareMainMenu(QMenu *pMenu);
    7677
    7778public slots:
     
    9798    /** Adds the dragged-dropped items to VISO. */
    9899    void sltDroppedItems(QStringList pathList);
     100    void sltShowContextMenu(const QPoint &point);
    99101
    100102private:
     
    102104    void                    prepareObjects();
    103105    void                    prepareConnections();
     106    void                    prepareToolBar();
    104107    void                    initializeModel();
    105108    UICustomFileSystemItem *rootItem();
     
    134137     *  concatenated and passed to the client to create ad-hoc.viso entries. */
    135138    QMap<QString, QString>        m_entryMap;
     139
     140    QAction                      *m_pRemoveAction;
     141    QAction                      *m_pCreateNewDirectoryAction;
     142    QAction                      *m_pRenameAction;
     143    QAction                      *m_pResetAction;
     144
    136145};
    137146
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r100299 r100320  
    259259    , m_pActionSettings(0)
    260260    , m_pAddAction(0)
    261     , m_pRemoveAction(0)
    262     , m_pCreateNewDirectoryAction(0)
    263     , m_pRenameAction(0)
    264     , m_pResetAction(0)
    265261    , m_pOpenAction(0)
    266262    , m_pImportISOAction(0)
     
    398394void UIVisoCreatorWidget::sltContentBrowserTableSelectionChanged(bool fIsSelectionEmpty)
    399395{
    400     if (m_pRemoveAction)
    401         m_pRemoveAction->setEnabled(!fIsSelectionEmpty);
    402     if (m_pRenameAction)
    403         m_pRenameAction->setEnabled(!fIsSelectionEmpty);
    404 }
    405 
    406 void UIVisoCreatorWidget::sltShowContextMenu(const QWidget *pContextMenuRequester, const QPoint &point)
    407 {
    408     if (!pContextMenuRequester)
    409         return;
    410 
    411     QMenu menu;
    412 
    413     if (sender() == m_pHostBrowser)
    414     {
    415         menu.addAction(m_pAddAction);
    416     }
    417     else if (sender() == m_pVISOContentBrowser)
    418     {
    419         menu.addAction(m_pRemoveAction);
    420         menu.addAction(m_pCreateNewDirectoryAction);
    421         menu.addAction(m_pResetAction);
    422     }
    423 
    424     menu.exec(pContextMenuRequester->mapToGlobal(point));
     396    Q_UNUSED(fIsSelectionEmpty);
    425397}
    426398
     
    485457    pContainerLayout->setContentsMargins(0, 0, 0, 0);
    486458
    487     m_pHostBrowser = new UIVisoHostBrowser;
     459    m_pHostBrowser = new UIVisoHostBrowser(m_pActionPool);
    488460    AssertPtrReturnVoid(m_pHostBrowser);
    489461    pContainerLayout->addWidget(m_pHostBrowser, 0, 0, 1, 4);
     
    493465    pContainerLayout->addWidget(m_pVerticalToolBar, 0, 4, 1, 1);
    494466
    495     m_pVISOContentBrowser = new UIVisoContentBrowser;
     467    m_pVISOContentBrowser = new UIVisoContentBrowser(m_pActionPool);
    496468    AssertPtrReturnVoid(m_pVISOContentBrowser);
    497469    pContainerLayout->addWidget(m_pVISOContentBrowser, 0, 5, 1, 4);
     
    525497        connect(m_pHostBrowser, &UIVisoHostBrowser::sigTableSelectionChanged,
    526498                this, &UIVisoCreatorWidget::sltHostBrowserTableSelectionChanged);
    527         connect(m_pHostBrowser, &UIVisoHostBrowser::sigCreateFileTableViewContextMenu,
    528                 this, &UIVisoCreatorWidget::sltShowContextMenu);
    529499    }
    530500
     
    533503        connect(m_pVISOContentBrowser, &UIVisoContentBrowser::sigTableSelectionChanged,
    534504                this, &UIVisoCreatorWidget::sltContentBrowserTableSelectionChanged);
    535         connect(m_pVISOContentBrowser, &UIVisoContentBrowser::sigCreateFileTableViewContextMenu,
    536                 this, &UIVisoCreatorWidget::sltShowContextMenu);
    537505    }
    538506
     
    549517        connect(m_pAddAction, &QAction::triggered,
    550518                m_pHostBrowser, &UIVisoHostBrowser::sltAddAction);
    551 
    552     if (m_pCreateNewDirectoryAction)
    553         connect(m_pCreateNewDirectoryAction, &QAction::triggered,
    554                 m_pVISOContentBrowser, &UIVisoContentBrowser::sltCreateNewDirectory);
    555     if (m_pRemoveAction)
    556         connect(m_pRemoveAction, &QAction::triggered,
    557                 m_pVISOContentBrowser, &UIVisoContentBrowser::sltRemoveItems);
    558     if (m_pResetAction)
    559         connect(m_pResetAction, &QAction::triggered,
    560                 m_pVISOContentBrowser, &UIVisoContentBrowser::sltResetAction);
    561     if (m_pRenameAction)
    562         connect(m_pRenameAction, &QAction::triggered,
    563                 m_pVISOContentBrowser,&UIVisoContentBrowser::sltItemRenameAction);
    564519    if (m_pOpenAction)
    565520        connect(m_pOpenAction, &QAction::triggered,
     
    580535    if (m_pAddAction && m_pHostBrowser)
    581536        m_pAddAction->setEnabled(m_pHostBrowser->tableViewHasSelection());
    582     m_pRemoveAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Remove);
    583     if (m_pRemoveAction && m_pVISOContentBrowser)
    584         m_pRemoveAction->setEnabled(m_pVISOContentBrowser->tableViewHasSelection());
    585     m_pCreateNewDirectoryAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_CreateNewDirectory);
    586     m_pRenameAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Rename);
    587     if (m_pRenameAction && m_pVISOContentBrowser)
    588         m_pRenameAction->setEnabled(m_pVISOContentBrowser->tableViewHasSelection());
    589     m_pResetAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Reset);
    590537    m_pOpenAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Open);
    591538    m_pImportISOAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_ImportISO);
     
    612559        if (m_pImportISOAction)
    613560            m_pMainMenu->addAction(m_pImportISOAction);
    614         if (m_pRemoveAction)
    615             m_pMainMenu->addAction(m_pRemoveAction);
    616         if (m_pRenameAction)
    617             m_pMainMenu->addAction(m_pRenameAction);
    618         if (m_pCreateNewDirectoryAction)
    619             m_pMainMenu->addAction(m_pCreateNewDirectoryAction);
    620         if (m_pResetAction)
    621             m_pMainMenu->addAction(m_pResetAction);
    622     }
     561    }
     562    if (m_pVISOContentBrowser)
     563        m_pVISOContentBrowser->prepareMainMenu(m_pMainMenu);
    623564
    624565    if (m_pVerticalToolBar)
     
    639580        if (m_pImportISOAction)
    640581            m_pVerticalToolBar->addAction(m_pImportISOAction);
    641         if (m_pRenameAction)
    642             m_pVerticalToolBar->addAction(m_pRenameAction);
    643         if (m_pRemoveAction)
    644             m_pVerticalToolBar->addAction(m_pRemoveAction);
    645         if (m_pCreateNewDirectoryAction)
    646             m_pVerticalToolBar->addAction(m_pCreateNewDirectoryAction);
    647         if (m_pResetAction)
    648             m_pVerticalToolBar->addAction(m_pResetAction);
    649582
    650583        m_pVerticalToolBar->addWidget(bottomSpacerWidget);
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h

    r100180 r100320  
    116116    void sltHostBrowserTableSelectionChanged(QStringList pathList);
    117117    void sltContentBrowserTableSelectionChanged(bool fIsSelectionEmpty);
    118     void sltShowContextMenu(const QWidget *pContextMenuRequester, const QPoint &point);
    119118    void sltOpenAction();
    120119    void sltISOImportAction();
     
    141140      * @{ */
    142141        QAction              *m_pAddAction;
    143         QAction              *m_pRemoveAction;
    144         QAction              *m_pCreateNewDirectoryAction;
    145         QAction              *m_pRenameAction;
    146         QAction              *m_pResetAction;
    147142        QAction              *m_pOpenAction;
    148143        QAction              *m_pImportISOAction;
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp

    r100306 r100320  
    152152*********************************************************************************************************************************/
    153153
    154 UIVisoHostBrowser::UIVisoHostBrowser(QWidget *pParent /* = 0 */)
    155     : UIVisoBrowserBase(pParent)
     154UIVisoHostBrowser::UIVisoHostBrowser(UIActionPool *pActionPool, QWidget *pParent /* = 0 */)
     155    : UIVisoBrowserBase(pActionPool, pParent)
    156156    , m_pModel(0)
    157157    , m_pTableView(0)
     
    224224                this, &UIVisoBrowserBase::sltTableViewItemDoubleClick);
    225225        connect(m_pTableView, &QTableView::customContextMenuRequested,
    226                 this, &UIVisoHostBrowser::sltFileTableViewContextMenu);
     226                this, &UIVisoHostBrowser::sltShowContextMenu);
    227227    }
    228228
     
    237237    Q_UNUSED(selected);
    238238    emit sigTableSelectionChanged(selectedPathList());
     239}
     240
     241void UIVisoHostBrowser::sltShowContextMenu(const QPoint &point)
     242{
     243    Q_UNUSED(point);
     244    if (!sender())
     245        return;
     246
     247    // QMenu menu;
     248
     249    // if (sender() == m_pHostBrowser)
     250    //     menu.addAction(m_pAddAction);
     251    // }
     252    // else if (sender() == m_pVISOContentBrowser)
     253    // {
     254    //     menu.addAction(m_pRemoveAction);
     255    //     menu.addAction(m_pCreateNewDirectoryAction);
     256    //     menu.addAction(m_pResetAction);
     257    // }
     258
     259    // menu.exec(pContextMenuRequester->mapToGlobal(point));
    239260}
    240261
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h

    r100297 r100320  
    5252public:
    5353
    54     UIVisoHostBrowser(QWidget *pParent = 0);
     54    UIVisoHostBrowser(UIActionPool *pActionPool, QWidget *pParent = 0);
    5555    ~UIVisoHostBrowser();
    5656    virtual void showHideHiddenObjects(bool bShow) final override;
     
    7575
    7676    void sltTableSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
     77    void sltShowContextMenu(const QPoint &point);
    7778
    7879private:
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