- Timestamp:
- Mar 26, 2020 2:12:18 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 136661
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
r83373 r83439 2795 2795 setStatusTip(QApplication::translate("UIActionPool", "Show cloud profile help")); 2796 2796 setToolTip( QApplication::translate("UIActionPool", "Show Cloud Profile Help") 2797 + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString()))); 2798 } 2799 }; 2800 2801 /** Toggle action extension, used as 'Toggle Columns' action class. */ 2802 class UIActionMenuSelectorVMResourceManagerToggleColumns : public UIActionToggle 2803 { 2804 Q_OBJECT; 2805 2806 public: 2807 2808 /** Constructs action passing @a pParent to the base-class. */ 2809 UIActionMenuSelectorVMResourceManagerToggleColumns(UIActionPool *pParent) 2810 : UIActionToggle(pParent) 2811 { 2812 setShortcutContext(Qt::WidgetWithChildrenShortcut); 2813 setIcon(UIIconPool::iconSetFull(":/cloud_profile_edit_32px.png", ":/cloud_profile_edit_16px.png", 2814 ":/cloud_profile_edit_disabled_32px.png", ":/cloud_profile_edit_disabled_16px.png")); 2815 } 2816 2817 protected: 2818 2819 /** Returns shortcut extra-data ID. */ 2820 virtual QString shortcutExtraDataID() const /* override */ 2821 { 2822 return QString("ToggleVMResourceMonitorColumns"); 2823 } 2824 2825 /** Returns default shortcut. */ 2826 virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */ 2827 { 2828 return QKeySequence(); 2829 } 2830 2831 /** Handles translation event. */ 2832 virtual void retranslateUi() /* override */ 2833 { 2834 setIconText(QApplication::translate("UIActionPool", "Columns")); 2835 setName(QApplication::translate("UIActionPool", "Add Remove Columns")); 2836 //setShortcutScope(QApplication::translate("UIActionPool", "Cloud Profile Manager")); 2837 setStatusTip(QApplication::translate("UIActionPool", "Open context menu to disable/menu table columns")); 2838 setToolTip( QApplication::translate("UIActionPool", "Open context menu to disable/menu table columns") 2797 2839 + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString()))); 2798 2840 } … … 2935 2977 m_pool[UIActionIndexST_M_Cloud_S_TryPage] = new UIActionMenuSelectorCloudShowTryPage(this); 2936 2978 m_pool[UIActionIndexST_M_Cloud_S_Help] = new UIActionMenuSelectorCloudShowHelp(this); 2979 2980 /* VM resource Monitor actions: */ 2981 m_pool[UIActionIndexST_M_VMResourceMonitor_T_Columns] = new UIActionMenuSelectorVMResourceManagerToggleColumns(this); 2937 2982 2938 2983 /* 'Group' action groups: */ -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h
r83304 r83439 164 164 UIActionIndexST_M_Cloud_S_Help, 165 165 166 /* VM resource Monitor actions: */ 167 UIActionIndexST_M_VMResourceMonitor_T_Columns, 168 166 169 /* Maximum index: */ 167 170 UIActionIndexST_Max -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
r83290 r83439 657 657 break; 658 658 } 659 case UIToolType_VMResourceMonitor: 660 { 661 m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_VMResourceMonitor_T_Columns)); 662 break; 663 } 664 659 665 default: 660 666 break; -
trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp
r83304 r83439 452 452 case UIToolType_Network: pItem->reconfigure(tr("Network")); break; 453 453 case UIToolType_Cloud: pItem->reconfigure(tr("Cloud")); break; 454 case UIToolType_VMResourceMonitor: pItem->reconfigure(tr(" VM Resource Monitor")); break;454 case UIToolType_VMResourceMonitor: pItem->reconfigure(tr("Resources")); break; 455 455 case UIToolType_Details: pItem->reconfigure(tr("Details")); break; 456 456 case UIToolType_Snapshots: pItem->reconfigure(tr("Snapshots")); break; -
trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp
r83431 r83439 18 18 /* Qt includes: */ 19 19 #include <QAbstractTableModel> 20 #include <QCheckBox> 20 21 #include <QHeaderView> 21 22 #include <QItemDelegate> … … 118 119 }; 119 120 121 /********************************************************************************************************************************* 122 * Class UIVMResouceMonitorCheckBox definition. * 123 *********************************************************************************************************************************/ 124 class UIVMResouceMonitorCheckBox : public QCheckBox 125 { 126 Q_OBJECT; 127 128 public: 129 130 UIVMResouceMonitorCheckBox(QWidget *parent = 0); 131 void setData(const QVariant& data); 132 const QVariant data() const; 133 134 private: 135 QVariant m_data; 136 }; 120 137 121 138 /********************************************************************************************************************************* … … 286 303 } 287 304 305 306 /********************************************************************************************************************************* 307 * Class UIVMResouceMonitorCheckBox implementation. * 308 *********************************************************************************************************************************/ 309 310 UIVMResouceMonitorCheckBox::UIVMResouceMonitorCheckBox(QWidget *parent /* = 0 */) 311 :QCheckBox(parent) 312 { 313 } 314 void UIVMResouceMonitorCheckBox::setData(const QVariant& data) 315 { 316 m_data = data; 317 } 318 319 const QVariant UIVMResouceMonitorCheckBox::data() const 320 { 321 return m_data; 322 } 288 323 289 324 … … 594 629 , m_pToolBar(0) 595 630 , m_pTableView(0) 631 , m_pColumnSelectionMenu(0) 596 632 { 597 633 /* Prepare: */ … … 601 637 QMenu *UIResourceMonitorWidget::menu() const 602 638 { 603 return m_pActionPool->action(UIActionIndexST_M_NetworkWindow)->menu();639 return NULL; 604 640 } 605 641 … … 635 671 } 636 672 673 void UIResourceMonitorWidget::paintEvent(QPaintEvent *pEvent) 674 { 675 QIWithRetranslateUI<QWidget>::paintEvent(pEvent); 676 } 677 678 637 679 void UIResourceMonitorWidget::prepare() 638 680 { … … 643 685 loadSettings(); 644 686 retranslateUi(); 687 prepareActions(); 645 688 } 646 689 … … 669 712 { 670 713 layout()->addWidget(m_pTableView); 671 m_pTableView->setContextMenuPolicy(Qt::CustomContextMenu);672 connect(m_pTableView, &QTableView::customContextMenuRequested,673 this, &UIResourceMonitorWidget::sltCreateContextMenu);714 // m_pTableView->setContextMenuPolicy(Qt::CustomContextMenu); 715 // connect(m_pTableView, &QTableView::customContextMenuRequested, 716 // this, &UIResourceMonitorWidget::sltCreateContextMenu); 674 717 m_pProxyModel->setSourceModel(m_pModel); 675 718 m_pTableView->setModel(m_pProxyModel); … … 694 737 m_pProxyModel->setColumnShown(m_columnShown); 695 738 } 739 } 740 741 void UIResourceMonitorWidget::prepareActions() 742 { 743 connect(m_pActionPool->action(UIActionIndexST_M_VMResourceMonitor_T_Columns), &QAction::toggled, 744 this, &UIResourceMonitorWidget::sltToggleColumnSelectionMenu); 745 m_pColumnSelectionMenu = new QFrame(this); 746 m_pColumnSelectionMenu->setAutoFillBackground(true); 747 m_pColumnSelectionMenu->setFrameStyle(QFrame::Panel | QFrame::Plain); 748 m_pColumnSelectionMenu->hide(); 749 QVBoxLayout* pLayout = new QVBoxLayout(m_pColumnSelectionMenu); 750 int iLength = 0; 751 for (int i = 0; i < VMResouceMonitorColumn_Max; ++i) 752 { 753 UIVMResouceMonitorCheckBox* pCheckBox = new UIVMResouceMonitorCheckBox; 754 pCheckBox->setText(m_columnCaptions[i]); 755 iLength = m_columnCaptions[i].length() > iLength ? m_columnCaptions[i].length() : iLength; 756 if (!pCheckBox) 757 continue; 758 pLayout->addWidget(pCheckBox); 759 pCheckBox->setData(i); 760 if (i < m_columnShown.size()) 761 pCheckBox->setChecked(m_columnShown[i]); 762 if (i == (int)VMResouceMonitorColumn_Name) 763 pCheckBox->setEnabled(false); 764 connect(pCheckBox, &UIVMResouceMonitorCheckBox::toggled, this, &UIResourceMonitorWidget::sltHandleColumnAction); 765 } 766 QFontMetrics fontMetrics(m_pColumnSelectionMenu->font()); 767 int iWidth = iLength * fontMetrics.width('x') + 768 QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth) + 769 2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin) + 770 2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin); 771 m_pColumnSelectionMenu->setFixedWidth(iWidth); 696 772 } 697 773 … … 725 801 } 726 802 727 void UIResourceMonitorWidget::slt CreateContextMenu(const QPoint &point)728 { 729 if (!m_p TableView)803 void UIResourceMonitorWidget::sltToggleColumnSelectionMenu(bool fChecked) 804 { 805 if (!m_pColumnSelectionMenu) 730 806 return; 731 QMenu menu; 732 for (int i = 0; i < VMResouceMonitorColumn_Max; ++i) 733 { 734 QAction *pAction = menu.addAction(m_columnCaptions[i]); 735 if (!pAction) 736 continue; 737 pAction->setData(i); 738 pAction->setCheckable(true); 739 if (i < m_columnShown.size()) 740 pAction->setChecked(m_columnShown[i]); 741 if (i == (int)VMResouceMonitorColumn_Name) 742 pAction->setEnabled(false); 743 connect(pAction, &QAction::triggered, this, &UIResourceMonitorWidget::sltHandleColumnAction); 744 } 745 menu.exec(m_pTableView->mapToGlobal(point)); 807 m_pColumnSelectionMenu->setVisible(fChecked); 808 809 if (fChecked) 810 { 811 m_pColumnSelectionMenu->move(0, 0); 812 m_pColumnSelectionMenu->raise(); 813 m_pColumnSelectionMenu->resize(400, 400); 814 m_pColumnSelectionMenu->show(); 815 m_pColumnSelectionMenu->setFocus(); 816 } 817 else 818 m_pColumnSelectionMenu->hide(); 819 820 update(); 821 822 // QPoint point(0, 0); 823 // if (!m_pTableView) 824 // return; 825 // if (fChecked) 826 // m_pMenu->exec(m_pTableView->mapToGlobal(point)); 827 // else 828 // m_pMenu->hide(); 746 829 } 747 830 748 831 void UIResourceMonitorWidget::sltHandleColumnAction(bool fChecked) 749 832 { 750 QAction* pSender = qobject_cast<QAction*>(sender());833 UIVMResouceMonitorCheckBox* pSender = qobject_cast<UIVMResouceMonitorCheckBox*>(sender()); 751 834 if (!pSender) 752 835 return; -
trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h
r83379 r83439 31 31 /* Forward declarations: */ 32 32 class QAbstractButton; 33 class QFrame; 33 34 class QTableView; 34 35 class QTreeWidgetItem; … … 65 66 virtual void resizeEvent(QResizeEvent *pEvent) /* override */; 66 67 virtual void showEvent(QShowEvent *pEvent) /* override */; 68 virtual void paintEvent(QPaintEvent *pEvent) /* override */; 67 69 /** @} */ 68 70 … … 70 72 71 73 void sltHandleDataUpdate(); 72 void slt CreateContextMenu(const QPoint &point);74 void sltToggleColumnSelectionMenu(bool fChecked); 73 75 void sltHandleColumnAction(bool fChecked); 74 76 … … 81 83 void prepareWidgets(); 82 84 void prepareToolBar(); 85 void prepareActions(); 83 86 void loadSettings(); 84 87 /** @} */ … … 100 103 QVector<bool> m_columnShown; 101 104 /** @} */ 102 105 QFrame* m_pColumnSelectionMenu; 103 106 }; 104 107
Note:
See TracChangeset
for help on using the changeset viewer.