VirtualBox

Changeset 99389 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Apr 13, 2023 12:43:24 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156822
Message:

FE/Qt: bugref:6669: VirtualBox Manager: Move Clone VD wizard onto non-modal rails.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneGlobal.cpp

    r98103 r99389  
    166166                    /* Configure pane: */
    167167                    m_pPaneMedia->setProperty("ToolType", QVariant::fromValue(UIToolType_Media));
     168                    connect(m_pPaneMedia, &UIMediumManagerWidget::sigCopyMedium,
     169                            this, &UIToolPaneGlobal::sigCopyMedium);
    168170
    169171                    /* Add into layout: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneGlobal.h

    r98103 r99389  
    4141class QHBoxLayout;
    4242class QStackedLayout;
     43class QUuid;
    4344class QVBoxLayout;
    4445class UIActionPool;
     
    5960
    6061signals:
     62
     63    /** Notifies listeners about copy procedure was requested for medium with specified @a uMediumId. */
     64    void sigCopyMedium(const QUuid &uMediumId);
    6165
    6266    /** Notifies listeners about request to switch to Activity pane of machine with @a uMachineId. */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp

    r99381 r99389  
    7474#include "UIVirtualBoxEventHandler.h"
    7575#include "UIWizardAddCloudVM.h"
     76#include "UIWizardCloneVD.h"
    7677#include "UIWizardCloneVM.h"
    7778#include "UIWizardExportApp.h"
     
    822823            break;
    823824    }
     825}
     826
     827void UIVirtualBoxManager::sltCopyMedium(const QUuid &uMediumId)
     828{
     829    /* Configure wizard variables: */
     830    m_uMediumId = uMediumId;
     831
     832    /* Open Clone VD Wizard: */
     833    sltOpenWizard(WizardType_CloneVD);
    824834}
    825835
     
    10291039                m_wizards[enmType] = new UIWizardAddCloudVM(this, m_pWidget->fullGroupName());
    10301040                break;
     1041            case WizardType_CloneVD:
     1042                m_wizards[enmType] = new UIWizardCloneVD(this, m_uMediumId);
     1043                break;
    10311044            default:
    10321045                break;
     
    22662279    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigToolTypeChange,
    22672280            this, &UIVirtualBoxManager::sltHandleToolTypeChange);
     2281    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCopyMedium,
     2282            this, &UIVirtualBoxManager::sltCopyMedium);
    22682283    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigMachineSettingsLinkClicked,
    22692284            this, &UIVirtualBoxManager::sltOpenSettingsDialog);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h

    r99218 r99389  
    3535#include <QMainWindow>
    3636#include <QUrl>
     37#include <QUuid>
    3738
    3839/* GUI includes: */
     
    155156        /** Handles signal about Tool type change.  */
    156157        void sltHandleToolTypeChange();
     158
     159        /** Handles copy medium request. */
     160        void sltCopyMedium(const QUuid &uMediumId);
    157161
    158162        /** Handles current snapshot item change. */
     
    537541    /** Holds the list of VMs used by export wizard. */
    538542    QStringList  m_names;
     543
     544    /** Holds the ID of medium used by clone VD wizard. */
     545    QUuid  m_uMediumId;
    539546};
    540547
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp

    r99218 r99389  
    672672                            if (m_pPaneChooser->isGlobalItemSelected())
    673673                                m_pPaneToolsGlobal->setActive(true);
     674                            connect(m_pPaneToolsGlobal, &UIToolPaneGlobal::sigCopyMedium,
     675                                    this, &UIVirtualBoxManagerWidget::sigCopyMedium);
    674676                            connect(m_pPaneToolsGlobal, &UIToolPaneGlobal::sigSwitchToMachineActivityPane,
    675677                                    this, &UIVirtualBoxManagerWidget::sltSwitchToMachineActivityPane);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h

    r99218 r99389  
    100100        /** Notifies about Tool type change. */
    101101        void sigToolTypeChange();
     102    /** @} */
     103
     104    /** @name Tools / Media pane stuff.
     105      * @{ */
     106        /** Notifies listeners about copy procedure was requested for medium with specified @a uMediumId. */
     107        void sigCopyMedium(const QUuid &uMediumId);
    102108    /** @} */
    103109
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r98103 r99389  
    482482    AssertReturnVoid(!pMediumItem->id().isNull());
    483483
    484     /* Copy current medium-item: */
    485     //pMediumItem->copy();
    486 
    487     /* Show Clone VD wizard: */
    488     UIMedium medium = pMediumItem->medium();
    489     QPointer<UINativeWizard> pWizard = new UIWizardCloneVD(currentTreeWidget(), medium.medium());
    490     pWizard->exec();
    491 
    492     /* Delete if still exists: */
    493     if (pWizard)
    494         delete pWizard;
     484    /* Ask listener to start medium copying: */
     485    emit sigCopyMedium(pMediumItem->medium().id());
    495486}
    496487
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h

    r98103 r99389  
    3232#endif
    3333
     34/* Qt includes: */
     35#include <QUuid>
     36
    3437/* GUI includes: */
    3538#include "QIManagerDialog.h"
     
    109112
    110113signals:
     114
     115    /** Notifies listeners about copy procedure was requested for medium with specified @a uMediumId. */
     116    void sigCopyMedium(const QUuid &uMediumId);
    111117
    112118    /** Notifies listeners about medium details-widget @a fVisible. */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.cpp

    r98103 r99389  
    3939#include "CMediumFormat.h"
    4040
    41 UIWizardCloneVD::UIWizardCloneVD(QWidget *pParent, const CMedium &comSourceVirtualDisk)
     41UIWizardCloneVD::UIWizardCloneVD(QWidget *pParent, const QUuid &uMediumId)
    4242    : UINativeWizard(pParent, WizardType_CloneVD)
    43     , m_comSourceVirtualDisk(comSourceVirtualDisk)
    44     , m_enmDeviceType(m_comSourceVirtualDisk.GetDeviceType())
     43    , m_enmDeviceType(KDeviceType_Null)
    4544    , m_iMediumVariantPageIndex(-1)
    4645{
     
    5251    setPixmapName(":/wizard_new_harddisk_bg.png");
    5352#endif /* VBOX_WS_MAC */
     53
     54    /* Init medium to be cloned: */
     55    UIMedium uiMedium = uiCommon().medium(uMediumId);
     56    m_comSourceVirtualDisk = uiMedium.medium();
     57
     58    /* Init device type: */
     59    m_enmDeviceType = m_comSourceVirtualDisk.GetDeviceType();
    5460}
    5561
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.h

    r98103 r99389  
    4040#include "CMediumFormat.h"
    4141
     42/* Forward declarations: */
     43class QUuid;
     44
    4245/** Clone Virtual Disk wizard: */
    4346class UIWizardCloneVD : public UINativeWizard
     
    4750public:
    4851
    49     /** Constructs wizard to clone @a comSourceVirtualDisk passing @a pParent to the base-class. */
    50     UIWizardCloneVD(QWidget *pParent, const CMedium &comSourceVirtualDisk);
     52    /** Constructs wizard to clone medium referenced by @a uMediumId, passing @a pParent to the base-class. */
     53    UIWizardCloneVD(QWidget *pParent, const QUuid &uMediumId);
    5154
    5255    /** Returns source virtual-disk. */
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