VirtualBox

Changeset 88001 in vbox


Ignore:
Timestamp:
Mar 8, 2021 10:50:59 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
143124
Message:

FE/Qt: bugref:9950. Moving CMedium instance from page to wizard itself.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp

    r88000 r88001  
    136136         * but in that special case VM was not registered yet, so UIExtraDataManager is unaware of it: */
    137137        if (!isUnattendedEnabled() &&
    138             (!field("virtualDisk").value<CMedium>().isNull()))
     138            !m_virtualDisk.isNull())
    139139            m_machine.SetExtraData(GUI_FirstRun, "yes");
    140140    }
     
    187187
    188188    /* Create new virtual hard-disk: */
    189     CMedium virtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk);
     189    CMedium newVirtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk);
    190190    if (!vbox.isOk())
    191191    {
     
    204204
    205205    /* Create base storage for the new virtual-disk: */
    206     CProgress progress = virtualDisk.CreateBaseStorage(uSize, variants);
    207     if (!virtualDisk.isOk())
    208     {
    209         msgCenter().cannotCreateHardDiskStorage(virtualDisk, strMediumPath, this);
     206    CProgress progress = newVirtualDisk.CreateBaseStorage(uSize, variants);
     207    if (!newVirtualDisk.isOk())
     208    {
     209        msgCenter().cannotCreateHardDiskStorage(newVirtualDisk, strMediumPath, this);
    210210        return false;
    211211    }
     
    222222
    223223    /* Inform UICommon about it: */
    224     uiCommon().createMedium(UIMedium(virtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));
     224    uiCommon().createMedium(UIMedium(newVirtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));
    225225
    226226    /* Remember created virtual-disk: */
    227     setVirtualDisk(virtualDisk);
     227    m_virtualDisk = newVirtualDisk;
    228228
    229229    return true;
     
    232232void UIWizardNewVM::deleteVirtualDisk()
    233233{
    234     CMedium comDisk = virtualDisk();
    235234    /* Make sure virtual-disk valid: */
    236     if (comDisk.isNull())
     235    if (m_virtualDisk.isNull())
    237236        return;
    238237
    239238    /* Remember virtual-disk attributes: */
    240     QString strLocation = comDisk.GetLocation();
     239    QString strLocation = m_virtualDisk.GetLocation();
    241240    /* Prepare delete storage progress: */
    242     CProgress progress = comDisk.DeleteStorage();
    243     if (comDisk.isOk())
     241    CProgress progress = m_virtualDisk.DeleteStorage();
     242    if (m_virtualDisk.isOk())
    244243    {
    245244        /* Show delete storage progress: */
     
    249248    }
    250249    else
    251         msgCenter().cannotDeleteHardDiskStorage(comDisk, strLocation, this);
     250        msgCenter().cannotDeleteHardDiskStorage(m_virtualDisk, strLocation, this);
    252251
    253252    /* Detach virtual-disk anyway: */
    254     comDisk.detach();
     253    m_virtualDisk.detach();
    255254}
    256255
     
    410409    {
    411410        CMachine machine = session.GetMachine();
    412         CMedium vmedium = virtualDisk();
    413         if (!vmedium.isNull())
     411        if (!m_virtualDisk.isNull())
    414412        {
    415413            KStorageBus enmHDDBus = comGuestType.GetRecommendedHDStorageBus();
     
    417415            if (!comHDDController.isNull())
    418416            {
    419                 machine.AttachDevice(comHDDController.GetName(), 0, 0, KDeviceType_HardDisk, vmedium);
     417                machine.AttachDevice(comHDDController.GetName(), 0, 0, KDeviceType_HardDisk, m_virtualDisk);
    420418                if (!machine.isOk())
    421                     msgCenter().cannotAttachDevice(machine, UIMediumDeviceType_HardDisk, field("virtualDiskLocation").toString(),
     419                    msgCenter().cannotAttachDevice(machine, UIMediumDeviceType_HardDisk, field("mediumPath").toString(),
    422420                                                   StorageSlot(enmHDDBus, 0, 0), this);
    423421            }
     
    473471
    474472    /* Ensure we don't try to delete a newly created virtual hard drive on success: */
    475     if (!field("virtualDisk").value<CMedium>().isNull())
    476         field("virtualDisk").value<CMedium>().detach();
     473    if (!m_virtualDisk.isNull())
     474        m_virtualDisk.detach();
    477475
    478476    return true;
     
    625623}
    626624
    627 CMedium UIWizardNewVM::virtualDisk() const
    628 {
    629     UIWizardNewVMPageBasic4 *pPage = qobject_cast<UIWizardNewVMPageBasic4*>(page(Page4));
    630     AssertPtrReturn(pPage, CMedium());
    631     return pPage->virtualDisk();
     625CMedium &UIWizardNewVM::virtualDisk()
     626{
     627    return m_virtualDisk;
    632628}
    633629
    634630void UIWizardNewVM::setVirtualDisk(const CMedium &medium)
    635631{
    636     UIWizardNewVMPageBasic4 *pPage = qobject_cast<UIWizardNewVMPageBasic4*>(page(Page4));
    637     AssertPtrReturnVoid(pPage);
    638     pPage->setVirtualDisk(medium);
     632    m_virtualDisk == medium;
    639633}
    640634
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h

    r88000 r88001  
    9696    bool isUnattendedEnabled() const;
    9797    bool isGuestOSTypeWindows() const;
     98    CMedium &virtualDisk();
     99    void setVirtualDisk(const CMedium &medium);
    98100
    99101protected:
     
    130132    void setFieldsFromDefaultUnttendedInstallData();
    131133
    132     CMedium virtualDisk() const;
    133     void setVirtualDisk(const CMedium &medium);
    134 
    135     /* Variables: */
    136     CMachine m_machine;
    137     QString m_strGroup;
    138     int m_iIDECount;
    139     int m_iSATACount;
    140     int m_iSCSICount;
    141     int m_iFloppyCount;
    142     int m_iSASCount;
    143     int m_iUSBCount;
    144 
    145     mutable UIUnattendedInstallData m_unattendedInstallData;
     134    /** @name Variables
     135     * @{ */
     136       CMedium m_virtualDisk;
     137       CMachine m_machine;
     138       QString m_strGroup;
     139       int m_iIDECount;
     140       int m_iSATACount;
     141       int m_iSCSICount;
     142       int m_iFloppyCount;
     143       int m_iSASCount;
     144       int m_iUSBCount;
     145       mutable UIUnattendedInstallData m_unattendedInstallData;
     146    /** @} */
    146147};
    147148
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic4.cpp

    r88000 r88001  
    101101    m_pDiskSelector->setEnabled(fEnabled);
    102102    m_pDiskSelectionButton->setEnabled(fEnabled);
    103 }
    104 
    105 void UIWizardNewVMPage4::setVirtualDiskFromDiskCombo()
    106 {
    107     QUuid currentId;
    108     if (!m_virtualDisk.isNull())
    109         currentId = m_virtualDisk.GetId();
    110     QUuid id = m_pDiskSelector->id();
    111     /* Do nothing else if m_virtualMedium is already set to what combobox has: */
    112     if (id == currentId)
    113         return;
    114     if (m_pDiskSelector)
    115     {
    116         CMedium medium = uiCommon().medium(id).medium();
    117         if (!medium.isNull())
    118             setVirtualDisk(medium);
    119     }
    120103}
    121104
     
    167150    qRegisterMetaType<CMedium>();
    168151    qRegisterMetaType<SelectedDiskSource>();
    169     registerField("virtualDisk", this, "virtualDisk");
    170152    registerField("selectedDiskSource", this, "selectedDiskSource");
    171153
     
    368350    if (selectedDiskSource() == SelectedDiskSource_New)
    369351        return mediumSize() >= m_uMediumSizeMin && mediumSize() <= m_uMediumSizeMax;
    370 
     352    UIWizardNewVM *pWizard = wizardImp();
     353    AssertReturn(pWizard, false);
    371354    if (selectedDiskSource() == SelectedDiskSource_Existing)
    372         return !m_virtualDisk.isNull();
     355        return !pWizard->virtualDisk().isNull();
    373356
    374357    return true;
     
    411394
    412395    startProcessing();
    413     if (selectedDiskSource() == SelectedDiskSource_New)
    414     {
    415         /* Try to create the hard drive:*/
    416         fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVirtualDisk();
    417         /*Don't show any error message here since UIWizardNewVM::createVirtualDisk already does so: */
     396    UIWizardNewVM *pWizard = wizardImp();
     397    if (pWizard)
     398    {
     399        if (selectedDiskSource() == SelectedDiskSource_New)
     400        {
     401            /* Try to create the hard drive:*/
     402            fResult = pWizard->createVirtualDisk();
     403            /*Don't show any error message here since UIWizardNewVM::createVirtualDisk already does so: */
     404            if (!fResult)
     405                return fResult;
     406        }
     407
     408        fResult = pWizard->createVM();
     409        /* Try to delete the hard disk: */
    418410        if (!fResult)
    419             return fResult;
    420     }
    421 
    422     fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVM();
    423     /* Try to delete the hard disk: */
    424     if (!fResult)
    425         qobject_cast<UIWizardNewVM*>(wizard())->deleteVirtualDisk();
    426 
     411            pWizard->deleteVirtualDisk();
     412    }
    427413    endProcessing();
    428414
     
    444430        m_pFixedCheckBox->setEnabled(fEnable);
    445431}
     432
     433void UIWizardNewVMPageBasic4::setVirtualDiskFromDiskCombo()
     434{
     435    QUuid currentId;
     436    UIWizardNewVM *pWizard = wizardImp();
     437    AssertReturnVoid(pWizard);
     438    if (!pWizard->virtualDisk().isNull())
     439        currentId = pWizard->virtualDisk().GetId();
     440    QUuid id = m_pDiskSelector->id();
     441    /* Do nothing else if m_virtualMedium is already set to what combobox has: */
     442    if (id == currentId)
     443        return;
     444    if (m_pDiskSelector)
     445    {
     446        CMedium medium = uiCommon().medium(id).medium();
     447        if (!medium.isNull())
     448            pWizard->setVirtualDisk(medium);
     449    }
     450}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic4.h

    r87981 r88001  
    4949public:
    5050
    51     const CMedium &virtualDisk() const { return m_virtualDisk; }
    52     void setVirtualDisk(const CMedium &virtualDisk) { m_virtualDisk = virtualDisk; }
    5351
    5452protected:
     
    6664
    6765    void setEnableDiskSelectionWidgets(bool fEnable);
    68     void setVirtualDiskFromDiskCombo();
    6966    bool m_fRecommendedNoDisk;
    70 
    71     /** @name Variables
    72      * @{ */
    73        CMedium m_virtualDisk;
    74     /** @} */
    7567
    7668    /** @name Widgets
     
    9385{
    9486    Q_OBJECT;
    95     Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);
    9687    Q_PROPERTY(SelectedDiskSource selectedDiskSource READ selectedDiskSource WRITE setSelectedDiskSource);
    9788    Q_PROPERTY(CMediumFormat mediumFormat READ mediumFormat);
     
    111102
    112103    /** Wrapper to access 'wizard' from base part. */
    113     UIWizard *wizardImp() const { return wizard(); }
     104    UIWizardNewVM *wizardImp() const { return qobject_cast<UIWizardNewVM*>(wizard()); }
    114105    /** Wrapper to access 'this' from base part. */
    115106    UIWizardPage* thisImp() { return this; }
     
    133124    void cleanupPage();
    134125    void setEnableNewDiskWidgets(bool fEnable);
     126    void setVirtualDiskFromDiskCombo();
    135127
    136128    bool isComplete() const;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp

    r88000 r88001  
    102102    registerField("mediumSize", this, "mediumSize");
    103103    registerField("selectedDiskSource", this, "selectedDiskSource");
    104     registerField("virtualDisk", this, "virtualDisk");
    105104    registerField("mediumVariant", this, "mediumVariant");
    106105
     
    553552
    554553    startProcessing();
     554    UIWizardNewVM *pWizard = wizardImp();
     555    AssertReturn(pWizard, false);
    555556    if (selectedDiskSource() == SelectedDiskSource_New)
    556557    {
    557558        /* Try to create the hard drive:*/
    558         fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVirtualDisk();
     559        fResult = pWizard->createVirtualDisk();
    559560        /*Don't show any error message here since UIWizardNewVM::createVirtualDisk already does so: */
    560561        if (!fResult)
     
    562563    }
    563564
    564     fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVM();
     565    fResult = pWizard->createVM();
    565566    /* Try to delete the hard disk: */
    566567    if (!fResult)
    567         qobject_cast<UIWizardNewVM*>(wizard())->deleteVirtualDisk();
     568        pWizard->deleteVirtualDisk();
    568569
    569570    endProcessing();
     
    574575bool UIWizardNewVMPageExpert::isProductKeyWidgetEnabled() const
    575576{
    576     UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
    577     if (!pWizard || !pWizard->isUnattendedEnabled() || !pWizard->isGuestOSTypeWindows())
     577    UIWizardNewVM *pWizard = wizardImp();
     578    AssertReturn(pWizard, false);
     579    if (!pWizard->isUnattendedEnabled() || !pWizard->isGuestOSTypeWindows())
    578580        return false;
    579581    return true;
     
    687689        m_pLocationOpenButton->setEnabled(fEnable);
    688690}
     691
     692void UIWizardNewVMPageExpert::setVirtualDiskFromDiskCombo()
     693{
     694    QUuid currentId;
     695    UIWizardNewVM *pWizard = wizardImp();
     696    AssertReturnVoid(pWizard);
     697    if (!pWizard->virtualDisk().isNull())
     698        currentId = pWizard->virtualDisk().GetId();
     699    QUuid id = m_pDiskSelector->id();
     700    /* Do nothing else if m_virtualMedium is already set to what combobox has: */
     701    if (id == currentId)
     702        return;
     703    if (m_pDiskSelector)
     704    {
     705        CMedium medium = uiCommon().medium(id).medium();
     706        if (!medium.isNull())
     707            pWizard->setVirtualDisk(medium);
     708    }
     709}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h

    r87982 r88001  
    6666    Q_PROPERTY(bool EFIEnabled READ EFIEnabled);
    6767
    68 
    69     Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);
    7068    Q_PROPERTY(SelectedDiskSource selectedDiskSource READ selectedDiskSource WRITE setSelectedDiskSource);
    7169    Q_PROPERTY(CMediumFormat mediumFormat READ mediumFormat);
     
    8280
    8381    /** Wrapper to access 'wizard' from base part. */
    84     UIWizard *wizardImp() const { return wizard(); }
     82    UIWizardNewVM *wizardImp() const { return qobject_cast<UIWizardNewVM*>(wizard()); }
    8583    /** Wrapper to access 'this' from base part. */
    8684    UIWizardPage* thisImp() { return this; }
     
    140138    void updateWidgetAterMediumFormatChange();
    141139    void setEnableNewDiskWidgets(bool fEnable);
     140    void setVirtualDiskFromDiskCombo();
    142141
    143142    UIToolBox  *m_pToolBox;
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