Changeset 38102 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Jul 21, 2011 4:06:30 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 73052
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 1 added
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/VBoxUI.pro
r37544 r38102 51 51 src/wizards/clonevm/UICloneVMWizardPage1.ui \ 52 52 src/wizards/clonevm/UICloneVMWizardPage2.ui \ 53 src/wizards/clonevm/UICloneVMWizardPage3.ui \ 53 54 src/wizards/newvm/UINewVMWzdPage1.ui \ 54 55 src/wizards/newvm/UINewVMWzdPage2.ui \ -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp
r38099 r38102 31 31 #include "iprt/path.h" 32 32 33 UICloneVMWizard::UICloneVMWizard(QWidget *pParent, CMachine machine, bool fShowChildsOption /* = true*/)33 UICloneVMWizard::UICloneVMWizard(QWidget *pParent, CMachine machine, CSnapshot snapshot /* = CSnapshot() */) 34 34 : QIWizard(pParent) 35 35 , m_machine(machine) 36 36 { 37 37 /* Create & add pages: */ 38 addPage(new UICloneVMWizardPage1(machine.GetName())); 38 setPage(PageIntro, new UICloneVMWizardPage1(machine.GetName())); 39 /* If we are having a snapshot we can show the "Linked" option. */ 40 if (!snapshot.isNull()) 41 setPage(PageType, new UICloneVMWizardPage2()); 39 42 /* If the machine has no snapshots, we don't bother the user about options 40 43 * for it. */ 41 44 if (machine.GetSnapshotCount() > 0) 42 addPage(new UICloneVMWizardPage2(fShowChildsOption));45 setPage(PageMode, new UICloneVMWizardPage3(snapshot.isNull() ? false : snapshot.GetChildrenCount() > 0)); 43 46 44 47 /* Translate wizard: */ … … 69 72 } 70 73 71 bool UICloneVMWizard::createClone(const QString &strName, KCloneMode mode, bool fReinitMACs )74 bool UICloneVMWizard::createClone(const QString &strName, KCloneMode mode, bool fReinitMACs, bool fLinked /* = false */) 72 75 { 73 76 CVirtualBox vbox = vboxGlobal().virtualBox(); … … 86 89 if (!fReinitMACs) 87 90 options.append(KCloneOptions_KeepAllMACs); 91 /* Linked clones requested? */ 92 if (fLinked) 93 options.append(KCloneOptions_Link); 88 94 89 95 /* Start cloning. */ … … 192 198 } 193 199 194 UICloneVMWizardPage2::UICloneVMWizardPage2(bool fShowChildsOption /* = true */) 195 : m_fShowChildsOption(fShowChildsOption) 200 UICloneVMWizardPage2::UICloneVMWizardPage2() 196 201 { 197 202 /* Decorate page: */ 198 203 Ui::UICloneVMWizardPage2::setupUi(this); 199 204 205 QButtonGroup *pButtonGroup = new QButtonGroup(this); 206 pButtonGroup->addButton(m_pFullCloneRadio); 207 pButtonGroup->addButton(m_pLinkedCloneRadio); 208 209 connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton *)), 210 this, SLOT(buttonClicked(QAbstractButton *))); 211 } 212 213 void UICloneVMWizardPage2::buttonClicked(QAbstractButton *pButton) 214 { 215 setFinalPage(pButton != m_pFullCloneRadio); 216 } 217 218 void UICloneVMWizardPage2::retranslateUi() 219 { 220 /* Translate uic generated strings: */ 221 Ui::UICloneVMWizardPage2::retranslateUi(this); 222 223 /* Set 'Page2' page title: */ 224 setTitle(tr("Cloning Configuration")); 225 } 226 227 void UICloneVMWizardPage2::initializePage() 228 { 229 /* Retranslate page: */ 230 retranslateUi(); 231 } 232 233 int UICloneVMWizardPage2::nextId() const 234 { 235 return m_pFullCloneRadio->isChecked() ? UICloneVMWizard::PageMode : -1; 236 } 237 238 bool UICloneVMWizardPage2::validatePage() 239 { 240 if (isFinalPage()) 241 { 242 /* Start performing long-time operation: */ 243 startProcessing(); 244 /* Try to create the clone: */ 245 QString strName = field("cloneName").toString(); 246 bool fReinitMACs = field("reinitMACs").toBool(); 247 bool fResult = static_cast<UICloneVMWizard*>(wizard())->createClone(strName, KCloneMode_MachineState, fReinitMACs, true); 248 /* Finish performing long-time operation: */ 249 endProcessing(); 250 /* Return operation result: */ 251 return fResult; 252 } 253 else 254 return true; 255 } 256 257 UICloneVMWizardPage3::UICloneVMWizardPage3(bool fShowChildsOption /* = true */) 258 : m_fShowChildsOption(fShowChildsOption) 259 { 260 /* Decorate page: */ 261 Ui::UICloneVMWizardPage3::setupUi(this); 262 200 263 if (!fShowChildsOption) 201 264 m_pMachineAndChildsRadio->hide(); 202 265 } 203 266 204 void UICloneVMWizardPage 2::retranslateUi()267 void UICloneVMWizardPage3::retranslateUi() 205 268 { 206 269 /* Translate uic generated strings: */ 207 Ui::UICloneVMWizardPage 2::retranslateUi(this);208 209 /* Set 'Page 2' page title: */270 Ui::UICloneVMWizardPage3::retranslateUi(this); 271 272 /* Set 'Page3' page title: */ 210 273 setTitle(tr("Cloning Configuration")); 211 274 … … 227 290 } 228 291 229 void UICloneVMWizardPage 2::initializePage()292 void UICloneVMWizardPage3::initializePage() 230 293 { 231 294 /* Retranslate page: */ … … 233 296 } 234 297 235 bool UICloneVMWizardPage 2::validatePage()298 bool UICloneVMWizardPage3::validatePage() 236 299 { 237 300 /* Start performing long-time operation: */ … … 247 310 } 248 311 249 KCloneMode UICloneVMWizardPage 2::cloneMode() const312 KCloneMode UICloneVMWizardPage3::cloneMode() const 250 313 { 251 314 if (m_pMachineRadio->isChecked()) … … 256 319 } 257 320 258 void UICloneVMWizardPage 2::setCloneMode(KCloneMode mode)321 void UICloneVMWizardPage3::setCloneMode(KCloneMode mode) 259 322 { 260 323 switch(mode) -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.h
r37899 r38102 27 27 #include "UICloneVMWizardPage1.gen.h" 28 28 #include "UICloneVMWizardPage2.gen.h" 29 #include "UICloneVMWizardPage3.gen.h" 29 30 30 31 /* Clone vm wizard class: */ … … 35 36 public: 36 37 38 enum 39 { 40 PageIntro, 41 PageType, 42 PageMode 43 }; 44 37 45 /* Constructor: */ 38 UICloneVMWizard(QWidget *pParent, CMachine machine, bool fShowChildsOption = true);46 UICloneVMWizard(QWidget *pParent, CMachine machine, CSnapshot snapshot = CSnapshot()); 39 47 40 bool createClone(const QString &strName, KCloneMode mode, bool fReinitMACs );48 bool createClone(const QString &strName, KCloneMode mode, bool fReinitMACs, bool fLinked = false); 41 49 42 50 private: … … 108 116 { 109 117 Q_OBJECT; 118 119 public: 120 121 /* Constructor: */ 122 UICloneVMWizardPage2(); 123 int nextId() const; 124 125 protected: 126 127 /* Translation stuff: */ 128 void retranslateUi(); 129 130 /* Prepare page: */ 131 void initializePage(); 132 133 bool validatePage(); 134 135 private slots: 136 137 void buttonClicked(QAbstractButton *pButton); 138 }; 139 140 /* Page3 of the new clonevm wizard: */ 141 class UICloneVMWizardPage3 : public UICloneVMWizardPage, public Ui::UICloneVMWizardPage3 142 { 143 Q_OBJECT; 110 144 Q_PROPERTY(KCloneMode cloneMode READ cloneMode WRITE setCloneMode); 111 145 … … 113 147 114 148 /* Constructor: */ 115 UICloneVMWizardPage 2(bool fShowChildsOption = true);149 UICloneVMWizardPage3(bool fShowChildsOption = true); 116 150 117 151 protected: -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizardPage3.ui
r38089 r38102 14 14 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 15 15 </comment> 16 <class>UICloneVMWizardPage 2</class>17 <widget class="QWidget" name="UICloneVMWizardPage 2">16 <class>UICloneVMWizardPage3</class> 17 <widget class="QWidget" name="UICloneVMWizardPage3"> 18 18 <property name="geometry"> 19 19 <rect>
Note:
See TracChangeset
for help on using the changeset viewer.