Changeset 88001 in vbox
- Timestamp:
- Mar 8, 2021 10:50:59 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143124
- 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 136 136 * but in that special case VM was not registered yet, so UIExtraDataManager is unaware of it: */ 137 137 if (!isUnattendedEnabled() && 138 (!field("virtualDisk").value<CMedium>().isNull()))138 !m_virtualDisk.isNull()) 139 139 m_machine.SetExtraData(GUI_FirstRun, "yes"); 140 140 } … … 187 187 188 188 /* 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); 190 190 if (!vbox.isOk()) 191 191 { … … 204 204 205 205 /* 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); 210 210 return false; 211 211 } … … 222 222 223 223 /* Inform UICommon about it: */ 224 uiCommon().createMedium(UIMedium( virtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));224 uiCommon().createMedium(UIMedium(newVirtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created)); 225 225 226 226 /* Remember created virtual-disk: */ 227 setVirtualDisk(virtualDisk);227 m_virtualDisk = newVirtualDisk; 228 228 229 229 return true; … … 232 232 void UIWizardNewVM::deleteVirtualDisk() 233 233 { 234 CMedium comDisk = virtualDisk();235 234 /* Make sure virtual-disk valid: */ 236 if ( comDisk.isNull())235 if (m_virtualDisk.isNull()) 237 236 return; 238 237 239 238 /* Remember virtual-disk attributes: */ 240 QString strLocation = comDisk.GetLocation();239 QString strLocation = m_virtualDisk.GetLocation(); 241 240 /* Prepare delete storage progress: */ 242 CProgress progress = comDisk.DeleteStorage();243 if ( comDisk.isOk())241 CProgress progress = m_virtualDisk.DeleteStorage(); 242 if (m_virtualDisk.isOk()) 244 243 { 245 244 /* Show delete storage progress: */ … … 249 248 } 250 249 else 251 msgCenter().cannotDeleteHardDiskStorage( comDisk, strLocation, this);250 msgCenter().cannotDeleteHardDiskStorage(m_virtualDisk, strLocation, this); 252 251 253 252 /* Detach virtual-disk anyway: */ 254 comDisk.detach();253 m_virtualDisk.detach(); 255 254 } 256 255 … … 410 409 { 411 410 CMachine machine = session.GetMachine(); 412 CMedium vmedium = virtualDisk(); 413 if (!vmedium.isNull()) 411 if (!m_virtualDisk.isNull()) 414 412 { 415 413 KStorageBus enmHDDBus = comGuestType.GetRecommendedHDStorageBus(); … … 417 415 if (!comHDDController.isNull()) 418 416 { 419 machine.AttachDevice(comHDDController.GetName(), 0, 0, KDeviceType_HardDisk, vmedium);417 machine.AttachDevice(comHDDController.GetName(), 0, 0, KDeviceType_HardDisk, m_virtualDisk); 420 418 if (!machine.isOk()) 421 msgCenter().cannotAttachDevice(machine, UIMediumDeviceType_HardDisk, field(" virtualDiskLocation").toString(),419 msgCenter().cannotAttachDevice(machine, UIMediumDeviceType_HardDisk, field("mediumPath").toString(), 422 420 StorageSlot(enmHDDBus, 0, 0), this); 423 421 } … … 473 471 474 472 /* 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(); 477 475 478 476 return true; … … 625 623 } 626 624 627 CMedium UIWizardNewVM::virtualDisk() const 628 { 629 UIWizardNewVMPageBasic4 *pPage = qobject_cast<UIWizardNewVMPageBasic4*>(page(Page4)); 630 AssertPtrReturn(pPage, CMedium()); 631 return pPage->virtualDisk(); 625 CMedium &UIWizardNewVM::virtualDisk() 626 { 627 return m_virtualDisk; 632 628 } 633 629 634 630 void UIWizardNewVM::setVirtualDisk(const CMedium &medium) 635 631 { 636 UIWizardNewVMPageBasic4 *pPage = qobject_cast<UIWizardNewVMPageBasic4*>(page(Page4)); 637 AssertPtrReturnVoid(pPage); 638 pPage->setVirtualDisk(medium); 632 m_virtualDisk == medium; 639 633 } 640 634 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
r88000 r88001 96 96 bool isUnattendedEnabled() const; 97 97 bool isGuestOSTypeWindows() const; 98 CMedium &virtualDisk(); 99 void setVirtualDisk(const CMedium &medium); 98 100 99 101 protected: … … 130 132 void setFieldsFromDefaultUnttendedInstallData(); 131 133 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 /** @} */ 146 147 }; 147 148 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic4.cpp
r88000 r88001 101 101 m_pDiskSelector->setEnabled(fEnabled); 102 102 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 }120 103 } 121 104 … … 167 150 qRegisterMetaType<CMedium>(); 168 151 qRegisterMetaType<SelectedDiskSource>(); 169 registerField("virtualDisk", this, "virtualDisk");170 152 registerField("selectedDiskSource", this, "selectedDiskSource"); 171 153 … … 368 350 if (selectedDiskSource() == SelectedDiskSource_New) 369 351 return mediumSize() >= m_uMediumSizeMin && mediumSize() <= m_uMediumSizeMax; 370 352 UIWizardNewVM *pWizard = wizardImp(); 353 AssertReturn(pWizard, false); 371 354 if (selectedDiskSource() == SelectedDiskSource_Existing) 372 return ! m_virtualDisk.isNull();355 return !pWizard->virtualDisk().isNull(); 373 356 374 357 return true; … … 411 394 412 395 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: */ 418 410 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 } 427 413 endProcessing(); 428 414 … … 444 430 m_pFixedCheckBox->setEnabled(fEnable); 445 431 } 432 433 void 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 49 49 public: 50 50 51 const CMedium &virtualDisk() const { return m_virtualDisk; }52 void setVirtualDisk(const CMedium &virtualDisk) { m_virtualDisk = virtualDisk; }53 51 54 52 protected: … … 66 64 67 65 void setEnableDiskSelectionWidgets(bool fEnable); 68 void setVirtualDiskFromDiskCombo();69 66 bool m_fRecommendedNoDisk; 70 71 /** @name Variables72 * @{ */73 CMedium m_virtualDisk;74 /** @} */75 67 76 68 /** @name Widgets … … 93 85 { 94 86 Q_OBJECT; 95 Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);96 87 Q_PROPERTY(SelectedDiskSource selectedDiskSource READ selectedDiskSource WRITE setSelectedDiskSource); 97 88 Q_PROPERTY(CMediumFormat mediumFormat READ mediumFormat); … … 111 102 112 103 /** Wrapper to access 'wizard' from base part. */ 113 UIWizard *wizardImp() const { return wizard(); }104 UIWizardNewVM *wizardImp() const { return qobject_cast<UIWizardNewVM*>(wizard()); } 114 105 /** Wrapper to access 'this' from base part. */ 115 106 UIWizardPage* thisImp() { return this; } … … 133 124 void cleanupPage(); 134 125 void setEnableNewDiskWidgets(bool fEnable); 126 void setVirtualDiskFromDiskCombo(); 135 127 136 128 bool isComplete() const; -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp
r88000 r88001 102 102 registerField("mediumSize", this, "mediumSize"); 103 103 registerField("selectedDiskSource", this, "selectedDiskSource"); 104 registerField("virtualDisk", this, "virtualDisk");105 104 registerField("mediumVariant", this, "mediumVariant"); 106 105 … … 553 552 554 553 startProcessing(); 554 UIWizardNewVM *pWizard = wizardImp(); 555 AssertReturn(pWizard, false); 555 556 if (selectedDiskSource() == SelectedDiskSource_New) 556 557 { 557 558 /* Try to create the hard drive:*/ 558 fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVirtualDisk();559 fResult = pWizard->createVirtualDisk(); 559 560 /*Don't show any error message here since UIWizardNewVM::createVirtualDisk already does so: */ 560 561 if (!fResult) … … 562 563 } 563 564 564 fResult = qobject_cast<UIWizardNewVM*>(wizard())->createVM();565 fResult = pWizard->createVM(); 565 566 /* Try to delete the hard disk: */ 566 567 if (!fResult) 567 qobject_cast<UIWizardNewVM*>(wizard())->deleteVirtualDisk();568 pWizard->deleteVirtualDisk(); 568 569 569 570 endProcessing(); … … 574 575 bool UIWizardNewVMPageExpert::isProductKeyWidgetEnabled() const 575 576 { 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()) 578 580 return false; 579 581 return true; … … 687 689 m_pLocationOpenButton->setEnabled(fEnable); 688 690 } 691 692 void 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 66 66 Q_PROPERTY(bool EFIEnabled READ EFIEnabled); 67 67 68 69 Q_PROPERTY(CMedium virtualDisk READ virtualDisk WRITE setVirtualDisk);70 68 Q_PROPERTY(SelectedDiskSource selectedDiskSource READ selectedDiskSource WRITE setSelectedDiskSource); 71 69 Q_PROPERTY(CMediumFormat mediumFormat READ mediumFormat); … … 82 80 83 81 /** Wrapper to access 'wizard' from base part. */ 84 UIWizard *wizardImp() const { return wizard(); }82 UIWizardNewVM *wizardImp() const { return qobject_cast<UIWizardNewVM*>(wizard()); } 85 83 /** Wrapper to access 'this' from base part. */ 86 84 UIWizardPage* thisImp() { return this; } … … 140 138 void updateWidgetAterMediumFormatChange(); 141 139 void setEnableNewDiskWidgets(bool fEnable); 140 void setVirtualDiskFromDiskCombo(); 142 141 143 142 UIToolBox *m_pToolBox;
Note:
See TracChangeset
for help on using the changeset viewer.