VirtualBox

Changeset 83518 in vbox for trunk


Ignore:
Timestamp:
Apr 2, 2020 8:33:18 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
136826
Message:

FE/Qt: bugref:9686. Adding host file system monitoring.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp

    r83517 r83518  
    113113    quint64 m_iCPUKernelLoad;
    114114    quint64 m_iCPUFreq;
    115     quint64 m_iTotalRAM;
    116     quint64 m_iFreeRAM;
     115    quint64 m_iRAMTotal;
     116    quint64 m_iRAMFree;
     117    quint64 m_iFSTotal;
     118    quint64 m_iFSFree;
    117119};
    118120
     
    139141
    140142    void prepare();
     143    void addVerticalLine(QHBoxLayout *pLayout);
    141144    void updateLabels();
    142145
    143146    UIVMResourceMonitorDoughnutChart   *m_pHostCPUChart;
    144147    UIVMResourceMonitorDoughnutChart   *m_pHostRAMChart;
     148    UIVMResourceMonitorDoughnutChart   *m_pHostFSChart;
    145149    QLabel                             *m_pCPUTitleLabel;
    146150    QLabel                             *m_pCPUUserLabel;
    147151    QLabel                             *m_pCPUKernelLabel;
    148152    QLabel                             *m_pCPUTotalLabel;
    149 
    150153    QLabel                             *m_pRAMTitleLabel;
    151154    QLabel                             *m_pRAMUsedLabel;
    152155    QLabel                             *m_pRAMFreeLabel;
    153156    QLabel                             *m_pRAMTotalLabel;
    154 
     157    QLabel                             *m_pFSTitleLabel;
     158    QLabel                             *m_pFSUsedLabel;
     159    QLabel                             *m_pFSFreeLabel;
     160    QLabel                             *m_pFSTotalLabel;
    155161    QColor                              m_CPUUserColor;
    156162    QColor                              m_CPUKernelColor;
    157163    QColor                              m_RAMFreeColor;
    158164    QColor                              m_RAMUsedColor;
    159 
    160165    UIVMResourceMonitorHostStats        m_hostStats;
    161166};
     
    419424    , m_pHostCPUChart(0)
    420425    , m_pHostRAMChart(0)
     426    , m_pHostFSChart(0)
    421427    , m_pCPUTitleLabel(0)
    422428    , m_pCPUUserLabel(0)
     
    427433    , m_pRAMFreeLabel(0)
    428434    , m_pRAMTotalLabel(0)
     435    , m_pFSTitleLabel(0)
     436    , m_pFSUsedLabel(0)
     437    , m_pFSFreeLabel(0)
     438    , m_pFSTotalLabel(0)
    429439    , m_CPUUserColor(Qt::red)
    430440    , m_CPUKernelColor(Qt::blue)
     
    453463    if (m_pHostRAMChart)
    454464    {
    455         quint64 iUsedRAM = m_hostStats.m_iTotalRAM - m_hostStats.m_iFreeRAM;
    456         m_pHostRAMChart->updateData(iUsedRAM, m_hostStats.m_iFreeRAM);
    457         m_pHostRAMChart->setDataMaximum(m_hostStats.m_iTotalRAM);
    458         if (m_hostStats.m_iTotalRAM != 0)
     465        quint64 iUsedRAM = m_hostStats.m_iRAMTotal - m_hostStats.m_iRAMFree;
     466        m_pHostRAMChart->updateData(iUsedRAM, m_hostStats.m_iRAMFree);
     467        m_pHostRAMChart->setDataMaximum(m_hostStats.m_iRAMTotal);
     468        if (m_hostStats.m_iRAMTotal != 0)
    459469        {
    460             quint64 iUsedRamPer = 100 * (iUsedRAM / (float) m_hostStats.m_iTotalRAM);
     470            quint64 iUsedRamPer = 100 * (iUsedRAM / (float) m_hostStats.m_iRAMTotal);
    461471            QString strCenter = QString("%1%\n%2").arg(iUsedRamPer).arg(tr("Used"));
    462472            m_pHostRAMChart->setChartCenterString(strCenter);
    463473        }
    464474    }
     475    if (m_pHostFSChart)
     476    {
     477        quint64 iUsedFS = m_hostStats.m_iFSTotal - m_hostStats.m_iFSFree;
     478        m_pHostFSChart->updateData(iUsedFS, m_hostStats.m_iFSFree);
     479        m_pHostFSChart->setDataMaximum(m_hostStats.m_iFSTotal);
     480        if (m_hostStats.m_iFSTotal != 0)
     481        {
     482            quint64 iUsedRamPer = 100 * (iUsedFS / (float) m_hostStats.m_iFSTotal);
     483            QString strCenter = QString("%1%\n%2").arg(iUsedRamPer).arg(tr("Used"));
     484            m_pHostFSChart->setChartCenterString(strCenter);
     485        }
     486    }
     487
    465488    updateLabels();
    466489}
     
    469492{
    470493    updateLabels();
     494}
     495
     496void UIVMResourceMonitorHostStatsWidget::addVerticalLine(QHBoxLayout *pLayout)
     497{
     498    QFrame *pLine = new QFrame;
     499    pLine->setFrameShape(QFrame::VLine);
     500    pLine->setFrameShadow(QFrame::Sunken);
     501    pLayout->addWidget(pLine);
    471502}
    472503
     
    513544        }
    514545    }
     546    addVerticalLine(pLayout);
    515547    /* RAM Stuff: */
    516548    {
     
    521553        QVBoxLayout *pRAMLabelsLayout = new QVBoxLayout;
    522554        pRAMLabelsLayout->setContentsMargins(0, 0, 0, 0);
     555        pRAMLabelsLayout->setSpacing(0);
    523556        pRAMLabelContainer->setLayout(pRAMLabelsLayout);
    524557        m_pRAMTitleLabel = new QLabel;
     
    539572        }
    540573    }
     574    addVerticalLine(pLayout);
     575    /* FS Stuff: */
     576    {
     577        QWidget *pFSLabelContainer = new QWidget;
     578        pLayout->addWidget(pFSLabelContainer);
     579        pFSLabelContainer->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
     580        QVBoxLayout *pFSLabelsLayout = new QVBoxLayout;
     581        pFSLabelsLayout->setContentsMargins(0, 0, 0, 0);
     582        pFSLabelsLayout->setSpacing(0);
     583        pFSLabelContainer->setLayout(pFSLabelsLayout);
     584        m_pFSTitleLabel = new QLabel;
     585        pFSLabelsLayout->addWidget(m_pFSTitleLabel);
     586        m_pFSUsedLabel = new QLabel;
     587        pFSLabelsLayout->addWidget(m_pFSUsedLabel);
     588        m_pFSFreeLabel = new QLabel;
     589        pFSLabelsLayout->addWidget(m_pFSFreeLabel);
     590        m_pFSTotalLabel = new QLabel;
     591        pFSLabelsLayout->addWidget(m_pFSTotalLabel);
     592
     593        m_pHostFSChart = new UIVMResourceMonitorDoughnutChart;
     594        if (m_pHostFSChart)
     595        {
     596            m_pHostFSChart->setMinimumSize(iMinimumSize, iMinimumSize);
     597            pLayout->addWidget(m_pHostFSChart);
     598            m_pHostFSChart->setChartColors(m_RAMUsedColor, m_RAMFreeColor);
     599        }
     600
     601    }
    541602    pLayout->addStretch(2);
    542603}
     
    549610    {
    550611        QString strColor = QColor(m_CPUUserColor).name(QColor::HexRgb);
    551         m_pCPUUserLabel->setText(QString("<font color=\"%1\">%2:%3%</font>").arg(strColor).arg(tr("User")).arg(QString::number(m_hostStats.m_iCPUUserLoad)));
     612        m_pCPUUserLabel->setText(QString("<font color=\"%1\">%2: %3%</font>").arg(strColor).arg(tr("User")).arg(QString::number(m_hostStats.m_iCPUUserLoad)));
    552613    }
    553614    if (m_pCPUKernelLabel)
    554615    {
    555616        QString strColor = QColor(m_CPUKernelColor).name(QColor::HexRgb);
    556         m_pCPUKernelLabel->setText(QString("<font color=\"%1\">%2:%3%</font>").arg(strColor).arg(tr("Kernel")).arg(QString::number(m_hostStats.m_iCPUKernelLoad)));
     617        m_pCPUKernelLabel->setText(QString("<font color=\"%1\">%2: %3%</font>").arg(strColor).arg(tr("Kernel")).arg(QString::number(m_hostStats.m_iCPUKernelLoad)));
    557618    }
    558619    if (m_pCPUTotalLabel)
    559         m_pCPUTotalLabel->setText(QString("%1:%2%").arg(tr("Total")).arg(m_hostStats.m_iCPUUserLoad + m_hostStats.m_iCPUKernelLoad));
     620        m_pCPUTotalLabel->setText(QString("%1: %2%").arg(tr("Total")).arg(m_hostStats.m_iCPUUserLoad + m_hostStats.m_iCPUKernelLoad));
    560621    if (m_pRAMTitleLabel)
    561622        m_pRAMTitleLabel->setText(QString("<b>%1</b>").arg(tr("Host RAM Usage")));
    562623    if (m_pRAMFreeLabel)
    563624    {
    564         QString strRAM = uiCommon().formatSize(m_hostStats.m_iFreeRAM);
     625        QString strRAM = uiCommon().formatSize(m_hostStats.m_iRAMFree);
    565626        QString strColor = QColor(m_RAMFreeColor).name(QColor::HexRgb);
    566         m_pRAMFreeLabel->setText(QString("<font color=\"%1\">%2:%3</font>").arg(strColor).arg(tr("Free")).arg(strRAM));
    567     }
    568 
     627        m_pRAMFreeLabel->setText(QString("<font color=\"%1\">%2: %3</font>").arg(strColor).arg(tr("Free")).arg(strRAM));
     628    }
    569629    if (m_pRAMUsedLabel)
    570630    {
    571         QString strRAM = uiCommon().formatSize(m_hostStats.m_iTotalRAM - m_hostStats.m_iFreeRAM);
     631        QString strRAM = uiCommon().formatSize(m_hostStats.m_iRAMTotal - m_hostStats.m_iRAMFree);
    572632        QString strColor = QColor(m_RAMUsedColor).name(QColor::HexRgb);
    573         m_pRAMUsedLabel->setText(QString("<font color=\"%1\">%2:%3</font>").arg(strColor).arg(tr("Used")).arg(strRAM));
     633        m_pRAMUsedLabel->setText(QString("<font color=\"%1\">%2: %3</font>").arg(strColor).arg(tr("Used")).arg(strRAM));
    574634    }
    575635    if (m_pRAMTotalLabel)
    576636    {
    577         QString strRAM = uiCommon().formatSize(m_hostStats.m_iTotalRAM);
    578         m_pRAMTotalLabel->setText(QString("%1:%2").arg(tr("Total")).arg(strRAM));
    579     }
    580 
     637        QString strRAM = uiCommon().formatSize(m_hostStats.m_iRAMTotal);
     638        m_pRAMTotalLabel->setText(QString("%1: %2").arg(tr("Total")).arg(strRAM));
     639    }
     640    if (m_pFSTitleLabel)
     641        m_pFSTitleLabel->setText(QString("<b>%1</b>").arg(tr("Host File System")));
     642    if (m_pFSFreeLabel)
     643    {
     644        QString strFS = uiCommon().formatSize(m_hostStats.m_iFSFree);
     645        QString strColor = QColor(m_RAMFreeColor).name(QColor::HexRgb);
     646        m_pFSFreeLabel->setText(QString("<font color=\"%1\">%2: %3</font>").arg(strColor).arg(tr("Free")).arg(strFS));
     647    }
     648    if (m_pFSUsedLabel)
     649    {
     650        QString strFS = uiCommon().formatSize(m_hostStats.m_iFSTotal - m_hostStats.m_iFSFree);
     651        QString strColor = QColor(m_RAMUsedColor).name(QColor::HexRgb);
     652        m_pFSUsedLabel->setText(QString("<font color=\"%1\">%2: %3</font>").arg(strColor).arg(tr("Used")).arg(strFS));
     653    }
     654    if (m_pFSTotalLabel)
     655    {
     656        QString strFS = uiCommon().formatSize(m_hostStats.m_iFSTotal);
     657        m_pFSTotalLabel->setText(QString("%1: %2").arg(tr("Total")).arg(strFS));
     658    }
    581659}
    582660
     
    739817    , m_iCPUKernelLoad(0)
    740818    , m_iCPUFreq(0)
    741     , m_iTotalRAM(0)
    742     , m_iFreeRAM(0)
     819    , m_iRAMTotal(0)
     820    , m_iRAMFree(0)
     821    , m_iFSTotal(0)
     822    , m_iFSFree(0)
    743823{
    744824}
     
    9481028{
    9491029    CHost comHost = uiCommon().host();
    950     m_hostStats.m_iTotalRAM = _1M * (quint64)comHost.GetMemorySize();
    951     m_hostStats.m_iFreeRAM = _1M * (quint64)comHost.GetMemoryAvailable();
     1030    m_hostStats.m_iRAMTotal = _1M * (quint64)comHost.GetMemorySize();
     1031    m_hostStats.m_iRAMFree = _1M * (quint64)comHost.GetMemoryAvailable();
    9521032}
    9531033
     
    10361116    /* This is for the host: */
    10371117    m_nameList << "CPU*";
    1038     //m_nameList << "CPU/Load/Kernel*";
     1118    m_nameList << "FS*";
    10391119    m_objectList = QVector<CUnknown>(m_nameList.size(), CUnknown());
    10401120    m_performanceMonitor.SetupMetrics(m_nameList, m_objectList, iPeriod, iMetricSetupCount);
     
    11031183                m_hostStats.m_iCPUFreq = fData;
    11041184        }
    1105 
     1185       else if (aReturnNames[i].contains("FS", Qt::CaseInsensitive) &&
     1186                aReturnNames[i].contains("Total", Qt::CaseInsensitive) &&
     1187                !aReturnNames[i].contains(":"))
     1188       {
     1189            CHost comHost = (CHost)aReturnObjects[i];
     1190            if (!comHost.isNull())
     1191                m_hostStats.m_iFSTotal = _1M * fData;
     1192       }
     1193       else if (aReturnNames[i].contains("FS", Qt::CaseInsensitive) &&
     1194                aReturnNames[i].contains("Free", Qt::CaseInsensitive) &&
     1195                !aReturnNames[i].contains(":"))
     1196       {
     1197            CHost comHost = (CHost)aReturnObjects[i];
     1198            if (!comHost.isNull())
     1199                m_hostStats.m_iFSFree = _1M * fData;
     1200       }
    11061201    }
    11071202    for (int i = 0; i < m_itemList.size(); ++i)
Note: See TracChangeset for help on using the changeset viewer.

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