Changeset 100320 in vbox
- Timestamp:
- Jun 28, 2023 10:47:08 AM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 158035
- 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 36 36 #include "QIToolBar.h" 37 37 #include "QIToolButton.h" 38 #include "UIActionPool.h" 38 39 #include "UIFileTableNavigationWidget.h" 39 40 #include "UIIconPool.h" … … 43 44 #include <iprt/assert.h> 44 45 45 /*********************************************************************************************************************************46 * UIVisoBrowserBase implementation. *47 *********************************************************************************************************************************/48 46 49 UIVisoBrowserBase::UIVisoBrowserBase( QWidget *pParent /* = 0 */)47 UIVisoBrowserBase::UIVisoBrowserBase(UIActionPool *pActionPool, QWidget *pParent /* = 0 */) 50 48 : QIWithRetranslateUI<QWidget>(pParent) 51 49 , m_pMainLayout(0) 52 50 , m_pToolBar(0) 51 , m_pActionPool(pActionPool) 53 52 , m_pNavigationWidget(0) 54 53 , m_pFileTableLabel(0) … … 110 109 } 111 110 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 120 111 void UIVisoBrowserBase::sltTableViewItemDoubleClick(const QModelIndex &index) 121 112 { -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoBrowserBase.h
r100306 r100320 34 34 /* Qt includes: */ 35 35 #include <QModelIndex> 36 #include <QPointer> 36 37 #include <QWidget> 37 38 … … 44 45 class QLabel; 45 46 class QIToolBar; 47 class UIActionPool; 46 48 class UIFileTableNavigationWidget; 47 49 … … 53 55 signals: 54 56 55 void sigCreateFileTableViewContextMenu(QWidget *pMenuRequester, const QPoint &point);57 ////void sigCreateFileTableViewContextMenu(QWidget *pMenuRequester, const QPoint &point); 56 58 57 59 public: 58 60 59 UIVisoBrowserBase( QWidget *pParent = 0);61 UIVisoBrowserBase(UIActionPool *pActionPool, QWidget *pParent = 0); 60 62 ~UIVisoBrowserBase(); 61 63 virtual void showHideHiddenObjects(bool bShow) = 0; … … 83 85 QGridLayout *m_pMainLayout; 84 86 QIToolBar *m_pToolBar; 85 87 QPointer<UIActionPool> m_pActionPool; 86 88 protected slots: 87 88 void sltFileTableViewContextMenu(const QPoint &point);89 89 90 90 private slots: -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp
r100306 r100320 37 37 38 38 /* GUI includes: */ 39 #include "QIToolBar.h" 40 #include "UIActionPool.h" 39 41 #include "UICustomFileSystemModel.h" 40 42 #include "UIPathOperations.h" … … 224 226 *********************************************************************************************************************************/ 225 227 226 UIVisoContentBrowser::UIVisoContentBrowser( QWidget *pParent)227 : UIVisoBrowserBase(p Parent)228 UIVisoContentBrowser::UIVisoContentBrowser(UIActionPool *pActionPool, QWidget *pParent) 229 : UIVisoBrowserBase(pActionPool, pParent) 228 230 , m_pTableView(0) 229 231 , m_pModel(0) 230 232 , m_pTableProxyModel(0) 233 , m_pRemoveAction(0) 234 , m_pCreateNewDirectoryAction(0) 235 , m_pRenameAction(0) 236 , m_pResetAction(0) 231 237 { 232 238 prepareObjects(); 239 prepareToolBar(); 233 240 prepareConnections(); 241 retranslateUi(); 234 242 235 243 /* Assuming the root items only child is the one with the path '/', navigate into it. */ … … 544 552 m_pTableView->setDragDropMode(QAbstractItemView::DropOnly); 545 553 } 546 retranslateUi(); 554 } 555 556 void 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 577 void 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); 547 585 } 548 586 … … 558 596 this, &UIVisoContentBrowser::sltDroppedItems); 559 597 connect(m_pTableView, &QTableView::customContextMenuRequested, 560 this, &UIVisoContentBrowser::slt FileTableViewContextMenu);598 this, &UIVisoContentBrowser::sltShowContextMenu); 561 599 } 562 600 … … 567 605 connect(m_pModel, &UICustomFileSystemModel::sigItemRenamed, 568 606 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); 569 620 } 570 621 … … 783 834 Q_UNUSED(deselected); 784 835 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()); 785 841 } 786 842 … … 798 854 { 799 855 addObjectsToViso(pathList); 856 } 857 858 void 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)); 800 869 } 801 870 -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.h
r100298 r100320 59 59 public: 60 60 61 UIVisoContentBrowser( QWidget *pParent = 0);61 UIVisoContentBrowser(UIActionPool *pActionPool, QWidget *pParent = 0); 62 62 ~UIVisoContentBrowser(); 63 63 /* Imports pathList (relative to ISO file's root) to VISO content. */ … … 74 74 virtual bool tableViewHasSelection() const final override; 75 75 void parseVisoFileContent(const QString &strFileName); 76 void prepareMainMenu(QMenu *pMenu); 76 77 77 78 public slots: … … 97 98 /** Adds the dragged-dropped items to VISO. */ 98 99 void sltDroppedItems(QStringList pathList); 100 void sltShowContextMenu(const QPoint &point); 99 101 100 102 private: … … 102 104 void prepareObjects(); 103 105 void prepareConnections(); 106 void prepareToolBar(); 104 107 void initializeModel(); 105 108 UICustomFileSystemItem *rootItem(); … … 134 137 * concatenated and passed to the client to create ad-hoc.viso entries. */ 135 138 QMap<QString, QString> m_entryMap; 139 140 QAction *m_pRemoveAction; 141 QAction *m_pCreateNewDirectoryAction; 142 QAction *m_pRenameAction; 143 QAction *m_pResetAction; 144 136 145 }; 137 146 -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp
r100299 r100320 259 259 , m_pActionSettings(0) 260 260 , m_pAddAction(0) 261 , m_pRemoveAction(0)262 , m_pCreateNewDirectoryAction(0)263 , m_pRenameAction(0)264 , m_pResetAction(0)265 261 , m_pOpenAction(0) 266 262 , m_pImportISOAction(0) … … 398 394 void UIVisoCreatorWidget::sltContentBrowserTableSelectionChanged(bool fIsSelectionEmpty) 399 395 { 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); 425 397 } 426 398 … … 485 457 pContainerLayout->setContentsMargins(0, 0, 0, 0); 486 458 487 m_pHostBrowser = new UIVisoHostBrowser ;459 m_pHostBrowser = new UIVisoHostBrowser(m_pActionPool); 488 460 AssertPtrReturnVoid(m_pHostBrowser); 489 461 pContainerLayout->addWidget(m_pHostBrowser, 0, 0, 1, 4); … … 493 465 pContainerLayout->addWidget(m_pVerticalToolBar, 0, 4, 1, 1); 494 466 495 m_pVISOContentBrowser = new UIVisoContentBrowser ;467 m_pVISOContentBrowser = new UIVisoContentBrowser(m_pActionPool); 496 468 AssertPtrReturnVoid(m_pVISOContentBrowser); 497 469 pContainerLayout->addWidget(m_pVISOContentBrowser, 0, 5, 1, 4); … … 525 497 connect(m_pHostBrowser, &UIVisoHostBrowser::sigTableSelectionChanged, 526 498 this, &UIVisoCreatorWidget::sltHostBrowserTableSelectionChanged); 527 connect(m_pHostBrowser, &UIVisoHostBrowser::sigCreateFileTableViewContextMenu,528 this, &UIVisoCreatorWidget::sltShowContextMenu);529 499 } 530 500 … … 533 503 connect(m_pVISOContentBrowser, &UIVisoContentBrowser::sigTableSelectionChanged, 534 504 this, &UIVisoCreatorWidget::sltContentBrowserTableSelectionChanged); 535 connect(m_pVISOContentBrowser, &UIVisoContentBrowser::sigCreateFileTableViewContextMenu,536 this, &UIVisoCreatorWidget::sltShowContextMenu);537 505 } 538 506 … … 549 517 connect(m_pAddAction, &QAction::triggered, 550 518 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);564 519 if (m_pOpenAction) 565 520 connect(m_pOpenAction, &QAction::triggered, … … 580 535 if (m_pAddAction && m_pHostBrowser) 581 536 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);590 537 m_pOpenAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Open); 591 538 m_pImportISOAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_ImportISO); … … 612 559 if (m_pImportISOAction) 613 560 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); 623 564 624 565 if (m_pVerticalToolBar) … … 639 580 if (m_pImportISOAction) 640 581 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);649 582 650 583 m_pVerticalToolBar->addWidget(bottomSpacerWidget); -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h
r100180 r100320 116 116 void sltHostBrowserTableSelectionChanged(QStringList pathList); 117 117 void sltContentBrowserTableSelectionChanged(bool fIsSelectionEmpty); 118 void sltShowContextMenu(const QWidget *pContextMenuRequester, const QPoint &point);119 118 void sltOpenAction(); 120 119 void sltISOImportAction(); … … 141 140 * @{ */ 142 141 QAction *m_pAddAction; 143 QAction *m_pRemoveAction;144 QAction *m_pCreateNewDirectoryAction;145 QAction *m_pRenameAction;146 QAction *m_pResetAction;147 142 QAction *m_pOpenAction; 148 143 QAction *m_pImportISOAction; -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp
r100306 r100320 152 152 *********************************************************************************************************************************/ 153 153 154 UIVisoHostBrowser::UIVisoHostBrowser( QWidget *pParent /* = 0 */)155 : UIVisoBrowserBase(p Parent)154 UIVisoHostBrowser::UIVisoHostBrowser(UIActionPool *pActionPool, QWidget *pParent /* = 0 */) 155 : UIVisoBrowserBase(pActionPool, pParent) 156 156 , m_pModel(0) 157 157 , m_pTableView(0) … … 224 224 this, &UIVisoBrowserBase::sltTableViewItemDoubleClick); 225 225 connect(m_pTableView, &QTableView::customContextMenuRequested, 226 this, &UIVisoHostBrowser::slt FileTableViewContextMenu);226 this, &UIVisoHostBrowser::sltShowContextMenu); 227 227 } 228 228 … … 237 237 Q_UNUSED(selected); 238 238 emit sigTableSelectionChanged(selectedPathList()); 239 } 240 241 void 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)); 239 260 } 240 261 -
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h
r100297 r100320 52 52 public: 53 53 54 UIVisoHostBrowser( QWidget *pParent = 0);54 UIVisoHostBrowser(UIActionPool *pActionPool, QWidget *pParent = 0); 55 55 ~UIVisoHostBrowser(); 56 56 virtual void showHideHiddenObjects(bool bShow) final override; … … 75 75 76 76 void sltTableSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); 77 void sltShowContextMenu(const QPoint &point); 77 78 78 79 private:
Note:
See TracChangeset
for help on using the changeset viewer.