VirtualBox

Changeset 84890 in vbox for trunk


Ignore:
Timestamp:
Jun 22, 2020 9:16:52 AM (5 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9515. Some fixes

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp

    r84871 r84890  
    610610        pWizard->prepare();
    611611
     612        CUnattended comUnattendedInstaller = uiCommon().virtualBox().CreateUnattendedInstaller();
     613        AssertMsg(!comUnattendedInstaller.isNull(), ("Could not create unattended installer!\n"));
     614
    612615        /* Execute wizard: */
    613616        pWizard->exec();
    614617
    615618        /* Cache unattended install related info and delete the wizard before handling the unattended install stuff: */
    616         bool fUnattendedEnabled = pWizard->isUnattendedInstallEnabled();
    617         QUuid uMachineUid = pWizard->createdMachineId();
    618         QString strISOPath = pWizard->unattendedISOFilePath();
    619         bool fStartHeadless = pWizard->startHeadless();
     619        UIUnattendedInstallData unattendedInstallData = pWizard->unattendedInstallData();
    620620
    621621        delete pWizard;
    622622        /* Handle unattended install stuff: */
    623         if (fUnattendedEnabled)
    624             startUnattendedInstall(uMachineUid, strISOPath, fStartHeadless);
     623        if (unattendedInstallData.m_fUnattendedEnabled)
     624            startUnattendedInstall(comUnattendedInstaller, unattendedInstallData);
    625625    }
    626626    /* For cloud machine: */
     
    18711871}
    18721872
    1873 void UIVirtualBoxManager::startUnattendedInstall(const QUuid &uMachineUid, const QString &strISOPath, bool fStartHeadless)
     1873void UIVirtualBoxManager::startUnattendedInstall(CUnattended &comUnattendedInstaller, const UIUnattendedInstallData &unattendedData)
    18741874{
    18751875    CVirtualBox comVBox = uiCommon().virtualBox();
    1876     CMachine comMachine = comVBox.FindMachine(uMachineUid.toString());
     1876    CMachine comMachine = comVBox.FindMachine(unattendedData.m_uMachineUid.toString());
    18771877    if (comMachine.isNull())
    18781878        return;
    18791879
    1880     if (!QFileInfo(strISOPath).exists())
     1880    if (!QFileInfo(unattendedData.m_strISOPath).exists())
    18811881    {
    18821882        /// @todo Show a relavant error message here
     
    18841884    }
    18851885
    1886     CUnattended comUnattendedInstaller = comVBox.CreateUnattendedInstaller();
    1887     AssertMsgReturnVoid(!comUnattendedInstaller.isNull(), ("Could not create unattended installer!\n"));
    1888 
    1889     comUnattendedInstaller.SetIsoPath(strISOPath);
     1886    comUnattendedInstaller.SetIsoPath(unattendedData.m_strISOPath);
    18901887    checkUnattendedInstallError(comUnattendedInstaller);
    18911888    comUnattendedInstaller.SetMachine(comMachine);
     
    18991896
    19001897    UICommon::LaunchMode enmLaunchMode = UICommon::LaunchMode_Default;
    1901     if (fStartHeadless)
     1898    if (unattendedData.m_fStartHeadless)
    19021899        enmLaunchMode = UICommon::LaunchMode_Headless;
    19031900    uiCommon().launchMachine(comMachine, enmLaunchMode);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h

    r84869 r84890  
    3636class UIAction;
    3737class UIActionPool;
     38class UIUnattendedInstallData;
    3839class UIVirtualBoxManagerWidget;
    3940class UIVirtualMachineItem;
     
    336337        void openAddMachineDialog(const QString &strFileName = QString());
    337338       /** Creates an uattended installer and uses that to install guest os to newly created vm. */
    338        void startUnattendedInstall(const QUuid &uMachineUid, const QString &strISOPath, bool fStartHeadless);
     339        void startUnattendedInstall(CUnattended &comUnattendedInstaller, const UIUnattendedInstallData &unattendedData);
    339340    /** @} */
    340341
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp

    r84889 r84890  
    4040
    4141
     42UIUnattendedInstallData::UIUnattendedInstallData()
     43    : m_fUnattendedEnabled(false)
     44    , m_fStartHeadless(false)
     45{
     46}
     47
    4248UIWizardNewVM::UIWizardNewVM(QWidget *pParent, const QString &strGroup /* = QString() */)
    4349    : UIWizard(pParent, WizardType_NewVM)
     
    7278            setPage(PageUnattended, new UIWizardNewVMPageBasicUnattended);
    7379            setPage(PageNameType, new UIWizardNewVMPageBasicNameType(m_strGroup));
     80            setPage(PageInstallSetup, new UIWizardNewVMPageBasicInstallSetup);
    7481            setPage(PageHardware, new UIWizardNewVMPageBasicHardware);
    7582            setPage(PageDisk, new UIWizardNewVMPageBasicDisk);
    76             setPage(PageInstallSetup, new UIWizardNewVMPageBasicInstallSetup);
     83            setStartId(PageUnattended);
    7784            break;
    7885        }
     
    375382}
    376383
    377 int UIWizardNewVM::nextId() const
    378 {
    379     switch (currentId())
    380     {
    381         case PageUnattended:
    382             return PageNameType;
    383             break;
    384         case PageNameType:
    385             if (!isUnattendedInstallEnabled())
    386                 return PageHardware;
    387             else
    388                 return PageInstallSetup;
    389             break;
    390         case PageHardware:
    391             return PageDisk;
    392             break;
    393         case PageDisk:
    394             return UIWizard::nextId();
    395         case PageMax:
    396         default:
    397             return PageUnattended;
    398             break;
    399     }
    400     return UIWizard::nextId();
    401 }
     384// int UIWizardNewVM::nextId() const
     385// {
     386//     switch (currentId())
     387//     {
     388//         case PageUnattended:
     389//             return PageNameType;
     390//             break;
     391//         case PageNameType:
     392//             if (!isUnattendedInstallEnabled())
     393//                 return PageHardware;
     394//             else
     395//                 return PageInstallSetup;
     396//             break;
     397//         case PageInstallSetup:
     398//                 return PageHardware;
     399//         case PageHardware:
     400//             return PageDisk;
     401//             break;
     402//         case PageDisk:
     403//             return UIWizard::nextId();
     404//         case PageMax:
     405//         default:
     406//             return PageUnattended;
     407//             break;
     408//     }
     409//     return UIWizard::nextId();
     410// }
    402411
    403412void UIWizardNewVM::sltHandleWizardCancel()
     
    502511}
    503512
    504 QString UIWizardNewVM::unattendedISOFilePath() const
     513const UIUnattendedInstallData &UIWizardNewVM::unattendedInstallData() const
    505514{
    506515    QVariant fieldValue = field("ISOFilePath");
    507     if (fieldValue.isNull() || !fieldValue.isValid() || !fieldValue.canConvert(QMetaType::QString))
    508         return QString();
    509     return fieldValue.toString();
     516    if (!fieldValue.isNull() && fieldValue.isValid() && fieldValue.canConvert(QMetaType::QString))
     517        m_unattendedInstallData.m_strISOPath = fieldValue.toString();
     518
     519    fieldValue = field("isUnattendedEnabled");
     520    if (!fieldValue.isNull() && fieldValue.isValid() && fieldValue.canConvert(QMetaType::Bool))
     521        m_unattendedInstallData.m_fUnattendedEnabled = fieldValue.toBool();
     522
     523    fieldValue = field("startHeadless");
     524    if (!fieldValue.isNull() && fieldValue.isValid() && fieldValue.canConvert(QMetaType::Bool))
     525        m_unattendedInstallData.m_fStartHeadless = fieldValue.toBool();
     526
     527    m_unattendedInstallData.m_uMachineUid = createdMachineId();
     528
     529    return m_unattendedInstallData;
    510530}
    511531
     
    517537    return fieldValue.toBool();
    518538}
    519 
    520 bool UIWizardNewVM::startHeadless() const
    521 {
    522     QVariant fieldValue = field("startHeadless");
    523     if (fieldValue.isNull() || !fieldValue.isValid() || !fieldValue.canConvert(QMetaType::Bool))
    524         return false;
    525     return fieldValue.toBool();
    526 }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h

    r84889 r84890  
    2929#include "CMachine.h"
    3030
    31 /* New Virtual Machine wizard: */
     31/** Container for unattended install related data. */
     32struct UIUnattendedInstallData
     33{
     34    UIUnattendedInstallData();
     35    bool m_fUnattendedEnabled;
     36    QUuid m_uMachineUid;
     37    QString m_strISOPath;
     38    bool m_fStartHeadless;
     39    QString m_strUserName;
     40    QString m_strPassword;
     41};
     42
     43/** New Virtual Machine wizard: */
    3244class UIWizardNewVM : public UIWizard
    3345{
     
    4153        PageUnattended,
    4254        PageNameType,
     55        PageInstallSetup,
    4356        PageHardware,
    4457        PageDisk,
    45         PageInstallSetup,
    4658        PageMax
    4759    };
     
    6173    /** Returns the Id of newly created VM. */
    6274    QUuid createdMachineId() const;
    63     QString unattendedISOFilePath() const;
     75    const UIUnattendedInstallData &unattendedInstallData() const;
    6476    bool isUnattendedInstallEnabled() const;
    65     bool startHeadless() const;
    6677
    6778protected:
     
    7384    /* Attaches default devices: */
    7485    bool attachDefaultDevices(const CGuestOSType &comGuestType);
    75     virtual int nextId() const /* override */;
     86    //virtual int nextId() const /* override */;
    7687
    7788    /* Who will be able to create virtual-machine: */
     
    8899    void retranslateUi();
    89100
     101
    90102    /* Helping stuff: */
    91103    QString getNextControllerName(KStorageBus type);
     
    100112    int m_iSASCount;
    101113    int m_iUSBCount;
     114
     115    mutable UIUnattendedInstallData m_unattendedInstallData;
    102116};
    103117
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicInstallSetup.cpp

    r84889 r84890  
    126126    }
    127127
    128 
    129128    /* Register fields: */
    130     registerField("baseMemory", this, "baseMemory");
    131     registerField("VCPUCount", this, "VCPUCount");
     129    // registerField("baseMemory", this, "baseMemory");
     130    // registerField("VCPUCount", this, "VCPUCount");
    132131}
    133132
     
    141140        m_pLabel->setText(UIWizardNewVM::tr("<p>Here you can specify the user name/password and time zone. "
    142141                                            "The values you enter here will be used during the unattended install.</p>"));
    143 
    144142}
    145143
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicNameType.cpp

    r84886 r84890  
    345345}
    346346
     347int UIWizardNewVMPageBasicNameType::nextId() const
     348{
     349    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
     350    if (!pWizard || !pWizard->isUnattendedInstallEnabled())
     351        return UIWizardNewVM::PageHardware;
     352    return UIWizardNewVM::PageInstallSetup;
     353}
     354
    347355void UIWizardNewVMPageBasicNameType::sltNameChanged(const QString &strNewName)
    348356{
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicNameType.h

    r84886 r84890  
    9393    /* Constructor: */
    9494    UIWizardNewVMPageBasicNameType(const QString &strGroup);
     95    virtual int nextId() const /* override */;
    9596
    9697protected:
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