VirtualBox

Changeset 103781 in vbox


Ignore:
Timestamp:
Mar 11, 2024 5:23:02 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162150
Message:

FE/Qt: UICommon: Move extension pack related functionality to UIExtension namespace; Rework all listeners to listen for global VBox events (signals) instead of UICommon.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extensionpackmanager/UIExtensionPackManager.cpp

    r103771 r103781  
    275275                                                                         strSelectedPackageName,
    276276                                                                         displayInfo);
    277                 connect(pNotification, &UINotificationProgressExtensionPackUninstall::sigExtensionPackUninstalled,
    278                         this, &UIExtensionPackManagerWidget::sltHandleExtensionPackUninstalled);
    279                 connect(pNotification, &UINotificationProgressExtensionPackUninstall::sigExtensionPackUninstalled,
    280                         &uiCommon(), &UICommon::sigExtensionPackUninstalled);
    281277                gpNotificationCenter->append(pNotification);
    282278            }
     
    377373    /* Prepare self: */
    378374    uiCommon().setHelpKeyword(this, "ext-pack-manager");
    379     /* Connect un/install event we get from IVirtualBox to UICommon since all
    380      * ext pack installation events should go through its signal. Several
    381      * other objects listen to those signals for menu update etc: */
    382     connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackInstalled,
    383             &uiCommon(), &UICommon::sigExtensionPackInstalled);
    384     connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackUninstalled,
    385             &uiCommon(), &UICommon::sigExtensionPackUninstalled);
    386 
    387 
    388     connect(&uiCommon(), &UICommon::sigExtensionPackInstalled,
    389             this, &UIExtensionPackManagerWidget::sltHandleExtensionPackInstalled);
    390375
    391376    /* Prepare stuff: */
    392377    prepareActions();
    393378    prepareWidgets();
     379    prepareConnections();
    394380
    395381    /* Apply language settings: */
     
    490476}
    491477
     478void UIExtensionPackManagerWidget::prepareConnections()
     479{
     480    /* Listen for extension pack being [un]installed: */
     481    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackInstalled,
     482            this, &UIExtensionPackManagerWidget::sltHandleExtensionPackInstalled);
     483    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackUninstalled,
     484            this, &UIExtensionPackManagerWidget::sltHandleExtensionPackUninstalled);
     485}
     486
    492487void UIExtensionPackManagerWidget::loadExtensionPacks()
    493488{
  • trunk/src/VBox/Frontends/VirtualBox/src/extensionpackmanager/UIExtensionPackManager.h

    r98103 r103781  
    114114        /** Prepares tree-widget. */
    115115        void prepareTreeWidget();
     116        /** Prepare connections: */
     117        void prepareConnections();
    116118    /** @} */
    117119
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp

    r103771 r103781  
    104104#include "CCloudMachine.h"
    105105#include "CConsole.h"
    106 #include "CExtPack.h"
    107 #include "CExtPackFile.h"
    108 #include "CExtPackManager.h"
    109106#include "CHostUSBDevice.h"
    110107#include "CHostVideoInputDevice.h"
     
    27002697}
    27012698
    2702 bool UICommon::isExtentionPackInstalled() const
    2703 {
    2704     const CVirtualBox comVBox = gpGlobalSession->virtualBox();
    2705     const CExtPackManager comEPManager = comVBox.GetExtensionPackManager();
    2706 
    2707     if (!comVBox.isOk())
    2708         return false;
    2709 
    2710     const QVector<CExtPack> extensionPacks = comEPManager.GetInstalledExtPacks();
    2711     if (!comEPManager.isOk())
    2712         return false;
    2713     foreach (const CExtPack &comExtensionPack, extensionPacks)
    2714     {
    2715         if (!comExtensionPack.isOk())
    2716             continue;
    2717         bool fUsable = comExtensionPack.GetUsable();
    2718         if (comExtensionPack.isOk() && fUsable)
    2719             return true;
    2720     }
    2721     return false;
    2722 }
    2723 
    27242699bool UICommon::openURL(const QString &strUrl) const
    27252700{
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h

    r103771 r103781  
    8787    /** @} */
    8888
    89     /** @name COM: Extension Pack stuff.
    90      * @{ */
    91         /** Notifies listeners about extension pack @a strName was installed. */
    92         void sigExtensionPackInstalled(const QString &strName);
    93         /** Notifies listeners about extension pack @a strName was uninstalled. */
    94         void sigExtensionPackUninstalled(const QString &strName);
    95     /** @} */
    96 
    9789    /** @name Cloud Virtual Machine stuff.
    9890     * @{ */
     
    495487    /** @} */
    496488
    497     /** @name COM: Extension Pack stuff.
    498      * @{ */
    499         /** Returns true if it can find at least one usable ext. pack. Else returns false. */
    500         bool isExtentionPackInstalled() const;
    501     /** @} */
    502 
    503489public slots:
    504490
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIExtension.cpp

    r103771 r103781  
    2727
    2828/* GUI includes: */
    29 #include "UICommon.h"
    3029#include "UIExtension.h"
    3130#include "UIGlobalSession.h"
     
    113112                                                           strPackName,
    114113                                                           strDisplayInfo);
    115     QObject::connect(pNotification, &UINotificationProgressExtensionPackInstall::sigExtensionPackInstalled,
    116                      &uiCommon(), &UICommon::sigExtensionPackInstalled);
    117114    gpNotificationCenter->append(pNotification);
    118115
     
    121118        *pstrExtPackName = strPackName;
    122119}
     120
     121bool UIExtension::isExtentionPackInstalled()
     122{
     123    /* Acquire extension pack manager: */
     124    const CVirtualBox comVBox = gpGlobalSession->virtualBox();
     125    const CExtPackManager comEPManager = comVBox.GetExtensionPackManager();
     126    if (!comVBox.isOk())
     127        return false;
     128
     129    /* Acquire a list of extension packs: */
     130    const QVector<CExtPack> extensionPacks = comEPManager.GetInstalledExtPacks();
     131    if (!comEPManager.isOk())
     132        return false;
     133
     134    /* Make sure at least one installed ext pack is usable: */
     135    foreach (const CExtPack &comExtensionPack, extensionPacks)
     136    {
     137        if (!comExtensionPack.isOk())
     138            continue;
     139        const bool fUsable = comExtensionPack.GetUsable();
     140        if (comExtensionPack.isOk() && fUsable)
     141            return true;
     142    }
     143
     144    /* False by default: */
     145    return false;
     146}
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIExtension.h

    r98103 r103781  
    4747                                      QWidget *pParent,
    4848                                      QString *pstrExtPackName);
     49
     50    /** Returns true if it can find at least one usable ext. pack. Else returns false. */
     51    bool SHARED_LIBRARY_STUFF isExtentionPackInstalled();
    4952}
    5053
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp

    r103771 r103781  
    25042504    connect(&uiCommon(), &UICommon::sigMediumEnumerationFinished,
    25052505            this, &UIVirtualBoxManager::sltHandleMediumEnumerationFinish);
    2506     connect(&uiCommon(), &UICommon::sigExtensionPackInstalled,
    2507             this, &UIVirtualBoxManager::sltExtensionPackInstalledUninstalled);
    2508     connect(&uiCommon(), &UICommon::sigExtensionPackUninstalled,
    2509             this, &UIVirtualBoxManager::sltExtensionPackInstalledUninstalled);
    25102506
    25112507    /* Widget connections: */
     
    25392535
    25402536    /* Global VBox event handlers: */
     2537    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackInstalled,
     2538            this, &UIVirtualBoxManager::sltExtensionPackInstalledUninstalled);
     2539    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigExtensionPackUninstalled,
     2540            this, &UIVirtualBoxManager::sltExtensionPackInstalledUninstalled);
    25412541    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigMachineStateChange,
    25422542            this, &UIVirtualBoxManager::sltHandleStateChange);
     
    37383738        {
    37393739            return items.size() == 1 &&
    3740                    uiCommon().isExtentionPackInstalled() &&
     3740                   UIExtension::isExtentionPackInstalled() &&
    37413741                   pItem->toLocal();
    37423742        }
  • trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp

    r103771 r103781  
    41134113    , m_strDisplayInfo(strDisplayInfo)
    41144114{
    4115     connect(this, &UINotificationProgress::sigProgressFinished,
    4116             this, &UINotificationProgressExtensionPackInstall::sltHandleProgressFinished);
    41174115}
    41184116
     
    41354133    /* Return progress-wrapper: */
    41364134    return comProgress;
    4137 }
    4138 
    4139 void UINotificationProgressExtensionPackInstall::sltHandleProgressFinished()
    4140 {
    4141     if (error().isEmpty())
    4142         emit sigExtensionPackInstalled(m_strExtensionPackName);
    41434135}
    41444136
     
    41554147    , m_strDisplayInfo(strDisplayInfo)
    41564148{
    4157     connect(this, &UINotificationProgress::sigProgressFinished,
    4158             this, &UINotificationProgressExtensionPackUninstall::sltHandleProgressFinished);
    41594149}
    41604150
     
    41794169    /* Return progress-wrapper: */
    41804170    return comProgress;
    4181 }
    4182 
    4183 void UINotificationProgressExtensionPackUninstall::sltHandleProgressFinished()
    4184 {
    4185     if (error().isEmpty())
    4186         emit sigExtensionPackUninstalled(m_strExtensionPackName);
    41874171}
    41884172
  • trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h

    r103549 r103781  
    24012401    Q_OBJECT;
    24022402
    2403 signals:
    2404 
    2405     /** Notifies listeners about extension pack installed.
    2406       * @param  strExtensionPackName  Brings extension pack name. */
    2407     void sigExtensionPackInstalled(const QString &strExtensionPackName);
    2408 
    24092403public:
    24102404
     
    24282422    virtual CProgress createProgress(COMResult &comResult) /* override final */;
    24292423
    2430 private slots:
    2431 
    2432     /** Handles signal about progress being finished. */
    2433     void sltHandleProgressFinished();
    2434 
    24352424private:
    24362425
     
    24502439    Q_OBJECT;
    24512440
    2452 signals:
    2453 
    2454     /** Notifies listeners about extension pack uninstalled.
    2455       * @param  strExtensionPackName  Brings extension pack name. */
    2456     void sigExtensionPackUninstalled(const QString &strExtensionPackName);
    2457 
    24582441public:
    24592442
     
    24742457    /** Creates and returns started progress-wrapper. */
    24752458    virtual CProgress createProgress(COMResult &comResult) /* override final */;
    2476 
    2477 private slots:
    2478 
    2479     /** Handles signal about progress being finished. */
    2480     void sltHandleProgressFinished();
    24812459
    24822460private:
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