VirtualBox

Changeset 90372 in vbox for trunk/src


Ignore:
Timestamp:
Jul 28, 2021 3:30:17 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145953
Message:

FE/Qt: bugref:9996. More fixes for new disk wizard.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/wizards
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.cpp

    r90370 r90372  
    4444    , m_strDefaultPath(strDefaultPath)
    4545    , m_uDefaultSize(uDefaultSize)
     46    , m_iMediumVariantPageIndex(-1)
    4647{
    4748#ifndef VBOX_WS_MAC
     
    7273{
    7374    m_comMediumFormat = mediumFormat;
     75    if (mode() == WizardMode_Basic)
     76        setMediumVariantPageVisibility();
    7477}
    7578
     
    102105        {
    103106            addPage(new UIWizardNewVDPageFileType);
    104             addPage(new UIWizardNewVDPageVariant);
     107            m_iMediumVariantPageIndex = addPage(new UIWizardNewVDPageVariant);
    105108            addPage(new UIWizardNewVDPageSizeLocation(m_strDefaultName, m_strDefaultPath, m_uDefaultSize));
    106109            break;
     
    167170    setWindowTitle(tr("Create Virtual Hard Disk"));
    168171}
     172
     173void UIWizardNewVD::setMediumVariantPageVisibility()
     174{
     175    AssertReturnVoid(!m_comMediumFormat.isNull());
     176    ULONG uCapabilities = 0;
     177    QVector<KMediumFormatCapabilities> capabilities;
     178    capabilities = m_comMediumFormat.GetCapabilities();
     179    for (int i = 0; i < capabilities.size(); i++)
     180        uCapabilities |= capabilities[i];
     181
     182    int cTest = 0;
     183    if (uCapabilities & KMediumFormatCapabilities_CreateDynamic)
     184        ++cTest;
     185    if (uCapabilities & KMediumFormatCapabilities_CreateFixed)
     186        ++cTest;
     187    if (uCapabilities & KMediumFormatCapabilities_CreateSplit2G)
     188        ++cTest;
     189    setPageVisible(m_iMediumVariantPageIndex, cTest > 1);
     190}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.h

    r90370 r90372  
    7272private:
    7373
    74     /* Translation stuff: */
    7574    void retranslateUi();
    76 
     75    /** Check medium capabilities and decide if medium variant page should be hidden. */
     76    void setMediumVariantPageVisibility();
    7777    qulonglong m_uMediumVariant;
    7878    CMediumFormat m_comMediumFormat;
     
    8484    QString     m_strDefaultPath;
    8585    qulonglong  m_uDefaultSize;
     86    int m_iMediumVariantPageIndex;
    8687};
    8788
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageFileType.cpp

    r90370 r90372  
    103103    return true;
    104104}
    105 
    106 // int UIWizardNewVDPageFileType::nextId() const
    107 // {
    108 //     /* Show variant page only if there is something to show: */
    109 //     CMediumFormat mf = mediumFormat();
    110 //     if (mf.isNull())
    111 //     {
    112 //         AssertMsgFailed(("No medium format set!"));
    113 //     }
    114 //     else
    115 //     {
    116 //         ULONG uCapabilities = 0;
    117 //         QVector<KMediumFormatCapabilities> capabilities;
    118 //         capabilities = mf.GetCapabilities();
    119 //         for (int i = 0; i < capabilities.size(); i++)
    120 //             uCapabilities |= capabilities[i];
    121 
    122 //         int cTest = 0;
    123 //         if (uCapabilities & KMediumFormatCapabilities_CreateDynamic)
    124 //             ++cTest;
    125 //         if (uCapabilities & KMediumFormatCapabilities_CreateFixed)
    126 //             ++cTest;
    127 //         if (uCapabilities & KMediumFormatCapabilities_CreateSplit2G)
    128 //             ++cTest;
    129 //         if (cTest > 1)
    130 //             return UIWizardNewVD::Page2;
    131 //     }
    132 //     /* Skip otherwise: */
    133 //     return UIWizardNewVD::Page3;
    134 // }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageVariant.cpp

    r90370 r90372  
    146146    m_pVariantGroupBox = new UIDiskVariantGroupBox(false, 0);
    147147    pMainLayout->addWidget(m_pVariantGroupBox);
    148 
    149148    pMainLayout->addStretch();
    150149
     150    connect(m_pVariantGroupBox, &UIDiskVariantGroupBox::sigMediumVariantChanged,
     151            this, &UIWizardNewVDPageVariant::sltMediumVariantChanged);
    151152    retranslateUi();
    152153
     
    191192    retranslateUi();
    192193    UIWizardNewVD *pWizard = qobject_cast<UIWizardNewVD*>(wizard());
    193     AssertReturnVoid(pWizard);
     194    AssertReturnVoid(pWizard && m_pVariantGroupBox);
    194195    setWidgetVisibility(pWizard->mediumFormat());
     196    newVDWizardPropertySet(MediumVariant, m_pVariantGroupBox->mediumVariant());
    195197}
    196198
    197199bool UIWizardNewVDPageVariant::isComplete() const
    198200{
    199     //return mediumVariant() != (qulonglong)KMediumVariant_Max;
    200     return true;
    201 }
    202 
     201    if (m_pVariantGroupBox && m_pVariantGroupBox->mediumVariant() != (qulonglong)KMediumVariant_Max)
     202        return true;
     203    return false;
     204}
    203205
    204206void UIWizardNewVDPageVariant::setWidgetVisibility(const CMediumFormat &mediumFormat)
     
    215217        m_pSplitLabel->setHidden(!m_pVariantGroupBox->isCreateSplitPossible());
    216218}
     219
     220void UIWizardNewVDPageVariant::sltMediumVariantChanged(qulonglong uVariant)
     221{
     222    newVDWizardPropertySet(MediumVariant, uVariant);
     223}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageVariant.h

    r90370 r90372  
    5858    UIWizardNewVDPageVariant();
    5959
     60private slots:
     61
     62    void sltMediumVariantChanged(qulonglong uVariant);
     63
    6064private:
    6165
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h

    r90157 r90372  
    8282    void deleteVirtualDisk();
    8383
    84 
    8584    CMedium &virtualDisk();
    8685    void setVirtualDisk(const CMedium &medium);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette