VirtualBox

Changeset 77405 in vbox


Ignore:
Timestamp:
Feb 20, 2019 8:39:07 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9080. Adding context menus.

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

Legend:

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

    r77330 r77405  
    265265}
    266266
     267void UIVisoBrowserBase::sltFileTableViewContextMenu(const QPoint &point)
     268{
     269    QWidget *pSender = qobject_cast<QWidget*>(sender());
     270    if (!pSender)
     271        return;
     272    emit sigCreateFileTableViewContextMenu(pSender, point);
     273}
    267274
    268275void UIVisoBrowserBase::sltHandleTableViewItemDoubleClick(const QModelIndex &index)
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoBrowserBase.h

    r77330 r77405  
    4646
    4747    void sigTreeViewVisibilityChanged(bool fVisible);
     48    void sigCreateFileTableViewContextMenu(QWidget *pMenuRequester, const QPoint &point);
    4849
    4950public:
     
    7879    QGridLayout        *m_pMainLayout;
    7980
     81protected slots:
     82
     83    void sltFileTableViewContextMenu(const QPoint &point);
     84
    8085private slots:
    8186
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp

    r77330 r77405  
    393393    {
    394394        m_pMainLayout->addWidget(m_pTableView, 1, 0, 6, 4);
     395        m_pTableView->setContextMenuPolicy(Qt::CustomContextMenu);
    395396        m_pTableView->setSelectionMode(QAbstractItemView::ContiguousSelection);
    396397        m_pTableView->setShowGrid(false);
     
    440441        connect(m_pTableView, &UIVisoContentTableView::sigNewItemsDropped,
    441442                this, &UIVisoContentBrowser::sltHandleDroppedItems);
     443        connect(m_pTableView, &QTableView::customContextMenuRequested,
     444                this, &UIVisoContentBrowser::sltFileTableViewContextMenu);
    442445    }
    443446
     
    448451        connect(m_pModel, &UICustomFileSystemModel::sigItemRenamed,
    449452                this, &UIVisoContentBrowser::sltHandleItemRenameAttempt);
    450 
    451453}
    452454
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r77396 r77405  
    225225}
    226226
     227void UIVisoCreator::sltHandleShowContextMenu(const QWidget *pContextMenuRequester, const QPoint &point)
     228{
     229    if (!pContextMenuRequester)
     230        return;
     231
     232    QMenu menu;
     233
     234    if (sender() == m_pHostBrowser)
     235    {
     236        menu.addAction(m_pAddAction);
     237    }
     238    else if (sender() == m_pVisoBrowser)
     239    {
     240        menu.addAction(m_pRemoveAction);
     241        menu.addAction(m_pNewDirectoryAction);
     242        menu.addAction(m_pResetAction);
     243    }
     244
     245    menu.exec(pContextMenuRequester->mapToGlobal(point));
     246}
     247
    227248void UIVisoCreator::prepareWidgets()
    228249{
     
    325346        connect(m_pHostBrowser, &UIVisoHostBrowser::sigTableSelectionChanged,
    326347                this, &UIVisoCreator::sltHandleHostBrowserTableSelectionChanged);
     348        connect(m_pHostBrowser, &UIVisoHostBrowser::sigCreateFileTableViewContextMenu,
     349                this, &UIVisoCreator::sltHandleShowContextMenu);
    327350    }
    328351
    329352    if (m_pVisoBrowser)
     353    {
    330354        connect(m_pVisoBrowser, &UIVisoContentBrowser::sigTableSelectionChanged,
    331355                this, &UIVisoCreator::sltHandleContentBrowserTableSelectionChanged);
     356        connect(m_pVisoBrowser, &UIVisoContentBrowser::sigCreateFileTableViewContextMenu,
     357                this, &UIVisoCreator::sltHandleShowContextMenu);
     358    }
    332359
    333360    if (m_pButtonBox)
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h

    r77376 r77405  
    8383    void sltHandleHostBrowserTableSelectionChanged(bool fIsSelectionEmpty);
    8484    void sltHandleContentBrowserTableSelectionChanged(bool fIsSelectionEmpty);
     85    void sltHandleShowContextMenu(const QWidget *pContextMenuRequester, const QPoint &point);
    8586
    8687private:
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp

    r77330 r77405  
    153153    if (m_pTableView)
    154154    {
     155        m_pTableView->setContextMenuPolicy(Qt::CustomContextMenu);
    155156        m_pMainLayout->addWidget(m_pTableView, 1, 0, 8, 4);
    156157        m_pTableView->setSelectionMode(QAbstractItemView::ContiguousSelection);
     
    189190    UIVisoBrowserBase::prepareConnections();
    190191    if (m_pTableView)
     192    {
    191193        connect(m_pTableView, &QTableView::doubleClicked,
    192194                this, &UIVisoBrowserBase::sltHandleTableViewItemDoubleClick);
     195        connect(m_pTableView, &QTableView::customContextMenuRequested,
     196                this, &UIVisoHostBrowser::sltFileTableViewContextMenu);
     197    }
    193198
    194199    if (m_pTableView->selectionModel())
     
    216221    setTreeCurrentIndex(index);
    217222    m_pTreeView->blockSignals(false);
     223
     224    /* Check if we still have something selected after table root index change: */
     225    if (m_pTableView && m_pTableView->selectionModel())
     226        emit sigTableSelectionChanged(m_pTableView->selectionModel()->hasSelection());
    218227}
    219228
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