VirtualBox

Changeset 90661 in vbox for trunk


Ignore:
Timestamp:
Aug 12, 2021 1:25:55 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9996. Resoting the parameter connections of clone vm wizard.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp

    r90628 r90661  
    8181{
    8282    return m_strCloneFilePath;
     83}
     84
     85MACAddressClonePolicy UIWizardCloneVM::macAddressClonePolicy() const
     86{
     87    return m_enmMACAddressClonePolicy;
     88}
     89
     90void UIWizardCloneVM::setMacAddressPolicy(MACAddressClonePolicy enmMACAddressClonePolicy)
     91{
     92    m_enmMACAddressClonePolicy = enmMACAddressClonePolicy;
     93}
     94
     95bool UIWizardCloneVM::keepDiskNames() const
     96{
     97    return m_fKeepDiskNames;
     98}
     99
     100void UIWizardCloneVM::setKeepDiskNames(bool fKeepDiskNames)
     101{
     102    m_fKeepDiskNames = fKeepDiskNames;
     103}
     104
     105bool UIWizardCloneVM::keepHardwareUUIDs() const
     106{
     107    return m_fKeepHardwareUUIDs;
     108}
     109
     110void UIWizardCloneVM::setKeepHardwareUUIDs(bool fKeepHardwareUUIDs)
     111{
     112    m_fKeepHardwareUUIDs = fKeepHardwareUUIDs;
     113}
     114
     115bool UIWizardCloneVM::linkedClone() const
     116{
     117    return m_fLinkedClone;
     118}
     119
     120void UIWizardCloneVM::setLinkedClone(bool fLinkedClone)
     121{
     122    m_fLinkedClone = fLinkedClone;
     123}
     124
     125KCloneMode UIWizardCloneVM::cloneMode() const
     126{
     127    return m_enmCloneMode;
     128}
     129
     130void UIWizardCloneVM::setCloneMode(KCloneMode enmCloneMode)
     131{
     132    m_enmCloneMode = enmCloneMode;
    83133}
    84134
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.h

    r90628 r90661  
    2424/* GUI includes: */
    2525#include "UINativeWizard.h"
     26#include "UIWizardCloneVMEditors.h"
    2627
    2728/* COM includes: */
     
    5455    bool cloneVM();
    5556
    56     void setCloneName(const QString &strCloneName);
    57     const QString &cloneName() const;
     57    /** @name Parameter setter/getters
     58      * @{ */
     59        void setCloneName(const QString &strCloneName);
     60        const QString &cloneName() const;
    5861
    59     void setCloneFilePath(const QString &strCloneFilePath);
    60     const QString &cloneFilePath() const;
     62        void setCloneFilePath(const QString &strCloneFilePath);
     63        const QString &cloneFilePath() const;
     64
     65        MACAddressClonePolicy macAddressClonePolicy() const;
     66        void setMacAddressPolicy(MACAddressClonePolicy enmMACAddressClonePolicy);
     67
     68        bool keepDiskNames() const;
     69        void setKeepDiskNames(bool fKeepDiskNames);
     70
     71        bool keepHardwareUUIDs() const;
     72        void setKeepHardwareUUIDs(bool fKeepHardwareUUIDs);
     73
     74        bool linkedClone() const;
     75        void setLinkedClone(bool fLinkedClone);
     76
     77        KCloneMode cloneMode() const;
     78        void setCloneMode(KCloneMode enmCloneMode);
     79    /** @} */
    6180
    6281protected:
     
    7897        QString m_strCloneName;
    7998        QString m_strCloneFilePath;
     99        MACAddressClonePolicy m_enmMACAddressClonePolicy;
     100        bool m_fKeepDiskNames;
     101        bool m_fKeepHardwareUUIDs;
     102        bool m_fLinkedClone;
     103       KCloneMode m_enmCloneMode;
    80104    /** @} */
    81 
    82 
    83105};
    84106
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic1.cpp

    r90628 r90661  
    2121
    2222/* GUI includes: */
    23 #include "UIWizardCloneVMEditors.h"
    2423#include "QIRichTextLabel.h"
    2524#include "UIWizardCloneVM.h"
     
    104103        m_pAdditionalOptionsEditor->setFlat(true);
    105104        pMainLayout->addWidget(m_pAdditionalOptionsEditor);
     105        connect(m_pAdditionalOptionsEditor, &UICloneVMAdditionalOptionsEditor::sigMACAddressClonePolicyChanged,
     106                this, &UIWizardCloneVMPageBasic1::sltMACAddressClonePolicyChanged);
     107        connect(m_pAdditionalOptionsEditor, &UICloneVMAdditionalOptionsEditor::sigKeepDiskNamesToggled,
     108                this, &UIWizardCloneVMPageBasic1::sltKeepDiskNamesToggled);
     109        connect(m_pAdditionalOptionsEditor, &UICloneVMAdditionalOptionsEditor::sigKeepHardwareUUIDsToggled,
     110                this, &UIWizardCloneVMPageBasic1::sltKeepHardwareUUIDsToggled);
    106111    }
    107112
     
    143148}
    144149
    145 void UIWizardCloneVMPageBasic1::sltHandleMACAddressClonePolicyComboChange()
     150void UIWizardCloneVMPageBasic1::sltMACAddressClonePolicyChanged(MACAddressClonePolicy enmMACAddressClonePolicy)
    146151{
    147     /* Update tool-tip: */
    148     //updateMACAddressClonePolicyComboToolTip();
     152    m_userModifiedParameters << "MacAddressPolicy";
     153    cloneVMWizardPropertySet(MacAddressPolicy, enmMACAddressClonePolicy);
    149154}
     155
     156void UIWizardCloneVMPageBasic1::sltKeepDiskNamesToggled(bool fKeepDiskNames)
     157{
     158    m_userModifiedParameters << "KeepDiskNames";
     159    cloneVMWizardPropertySet(KeepDiskNames, fKeepDiskNames);
     160}
     161
     162void UIWizardCloneVMPageBasic1::sltKeepHardwareUUIDsToggled(bool fKeepHardwareUUIDs)
     163{
     164    m_userModifiedParameters << "KeepHardwareUUIDs";
     165    cloneVMWizardPropertySet(KeepHardwareUUIDs, fKeepHardwareUUIDs);
     166}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic1.h

    r90628 r90661  
    2727/* Local includes: */
    2828#include "UINativeWizardPage.h"
     29#include "UIWizardCloneVMEditors.h"
    2930
    3031/* Forward declarations: */
     
    5253    void sltCloneNameChanged(const QString &strCloneName);
    5354    void sltClonePathChanged(const QString &strClonePath);
    54     /** Handles change in MAC address policy combo-box. */
    55     void sltHandleMACAddressClonePolicyComboChange();
     55    void sltMACAddressClonePolicyChanged(MACAddressClonePolicy enmMACAddressClonePolicy);
     56    void sltKeepDiskNamesToggled(bool fKeepDiskNames);
     57    void sltKeepHardwareUUIDsToggled(bool fKeepHardwareUUIDs);
    5658
    5759private:
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp

    r90621 r90661  
    6060{
    6161    UIWizardCloneVM *pWizard = qobject_cast<UIWizardCloneVM*>(wizard());
     62    m_userModifiedParameters << "LinkedClone";
     63    cloneVMWizardPropertySet(LinkedClone, !fIsFullClone);
     64    /* Show/hide 3rd page according to linked clone toggle: */
    6265    AssertReturnVoid(pWizard);
    6366    pWizard->setCloneModePageVisible(fIsFullClone);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.h

    r90621 r90661  
    2121# pragma once
    2222#endif
     23
     24/* Qt includes: */
     25#include <QSet>
    2326
    2427/* Local includes: */
     
    5154    bool m_fAdditionalInfo;
    5255    UICloneVMCloneTypeGroupBox *m_pCloneTypeGroupBox;
     56
     57    QSet<QString> m_userModifiedParameters;
    5358};
    5459
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp

    r90607 r90661  
    7474        pMainLayout->addWidget(m_pCloneModeGroupBox);
    7575        m_pCloneModeGroupBox->setFlat(true);
     76        connect(m_pCloneModeGroupBox, &UICloneVMCloneModeGroupBox::sigCloneModeChanged,
     77                this, &UIWizardCloneVMPageBasic3::sltCloneModeChanged);
    7678    }
    7779    pMainLayout->addStretch();
     
    141143    return fResult;
    142144}
     145
     146void UIWizardCloneVMPageBasic3::sltCloneModeChanged(KCloneMode enmCloneMode)
     147{
     148    m_userModifiedParameters << "CloneMode";
     149    cloneVMWizardPropertySet(CloneMode, enmCloneMode);
     150}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.h

    r90607 r90661  
    2121# pragma once
    2222#endif
     23
     24/* Qt includes: */
     25#include <QSet>
    2326
    2427/* GUI includes: */
     
    6366    UIWizardCloneVMPageBasic3(bool fShowChildsOption);
    6467
     68private slots:
     69
     70    void sltCloneModeChanged(KCloneMode enmCloneMode);
     71
    6572private:
    6673
     
    8087
    8188    bool m_fShowChildsOption;
    82 
     89    QSet<QString> m_userModifiedParameters;
    8390};
    8491
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.cpp

    r90628 r90661  
    143143        m_pContainerLayout->addWidget(m_pPathSelector, 1, 1, 1, 1);
    144144        m_pPathSelector->setPath(m_strDefaultPath);
     145        connect(m_pPathSelector, &UIFilePathSelector::pathChanged,
     146                this, &UICloneVMNamePathEditor::sigClonePathChanged);
    145147    }
    146148
     
    218220    m_pMACComboBox = new QComboBox;
    219221    if (m_pMACComboBox)
     222    {
    220223        m_pContainerLayout->addWidget(m_pMACComboBox, 2, 1, 1, 1);
     224        connect(m_pMACComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
     225                this, &UICloneVMAdditionalOptionsEditor::sltMACAddressClonePolicyChanged);
     226    }
    221227    populateMACAddressClonePolicies();
    222228
     
    242248        m_pKeepDiskNamesCheckBox = new QCheckBox;
    243249        if (m_pKeepDiskNamesCheckBox)
     250        {
    244251            m_pContainerLayout->addWidget(m_pKeepDiskNamesCheckBox, iVerticalPosition++, 1, 1, 1);
     252            connect(m_pKeepDiskNamesCheckBox, &QCheckBox::toggled,
     253                    this, &UICloneVMAdditionalOptionsEditor::sigKeepDiskNamesToggled);
     254        }
    245255    }
    246256    if (fSupportedKeepHWUUIDs)
     
    248258        m_pKeepHWUUIDsCheckBox = new QCheckBox;
    249259        if (m_pKeepHWUUIDsCheckBox)
     260        {
    250261            m_pContainerLayout->addWidget(m_pKeepHWUUIDsCheckBox, iVerticalPosition++, 1, 1, 1);
     262            connect(m_pKeepHWUUIDsCheckBox, &QCheckBox::toggled,
     263                    this, &UICloneVMAdditionalOptionsEditor::sigKeepHardwareUUIDsToggled);
     264        }
    251265    }
    252266
     
    301315}
    302316
     317void UICloneVMAdditionalOptionsEditor::sltMACAddressClonePolicyChanged()
     318{
     319    emit sigMACAddressClonePolicyChanged(macAddressClonePolicy());
     320    updateMACAddressClonePolicyComboToolTip();
     321}
     322
     323void UICloneVMAdditionalOptionsEditor::updateMACAddressClonePolicyComboToolTip()
     324{
     325    if (!m_pMACComboBox)
     326        return;
     327    const QString strCurrentToolTip = m_pMACComboBox->currentData(Qt::ToolTipRole).toString();
     328    AssertMsg(!strCurrentToolTip.isEmpty(), ("Tool-tip data not found!"));
     329    m_pMACComboBox->setToolTip(strCurrentToolTip);
     330}
     331
    303332void UICloneVMAdditionalOptionsEditor::populateMACAddressClonePolicies()
    304333{
     
    423452    AssertReturnVoid(pMainLayout);
    424453
     454    QButtonGroup *pButtonGroup = new QButtonGroup(this);
    425455    m_pMachineRadio = new QRadioButton(this);
     456    if (m_pMachineRadio)
    426457    {
    427458        m_pMachineRadio->setChecked(true);
     459        pButtonGroup->addButton(m_pMachineRadio);
    428460    }
    429461    m_pMachineAndChildsRadio = new QRadioButton(this);
     462    if (m_pMachineAndChildsRadio)
    430463    {
    431464        if (!m_fShowChildsOption)
    432465            m_pMachineAndChildsRadio->hide();
    433     }
     466        pButtonGroup->addButton(m_pMachineAndChildsRadio);
     467    }
     468
    434469    m_pAllRadio = new QRadioButton(this);
     470    if (m_pAllRadio)
     471        pButtonGroup->addButton(m_pAllRadio);
     472
    435473    pMainLayout->addWidget(m_pMachineRadio);
    436474    pMainLayout->addWidget(m_pMachineAndChildsRadio);
    437475    pMainLayout->addWidget(m_pAllRadio);
    438476    pMainLayout->addStretch();
     477
     478
     479    connect(pButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
     480            this, &UICloneVMCloneModeGroupBox::sltButtonClicked);
    439481
    440482    retranslateUi();
     
    450492        m_pAllRadio->setText(tr("&Everything"));
    451493}
     494
     495
     496void UICloneVMCloneModeGroupBox::sltButtonClicked()
     497{
     498    KCloneMode enmCloneMode = KCloneMode_MachineState;
     499    if (m_pMachineAndChildsRadio && m_pMachineAndChildsRadio->isChecked())
     500        enmCloneMode =  KCloneMode_MachineAndChildStates;
     501    else if (m_pAllRadio && m_pAllRadio->isChecked())
     502        enmCloneMode = KCloneMode_AllStates;
     503    emit sigCloneModeChanged(enmCloneMode);
     504}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.h

    r90628 r90661  
    2828/* Local includes: */
    2929#include "QIWithRetranslateUI.h"
     30
     31/* Other VBox includes: */
     32#include "COMEnums.h"
    3033
    3134
     
    110113signals:
    111114
     115    void sigMACAddressClonePolicyChanged(MACAddressClonePolicy enmMACAddressClonePolicy);
     116    void sigKeepDiskNamesToggled(bool fKeepDiskNames);
     117    void sigKeepHardwareUUIDsToggled(bool fKeepHardwareUUIDs);
    112118
    113119public:
     
    119125    MACAddressClonePolicy macAddressClonePolicy() const;
    120126    void setMACAddressClonePolicy(MACAddressClonePolicy enmMACAddressClonePolicy);
     127
    121128    void setFirstColumnWidth(int iWidth);
    122129    int firstColumnWidth() const;
    123130
     131private slots:
     132
     133    void sltMACAddressClonePolicyChanged();
     134
    124135private:
    125136
     
    127138    virtual void retranslateUi() /* override final */;
    128139    void populateMACAddressClonePolicies();
     140    void updateMACAddressClonePolicyComboToolTip();
    129141
    130142    QGridLayout *m_pContainerLayout;
     
    169181signals:
    170182
     183    void sigCloneModeChanged(KCloneMode enmCloneMode);
     184
    171185public:
    172186
    173187    UICloneVMCloneModeGroupBox(bool fShowChildsOption, QWidget *pParent = 0);
     188
     189private slots:
     190
     191    void sltButtonClicked();
    174192
    175193private:
     
    182200    QRadioButton *m_pMachineAndChildsRadio;
    183201    QRadioButton *m_pAllRadio;
    184 
    185202};
    186203
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