Changeset 90301 in vbox for trunk/src/VBox
- Timestamp:
- Jul 23, 2021 12:47:15 PM (4 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
r90086 r90301 4149 4149 } 4150 4150 4151 void UICommon::sltHandleMediumCreated(const CMedium &comMedium) 4152 { 4153 /* Make sure we cached created medium in GUI: */ 4154 createMedium(UIMedium(comMedium, UIMediumDeviceType_HardDisk, KMediumState_Created)); 4155 } 4156 4151 4157 bool UICommon::eventFilter(QObject *pObject, QEvent *pEvent) 4152 4158 { -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h
r90086 r90301 729 729 /** @} */ 730 730 731 /** @name Media related stuff. 732 * @{ */ 733 /** Handles signal about medium was created. */ 734 void sltHandleMediumCreated(const CMedium &comMedium); 735 /** @} */ 736 731 737 protected: 732 738 -
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
r90300 r90301 19 19 #include "UINotificationObjects.h" 20 20 21 22 /********************************************************************************************************************************* 23 * Class UINotificationProgressMediumMove implementation. * 24 *********************************************************************************************************************************/ 21 25 22 26 UINotificationProgressMediumMove::UINotificationProgressMediumMove(const CMedium &comMedium, … … 48 52 return comProgress; 49 53 } 54 55 56 /********************************************************************************************************************************* 57 * Class UINotificationProgressMediumCopy implementation. * 58 *********************************************************************************************************************************/ 59 60 UINotificationProgressMediumCopy::UINotificationProgressMediumCopy(const CMedium &comSource, 61 const CMedium &comTarget, 62 const QVector<KMediumVariant> &variants) 63 : m_comSource(comSource) 64 , m_comTarget(comTarget) 65 , m_variants(variants) 66 { 67 connect(this, &UINotificationProgress::sigProgressFinished, 68 this, &UINotificationProgressMediumCopy::sltHandleProgressFinished); 69 } 70 71 QString UINotificationProgressMediumCopy::name() const 72 { 73 return UINotificationProgress::tr("Copying medium ..."); 74 } 75 76 QString UINotificationProgressMediumCopy::details() const 77 { 78 return UINotificationProgress::tr("<b>From</b>: %1<br><b>To</b>: %2") 79 .arg(m_comSource.GetLocation(), m_comTarget.GetLocation()); 80 } 81 82 CProgress UINotificationProgressMediumCopy::createProgress(COMResult &comResult) 83 { 84 /* Initialize progress-wrapper: */ 85 CProgress comProgress = m_comSource.CloneTo(m_comTarget, m_variants, CMedium()); 86 /* Store COM result: */ 87 comResult = m_comSource; 88 /* Return progress-wrapper: */ 89 return comProgress; 90 } 91 92 void UINotificationProgressMediumCopy::sltHandleProgressFinished() 93 { 94 if (m_comTarget.isNotNull() && !m_comTarget.GetId().isNull()) 95 emit sigMediumCopied(m_comTarget); 96 } -
trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
r90300 r90301 63 63 }; 64 64 65 /** UINotificationProgress extension for medium copy functionality. */ 66 class SHARED_LIBRARY_STUFF UINotificationProgressMediumCopy : public UINotificationProgress 67 { 68 Q_OBJECT; 69 70 signals: 71 72 /** Notifies listeners about @a comMedium was copied. */ 73 void sigMediumCopied(const CMedium &comMedium); 74 75 public: 76 77 /** Constructs medium move notification-progress. 78 * @param comSource Brings the medium being copied. 79 * @param comTarget Brings the medium being the target. 80 * @param variants Brings the target medium options. */ 81 UINotificationProgressMediumCopy(const CMedium &comSource, 82 const CMedium &comTarget, 83 const QVector<KMediumVariant> &variants); 84 85 protected: 86 87 /** Returns object name. */ 88 virtual QString name() const /* override final */; 89 /** Returns object details. */ 90 virtual QString details() const /* override final */; 91 /** Creates and returns started progress-wrapper. */ 92 virtual CProgress createProgress(COMResult &comResult) /* override final */; 93 94 private slots: 95 96 /** Handles signal about progress being finished. */ 97 void sltHandleProgressFinished(); 98 99 private: 100 101 /** Holds the medium being copied. */ 102 CMedium m_comSource; 103 /** Holds the medium being the target. */ 104 CMedium m_comTarget; 105 /** Holds the target medium options. */ 106 QVector<KMediumVariant> m_variants; 107 }; 108 65 109 #endif /* !FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h */ -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.cpp
r90271 r90301 20 20 #include "UIMedium.h" 21 21 #include "UIMessageCenter.h" 22 #include "UINotificationCenter.h" 22 23 #include "UIWizardCloneVD.h" 23 24 #include "UIWizardCloneVDPageBasic1.h" … … 75 76 } 76 77 77 /* Copy source image to new one: */ 78 CProgress comProgress = m_comSourceVirtualDisk.CloneTo(comVirtualDisk, variants, CMedium()); 79 if (!m_comSourceVirtualDisk.isOk()) 80 { 81 msgCenter().cannotCreateMediumStorage(m_comSourceVirtualDisk, strMediumPath, this); 82 return false; 83 } 84 85 /* Show creation progress: */ 86 msgCenter().showModalProgressDialog(comProgress, windowTitle(), ":/progress_media_create_90px.png", this); 87 if (comProgress.GetCanceled()) 88 return false; 89 if (!comProgress.isOk() || comProgress.GetResultCode() != 0) 90 { 91 msgCenter().cannotCreateMediumStorage(comProgress, strMediumPath, this); 92 return false; 93 } 94 95 /* Make sure we register the medium to VBox: */ 96 uiCommon().createMedium(UIMedium(comVirtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created)); 78 /* Copy medium: */ 79 UINotificationProgressMediumCopy *pNotification = new UINotificationProgressMediumCopy(m_comSourceVirtualDisk, 80 comVirtualDisk, 81 variants); 82 connect(pNotification, &UINotificationProgressMediumCopy::sigMediumCopied, 83 &uiCommon(), &UICommon::sltHandleMediumCreated); 84 notificationCenter().append(pNotification); 97 85 98 86 /* Positive: */
Note:
See TracChangeset
for help on using the changeset viewer.