VirtualBox

Changeset 87872 in vbox


Ignore:
Timestamp:
Feb 25, 2021 10:55:32 AM (4 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9550. Adding create disk function

Location:
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp

    r87871 r87872  
    3636#include "CBIOSSettings.h"
    3737#include "CGraphicsAdapter.h"
     38#include "CMediumFormat.h"
    3839#include "CUSBController.h"
    3940#include "CUSBDeviceFilters.h"
     
    175176}
    176177
     178bool UIWizardNewVM::createVirtualDisk()
     179{
     180    /* Gather attributes: */
     181    CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();
     182    qulonglong uVariant = field("mediumVariant").toULongLong();
     183    QString strMediumPath = field("mediumPath").toString();
     184    qulonglong uSize = field("mediumSize").toULongLong();
     185    /* Check attributes: */
     186    AssertReturn(!strMediumPath.isNull(), false);
     187    AssertReturn(uSize > 0, false);
     188
     189    /* Get VBox object: */
     190    CVirtualBox vbox = uiCommon().virtualBox();
     191
     192    /* Create new virtual hard-disk: */
     193    CMedium virtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk);
     194    if (!vbox.isOk())
     195    {
     196        msgCenter().cannotCreateHardDiskStorage(vbox, strMediumPath, this);
     197        return false;
     198    }
     199
     200    /* Compose medium-variant: */
     201    QVector<KMediumVariant> variants(sizeof(qulonglong)*8);
     202    for (int i = 0; i < variants.size(); ++i)
     203    {
     204        qulonglong temp = uVariant;
     205        temp &= UINT64_C(1)<<i;
     206        variants[i] = (KMediumVariant)temp;
     207    }
     208
     209    /* Create base storage for the new virtual-disk: */
     210    CProgress progress = virtualDisk.CreateBaseStorage(uSize, variants);
     211    if (!virtualDisk.isOk())
     212    {
     213        msgCenter().cannotCreateHardDiskStorage(virtualDisk, strMediumPath, this);
     214        return false;
     215    }
     216
     217    /* Show creation progress: */
     218    msgCenter().showModalProgressDialog(progress, windowTitle(), ":/progress_media_create_90px.png", this);
     219    if (progress.GetCanceled())
     220        return false;
     221    if (!progress.isOk() || progress.GetResultCode() != 0)
     222    {
     223        msgCenter().cannotCreateHardDiskStorage(progress, strMediumPath, this);
     224        return false;
     225    }
     226
     227    /* Remember created virtual-disk: */
     228    m_virtualDisk = virtualDisk;
     229
     230    /* Inform UICommon about it: */
     231    uiCommon().createMedium(UIMedium(m_virtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));
     232
     233    return true;
     234}
     235
    177236void UIWizardNewVM::configureVM(const QString &strGuestTypeId, const CGuestOSType &comGuestType)
    178237{
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h

    r87870 r87872  
    2828#include "COMEnums.h"
    2929#include "CMachine.h"
     30#include "CMedium.h"
    3031
    3132/** Container for unattended install related data. */
     
    8990protected:
    9091
    91     /* Creates a new VM: */
    9292    bool createVM();
    93     /* Configures the newly created VM: */
     93    bool createVirtualDisk();
     94
    9495    void configureVM(const QString &strGuestTypeId, const CGuestOSType &comGuestType);
    95     /* Attaches default devices: */
    9696    bool attachDefaultDevices(const CGuestOSType &comGuestType);
    9797
     
    129129    int m_iSASCount;
    130130    int m_iUSBCount;
     131    CMedium m_virtualDisk;
    131132
    132133    mutable UIUnattendedInstallData m_unattendedInstallData;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic5.h

    r87871 r87872  
    2727/* GUI includes: */
    2828#include "UIWizardPage.h"
     29#include "UIWizardNewVDPageBasic1.h"
    2930#include "UIWizardNewVDPageBasic2.h"
    3031#include "UIWizardNewVDPageBasic3.h"
     
    3233/* COM includes: */
    3334#include "COMEnums.h"
    34 #include "CMedium.h"
    3535
    3636/* Forward declarations: */
     
    4242
    4343class UIWizardNewVMPageBasic5 : public UIWizardPage,
     44                                public UIWizardNewVDPage1,
    4445                                public UIWizardNewVDPage2,
    4546                                public UIWizardNewVDPage3
Note: See TracChangeset for help on using the changeset viewer.

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