VirtualBox

Changeset 83365 in vbox for trunk


Ignore:
Timestamp:
Mar 23, 2020 10:35:27 AM (5 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9686. Adding IO columns

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

    r83345 r83365  
    5959    // VMResouceMonitorColumn_RAMUsedPercentage,
    6060    VMResouceMonitorColumn_NetworkDownUpRate,
    61     // VMResouceMonitorColumn_NetworkDownUpTotal,
    62     // VMResouceMonitorColumn_DiskIOWriteReadRate,
    63     // VMResouceMonitorColumn_DiskIOWriteReadTotal,
     61    VMResouceMonitorColumn_NetworkDownUpTotal,
     62    VMResouceMonitorColumn_DiskIOWriteReadRate,
     63    VMResouceMonitorColumn_DiskIOWriteReadTotal,
    6464    VMResouceMonitorColumn_Max
    6565};
     
    104104
    105105    UIResourceMonitorProxyModel(QObject *parent = 0);
     106    void dataUpdate();
    106107
    107108protected:
     
    120121{
    121122    Q_OBJECT;
     123
     124signals:
     125
     126    void sigDataUpdate();
    122127
    123128public:
     
    208213}
    209214
     215void UIResourceMonitorProxyModel::dataUpdate()
     216{
     217    if (sourceModel())
     218        emit dataChanged(index(0,0), index(sourceModel()->rowCount(), sourceModel()->columnCount()));
     219}
     220
    210221
    211222/*********************************************************************************************************************************
     
    241252QVariant UIResourceMonitorModel::data(const QModelIndex &index, int role) const
    242253{
     254    int iDecimalCount = 2;
    243255    if (!index.isValid() || role != Qt::DisplayRole || index.row() >= rowCount())
    244256        return QVariant();
     
    255267            break;
    256268        case VMResouceMonitorColumn_NetworkDownUpRate:
    257             return QString("%1/%2").arg(m_itemList[index.row()].m_uNetworkDownRate).arg(m_itemList[index.row()].m_uNetworkUpRate);
     269            return QString("%1/%2").arg(uiCommon().formatSize(m_itemList[index.row()].m_uNetworkDownRate, iDecimalCount)).
     270                arg(uiCommon().formatSize(m_itemList[index.row()].m_uNetworkUpRate, iDecimalCount));
     271            break;
     272        case VMResouceMonitorColumn_NetworkDownUpTotal:
     273            return QString("%1/%2").arg(uiCommon().formatSize(m_itemList[index.row()].m_uNetworkDownTotal, iDecimalCount)).
     274                arg(uiCommon().formatSize(m_itemList[index.row()].m_uNetworkUpTotal, iDecimalCount));
     275            break;
     276        case VMResouceMonitorColumn_DiskIOWriteReadRate:
     277            return QString("%1/%2").arg(uiCommon().formatSize(m_itemList[index.row()].m_uDiskWriteRate, iDecimalCount)).
     278                arg(uiCommon().formatSize(m_itemList[index.row()].m_uDiskReadRate, iDecimalCount));
     279            break;
     280        case VMResouceMonitorColumn_DiskIOWriteReadTotal:
     281            return QString("%1/%2").arg(uiCommon().formatSize(m_itemList[index.row()].m_uDiskWriteTotal, iDecimalCount)).
     282                arg(uiCommon().formatSize(m_itemList[index.row()].m_uDiskReadTotal, iDecimalCount));
    258283            break;
    259284        default:
     
    273298                break;
    274299            case VMResouceMonitorColumn_CPUGuestLoad:
    275                 return tr("CPU Load (Guest)");
     300                return tr("CPU Load\n(Guest)");
    276301                break;
    277302            case VMResouceMonitorColumn_CPUVMMLoad:
    278                 return tr("CPU Load (VMM)");
     303                return tr("CPU Load\n(VMM)");
    279304                break;
    280305            // case VMResouceMonitorColumn_RAMUsedAndTotal:
     
    285310            //     break;
    286311            case VMResouceMonitorColumn_NetworkDownUpRate:
    287                 return tr("Network Up/Down Rate");
     312                return tr("Network Up/Down\nRate");
     313                break;
     314            case VMResouceMonitorColumn_NetworkDownUpTotal:
     315                return tr("Network Up/Down\nTotal");
     316                break;
     317            case VMResouceMonitorColumn_DiskIOWriteReadRate:
     318                return tr("Disk Write/Read\nRate");
     319                break;
     320            case VMResouceMonitorColumn_DiskIOWriteReadTotal:
     321                return tr("Disk Write/Read\nTotal");
    288322                break;
    289323
     
    312346void UIResourceMonitorModel::sltMachineStateChanged(const QUuid &uId, const KMachineState state)
    313347{
     348    emit layoutAboutToBeChanged();
    314349    int iIndex = m_itemList.indexOf(UIResourceMonitorItem(uId));
    315350    /* Remove the machine in case machine is no longer working. */
    316351    if (iIndex != -1 && state != KMachineState_Running)
    317     {
    318352        m_itemList.remove(iIndex);
    319         emit layoutChanged();
    320     }
    321353
    322354    /* Insert the machine if it is working. */
     
    325357        CMachine comMachine = uiCommon().virtualBox().FindMachine(uId.toString());
    326358        m_itemList << UIResourceMonitorItem(uId, comMachine.GetName());
    327         emit layoutChanged();
    328     }
     359    }
     360    emit layoutChanged();
    329361}
    330362
     
    341373            m_itemList[i].m_uCPUGuestLoad = aPctExecuting;
    342374            m_itemList[i].m_uCPUVMMLoad = aPctVMM;
     375            UIMonitorCommon::getNetworkLoad(m_itemList[i].m_comDebugger,
     376                                            m_itemList[i].m_uNetworkDownRate, m_itemList[i].m_uNetworkUpRate);
     377            m_itemList[i].m_uNetworkDownTotal += m_itemList[i].m_uNetworkDownRate;
     378            m_itemList[i].m_uNetworkUpTotal += m_itemList[i].m_uNetworkUpRate;
     379
     380            UIMonitorCommon::getDiskLoad(m_itemList[i].m_comDebugger,
     381                                         m_itemList[i].m_uDiskWriteRate, m_itemList[i].m_uDiskReadRate);
     382            m_itemList[i].m_uDiskWriteTotal += m_itemList[i].m_uDiskWriteRate;
     383            m_itemList[i].m_uDiskReadTotal += m_itemList[i].m_uDiskReadRate;
    343384        }
    344385    }
    345     emit layoutChanged();
     386    //emit layoutChanged();
    346387    /* dataChanged signal result in view update when there is a proxy model in between. */
    347388    //emit dataChanged(index(0,0), index(rowCount(), columnCount()));
     389    emit sigDataUpdate();
    348390}
    349391
     
    437479        m_pTableWidget->verticalHeader()->setDefaultSectionSize(m_pTableWidget->verticalHeader()->minimumSectionSize());
    438480        m_pTableWidget->setAlternatingRowColors(true);
     481        m_pTableWidget->setSortingEnabled(true);
     482        m_pTableWidget->sortByColumn(0, Qt::AscendingOrder);
     483        connect(m_pModel, &UIResourceMonitorModel::sigDataUpdate, this, &UIResourceMonitorWidget::sltHandleDataUpdate);
    439484    }
    440485}
     
    470515}
    471516
     517void UIResourceMonitorWidget::sltHandleDataUpdate()
     518{
     519    if (m_pProxyModel)
     520        m_pProxyModel->dataUpdate();
     521}
     522
    472523
    473524/*********************************************************************************************************************************
  • trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h

    r83334 r83365  
    7272private slots:
    7373
     74    void sltHandleDataUpdate();
    7475
    7576private:
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette