Changeset 83469 in vbox
- Timestamp:
- Mar 27, 2020 2:44:54 PM (5 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp
r83468 r83469 132 132 UIResourceMonitorProxyModel(QObject *parent = 0); 133 133 void dataUpdate(); 134 void setColumnVisible(const QMap<int, bool>& columnVisible);134 void reFilter(); 135 135 136 136 protected: … … 140 140 141 141 private: 142 143 QMap<int, bool> m_columnVisible;144 142 145 143 }; … … 165 163 QVariant headerData(int section, Qt::Orientation orientation, int role) const; 166 164 void setColumnCaptions(const QVector<QString>& captions); 165 void setColumnVisible(const QMap<int, bool>& columnVisible); 166 bool columnVisible(int iColumnId) const; 167 167 168 168 private slots: … … 190 190 /** @} */ 191 191 CPerformanceCollector m_performanceMonitor; 192 QMap<int, bool> m_columnVisible; 192 193 193 194 }; … … 332 333 } 333 334 334 bool UIResourceMonitorProxyModel::filterAcceptsColumn(int iSourceColumn, const QModelIndex &sourceParent) const 335 { 336 Q_UNUSED(sourceParent); 337 return m_columnVisible.value(iSourceColumn, true); 338 } 339 340 void UIResourceMonitorProxyModel::setColumnVisible(const QMap<int, bool>& columnVisible) 335 void UIResourceMonitorProxyModel::reFilter() 341 336 { 342 337 emit layoutAboutToBeChanged(); 343 m_columnVisible = columnVisible;344 338 invalidateFilter(); 345 339 emit layoutChanged(); 340 } 341 342 343 bool UIResourceMonitorProxyModel::filterAcceptsColumn(int iSourceColumn, const QModelIndex &sourceParent) const 344 { 345 Q_UNUSED(sourceParent); 346 UIResourceMonitorModel* pModel = qobject_cast<UIResourceMonitorModel*>(sourceModel()); 347 if (!pModel) 348 return true; 349 return pModel->columnVisible(iSourceColumn); 346 350 } 347 351 … … 495 499 ULONG aPctHalted; 496 500 ULONG aPctVMM; 501 502 bool fRAMColumns = columnVisible(VMResouceMonitorColumn_RAMUsedAndTotal) 503 || columnVisible(VMResouceMonitorColumn_RAMUsedPercentage); 504 bool fCPUColumns = columnVisible(VMResouceMonitorColumn_CPUVMMLoad) || columnVisible(VMResouceMonitorColumn_CPUGuestLoad); 505 bool fNetworkColumns = columnVisible(VMResouceMonitorColumn_NetworkUpRate) 506 || columnVisible(VMResouceMonitorColumn_NetworkDownRate) 507 || columnVisible(VMResouceMonitorColumn_NetworkUpTotal) 508 || columnVisible(VMResouceMonitorColumn_NetworkDownTotal); 509 bool fIOColumns = columnVisible(VMResouceMonitorColumn_DiskIOReadRate) 510 || columnVisible(VMResouceMonitorColumn_DiskIOWriteRate) 511 || columnVisible(VMResouceMonitorColumn_DiskIOReadTotal) 512 || columnVisible(VMResouceMonitorColumn_DiskIOWriteTotal); 513 bool fVMExitColumn = columnVisible(VMResouceMonitorColumn_VMExits); 514 497 515 /* RAM usage: */ 498 if (!m_performanceMonitor.isNull() )516 if (!m_performanceMonitor.isNull() && fRAMColumns) 499 517 queryRAMLoad(); 500 518 … … 504 522 { 505 523 /* CPU Load: */ 506 m_itemList[i].m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM); 507 m_itemList[i].m_uCPUGuestLoad = aPctExecuting; 508 m_itemList[i].m_uCPUVMMLoad = aPctVMM; 524 if (fCPUColumns) 525 { 526 m_itemList[i].m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM); 527 m_itemList[i].m_uCPUGuestLoad = aPctExecuting; 528 m_itemList[i].m_uCPUVMMLoad = aPctVMM; 529 } 509 530 510 531 /* Network rate: */ 511 quint64 uPrevDownTotal = m_itemList[i].m_uNetworkDownTotal; 512 quint64 uPrevUpTotal = m_itemList[i].m_uNetworkUpTotal; 513 UIMonitorCommon::getNetworkLoad(m_itemList[i].m_comDebugger, 514 m_itemList[i].m_uNetworkDownTotal, m_itemList[i].m_uNetworkUpTotal); 515 m_itemList[i].m_uNetworkDownRate = m_itemList[i].m_uNetworkDownTotal - uPrevDownTotal; 516 m_itemList[i].m_uNetworkUpRate = m_itemList[i].m_uNetworkUpTotal - uPrevUpTotal; 532 if (fNetworkColumns) 533 { 534 quint64 uPrevDownTotal = m_itemList[i].m_uNetworkDownTotal; 535 quint64 uPrevUpTotal = m_itemList[i].m_uNetworkUpTotal; 536 UIMonitorCommon::getNetworkLoad(m_itemList[i].m_comDebugger, 537 m_itemList[i].m_uNetworkDownTotal, m_itemList[i].m_uNetworkUpTotal); 538 m_itemList[i].m_uNetworkDownRate = m_itemList[i].m_uNetworkDownTotal - uPrevDownTotal; 539 m_itemList[i].m_uNetworkUpRate = m_itemList[i].m_uNetworkUpTotal - uPrevUpTotal; 540 } 517 541 518 542 /* IO rate: */ 519 quint64 uPrevWriteTotal = m_itemList[i].m_uDiskWriteTotal; 520 quint64 uPrevReadTotal = m_itemList[i].m_uDiskReadTotal; 521 UIMonitorCommon::getDiskLoad(m_itemList[i].m_comDebugger, 522 m_itemList[i].m_uDiskWriteTotal, m_itemList[i].m_uDiskReadTotal); 523 m_itemList[i].m_uDiskWriteRate = m_itemList[i].m_uDiskWriteTotal - uPrevWriteTotal; 524 m_itemList[i].m_uDiskReadRate = m_itemList[i].m_uDiskReadTotal - uPrevReadTotal; 543 if (fIOColumns) 544 { 545 quint64 uPrevWriteTotal = m_itemList[i].m_uDiskWriteTotal; 546 quint64 uPrevReadTotal = m_itemList[i].m_uDiskReadTotal; 547 UIMonitorCommon::getDiskLoad(m_itemList[i].m_comDebugger, 548 m_itemList[i].m_uDiskWriteTotal, m_itemList[i].m_uDiskReadTotal); 549 m_itemList[i].m_uDiskWriteRate = m_itemList[i].m_uDiskWriteTotal - uPrevWriteTotal; 550 m_itemList[i].m_uDiskReadRate = m_itemList[i].m_uDiskReadTotal - uPrevReadTotal; 551 } 525 552 526 553 /* VM Exits: */ 527 quint64 uPrevVMExitsTotal = m_itemList[i].m_uVMExitTotal; 528 UIMonitorCommon::getVMMExitCount(m_itemList[i].m_comDebugger, m_itemList[i].m_uVMExitTotal); 529 m_itemList[i].m_uVMExitRate = m_itemList[i].m_uVMExitTotal - uPrevVMExitsTotal; 554 if (fVMExitColumn) 555 { 556 quint64 uPrevVMExitsTotal = m_itemList[i].m_uVMExitTotal; 557 UIMonitorCommon::getVMMExitCount(m_itemList[i].m_comDebugger, m_itemList[i].m_uVMExitTotal); 558 m_itemList[i].m_uVMExitRate = m_itemList[i].m_uVMExitTotal - uPrevVMExitsTotal; 559 } 530 560 } 531 561 } … … 615 645 } 616 646 647 void UIResourceMonitorModel::setColumnVisible(const QMap<int, bool>& columnVisible) 648 { 649 m_columnVisible = columnVisible; 650 } 651 652 bool UIResourceMonitorModel::columnVisible(int iColumnId) const 653 { 654 return m_columnVisible.value(iColumnId, true); 655 } 656 617 657 618 658 /********************************************************************************************************************************* … … 628 668 , m_pToolBar(0) 629 669 , m_pTableView(0) 670 , m_pProxyModel(0) 671 , m_pModel(0) 630 672 , m_pColumnSelectionMenu(0) 631 673 { … … 688 730 retranslateUi(); 689 731 prepareActions(); 732 updateModelColumVisibilityCache(); 690 733 } 691 734 … … 737 780 connect(m_pModel, &UIResourceMonitorModel::sigDataUpdate, this, &UIResourceMonitorWidget::sltHandleDataUpdate); 738 781 739 m_p ProxyModel->setColumnVisible(m_columnVisible);782 m_pModel->setColumnVisible(m_columnVisible); 740 783 } 741 784 } … … 838 881 else 839 882 m_pColumnSelectionMenu->hide(); 840 841 883 update(); 842 843 // QPoint point(0, 0);844 // if (!m_pTableView)845 // return;846 // if (fChecked)847 // m_pMenu->exec(m_pTableView->mapToGlobal(point));848 // else849 // m_pMenu->hide();850 884 } 851 885 … … 869 903 return; 870 904 m_columnVisible[iColumnId] = fVisible; 905 updateModelColumVisibilityCache(); 906 } 907 908 void UIResourceMonitorWidget::updateModelColumVisibilityCache() 909 { 910 if (m_pModel) 911 m_pModel->setColumnVisible(m_columnVisible); 871 912 if (m_pProxyModel) 872 m_pProxyModel-> setColumnVisible(m_columnVisible);913 m_pProxyModel->reFilter(); 873 914 } 874 915 -
trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h
r83466 r83469 80 80 void setColumnVisible(int iColumnId, bool fVisible); 81 81 bool columnVisible(int iColumnId) const; 82 void updateModelColumVisibilityCache(); 82 83 83 84 /** @name Prepare/cleanup cascade.
Note:
See TracChangeset
for help on using the changeset viewer.