- Timestamp:
- Jun 22, 2020 9:16:52 AM (5 years ago)
- 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 610 610 pWizard->prepare(); 611 611 612 CUnattended comUnattendedInstaller = uiCommon().virtualBox().CreateUnattendedInstaller(); 613 AssertMsg(!comUnattendedInstaller.isNull(), ("Could not create unattended installer!\n")); 614 612 615 /* Execute wizard: */ 613 616 pWizard->exec(); 614 617 615 618 /* 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(); 620 620 621 621 delete pWizard; 622 622 /* Handle unattended install stuff: */ 623 if ( fUnattendedEnabled)624 startUnattendedInstall( uMachineUid, strISOPath, fStartHeadless);623 if (unattendedInstallData.m_fUnattendedEnabled) 624 startUnattendedInstall(comUnattendedInstaller, unattendedInstallData); 625 625 } 626 626 /* For cloud machine: */ … … 1871 1871 } 1872 1872 1873 void UIVirtualBoxManager::startUnattendedInstall( const QUuid &uMachineUid, const QString &strISOPath, bool fStartHeadless)1873 void UIVirtualBoxManager::startUnattendedInstall(CUnattended &comUnattendedInstaller, const UIUnattendedInstallData &unattendedData) 1874 1874 { 1875 1875 CVirtualBox comVBox = uiCommon().virtualBox(); 1876 CMachine comMachine = comVBox.FindMachine(u MachineUid.toString());1876 CMachine comMachine = comVBox.FindMachine(unattendedData.m_uMachineUid.toString()); 1877 1877 if (comMachine.isNull()) 1878 1878 return; 1879 1879 1880 if (!QFileInfo( strISOPath).exists())1880 if (!QFileInfo(unattendedData.m_strISOPath).exists()) 1881 1881 { 1882 1882 /// @todo Show a relavant error message here … … 1884 1884 } 1885 1885 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); 1890 1887 checkUnattendedInstallError(comUnattendedInstaller); 1891 1888 comUnattendedInstaller.SetMachine(comMachine); … … 1899 1896 1900 1897 UICommon::LaunchMode enmLaunchMode = UICommon::LaunchMode_Default; 1901 if ( fStartHeadless)1898 if (unattendedData.m_fStartHeadless) 1902 1899 enmLaunchMode = UICommon::LaunchMode_Headless; 1903 1900 uiCommon().launchMachine(comMachine, enmLaunchMode); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
r84869 r84890 36 36 class UIAction; 37 37 class UIActionPool; 38 class UIUnattendedInstallData; 38 39 class UIVirtualBoxManagerWidget; 39 40 class UIVirtualMachineItem; … … 336 337 void openAddMachineDialog(const QString &strFileName = QString()); 337 338 /** 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); 339 340 /** @} */ 340 341 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
r84889 r84890 40 40 41 41 42 UIUnattendedInstallData::UIUnattendedInstallData() 43 : m_fUnattendedEnabled(false) 44 , m_fStartHeadless(false) 45 { 46 } 47 42 48 UIWizardNewVM::UIWizardNewVM(QWidget *pParent, const QString &strGroup /* = QString() */) 43 49 : UIWizard(pParent, WizardType_NewVM) … … 72 78 setPage(PageUnattended, new UIWizardNewVMPageBasicUnattended); 73 79 setPage(PageNameType, new UIWizardNewVMPageBasicNameType(m_strGroup)); 80 setPage(PageInstallSetup, new UIWizardNewVMPageBasicInstallSetup); 74 81 setPage(PageHardware, new UIWizardNewVMPageBasicHardware); 75 82 setPage(PageDisk, new UIWizardNewVMPageBasicDisk); 76 set Page(PageInstallSetup, new UIWizardNewVMPageBasicInstallSetup);83 setStartId(PageUnattended); 77 84 break; 78 85 } … … 375 382 } 376 383 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 // } 402 411 403 412 void UIWizardNewVM::sltHandleWizardCancel() … … 502 511 } 503 512 504 QString UIWizardNewVM::unattendedISOFilePath() const513 const UIUnattendedInstallData &UIWizardNewVM::unattendedInstallData() const 505 514 { 506 515 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; 510 530 } 511 531 … … 517 537 return fieldValue.toBool(); 518 538 } 519 520 bool UIWizardNewVM::startHeadless() const521 {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 29 29 #include "CMachine.h" 30 30 31 /* New Virtual Machine wizard: */ 31 /** Container for unattended install related data. */ 32 struct 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: */ 32 44 class UIWizardNewVM : public UIWizard 33 45 { … … 41 53 PageUnattended, 42 54 PageNameType, 55 PageInstallSetup, 43 56 PageHardware, 44 57 PageDisk, 45 PageInstallSetup,46 58 PageMax 47 59 }; … … 61 73 /** Returns the Id of newly created VM. */ 62 74 QUuid createdMachineId() const; 63 QString unattendedISOFilePath() const;75 const UIUnattendedInstallData &unattendedInstallData() const; 64 76 bool isUnattendedInstallEnabled() const; 65 bool startHeadless() const;66 77 67 78 protected: … … 73 84 /* Attaches default devices: */ 74 85 bool attachDefaultDevices(const CGuestOSType &comGuestType); 75 virtual int nextId() const /* override */;86 //virtual int nextId() const /* override */; 76 87 77 88 /* Who will be able to create virtual-machine: */ … … 88 99 void retranslateUi(); 89 100 101 90 102 /* Helping stuff: */ 91 103 QString getNextControllerName(KStorageBus type); … … 100 112 int m_iSASCount; 101 113 int m_iUSBCount; 114 115 mutable UIUnattendedInstallData m_unattendedInstallData; 102 116 }; 103 117 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicInstallSetup.cpp
r84889 r84890 126 126 } 127 127 128 129 128 /* Register fields: */ 130 registerField("baseMemory", this, "baseMemory");131 registerField("VCPUCount", this, "VCPUCount");129 // registerField("baseMemory", this, "baseMemory"); 130 // registerField("VCPUCount", this, "VCPUCount"); 132 131 } 133 132 … … 141 140 m_pLabel->setText(UIWizardNewVM::tr("<p>Here you can specify the user name/password and time zone. " 142 141 "The values you enter here will be used during the unattended install.</p>")); 143 144 142 } 145 143 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicNameType.cpp
r84886 r84890 345 345 } 346 346 347 int 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 347 355 void UIWizardNewVMPageBasicNameType::sltNameChanged(const QString &strNewName) 348 356 { -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasicNameType.h
r84886 r84890 93 93 /* Constructor: */ 94 94 UIWizardNewVMPageBasicNameType(const QString &strGroup); 95 virtual int nextId() const /* override */; 95 96 96 97 protected:
Note:
See TracChangeset
for help on using the changeset viewer.