VirtualBox

Changeset 103127 in vbox for trunk


Ignore:
Timestamp:
Jan 31, 2024 6:40:04 AM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161375
Message:

FE/Qt: bugref:10501. Updating the cloud vm list.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp

    r103120 r103127  
    238238    bool operator==(const UIActivityOverviewItem& other) const;
    239239    int columnLength(int iColumnIndex) const;
     240    const QUuid &machineId() const;
     241
     242
    240243    virtual QString machineStateString() const = 0;
    241244    virtual bool isRunning() const = 0;
     
    245248    QString columnData(int iColumnIndex) const;
    246249
    247     QUuid         m_VMuid;
    248     QString       m_strVMName;
    249250
    250251    ULONG  m_uCPUGuestLoad;
     
    264265
    265266protected:
     267
     268    QUuid         m_VMuid;
     269    QString       m_strVMName;
    266270
    267271    virtual void updateMetricData() = 0;
     
    398402    void setDefaultViewFont(const QFont &font);
    399403    void setDefaultViewFontColor(const QColor &color);
     404    void setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems);
    400405
    401406private slots:
     
    850855*********************************************************************************************************************************/
    851856UIActivityOverviewItem::UIActivityOverviewItem(const QUuid &uid, const QString &strVMName)
    852     : m_VMuid(uid)
    853     , m_strVMName(strVMName)
    854     , m_uCPUGuestLoad(0)
     857    : m_uCPUGuestLoad(0)
    855858    , m_uTotalRAM(0)
    856859    , m_uFreeRAM(0)
     
    865868    , m_uDiskWriteTotal(0)
    866869    , m_uDiskReadTotal(0)
     870    , m_VMuid(uid)
     871    , m_strVMName(strVMName)
    867872{
    868873}
    869874
    870875UIActivityOverviewItem::UIActivityOverviewItem()
    871     : m_VMuid(QUuid())
    872     , m_uCPUGuestLoad(0)
     876    : m_uCPUGuestLoad(0)
    873877    , m_uTotalRAM(0)
    874878    , m_uUsedRAM(0)
     
    882886    , m_uDiskWriteTotal(0)
    883887    , m_uDiskReadTotal(0)
     888    , m_VMuid(QUuid())
    884889{
    885890}
     
    904909{
    905910    return m_columnData.value(iColumnIndex, QString()).length();
     911}
     912
     913const QUuid &UIActivityOverviewItem::machineId() const
     914{
     915    return m_VMuid;
    906916}
    907917
     
    959969void UIActivityOverviewItemCloud::updateColumnData()
    960970{
     971    updateMetricData();
     972
     973    //int iDecimalCount = 2;
     974
     975    m_columnData[VMActivityOverviewColumn_Name] = m_strVMName;
    961976}
    962977
     
    12591274    if (iIndex >= m_itemList.size() || !m_itemList[iIndex])
    12601275        return QUuid();
    1261     return m_itemList[iIndex]->m_VMuid;
     1276    return m_itemList[iIndex]->machineId();
    12621277}
    12631278
     
    12681283        if (!m_itemList[i])
    12691284            continue;
    1270         if (m_itemList[i]->m_VMuid == uid)
     1285        if (m_itemList[i]->machineId() == uid)
    12711286            return i;
    12721287    }
     
    12891304{
    12901305    m_defaultViewFontColor = color;
     1306}
     1307
     1308void UIActivityOverviewModel::setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems)
     1309{
     1310    QVector<QUuid> newIds;
     1311    foreach (const UIVirtualMachineItemCloud* pItem, cloudItems)
     1312    {
     1313        if (!pItem)
     1314            continue;
     1315        QUuid id = pItem->machineId();
     1316        if (id.isNull())
     1317            continue;
     1318        newIds << id;
     1319    }
     1320
     1321    /* Remove m_itemList items that are not in @cloudItems: */
     1322    QMutableVectorIterator<UIActivityOverviewItem*> iterator(m_itemList);
     1323    while (iterator.hasNext())
     1324    {
     1325        UIActivityOverviewItem *pItem = iterator.next();
     1326        if (!pItem->isCloudVM())
     1327            continue;
     1328        if (pItem && !newIds.contains(pItem->machineId()))
     1329            iterator.remove();
     1330    }
     1331
     1332    /* Add items that are not in m_itemList: */
     1333    foreach (const UIVirtualMachineItemCloud* pItem, cloudItems)
     1334    {
     1335        if (!pItem)
     1336            continue;
     1337        CCloudMachine comMachine = pItem->machine();
     1338        if (!comMachine.isOk())
     1339            continue;
     1340        QUuid id = comMachine.GetId();
     1341        /* Linearly search for the vm with th same id. I cannot make QVector::contain work since we store pointers: */
     1342        bool fFound = false;
     1343        for (int i = 0; i < m_itemList.size() && !fFound; ++i)
     1344        {
     1345            if (m_itemList[i] && m_itemList[i]->machineId() == id)
     1346                fFound = true;
     1347        }
     1348        if (!fFound)
     1349            m_itemList.append(new UIActivityOverviewItemCloud(id, comMachine.GetName(), comMachine));
     1350    }
    12911351}
    12921352
     
    13901450void UIActivityOverviewModel::sltCloudUpdateTimeout()
    13911451{
     1452    for (int i = 0; i < m_itemList.size(); ++i)
     1453    {
     1454        if (!m_itemList[i] && !m_itemList[i]->isCloudVM() && !m_itemList[i]->isRunning())
     1455            continue;
     1456        m_itemList[i]->updateColumnData();
     1457    }
    13921458}
    13931459
     
    16001666void UIVMActivityOverviewWidget::setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems)
    16011667{
    1602     Q_UNUSED(cloudItems);
     1668    if (m_pModel)
     1669        m_pModel->setCloudMachineItems(cloudItems);
    16031670}
    16041671
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h

    r102838 r103127  
    7373        /** Returns cached machine state. */
    7474        KCloudMachineState machineState() const { return m_enmMachineState; }
     75        QUuid machineId() const { return m_comCloudMachine.isOk() ? m_comCloudMachine.GetId() : QUuid(); }
    7576
    7677        /** Defines fake cloud item @a enmState. */
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