VirtualBox

Changeset 102952 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 18, 2024 2:30:58 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161180
Message:

FE/Qt: bugref:10501. Some additions to UIActivityOverviewModel to get cloud machine list.

File:
1 edited

Legend:

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

    r102796 r102952  
    4444#include "QIToolBar.h"
    4545#include "UIActionPoolManager.h"
     46#include "UICloudEntityKey.h"
     47#include "UICloudNetworkingStuff.h"
    4648#include "UICommon.h"
    4749#include "UIConverter.h"
     
    6062
    6163/* COM includes: */
     64#include "CCloudClient.h"
    6265#include "CConsole.h"
    6366#include "CMachine.h"
     
    342345    void sltMachineRegistered(const QUuid &uId, bool fRegistered);
    343346    void sltTimeout();
     347    void sltCloudUpdateTimeout();
    344348
    345349private:
     
    352356    void removeItem(const QUuid& uMachineId);
    353357    void getHostRAMStats();
     358    void obtainCloudClientList();
    354359
    355360    QVector<UIActivityOverviewItem> m_itemList;
    356361    QMap<int, QString> m_columnTitles;
    357362    QTimer *m_pTimer;
     363    QTimer *m_pCloudUpdateTimer;
    358364    /** @name The following are used during UIPerformanceCollector::QueryMetricsData(..)
    359365     * @{ */
     
    371377    /** Maximum length of string length of data displayed in column. Updated in UIActivityOverviewModel::data(..). */
    372378    mutable QMap<int, int> m_columnDataMaxLength;
     379    QVector<CCloudClient> m_comCloudClients;
    373380};
    374381
     
    961968    :QAbstractTableModel(parent)
    962969    , m_pTimer(new QTimer(this))
     970    , m_pCloudUpdateTimer(new QTimer(this))
    963971    , m_fShouldUpdate(true)
    964972{
     
    981989        m_pTimer->start(1000);
    982990    }
     991
     992    if (m_pCloudUpdateTimer)
     993    {
     994        connect(m_pCloudUpdateTimer, &QTimer::timeout, this, &UIActivityOverviewModel::sltCloudUpdateTimeout);
     995        m_pCloudUpdateTimer->start(10 * 1000);
     996    }
     997    obtainCloudClientList();
    983998}
    984999
     
    12491264    emit sigDataUpdate();
    12501265    emit sigHostStatsUpdate(m_hostStats);
     1266}
     1267
     1268void UIActivityOverviewModel::obtainCloudClientList()
     1269{
     1270    /* Acquire Cloud Profile Manager restrictions: */
     1271    const QStringList restrictions = gEDataManager->cloudProfileManagerRestrictions();
     1272
     1273    foreach (CCloudProvider comCloudProvider, listCloudProviders())
     1274    {
     1275        /* Skip if we have nothing to populate: */
     1276        if (comCloudProvider.isNull())
     1277            continue;
     1278
     1279        /* Acquire provider id: */
     1280        QUuid uProviderId;
     1281        if (!cloudProviderId(comCloudProvider, uProviderId))
     1282            continue;
     1283
     1284        /* Acquire provider short name: */
     1285        QString strProviderShortName;
     1286        if (!cloudProviderShortName(comCloudProvider, strProviderShortName))
     1287            continue;
     1288
     1289        /* Make sure this provider isn't restricted: */
     1290        const QString strProviderPath = QString("/%1").arg(strProviderShortName);
     1291        if (restrictions.contains(strProviderPath))
     1292            continue;
     1293
     1294        /* Acquire list of profiles: */
     1295        const QVector<CCloudProfile> profiles = listCloudProfiles(comCloudProvider);
     1296        if (profiles.isEmpty())
     1297            continue;
     1298
     1299        foreach (CCloudProfile comCloudProfile, profiles)
     1300        {
     1301            /* Skip if we have nothing to populate: */
     1302            if (comCloudProfile.isNull())
     1303                continue;
     1304
     1305            /* Acquire profile name: */
     1306            QString strProfileName;
     1307            if (!cloudProfileName(comCloudProfile, strProfileName))
     1308                continue;
     1309
     1310            /* Make sure this profile isn't restricted: */
     1311            const QString strProfilePath = QString("/%1/%2").arg(strProviderShortName, strProfileName);
     1312            if (restrictions.contains(strProfilePath))
     1313                continue;
     1314
     1315
     1316            QString strErrorMessage;
     1317            /* Create read cloud machine list task: */
     1318            const UICloudEntityKey cloudProfileKey = UICloudEntityKey(strProviderShortName, strProfileName);
     1319            CCloudClient comCloudClient = cloudClientByName(cloudProfileKey.m_strProviderShortName,
     1320                                                            cloudProfileKey.m_strProfileName,
     1321                                                            strErrorMessage);
     1322            if (strErrorMessage.isEmpty() && comCloudClient.isOk())
     1323                m_comCloudClients << comCloudClient;
     1324        }
     1325    }
     1326}
     1327
     1328void UIActivityOverviewModel::sltCloudUpdateTimeout()
     1329{
    12511330}
    12521331
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