Changeset 89036 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- May 14, 2021 8:14:18 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144375
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 7 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r89006 r89036 623 623 src/medium/UIMediumManager.h \ 624 624 src/activity/overview/UIVMActivityOverviewWidget.h \ 625 src/activity/overview/UIVMActivity ListWidget.h \625 src/activity/overview/UIVMActivityToolWidget.h \ 626 626 src/networkmanager/UIDetailsWidgetHostNetwork.h \ 627 627 src/networkmanager/UIDetailsWidgetNATNetwork.h \ … … 952 952 src/manager/chooser/UIChooserAbstractModel.cpp \ 953 953 src/activity/overview/UIVMActivityOverviewWidget.cpp \ 954 src/activity/overview/UIVMActivityToolWidget.cpp \ 954 955 src/networkmanager/UINetworkManager.cpp \ 955 956 src/snapshots/UISnapshotDetailsWidget.cpp \ … … 1115 1116 src/medium/UIMediumManager.cpp \ 1116 1117 src/activity/overview/UIVMActivityOverviewWidget.cpp \ 1117 src/activity/overview/UIVMActivity ListWidget.cpp \1118 src/activity/overview/UIVMActivityToolWidget.cpp \ 1118 1119 src/networkmanager/UIDetailsWidgetHostNetwork.cpp \ 1119 1120 src/networkmanager/UIDetailsWidgetNATNetwork.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp
r89035 r89036 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UIVMActivity ListWidget class implementation.3 * VBox Qt GUI - UIVMActivityToolWidget class implementation. 4 4 */ 5 5 … … 39 39 #include "UIIconPool.h" 40 40 #include "UIVMActivityMonitor.h" 41 #include "UIVMActivity ListWidget.h"41 #include "UIVMActivityToolWidget.h" 42 42 #include "UIMessageCenter.h" 43 43 #include "QIToolBar.h" 44 44 #include "UIVirtualBoxEventHandler.h" 45 #include "UIVirtualMachineItem.h" 45 46 46 47 #ifdef VBOX_WS_MAC … … 49 50 50 51 /* COM includes: */ 52 #include "COMEnums.h" 51 53 #include "CConsole.h" 52 54 #include "CMachine.h" … … 57 59 #include <iprt/cidr.h> 58 60 61 62 class UIVMActivityListWidget : public QWidget 63 { 64 65 Q_OBJECT; 66 public: 67 68 UIVMActivityListWidget(QWidget *pParent = 0) 69 : QWidget(pParent) 70 { 71 } 72 }; 59 73 /********************************************************************************************************************************* 60 * Class UIVMActivity ListWidget implementation. *74 * Class UIVMActivityToolWidget implementation. * 61 75 *********************************************************************************************************************************/ 62 76 63 UIVMActivity ListWidget::UIVMActivityListWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool,77 UIVMActivityToolWidget::UIVMActivityToolWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool, 64 78 bool fShowToolbar /* = true */, QWidget *pParent /* = 0 */) 65 : QIWithRetranslateUI<Q Widget>(pParent)79 : QIWithRetranslateUI<QTabWidget>(pParent) 66 80 , m_enmEmbedding(enmEmbedding) 67 81 , m_pActionPool(pActionPool) … … 72 86 } 73 87 74 QMenu *UIVMActivity ListWidget::menu() const88 QMenu *UIVMActivityToolWidget::menu() const 75 89 { 76 90 return NULL; 77 91 } 78 92 79 bool UIVMActivity ListWidget::isCurrentTool() const93 bool UIVMActivityToolWidget::isCurrentTool() const 80 94 { 81 95 return m_fIsCurrentTool; 82 96 } 83 97 84 void UIVMActivity ListWidget::setIsCurrentTool(bool fIsCurrentTool)98 void UIVMActivityToolWidget::setIsCurrentTool(bool fIsCurrentTool) 85 99 { 86 100 m_fIsCurrentTool = fIsCurrentTool; 87 101 } 88 102 89 void UIVMActivityListWidget::retranslateUi() 90 { 91 } 92 93 void UIVMActivityListWidget::showEvent(QShowEvent *pEvent) 94 { 95 QIWithRetranslateUI<QWidget>::showEvent(pEvent); 96 } 97 98 void UIVMActivityListWidget::prepare() 99 { 100 } 101 102 void UIVMActivityListWidget::prepareWidgets() 103 { 104 } 105 106 107 void UIVMActivityListWidget::prepareActions() 108 { 109 } 110 111 void UIVMActivityListWidget::prepareToolBar() 103 void UIVMActivityToolWidget::retranslateUi() 104 { 105 } 106 107 void UIVMActivityToolWidget::showEvent(QShowEvent *pEvent) 108 { 109 QIWithRetranslateUI<QTabWidget>::showEvent(pEvent); 110 } 111 112 void UIVMActivityToolWidget::prepare() 113 { 114 setTabBarAutoHide(true); 115 } 116 117 void UIVMActivityToolWidget::setSelectedVMListItems(const QList<UIVirtualMachineItem*> &items) 118 { 119 QVector<QUuid> selectedMachines; 120 121 foreach (const UIVirtualMachineItem *item, items) 122 { 123 if (!item) 124 continue; 125 selectedMachines << item->id(); 126 } 127 setMachines(selectedMachines); 128 } 129 130 void UIVMActivityToolWidget::setMachines(const QVector<QUuid> &machineIds) 131 { 132 /* List of machines that are newly added to selected machine list: */ 133 QVector<QUuid> newSelections; 134 QVector<QUuid> unselectedMachines(m_machineIds); 135 136 foreach (const QUuid &id, machineIds) 137 { 138 unselectedMachines.removeAll(id); 139 if (!m_machineIds.contains(id)) 140 newSelections << id; 141 } 142 m_machineIds = machineIds; 143 144 hide(); 145 removeTabs(unselectedMachines); 146 addTabs(newSelections); 147 show(); 148 } 149 150 151 void UIVMActivityToolWidget::prepareActions() 152 { 153 QAction *pToResourcesAction = 154 m_pActionPool->action(UIActionIndex_M_Activity_S_ToVMActivityOverview); 155 if (pToResourcesAction) 156 connect(pToResourcesAction, &QAction::triggered, this, &UIVMActivityToolWidget::sigSwitchToResourcesPane); 157 158 } 159 160 void UIVMActivityToolWidget::prepareToolBar() 112 161 { 113 162 /* Create toolbar: */ … … 134 183 } 135 184 136 void UIVMActivityListWidget::loadSettings() 137 { 138 } 185 void UIVMActivityToolWidget::loadSettings() 186 { 187 } 188 189 void UIVMActivityToolWidget::showVMActivityMonitor(CMachine &comMachine) 190 { 191 if (comMachine.isNull()) 192 return; 193 // if (!m_pActivityMonitor) 194 // { 195 // m_pActivityMonitor = new UIVMActivityMonitor(m_enmEmbedding, this, 196 // comMachine, m_pActionPool, false /* Show toolbar */); 197 // addWidget(m_pActivityMonitor); 198 // } 199 // else 200 // m_pActivityMonitor->setMachine(comMachine); 201 202 // setCurrentWidget(m_pActivityMonitor); 203 } 204 205 void UIVMActivityToolWidget::showVMActivityList() 206 { 207 // if (!m_pActivityList) 208 // { 209 // m_pActivityList = new UIVMActivityListWidget(this); 210 // addWidget(m_pActivityList); 211 // } 212 // setCurrentWidget(m_pActivityList); 213 } 214 215 void UIVMActivityToolWidget::removeTabs(const QVector<QUuid> &machineIdsToRemove) 216 { 217 QVector<UIVMActivityMonitor*> removeList; 218 QVector<UIVMActivityMonitor*> keepList; 219 for (int i = 0; i < count(); ++i) 220 { 221 UIVMActivityMonitor *pMonitor = qobject_cast<UIVMActivityMonitor*>(widget(i)); 222 if (!pMonitor) 223 continue; 224 if (machineIdsToRemove.contains(pMonitor->machineId())) 225 removeList << pMonitor; 226 else 227 keepList << pMonitor; 228 } 229 clear(); 230 qDeleteAll(removeList.begin(), removeList.end()); 231 232 foreach (UIVMActivityMonitor *pMonitor, keepList) 233 addTab(pMonitor, pMonitor->machineName()); 234 } 235 236 void UIVMActivityToolWidget::addTabs(const QVector<QUuid> &machineIdsToAdd) 237 { 238 foreach (const QUuid &id, machineIdsToAdd) 239 { 240 CMachine comMachine = uiCommon().virtualBox().FindMachine(id.toString()); 241 if (comMachine.isNull()) 242 continue; 243 addTab(new UIVMActivityMonitor(m_enmEmbedding, this, comMachine, m_pActionPool), comMachine.GetName()); 244 } 245 } 246 247 #include "UIVMActivityToolWidget.moc" -
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.h
r89035 r89036 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UIVMActivity ListWidget class declaration.3 * VBox Qt GUI - UIVMActivityToolWidget class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef FEQT_INCLUDED_SRC_activity_overview_UIVMActivity ListWidget_h19 #define FEQT_INCLUDED_SRC_activity_overview_UIVMActivity ListWidget_h18 #ifndef FEQT_INCLUDED_SRC_activity_overview_UIVMActivityToolWidget_h 19 #define FEQT_INCLUDED_SRC_activity_overview_UIVMActivityToolWidget_h 20 20 #ifndef RT_WITHOUT_PRAGMA_ONCE 21 21 # pragma once … … 23 23 24 24 /* Qt includes: */ 25 #include <Q MainWindow>25 #include <QTabWidget> 26 26 27 27 /* GUI includes: */ … … 30 30 31 31 /* Forward declarations: */ 32 class QAbstractButton;33 class QFrame;34 class QItemSelection;35 class QLabel;36 class QTableView;37 class QTreeWidgetItem;38 class QIDialogButtonBox;39 32 class UIActionPool; 40 33 class QIToolBar; 41 class UIActivityOverviewProxyModel; 42 class UIActivityOverviewModel; 43 class UIVMActivityOverviewHostStats; 44 class UIVMActivityOverviewHostStatsWidget; 45 class UIVMActivityOverviewTableView; 34 class UIVMActivityMonitor; 35 class UIVMActivityListWidget; 36 class UIVirtualMachineItem; 46 37 47 38 /** QWidget extension to display a Linux top like utility that sort running vm wrt. resource allocations. */ 48 class UIVMActivity ListWidget : public QIWithRetranslateUI<QWidget>39 class UIVMActivityToolWidget : public QIWithRetranslateUI<QTabWidget> 49 40 { 50 41 Q_OBJECT; … … 52 43 signals: 53 44 45 void sigSwitchToResourcesPane(); 54 46 55 47 public: 56 48 57 UIVMActivity ListWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool,49 UIVMActivityToolWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool, 58 50 bool fShowToolbar = true, QWidget *pParent = 0); 59 51 QMenu *menu() const; … … 61 53 bool isCurrentTool() const; 62 54 void setIsCurrentTool(bool fIsCurrentTool); 55 56 void setSelectedVMListItems(const QList<UIVirtualMachineItem*> &items); 63 57 64 58 #ifdef VBOX_WS_MAC … … 79 73 private: 80 74 75 void setMachines(const QVector<QUuid> &machineIDs); 81 76 82 77 /** @name Prepare/cleanup cascade. 83 78 * @{ */ 84 79 void prepare(); 85 void prepareWidgets();86 void prepareHostStatsWidgets();87 80 void prepareToolBar(); 88 81 void prepareActions(); … … 90 83 void loadSettings(); 91 84 /** @} */ 85 86 void showVMActivityMonitor(CMachine &comMachine); 87 void showVMActivityList(); 88 /** Remove tabs conaining machine monitors with ids @machineIdsToRemove. */ 89 void removeTabs(const QVector<QUuid> &machineIdsToRemove); 90 /** Add new tabs for each QUuid in @machineIdsToAdd. Does not check for duplicates. */ 91 void addTabs(const QVector<QUuid> &machineIdsToAdd); 92 92 93 93 94 /** @name General variables. … … 98 99 /** @} */ 99 100 100 /** @name Misc members. 101 * @{ */ 102 QIToolBar *m_pToolBar; 103 QMenu *m_pColumnVisibilityToggleMenu; 104 /** @} */ 101 QIToolBar *m_pToolBar; 102 105 103 /** Indicates if this widget's host tool is current tool. */ 106 104 bool m_fIsCurrentTool; 105 QVector<QUuid> m_machineIds; 107 106 }; 108 107 109 108 110 #endif /* !FEQT_INCLUDED_SRC_activity_overview_UIVMActivity ListWidget_h */109 #endif /* !FEQT_INCLUDED_SRC_activity_overview_UIVMActivityToolWidget_h */ -
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp
r88895 r89036 34 34 #include "UIIconPool.h" 35 35 #include "UIVMActivityMonitor.h" 36 #include "QIToolBar.h"37 36 #include "UIVirtualBoxEventHandler.h" 38 37 … … 881 880 882 881 UIVMActivityMonitor::UIVMActivityMonitor(EmbedTo enmEmbedding, QWidget *pParent, 883 const CMachine &machine, UIActionPool *pActionPool , bool fShowToolbar /* = false */)882 const CMachine &machine, UIActionPool *pActionPool) 884 883 : QIWithRetranslateUI<QWidget>(pParent) 885 884 , m_fGuestAdditionsAvailable(false) 886 885 , m_pMainLayout(0) 887 886 , m_pTimer(0) 888 , m_pToolBar(0)889 887 , m_strCPUMetricName("CPU Load") 890 888 , m_strRAMMetricName("RAM Usage") … … 895 893 , m_iTimeStep(0) 896 894 , m_enmEmbedding(enmEmbedding) 897 , m_fShowToolbar(fShowToolbar)898 895 , m_pActionPool(pActionPool) 899 896 { 900 897 prepareMetrics(); 901 898 prepareWidgets(); 902 if (fShowToolbar)903 prepareToolBar();904 899 prepareActions(); 905 900 retranslateUi(); … … 931 926 start(); 932 927 } 928 } 929 930 QUuid UIVMActivityMonitor::machineId() const 931 { 932 if (m_comMachine.isNull()) 933 return QUuid(); 934 return m_comMachine.GetId(); 935 } 936 937 QString UIVMActivityMonitor::machineName() const 938 { 939 if (m_comMachine.isNull()) 940 return QString(); 941 return m_comMachine.GetName(); 933 942 } 934 943 … … 1251 1260 } 1252 1261 1253 void UIVMActivityMonitor::prepareToolBar()1254 {1255 /* Create toolbar: */1256 m_pToolBar = new QIToolBar(parentWidget());1257 AssertPtrReturnVoid(m_pToolBar);1258 {1259 /* Configure toolbar: */1260 const int iIconMetric = (int)(QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize));1261 m_pToolBar->setIconSize(QSize(iIconMetric, iIconMetric));1262 m_pToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);1263 1264 #ifdef VBOX_WS_MAC1265 /* Check whether we are embedded into a stack: */1266 if (m_enmEmbedding == EmbedTo_Stack)1267 {1268 /* Add into layout: */1269 layout()->addWidget(m_pToolBar);1270 }1271 #else1272 /* Add into layout: */1273 layout()->addWidget(m_pToolBar);1274 #endif1275 }1276 }1277 1278 1262 void UIVMActivityMonitor::prepareActions() 1279 1263 { … … 1282 1266 if (pExportAction) 1283 1267 connect(pExportAction, &QAction::triggered, this, &UIVMActivityMonitor::sltExportMetricsToFile); 1284 1285 QAction *pToResourcesAction =1286 m_pActionPool->action(UIActionIndex_M_Activity_S_ToVMActivityOverview);1287 if (pToResourcesAction)1288 connect(pToResourcesAction, &QAction::triggered, this, &UIVMActivityMonitor::sigSwitchToResourcesPane);1289 1268 } 1290 1269 -
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h
r88895 r89036 49 49 class UISession; 50 50 class UIRuntimeInfoWidget; 51 class QIToolBar;52 51 53 52 #define DATA_SERIES_SIZE 2 … … 121 120 class SHARED_LIBRARY_STUFF UIVMActivityMonitor : public QIWithRetranslateUI<QWidget> 122 121 { 122 123 123 Q_OBJECT; 124 125 signals:126 127 void sigSwitchToResourcesPane();128 124 129 125 public: … … 132 128 * @param machine is machine reference. */ 133 129 UIVMActivityMonitor(EmbedTo enmEmbedding, QWidget *pParent, const CMachine &machine, 134 UIActionPool *pActionPool,bool fShowToolbar = false);130 UIActionPool *pActionPool); 135 131 void setMachine(const CMachine &machine); 136 137 #ifdef VBOX_WS_MAC 138 QIToolBar *toolbar() const { return m_pToolBar; } 139 #endif 132 QUuid machineId() const; 133 QString machineName() const; 140 134 141 135 public slots: … … 165 159 void prepareWidgets(); 166 160 void prepareMetrics(); 167 void prepareToolBar();168 161 void prepareActions(); 169 162 bool guestAdditionsAvailable(int iMinimumMajorVersion); … … 205 198 QVBoxLayout *m_pMainLayout; 206 199 QTimer *m_pTimer; 207 QIToolBar *m_pToolBar;208 200 209 201 /** @name The following are used during UIPerformanceCollector::QueryMetricsData(..) … … 258 250 quint64 m_iTimeStep; 259 251 EmbedTo m_enmEmbedding; 260 bool m_fShowToolbar;261 252 UIActionPool *m_pActionPool; 262 253 }; -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
r89011 r89036 209 209 } 210 210 211 211 212 void UIVMLogViewerWidget::setSelectedVMListItems(const QList<UIVirtualMachineItem*> &items) 212 213 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp
r88999 r89036 28 28 #include "UIDetails.h" 29 29 #include "UIIconPool.h" 30 #include "UIVMActivity Monitor.h"30 #include "UIVMActivityToolWidget.h" 31 31 #include "UISnapshotPane.h" 32 32 #include "UIToolPaneMachine.h" … … 193 193 case UIToolType_VMActivity: 194 194 { 195 m_pPaneVMActivityMonitor = new UIVMActivity Monitor(EmbedTo_Stack, 0,196 m_comMachine, m_pActionPool, false /* Show toolbar*/);195 m_pPaneVMActivityMonitor = new UIVMActivityToolWidget(EmbedTo_Stack, m_pActionPool, 196 false /* Show toolbar */, 0 /* Parent */); 197 197 AssertPtrReturnVoid(m_pPaneVMActivityMonitor); 198 198 #ifndef VBOX_WS_MAC … … 203 203 /* Configure pane: */ 204 204 m_pPaneVMActivityMonitor->setProperty("ToolType", QVariant::fromValue(UIToolType_VMActivity)); 205 205 m_pPaneVMActivityMonitor->setSelectedVMListItems(m_items); 206 206 /* Add into layout: */ 207 207 m_pLayout->addWidget(m_pPaneVMActivityMonitor); 208 208 m_pLayout->setCurrentWidget(m_pPaneVMActivityMonitor); 209 209 210 connect(m_pPaneVMActivityMonitor, &UIVMActivity Monitor::sigSwitchToResourcesPane,210 connect(m_pPaneVMActivityMonitor, &UIVMActivityToolWidget::sigSwitchToResourcesPane, 211 211 this, &UIToolPaneMachine::sigSwitchToResourcesPane); 212 212 break; … … 285 285 m_pPaneLogViewer->setSelectedVMListItems(m_items); 286 286 } 287 /* Update performance monitor pane is it is open: */ 288 if (isToolOpened(UIToolType_VMActivity)) 289 { 290 AssertPtrReturnVoid(m_pPaneVMActivityMonitor); 291 m_pPaneVMActivityMonitor->setSelectedVMListItems(m_items); 292 } 287 293 } 288 294 … … 297 303 AssertPtrReturnVoid(m_pPaneSnapshots); 298 304 m_pPaneSnapshots->setMachine(m_comMachine); 299 }300 /* Update performance monitor pane is it is open: */301 if (isToolOpened(UIToolType_VMActivity))302 {303 AssertPtrReturnVoid(m_pPaneVMActivityMonitor);304 m_pPaneVMActivityMonitor->setMachine(m_comMachine);305 305 } 306 306 } -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h
r88071 r89036 39 39 class UIDetails; 40 40 class UIErrorPane; 41 class UIVMActivity Monitor;41 class UIVMActivityToolWidget; 42 42 class UISnapshotPane; 43 43 class UIVirtualMachineItem; … … 133 133 UIVMLogViewerWidget *m_pPaneLogViewer; 134 134 /** Holds the Performance Monitor pane instance. */ 135 UIVMActivity Monitor*m_pPaneVMActivityMonitor;135 UIVMActivityToolWidget *m_pPaneVMActivityMonitor; 136 136 137 137 /** Holds whether this pane is active. */ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
r88862 r89036 1056 1056 if (pItem && pItem->itemType() != UIVirtualMachineItemType_Local) 1057 1057 retrictedTypes << UIToolType_Snapshots << UIToolType_Logs << UIToolType_VMActivity; 1058 else if (pItem && !pItem->isItemStarted())1059 retrictedTypes << UIToolType_VMActivity;1058 // else if (pItem && !pItem->isItemStarted()) 1059 // retrictedTypes << UIToolType_VMActivity; 1060 1060 if (retrictedTypes.contains(m_pPaneTools->toolsType())) 1061 1061 m_pPaneTools->setToolsType(UIToolType_Details);
Note:
See TracChangeset
for help on using the changeset viewer.