- Timestamp:
- Jul 26, 2021 9:54:34 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145890
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
r90325 r90327 55 55 56 56 /********************************************************************************************************************************* 57 * Class UINotificationProgressMediumCreate implementation. * 58 *********************************************************************************************************************************/ 59 60 UINotificationProgressMediumCreate::UINotificationProgressMediumCreate(const CMedium &comTarget, 61 qulonglong uSize, 62 const QVector<KMediumVariant> &variants) 63 : m_comTarget(comTarget) 64 , m_uSize(uSize) 65 , m_variants(variants) 66 { 67 connect(this, &UINotificationProgress::sigProgressFinished, 68 this, &UINotificationProgressMediumCreate::sltHandleProgressFinished); 69 } 70 71 QString UINotificationProgressMediumCreate::name() const 72 { 73 return UINotificationProgress::tr("Creating medium ..."); 74 } 75 76 QString UINotificationProgressMediumCreate::details() const 77 { 78 return UINotificationProgress::tr("<b>Location:</b> %1<br><b>Size:</b> %2") 79 .arg(m_comTarget.GetLocation()).arg(m_uSize); 80 } 81 82 CProgress UINotificationProgressMediumCreate::createProgress(COMResult &comResult) 83 { 84 /* Initialize progress-wrapper: */ 85 CProgress comProgress = m_comTarget.CreateBaseStorage(m_uSize, m_variants); 86 /* Store COM result: */ 87 comResult = m_comTarget; 88 /* Return progress-wrapper: */ 89 return comProgress; 90 } 91 92 void UINotificationProgressMediumCreate::sltHandleProgressFinished() 93 { 94 if (m_comTarget.isNotNull() && !m_comTarget.GetId().isNull()) 95 emit sigMediumCreated(m_comTarget); 96 } 97 98 99 /********************************************************************************************************************************* 57 100 * Class UINotificationProgressMediumCopy implementation. * 58 101 *********************************************************************************************************************************/ -
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
r90325 r90327 67 67 }; 68 68 69 /** UINotificationProgress extension for medium create functionality. */ 70 class SHARED_LIBRARY_STUFF UINotificationProgressMediumCreate : public UINotificationProgress 71 { 72 Q_OBJECT; 73 74 signals: 75 76 /** Notifies listeners about @a comMedium was created. */ 77 void sigMediumCreated(const CMedium &comMedium); 78 79 public: 80 81 /** Constructs medium create notification-progress. 82 * @param comTarget Brings the medium being the target. 83 * @param uSize Brings the target medium size. 84 * @param variants Brings the target medium options. */ 85 UINotificationProgressMediumCreate(const CMedium &comTarget, 86 qulonglong uSize, 87 const QVector<KMediumVariant> &variants); 88 89 protected: 90 91 /** Returns object name. */ 92 virtual QString name() const /* override final */; 93 /** Returns object details. */ 94 virtual QString details() const /* override final */; 95 /** Creates and returns started progress-wrapper. */ 96 virtual CProgress createProgress(COMResult &comResult) /* override final */; 97 98 private slots: 99 100 /** Handles signal about progress being finished. */ 101 void sltHandleProgressFinished(); 102 103 private: 104 105 /** Holds the medium being the target. */ 106 CMedium m_comTarget; 107 /** Holds the target medium size. */ 108 qulonglong m_uSize; 109 /** Holds the target medium options. */ 110 QVector<KMediumVariant> m_variants; 111 }; 112 69 113 /** UINotificationProgress extension for medium copy functionality. */ 70 114 class SHARED_LIBRARY_STUFF UINotificationProgressMediumCopy : public UINotificationProgress … … 79 123 public: 80 124 81 /** Constructs medium movenotification-progress.125 /** Constructs medium copy notification-progress. 82 126 * @param comSource Brings the medium being copied. 83 127 * @param comTarget Brings the medium being the target. -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.cpp
r88599 r90327 19 19 #include <QVariant> 20 20 #include <QPushButton> 21 21 22 /* GUI includes: */ 22 23 #include "UICommon.h" 24 #include "UIMedium.h" 25 #include "UIMessageCenter.h" 26 #include "UINotificationCenter.h" 23 27 #include "UIWizardNewVD.h" 24 28 #include "UIWizardNewVDPageFileType.h" … … 26 30 #include "UIWizardNewVDPageSizeLocation.h" 27 31 #include "UIWizardNewVDPageExpert.h" 28 #include "UIMessageCenter.h"29 #include "UIMedium.h"30 32 31 33 /* COM includes: */ … … 54 56 { 55 57 /* Gather attributes: */ 56 CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();57 qulonglong uVariant = field("mediumVariant").toULongLong();58 QString strMediumPath = field("mediumPath").toString();59 qulonglong uSize = field("mediumSize").toULongLong();58 const CMediumFormat comMediumFormat = field("mediumFormat").value<CMediumFormat>(); 59 const qulonglong uVariant = field("mediumVariant").toULongLong(); 60 const QString strMediumPath = field("mediumPath").toString(); 61 const qulonglong uSize = field("mediumSize").toULongLong(); 60 62 /* Check attributes: */ 61 63 AssertReturn(!strMediumPath.isNull(), false); … … 63 65 64 66 /* Get VBox object: */ 65 CVirtualBox vbox = uiCommon().virtualBox();67 CVirtualBox comVBox = uiCommon().virtualBox(); 66 68 67 /* Create new virtual hard-disk: */68 CMedium virtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk);69 if (! vbox.isOk())69 /* Create new virtual disk image: */ 70 CMedium comVirtualDisk = comVBox.CreateMedium(comMediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk); 71 if (!comVBox.isOk()) 70 72 { 71 msgCenter().cannotCreate HardDiskStorage(vbox, strMediumPath, this);73 msgCenter().cannotCreateMediumStorage(comVBox, strMediumPath, this); 72 74 return false; 73 75 } 74 76 75 77 /* Compose medium-variant: */ 76 QVector<KMediumVariant> variants(sizeof(qulonglong) *8);78 QVector<KMediumVariant> variants(sizeof(qulonglong) * 8); 77 79 for (int i = 0; i < variants.size(); ++i) 78 80 { 79 81 qulonglong temp = uVariant; 80 temp &= UINT64_C(1)<<i;82 temp &= Q_UINT64_C(1) << i; 81 83 variants[i] = (KMediumVariant)temp; 82 84 } 83 85 84 /* C reate base storage for the new virtual-disk: */85 CProgress progress = virtualDisk.CreateBaseStorage(uSize, variants);86 if (!virtualDisk.isOk())87 {88 msgCenter().cannotCreateHardDiskStorage(virtualDisk, strMediumPath, this);89 return false;90 }86 /* Copy medium: */ 87 UINotificationProgressMediumCreate *pNotification = new UINotificationProgressMediumCreate(comVirtualDisk, 88 uSize, 89 variants); 90 connect(pNotification, &UINotificationProgressMediumCreate::sigMediumCreated, 91 &uiCommon(), &UICommon::sltHandleMediumCreated); 92 notificationCenter().append(pNotification); 91 93 92 /* Show creation progress: */ 93 msgCenter().showModalProgressDialog(progress, windowTitle(), ":/progress_media_create_90px.png", this); 94 if (progress.GetCanceled()) 95 return false; 96 if (!progress.isOk() || progress.GetResultCode() != 0) 97 { 98 msgCenter().cannotCreateHardDiskStorage(progress, strMediumPath, this); 99 return false; 100 } 101 102 /* Remember created virtual-disk: */ 103 m_virtualDisk = virtualDisk; 104 105 /* Inform UICommon about it: */ 106 uiCommon().createMedium(UIMedium(m_virtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created)); 107 94 /* Positive: */ 108 95 return true; 109 96 } -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.h
r88599 r90327 59 59 void prepare(); 60 60 61 /* Returns virtual-disk: */62 CMedium virtualDisk() const { return m_virtualDisk; }63 64 61 protected: 65 62 … … 77 74 78 75 /* Variables: */ 79 QString m_strDefaultName; 80 QString m_strDefaultPath; 81 qulonglong m_uDefaultSize; 82 CMedium m_virtualDisk; 76 QString m_strDefaultName; 77 QString m_strDefaultPath; 78 qulonglong m_uDefaultSize; 83 79 }; 84 80
Note:
See TracChangeset
for help on using the changeset viewer.