VirtualBox

Changeset 91966 in vbox


Ignore:
Timestamp:
Oct 21, 2021 3:44:49 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10067: UIWizardImportApp: Migrate intermediate progress related to appliance reading to notification-center.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp

    r91959 r91966  
    28212821
    28222822/*********************************************************************************************************************************
     2823*   Class UINotificationProgressApplianceRead implementation.                                                                    *
     2824*********************************************************************************************************************************/
     2825
     2826UINotificationProgressApplianceRead::UINotificationProgressApplianceRead(const CAppliance &comAppliance,
     2827                                                                         const QString &strPath)
     2828    : m_comAppliance(comAppliance)
     2829    , m_strPath(strPath)
     2830{
     2831}
     2832
     2833QString UINotificationProgressApplianceRead::name() const
     2834{
     2835    return UINotificationProgress::tr("Reading appliance ...");
     2836}
     2837
     2838QString UINotificationProgressApplianceRead::details() const
     2839{
     2840    return UINotificationProgress::tr("<b>From:</b> %1").arg(m_strPath);
     2841}
     2842
     2843CProgress UINotificationProgressApplianceRead::createProgress(COMResult &comResult)
     2844{
     2845    /* Initialize progress-wrapper: */
     2846    CProgress comProgress = m_comAppliance.Read(m_strPath);
     2847    /* Store COM result: */
     2848    comResult = m_comAppliance;
     2849    /* Return progress-wrapper: */
     2850    return comProgress;
     2851}
     2852
     2853
     2854/*********************************************************************************************************************************
    28232855*   Class UINotificationProgressApplianceImport implementation.                                                                  *
    28242856*********************************************************************************************************************************/
  • trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h

    r91959 r91966  
    15881588};
    15891589
     1590/** UINotificationProgress extension for appliance read functionality. */
     1591class SHARED_LIBRARY_STUFF UINotificationProgressApplianceRead : public UINotificationProgress
     1592{
     1593    Q_OBJECT;
     1594
     1595public:
     1596
     1597    /** Constructs appliance read notification-progress.
     1598      * @param  comAppliance  Brings the appliance being read.
     1599      * @param  strPath       Brings the appliance path. */
     1600    UINotificationProgressApplianceRead(const CAppliance &comAppliance,
     1601                                        const QString &strPath);
     1602
     1603protected:
     1604
     1605    /** Returns object name. */
     1606    virtual QString name() const /* override final */;
     1607    /** Returns object details. */
     1608    virtual QString details() const /* override final */;
     1609    /** Creates and returns started progress-wrapper. */
     1610    virtual CProgress createProgress(COMResult &comResult) /* override final */;
     1611
     1612private:
     1613
     1614    /** Holds the appliance being read. */
     1615    CAppliance               m_comAppliance;
     1616    /** Holds the appliance path. */
     1617    QString                  m_strPath;
     1618};
     1619
    15901620/** UINotificationProgress extension for import appliance functionality. */
    15911621class SHARED_LIBRARY_STUFF UINotificationProgressApplianceImport : public UINotificationProgress
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageSource.cpp

    r91709 r91966  
    3030#include "UIIconPool.h"
    3131#include "UIMessageCenter.h"
     32#include "UINotificationCenter.h"
    3233#include "UIVirtualBoxEventHandler.h"
    3334#include "UIVirtualBoxManager.h"
     
    296297void UIWizardImportAppSource::refreshCloudStuff(CAppliance &comCloudAppliance,
    297298                                                CVirtualSystemDescriptionForm &comCloudVsdImportForm,
    298                                                 QWidget *pParent,
     299                                                UIWizardImportApp *pWizard,
    299300                                                const QString &strMachineId,
    300301                                                const QString &strSource,
     
    311312
    312313    /* We need top-level parent as well: */
    313     AssertPtrReturnVoid(pParent);
     314    AssertPtrReturnVoid(pWizard);
    314315    /* Acquire client: */
    315     CCloudClient comClient = cloudClientByName(strSource, strProfileName, pParent);
     316    CCloudClient comClient = cloudClientByName(strSource, strProfileName, pWizard);
    316317    AssertReturnVoid(comClient.isNotNull());
    317318
     
    321322    if (!comVBox.isOk())
    322323    {
    323         msgCenter().cannotCreateAppliance(comVBox, pParent);
     324        msgCenter().cannotCreateAppliance(comVBox, pWizard);
    324325        return;
    325326    }
     
    329330
    330331    /* Read cloud instance info: */
    331     CProgress comReadProgress = comCloudAppliance.Read(QString("OCI://%1/%2").arg(strProfileName, strMachineId));
    332     if (!comCloudAppliance.isOk())
    333     {
    334         msgCenter().cannotImportAppliance(comCloudAppliance, pParent);
     332    UINotificationProgressApplianceRead *pNotification = new UINotificationProgressApplianceRead(comCloudAppliance,
     333                                                                                                 QString("OCI://%1/%2").arg(strProfileName,
     334                                                                                                                            strMachineId));
     335    if (!pWizard->handleNotificationProgressNow(pNotification))
    335336        return;
    336     }
    337 
    338     /* Show "Read appliance" progress: */
    339     msgCenter().showModalProgressDialog(comReadProgress, UIWizardImportApp::tr("Read appliance ..."),
    340                                         ":/progress_reading_appliance_90px.png", pParent, 0);
    341     if (!comReadProgress.isOk() || comReadProgress.GetResultCode() != 0)
    342     {
    343         msgCenter().cannotImportAppliance(comReadProgress, comCloudAppliance.GetPath(), pParent);
    344         return;
    345     }
    346337
    347338    /* Acquire virtual system description: */
     
    349340    if (!comCloudAppliance.isOk())
    350341    {
    351         msgCenter().cannotAcquireVirtualSystemDescription(comCloudAppliance, pParent);
     342        msgCenter().cannotAcquireVirtualSystemDescription(comCloudAppliance, pWizard);
    352343        return;
    353344    }
     
    359350    /* Read Cloud Client description form: */
    360351    CVirtualSystemDescriptionForm comVsdImportForm;
    361     bool fSuccess = importDescriptionForm(comClient, comDescription, comVsdImportForm, pParent);
     352    bool fSuccess = importDescriptionForm(comClient, comDescription, comVsdImportForm, pWizard);
    362353    if (!fSuccess)
    363354        return;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageSource.h

    r91709 r91966  
    8282    void refreshCloudStuff(CAppliance &comCloudAppliance,
    8383                           CVirtualSystemDescriptionForm &comCloudVsdImportForm,
    84                            QWidget *pParent,
     84                           UIWizardImportApp *pWizard,
    8585                           const QString &strMachineId,
    8686                           const QString &strSource,
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