void UIWizardCloneVDPageExpert::sltMediumFormatChanged() { /* Get medium format: */ CMediumFormat mf = mediumFormat(); if (mf.isNull()) { AssertMsgFailed(("No medium format set!")); return; } /* Enable/disable widgets: */ ULONG uCapabilities = 0; QVector<KMediumFormatCapabilities> capabilities; capabilities = mf.GetCapabilities(); for (int i = 0; i < capabilities.size(); i++) uCapabilities |= capabilities[i]; bool fIsCreateDynamicPossible = uCapabilities & KMediumFormatCapabilities_CreateDynamic; bool fIsCreateFixedPossible = uCapabilities & KMediumFormatCapabilities_CreateFixed; bool fIsCreateSplitPossible = uCapabilities & KMediumFormatCapabilities_CreateSplit2G; m_pDynamicalButton->setEnabled(fIsCreateDynamicPossible); m_pFixedButton->setEnabled(fIsCreateFixedPossible); m_pSplitBox->setEnabled(fIsCreateSplitPossible); /* Compose virtual-disk extension: */ m_strDefaultExtension = defaultExtension(mf); /* Broadcast complete-change: */ emit completeChanged(); }
int UIWizardNewVDPageBasic1::nextId() const { /* Show variant page only if there is something to show: */ CMediumFormat mf = mediumFormat(); if (mf.isNull()) { AssertMsgFailed(("No medium format set!")); } else { ULONG uCapabilities = 0; QVector<KMediumFormatCapabilities> capabilities; capabilities = mf.GetCapabilities(); for (int i = 0; i < capabilities.size(); i++) uCapabilities |= capabilities[i]; int cTest = 0; if (uCapabilities & KMediumFormatCapabilities_CreateDynamic) ++cTest; if (uCapabilities & KMediumFormatCapabilities_CreateFixed) ++cTest; if (uCapabilities & KMediumFormatCapabilities_CreateSplit2G) ++cTest; if (cTest > 1) return UIWizardNewVD::Page2; } /* Skip otherwise: */ return UIWizardNewVD::Page3; }