Changeset 104962 in vbox
- Timestamp:
- Jun 19, 2024 11:36:12 AM (3 months ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/activity/overview
- Files:
-
- 3 edited
-
UIVMActivityOverviewModelView.cpp (modified) (9 diffs)
-
UIVMActivityOverviewModelView.h (modified) (3 diffs)
-
UIVMActivityOverviewWidget.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewModelView.cpp
r104955 r104962 40 40 #include "UITranslator.h" 41 41 #include "UIVirtualBoxEventHandler.h" 42 #include "UIVirtualMachineItemCloud.h" 42 43 #include "UIVMActivityOverviewModelView.h" 43 44 … … 53 54 #include "CMachineDebugger.h" 54 55 #include "CSession.h" 56 #include "KMetricType.h" 55 57 56 58 … … 82 84 private: 83 85 84 void updateCellText(VMActivityOverviewColumn enmColumnIndex, const QString &strText); 86 85 87 86 88 KMachineState m_enmMachineState; … … 289 291 } 290 292 291 void UIActivityOverviewAccessibleRowLocal::updateCellText(VMActivityOverviewColumn enmColumnIndex, const QString &strText)292 {293 if (m_cells.value(enmColumnIndex, 0))294 m_cells[enmColumnIndex]->setText(strText);295 }296 297 293 QString UIActivityOverviewAccessibleRowLocal::machineStateString() const 298 294 { … … 356 352 } 357 353 358 void UIActivityOverviewAccessibleRowCloud::sltMetricDataReceived(KMetricType /*enmMetricType*/,354 void UIActivityOverviewAccessibleRowCloud::sltMetricDataReceived(KMetricType enmMetricType, 359 355 const QVector<QString> &data, const QVector<QString> &timeStamps) 360 356 { … … 366 362 return; 367 363 368 // int iDecimalCount = 2; 369 // QLocale locale; 370 // if (enmMetricType == KMetricType_CpuUtilization) 371 // { 372 // //QString QLocale::toString(double i, char f = 'g', int prec = 6) const 373 374 // // m_columnData[VMActivityOverviewColumn_CPUGuestLoad] = 375 // // QString("%1%").arg(QString::number(data[0].toFloat(), 'f', iDecimalCount)); 376 377 // m_columnData[VMActivityOverviewColumn_CPUGuestLoad] = 378 // QString("%1%").arg(locale.toString(data[0].toFloat(), 'f', iDecimalCount)); 379 // } 380 // else if (enmMetricType == KMetricType_MemoryUtilization) 381 // { 382 // if (m_uTotalRAM != 0) 383 // { 384 // quint64 uUsedRAM = (quint64)data[0].toFloat() * (m_uTotalRAM / 100.f); 385 // m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = 386 // QString("%1/%2").arg(UITranslator::formatSize(_1K * uUsedRAM, iDecimalCount)). 387 // arg(UITranslator::formatSize(_1K * m_uTotalRAM, iDecimalCount)); 388 // } 389 // m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = 390 // QString("%1%").arg(QString::number(data[0].toFloat(), 'f', iDecimalCount)); 391 // } 392 // else if (enmMetricType == KMetricType_NetworksBytesOut) 393 // m_columnData[VMActivityOverviewColumn_NetworkUpRate] = 394 // UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount); 395 // else if (enmMetricType == KMetricType_NetworksBytesIn) 396 // m_columnData[VMActivityOverviewColumn_NetworkDownRate] = 397 // UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount); 398 // else if (enmMetricType == KMetricType_DiskBytesRead) 399 // m_columnData[VMActivityOverviewColumn_DiskIOReadRate] = 400 // UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount); 401 // else if (enmMetricType == KMetricType_DiskBytesWritten) 402 // m_columnData[VMActivityOverviewColumn_DiskIOWriteRate] = 403 // UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount); 364 int iDecimalCount = 2; 365 QLocale locale; 366 if (enmMetricType == KMetricType_CpuUtilization) 367 { 368 updateCellText(VMActivityOverviewColumn_CPUGuestLoad, QString("%1%").arg(locale.toString(data[0].toFloat(), 'f', iDecimalCount))); 369 } 370 else if (enmMetricType == KMetricType_MemoryUtilization) 371 { 372 if (m_uTotalRAM != 0) 373 { 374 quint64 uUsedRAM = (quint64)data[0].toFloat() * (m_uTotalRAM / 100.f); 375 updateCellText(VMActivityOverviewColumn_RAMUsedAndTotal, 376 QString("%1/%2").arg(UITranslator::formatSize(_1K * uUsedRAM, iDecimalCount)). 377 arg(UITranslator::formatSize(_1K * m_uTotalRAM, iDecimalCount))); 378 } 379 updateCellText(VMActivityOverviewColumn_RAMUsedPercentage, 380 QString("%1%").arg(QString::number(data[0].toFloat(), 'f', iDecimalCount))); 381 } 382 else if (enmMetricType == KMetricType_NetworksBytesOut) 383 updateCellText(VMActivityOverviewColumn_NetworkUpRate, 384 UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount)); 385 else if (enmMetricType == KMetricType_NetworksBytesIn) 386 updateCellText(VMActivityOverviewColumn_NetworkDownRate, 387 UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount)); 388 else if (enmMetricType == KMetricType_DiskBytesRead) 389 updateCellText(VMActivityOverviewColumn_DiskIOReadRate, 390 UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount)); 391 else if (enmMetricType == KMetricType_DiskBytesWritten) 392 updateCellText(VMActivityOverviewColumn_DiskIOWriteRate, 393 UITranslator::formatSize((quint64)data[0].toFloat(), iDecimalCount)); 404 394 405 395 sender()->deleteLater(); … … 429 419 void UIActivityOverviewAccessibleRowCloud::resetColumData() 430 420 { 431 //for (int i = (int) VMActivityOverviewColumn_CPUGuestLoad;432 //i < (int)VMActivityOverviewColumn_Max; ++i)433 // m_columnData[i] = UIVMActivityOverviewWidget::tr("N/A");421 for (int i = (int) VMActivityOverviewColumn_CPUGuestLoad; 422 i < (int)VMActivityOverviewColumn_Max; ++i) 423 updateCellText(i, QApplication::translate("UIVMActivityOverviewWidget", "N/A")); 434 424 } 435 425 … … 581 571 { 582 572 initialize(); 573 } 574 575 void UIActivityOverviewAccessibleModel::setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems) 576 { 577 QVector<QUuid> newIds; 578 foreach (const UIVirtualMachineItemCloud* pItem, cloudItems) 579 { 580 if (!pItem) 581 continue; 582 QUuid id = pItem->machineId(); 583 if (id.isNull()) 584 continue; 585 newIds << id; 586 } 587 QVector<UIActivityOverviewAccessibleRow*> originalItemList = m_rows; 588 589 /* Remove m_rows items that are not in @cloudItems: */ 590 QMutableVectorIterator<UIActivityOverviewAccessibleRow*> iterator(m_rows); 591 while (iterator.hasNext()) 592 { 593 UIActivityOverviewAccessibleRow *pItem = iterator.next(); 594 if (!pItem->isCloudVM()) 595 continue; 596 if (pItem && !newIds.contains(pItem->machineId())) 597 iterator.remove(); 598 } 599 600 /* Add items that are not in m_rows: */ 601 foreach (const UIVirtualMachineItemCloud* pItem, cloudItems) 602 { 603 if (!pItem) 604 continue; 605 CCloudMachine comMachine = pItem->machine(); 606 if (!comMachine.isOk()) 607 continue; 608 QUuid id = comMachine.GetId(); 609 /* Linearly search for the vm with th same id. I cannot make QVector::contain work since we store pointers: */ 610 bool fFound = false; 611 for (int i = 0; i < m_rows.size() && !fFound; ++i) 612 { 613 if (m_rows[i] && m_rows[i]->machineId() == id) 614 fFound = true; 615 } 616 if (!fFound) 617 m_rows.append(new UIActivityOverviewAccessibleRowCloud(m_pTableView, id, comMachine.GetName(), comMachine)); 618 } 619 620 /* Update cloud machine states: */ 621 for (int i = 0; i < m_rows.size(); ++i) 622 { 623 if (!m_rows[i] || !m_rows[i]->isCloudVM()) 624 continue; 625 UIActivityOverviewAccessibleRowCloud *pItem = qobject_cast<UIActivityOverviewAccessibleRowCloud*>(m_rows[i]); 626 if (!pItem) 627 continue; 628 pItem->updateMachineState(); 629 } 583 630 } 584 631 … … 998 1045 } 999 1046 1047 void UIActivityOverviewAccessibleRow::updateCellText(int /*VMActivityOverviewColumn*/ enmColumnIndex, const QString &strText) 1048 { 1049 if (m_cells.value(enmColumnIndex, 0)) 1050 m_cells[enmColumnIndex]->setText(strText); 1051 } 1052 1000 1053 1001 1054 /********************************************************************************************************************************* -
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewModelView.h
r104955 r104962 49 49 class UIActivityOverviewAccessibleCell; 50 50 class UIActivityOverviewAccessibleRow; 51 class UIActivityOverviewAccessibleRowCloud; 52 class UIVirtualMachineItemCloud; 51 53 52 54 class UIVMActivityOverviewAccessibleTableView : public QITableView … … 149 151 150 152 protected: 151 153 void updateCellText(int /*VMActivityOverviewColumn*/ iColumnIndex, const QString &strText); 152 154 QUuid m_uMachineId; 153 155 /* Key is VMActivityOverviewColumn enum item. */ … … 189 191 void setColumnVisible(const QMap<int, bool>& columnVisible); 190 192 bool columnVisible(int iColumnId) const; 193 void setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems); 191 194 192 195 private slots: -
trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp
r104951 r104962 1789 1789 if (m_pModel) 1790 1790 m_pModel->setCloudMachineItems(cloudItems); 1791 if (m_pAccessibleModel) 1792 m_pAccessibleModel->setCloudMachineItems(cloudItems); 1791 1793 } 1792 1794
Note:
See TracChangeset
for help on using the changeset viewer.

