- Timestamp:
- Jan 30, 2024 9:59:59 AM (13 months ago)
- svn:sync-xref-src-repo-rev:
- 161366
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp
r103110 r103119 237 237 virtual ~UIActivityOverviewItem(); 238 238 bool operator==(const UIActivityOverviewItem& other) const; 239 virtual QString machineStateString() const = 0; 239 240 virtual bool isRunning() const = 0; 240 241 virtual bool isCloudVM() const = 0; 241 242 virtual void updateColumnData() = 0; 243 244 QString columnData(int iColumnIndex) const; 245 242 246 QUuid m_VMuid; 243 247 QString m_strVMName; … … 290 294 virtual bool isCloudVM() const override; 291 295 virtual void updateColumnData() override; 296 virtual QString machineStateString() const override; 292 297 void setMachineState(KMachineState enmState); 293 294 quint64 m_uCPUVMMLoad;295 296 quint64 m_uVMExitRate;297 quint64 m_uVMExitTotal;298 299 CMachineDebugger m_comDebugger;300 298 301 299 protected: … … 308 306 CGuest m_comGuest; 309 307 KMachineState m_enmMachineState; 308 309 quint64 m_uCPUVMMLoad; 310 quint64 m_uVMExitRate; 311 quint64 m_uVMExitTotal; 312 CMachineDebugger m_comDebugger; 310 313 }; 311 314 … … 325 328 virtual bool isCloudVM() const override; 326 329 virtual void updateColumnData() override; 330 virtual QString machineStateString() const override; 327 331 328 332 protected: … … 398 402 void sltMachineStateChanged(const QUuid &uId, const KMachineState state); 399 403 void sltMachineRegistered(const QUuid &uId, bool fRegistered); 400 void sltTimeout(); 404 void sltLocalUpdateTimeout(); 405 void sltCloudUpdateTimeout(); 401 406 402 407 private: … … 412 417 QVector<UIActivityOverviewItem*> m_itemList; 413 418 QMap<int, QString> m_columnTitles; 414 QTimer *m_pTimer; 419 QTimer *m_pLocalUpdateTimer; 420 QTimer *m_pCloudUpdateTimer; 415 421 /** @name The following are used during UIPerformanceCollector::QueryMetricsData(..) 416 422 * @{ */ … … 890 896 } 891 897 898 QString UIActivityOverviewItem::columnData(int iColumnIndex) const 899 { 900 return m_columnData.value(iColumnIndex, QString()); 901 } 902 892 903 893 904 /********************************************************************************************************************************* … … 945 956 } 946 957 958 QString UIActivityOverviewItemCloud::machineStateString() const 959 { 960 if (!m_comCloudMachine.isOk()) 961 return QString(); 962 return gpConverter->toString(m_comCloudMachine.GetState()); 963 } 964 947 965 948 966 /********************************************************************************************************************************* … … 1006 1024 { 1007 1025 m_enmMachineState = enmState; 1026 if (m_enmMachineState == KMachineState_Running) 1027 resetDebugger(); 1008 1028 } 1009 1029 … … 1097 1117 QString("%1/%2").arg(UITranslator::addMetricSuffixToNumber(m_uVMExitRate)). 1098 1118 arg(UITranslator::addMetricSuffixToNumber(m_uVMExitTotal)); 1119 } 1120 1121 QString UIActivityOverviewItemLocal::machineStateString() const 1122 { 1123 return gpConverter->toString(m_enmMachineState); 1099 1124 } 1100 1125 … … 1176 1201 UIActivityOverviewModel::UIActivityOverviewModel(QObject *parent /*= 0*/) 1177 1202 :QAbstractTableModel(parent) 1178 , m_pTimer(new QTimer(this)) 1203 , m_pLocalUpdateTimer(new QTimer(this)) 1204 , m_pCloudUpdateTimer(new QTimer(this)) 1179 1205 { 1180 1206 initialize(); … … 1191 1217 connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigMachineRegistered, 1192 1218 this, &UIActivityOverviewModel::sltMachineRegistered); 1193 if (m_pTimer) 1194 { 1195 connect(m_pTimer, &QTimer::timeout, this, &UIActivityOverviewModel::sltTimeout); 1196 m_pTimer->start(1000); 1219 if (m_pLocalUpdateTimer) 1220 { 1221 connect(m_pLocalUpdateTimer, &QTimer::timeout, this, &UIActivityOverviewModel::sltLocalUpdateTimeout); 1222 m_pLocalUpdateTimer->start(1000); 1223 } 1224 if (m_pCloudUpdateTimer) 1225 { 1226 connect(m_pCloudUpdateTimer, &QTimer::timeout, this, &UIActivityOverviewModel::sltCloudUpdateTimeout); 1227 m_pCloudUpdateTimer->start(60 * 1000); 1197 1228 } 1198 1229 } … … 1212 1243 void UIActivityOverviewModel::setShouldUpdate(bool fShouldUpdate) 1213 1244 { 1214 if (m_p Timer)1245 if (m_pLocalUpdateTimer) 1215 1246 { 1216 1247 if (fShouldUpdate) 1217 m_p Timer->start();1248 m_pLocalUpdateTimer->start(); 1218 1249 else 1219 m_p Timer->stop();1250 m_pLocalUpdateTimer->stop(); 1220 1251 } 1221 1252 } … … 1264 1295 QVariant UIActivityOverviewModel::data(const QModelIndex &index, int role) const 1265 1296 { 1266 Q_UNUSED(index); 1267 Q_UNUSED(role); 1268 return QVariant(); 1269 #if 0 1270 if (machineState(index.row()) != KMachineState_Running) 1297 if (!isVMRunning(index.row())) 1271 1298 { 1272 1299 if (role == Qt::FontRole) … … 1281 1308 if (!index.isValid() || role != Qt::DisplayRole || index.row() >= rowCount()) 1282 1309 return QVariant(); 1310 1311 UIActivityOverviewItem *pItem = m_itemList[index.row()]; 1312 AssertPtrReturn(pItem, QVariant()); 1313 1283 1314 if (index.column() == VMActivityOverviewColumn_Name) 1284 return m_itemList[index.row()].m_columnData[index.column()]; 1285 if (m_itemList[index.row()].m_enmMachineState != KMachineState_Running) 1286 return gpConverter->toString(m_itemList[index.row()].m_enmMachineState); 1287 return m_itemList[index.row()].m_columnData[index.column()]; 1288 #endif 1315 return pItem->columnData(index.column()); 1316 1317 if (!pItem->isRunning()) 1318 return pItem->machineStateString(); 1319 1320 return pItem->columnData(index.column()); 1289 1321 } 1290 1322 … … 1358 1390 } 1359 1391 1360 void UIActivityOverviewModel::sltTimeout() 1361 { 1362 1363 1392 void UIActivityOverviewModel::sltCloudUpdateTimeout() 1393 { 1394 } 1395 1396 void UIActivityOverviewModel::sltLocalUpdateTimeout() 1397 { 1364 1398 /* Host's RAM usage is obtained from IHost not from IPerformanceCollector: */ 1365 1399 getHostRAMStats();
Note:
See TracChangeset
for help on using the changeset viewer.