VirtualBox

Changeset 90607 in vbox


Ignore:
Timestamp:
Aug 10, 2021 4:07:18 PM (4 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9996. More surgery on the clone vm wizard.

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

Legend:

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

    r90589 r90607  
    180180        {
    181181            addPage(new UIWizardCloneVMPageBasic1(m_machine.GetName(), strDefaultMachineFolder, m_strGroup));
    182     //         setPage(Page2, new UIWizardCloneVMPageBasic2(m_snapshot.isNull()));
    183     //         if (m_machine.GetSnapshotCount() > 0)
    184     //             setPage(Page3, new UIWizardCloneVMPageBasic3(m_snapshot.isNull() ? false : m_snapshot.GetChildrenCount() > 0));
     182            addPage(new UIWizardCloneVMPageBasic2(m_snapshot.isNull()));
     183            if (m_machine.GetSnapshotCount() > 0)
     184                addPage(new UIWizardCloneVMPageBasic3(m_snapshot.isNull() ? false : m_snapshot.GetChildrenCount() > 0));
    185185            break;
    186186        }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp

    r90589 r90607  
    1818/* Qt includes: */
    1919#include <QVBoxLayout>
    20 #include <QRadioButton>
    21 #include <QButtonGroup>
    2220
    2321/* GUI includes: */
     
    2624#include "UIWizardCloneVM.h"
    2725#include "QIRichTextLabel.h"
     26#include "UIWizardCloneVMEditors.h"
    2827
    2928/* COM includes: */
     
    3130
    3231
    33 UIWizardCloneVMPage2::UIWizardCloneVMPage2(bool fAdditionalInfo)
    34     : m_fAdditionalInfo(fAdditionalInfo)
    35     , m_pButtonGroup(0)
    36     , m_pFullCloneRadio(0)
    37     , m_pLinkedCloneRadio(0)
     32// UIWizardCloneVMPage2::UIWizardCloneVMPage2(bool fAdditionalInfo)
     33//     : m_fAdditionalInfo(fAdditionalInfo)
     34//     , m_pButtonGroup(0)
     35//     , m_pFullCloneRadio(0)
     36//     , m_pLinkedCloneRadio(0)
     37// {
     38// }
     39
     40// bool UIWizardCloneVMPage2::linkedClone() const
     41// {
     42//     return m_pLinkedCloneRadio ? m_pLinkedCloneRadio->isChecked() : false;
     43// }
     44
     45UIWizardCloneVMPageBasic2::UIWizardCloneVMPageBasic2(bool fAdditionalInfo)
     46    : m_pLabel(0)
     47    , m_fAdditionalInfo(fAdditionalInfo)
     48    , m_pCloneTypeGroupBox(0)
    3849{
     50    prepare();
    3951}
    4052
    41 bool UIWizardCloneVMPage2::linkedClone() const
     53void UIWizardCloneVMPageBasic2::prepare()
    4254{
    43     return m_pLinkedCloneRadio ? m_pLinkedCloneRadio->isChecked() : false;
     55    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
     56    AssertReturnVoid(pMainLayout);
     57    m_pLabel = new QIRichTextLabel(this);
     58    if (m_pLabel)
     59        pMainLayout->addWidget(m_pLabel);
     60
     61    m_pCloneTypeGroupBox = new UICloneVMCloneTypeGroupBox;
     62    if (m_pCloneTypeGroupBox)
     63    {
     64        m_pCloneTypeGroupBox->setFlat(true);
     65        pMainLayout->addWidget(m_pCloneTypeGroupBox);
     66    }
     67
     68    pMainLayout->addStretch();
     69
     70
    4471}
    4572
    46 UIWizardCloneVMPageBasic2::UIWizardCloneVMPageBasic2(bool fAdditionalInfo)
    47     : UIWizardCloneVMPage2(fAdditionalInfo)
    48     , m_pLabel(0)
     73void UIWizardCloneVMPageBasic2::sltButtonClicked(QAbstractButton */*pButton*/)
    4974{
    50     /* Prepare main layout: */
    51     QVBoxLayout *pMainLayout = new QVBoxLayout(this);
    52     if (pMainLayout)
    53     {
    54         /* Prepare description label: */
    55         m_pLabel = new QIRichTextLabel(this);
    56         if (m_pLabel)
    57             pMainLayout->addWidget(m_pLabel);
    58 
    59         /* Prepare clone-type options layout: */
    60         QVBoxLayout *pCloneTypeCntLayout = new QVBoxLayout;
    61         if (pCloneTypeCntLayout)
    62         {
    63             /* Prepare clone-type options button-group: */
    64             m_pButtonGroup = new QButtonGroup(this);
    65             if (m_pButtonGroup)
    66             {
    67                 /* Prepare full clone option radio-button: */
    68                 m_pFullCloneRadio = new QRadioButton(this);
    69                 if (m_pFullCloneRadio)
    70                 {
    71                     m_pFullCloneRadio->setChecked(true);
    72                     m_pButtonGroup->addButton(m_pFullCloneRadio);
    73                     pCloneTypeCntLayout->addWidget(m_pFullCloneRadio);
    74                 }
    75 
    76                 /* Load currently supported clone options: */
    77                 CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
    78                 const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions();
    79                 /* Check whether we support linked clone option at all: */
    80                 const bool fSupportedLinkedClone = supportedOptions.contains(KCloneOptions_Link);
    81 
    82                 /* Prepare linked clone option radio-button: */
    83                 if (fSupportedLinkedClone)
    84                 {
    85                     m_pLinkedCloneRadio = new QRadioButton(this);
    86                     if (m_pLinkedCloneRadio)
    87                     {
    88                         m_pButtonGroup->addButton(m_pLinkedCloneRadio);
    89                         pCloneTypeCntLayout->addWidget(m_pLinkedCloneRadio);
    90                     }
    91                 }
    92             }
    93 
    94             pMainLayout->addLayout(pCloneTypeCntLayout);
    95         }
    96 
    97         /* Stretch under buttons: */
    98         pMainLayout->addStretch();
    99     }
    100 
    101     /* Setup connections: */
    102     connect(m_pButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
    103             this, &UIWizardCloneVMPageBasic2::sltButtonClicked);
    104 
    105     /* Register fields: */
    106     registerField("linkedClone", this, "linkedClone");
    107 }
    108 
    109 void UIWizardCloneVMPageBasic2::sltButtonClicked(QAbstractButton *pButton)
    110 {
    111     setFinalPage(pButton != m_pFullCloneRadio);
     75    //setFinalPage(pButton != m_pFullCloneRadio);
    11276}
    11377
     
    13094        strLabel += UIWizardCloneVM::tr("<p>If you create a <b>Linked clone</b> then a new snapshot will be created "
    13195                                        "in the original virtual machine as part of the cloning process.</p>");
    132     m_pLabel->setText(strLabel);
    133 
    134     m_pFullCloneRadio->setText(UIWizardCloneVM::tr("&Full clone"));
    135     if (m_pLinkedCloneRadio)
    136         m_pLinkedCloneRadio->setText(UIWizardCloneVM::tr("&Linked clone"));
     96    if (m_pLabel)
     97        m_pLabel->setText(strLabel);
    13798}
    13899
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.h

    r90589 r90607  
    2323
    2424/* Local includes: */
    25 #include "UIWizardPage.h"
     25#include "UINativeWizardPage.h"
    2626
    2727/* Forward declarations: */
     28class QAbstractButton;
    2829class QButtonGroup;
    2930class QRadioButton;
    3031class QIRichTextLabel;
     32class UICloneVMCloneTypeGroupBox;
    3133
    32 /* 2nd page of the Clone Virtual Machine wizard (base part): */
    33 class UIWizardCloneVMPage2 : public UIWizardPageBase
    34 {
    35 protected:
     34// /* 2nd page of the Clone Virtual Machine wizard (base part): */
     35// class UIWizardCloneVMPage2 : public UIWizardPageBase
     36// {
     37// protected:
    3638
    37     /* Constructor: */
    38     UIWizardCloneVMPage2(bool fAdditionalInfo);
     39//     /* Constructor: */
     40//     UIWizardCloneVMPage2(bool fAdditionalInfo);
    3941
    40     /* Stuff for 'linkedClone' field: */
    41     bool linkedClone() const;
     42//     /* Stuff for 'linkedClone' field: */
     43//     bool linkedClone() const;
    4244
    43     /* Variables: */
    44     bool m_fAdditionalInfo;
     45//     /* Variables: */
    4546
    46     /* Widgets: */
    47     QButtonGroup *m_pButtonGroup;
    48     QRadioButton *m_pFullCloneRadio;
    49     QRadioButton *m_pLinkedCloneRadio;
    50 };
     47//     /* Widgets: */
     48// };
    5149
    5250/* 2nd page of the Clone Virtual Machine wizard (basic extension): */
    53 class UIWizardCloneVMPageBasic2 : public UIWizardPage, public UIWizardCloneVMPage2
     51class UIWizardCloneVMPageBasic2 : public UINativeWizardPage
    5452{
    5553    Q_OBJECT;
    56     Q_PROPERTY(bool linkedClone READ linkedClone);
     54    //Q_PROPERTY(bool linkedClone READ linkedClone);
    5755
    5856public:
     
    7371    /* Prepare stuff: */
    7472    void initializePage();
     73    void prepare();
    7574
    7675    /* Validation stuff: */
     
    7978    /* Widgets: */
    8079    QIRichTextLabel *m_pLabel;
     80    bool m_fAdditionalInfo;
     81    UICloneVMCloneTypeGroupBox *m_pCloneTypeGroupBox;
    8182};
    8283
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp

    r90589 r90607  
    2121
    2222/* Local includes: */
     23#include "UIWizardCloneVM.h"
     24#include "UIWizardCloneVMEditors.h"
    2325#include "UIWizardCloneVMPageBasic3.h"
    24 #include "UIWizardCloneVM.h"
    2526#include "QIRichTextLabel.h"
    2627
    2728
    28 UIWizardCloneVMPage3::UIWizardCloneVMPage3(bool fShowChildsOption)
    29     : m_fShowChildsOption(fShowChildsOption)
     29// UIWizardCloneVMPage3::UIWizardCloneVMPage3(bool fShowChildsOption)
     30//     : m_fShowChildsOption(fShowChildsOption)
     31// {
     32// }
     33
     34// KCloneMode UIWizardCloneVMPage3::cloneMode() const
     35// {
     36//     if (m_pMachineAndChildsRadio->isChecked())
     37//         return KCloneMode_MachineAndChildStates;
     38//     else if (m_pAllRadio->isChecked())
     39//         return KCloneMode_AllStates;
     40//     return KCloneMode_MachineState;
     41// }
     42
     43// void UIWizardCloneVMPage3::setCloneMode(KCloneMode cloneMode)
     44// {
     45//     switch (cloneMode)
     46//     {
     47//         case KCloneMode_MachineState: m_pMachineRadio->setChecked(true); break;
     48//         case KCloneMode_MachineAndChildStates: m_pMachineAndChildsRadio->setChecked(true); break;
     49//         case KCloneMode_AllStates: m_pAllRadio->setChecked(true); break;
     50//         case KCloneMode_Max: break; /* Shut up, MSC! */
     51//     }
     52// }
     53
     54UIWizardCloneVMPageBasic3::UIWizardCloneVMPageBasic3(bool fShowChildsOption)
     55    : m_pLabel(0)
     56    , m_pCloneModeGroupBox(0)
     57    , m_fShowChildsOption(fShowChildsOption)
    3058{
     59    prepare();
    3160}
    3261
    33 KCloneMode UIWizardCloneVMPage3::cloneMode() const
     62void UIWizardCloneVMPageBasic3::prepare()
    3463{
    35     if (m_pMachineAndChildsRadio->isChecked())
    36         return KCloneMode_MachineAndChildStates;
    37     else if (m_pAllRadio->isChecked())
    38         return KCloneMode_AllStates;
    39     return KCloneMode_MachineState;
    40 }
     64    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
     65    AssertReturnVoid(pMainLayout);
     66    m_pLabel = new QIRichTextLabel(this);
    4167
    42 void UIWizardCloneVMPage3::setCloneMode(KCloneMode cloneMode)
    43 {
    44     switch (cloneMode)
     68    if (m_pLabel)
     69        pMainLayout->addWidget(m_pLabel);
     70
     71    m_pCloneModeGroupBox = new UICloneVMCloneModeGroupBox(m_fShowChildsOption);
     72    if (m_pCloneModeGroupBox)
    4573    {
    46         case KCloneMode_MachineState: m_pMachineRadio->setChecked(true); break;
    47         case KCloneMode_MachineAndChildStates: m_pMachineAndChildsRadio->setChecked(true); break;
    48         case KCloneMode_AllStates: m_pAllRadio->setChecked(true); break;
    49         case KCloneMode_Max: break; /* Shut up, MSC! */
     74        pMainLayout->addWidget(m_pCloneModeGroupBox);
     75        m_pCloneModeGroupBox->setFlat(true);
    5076    }
    51 }
     77    pMainLayout->addStretch();
    5278
    53 UIWizardCloneVMPageBasic3::UIWizardCloneVMPageBasic3(bool fShowChildsOption)
    54     : UIWizardCloneVMPage3(fShowChildsOption)
    55 {
    56     /* Create widgets: */
    57     QVBoxLayout *pMainLayout = new QVBoxLayout(this);
    58     {
    59         m_pLabel = new QIRichTextLabel(this);
    60         QVBoxLayout *pCloneModeCntLayout = new QVBoxLayout;
    61         {
    62             m_pMachineRadio = new QRadioButton(this);
    63             {
    64                 m_pMachineRadio->setChecked(true);
    65             }
    66             m_pMachineAndChildsRadio = new QRadioButton(this);
    67             {
    68                 if (!m_fShowChildsOption)
    69                    m_pMachineAndChildsRadio->hide();
    70             }
    71             m_pAllRadio = new QRadioButton(this);
    72             pCloneModeCntLayout->addWidget(m_pMachineRadio);
    73             pCloneModeCntLayout->addWidget(m_pMachineAndChildsRadio);
    74             pCloneModeCntLayout->addWidget(m_pAllRadio);
    75         }
    76         pMainLayout->addWidget(m_pLabel);
    77         pMainLayout->addLayout(pCloneModeCntLayout);
    78         pMainLayout->addStretch();
    79     }
    80 
    81     /* Register classes: */
    82     qRegisterMetaType<KCloneMode>();
    83     /* Register fields: */
    84     registerField("cloneMode", this, "cloneMode");
     79    retranslateUi();
    8580}
    8681
     
    117112                          .arg(strOpt3));
    118113
    119     m_pMachineRadio->setText(UIWizardCloneVM::tr("Current &machine state"));
    120     m_pMachineAndChildsRadio->setText(UIWizardCloneVM::tr("Current &snapshot tree branch"));
    121     m_pAllRadio->setText(UIWizardCloneVM::tr("&Everything"));
     114    // m_pMachineRadio->setText(UIWizardCloneVM::tr("Current &machine state"));
     115    // m_pMachineAndChildsRadio->setText(UIWizardCloneVM::tr("Current &snapshot tree branch"));
     116    // m_pAllRadio->setText(UIWizardCloneVM::tr("&Everything"));
    122117}
    123118
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.h

    r82968 r90607  
    2323
    2424/* GUI includes: */
    25 #include "UIWizardPage.h"
     25#include "UINativeWizardPage.h"
    2626
    2727/* COM includes: */
     
    3131class QRadioButton;
    3232class QIRichTextLabel;
     33class UICloneVMCloneModeGroupBox;
    3334
    34 /* 3rd page of the Clone Virtual Machine wizard (base part): */
    35 class UIWizardCloneVMPage3 : public UIWizardPageBase
    36 {
    37 protected:
     35// /* 3rd page of the Clone Virtual Machine wizard (base part): */
     36// class UIWizardCloneVMPage3 : public UIWizardPageBase
     37// {
     38// protected:
    3839
    39     /* Constructor: */
    40     UIWizardCloneVMPage3(bool fShowChildsOption);
     40//     /* Constructor: */
     41//     UIWizardCloneVMPage3(bool fShowChildsOption);
    4142
    42     /* Stuff for 'cloneMode' field: */
    43     KCloneMode cloneMode() const;
    44     void setCloneMode(KCloneMode cloneMode);
     43//     /* Stuff for 'cloneMode' field: */
     44//     KCloneMode cloneMode() const;
     45//     void setCloneMode(KCloneMode cloneMode);
    4546
    46     /* Variables: */
    47     bool m_fShowChildsOption;
     47//     /* Variables: */
    4848
    49     /* Widgets: */
    50     QRadioButton *m_pMachineRadio;
    51     QRadioButton *m_pMachineAndChildsRadio;
    52     QRadioButton *m_pAllRadio;
    53 };
     49//     /* Widgets: */
     50//     QRadioButton *m_pMachineRadio;
     51//     QRadioButton *m_pMachineAndChildsRadio;
     52//     QRadioButton *m_pAllRadio;
     53// };
    5454
    5555/* 3rd page of the Clone Virtual Machine wizard (basic extension): */
    56 class UIWizardCloneVMPageBasic3 : public UIWizardPage, public UIWizardCloneVMPage3
     56class UIWizardCloneVMPageBasic3 : public UINativeWizardPage
    5757{
    5858    Q_OBJECT;
    59     Q_PROPERTY(KCloneMode cloneMode READ cloneMode WRITE setCloneMode);
    6059
    6160public:
     
    7170    /* Prepare stuff: */
    7271    void initializePage();
     72    void prepare();
    7373
    7474    /* Validation stuff: */
     
    7777    /* Widgets: */
    7878    QIRichTextLabel *m_pLabel;
     79    UICloneVMCloneModeGroupBox *m_pCloneModeGroupBox;
     80
     81    bool m_fShowChildsOption;
     82
    7983};
    8084
    8185#endif /* !FEQT_INCLUDED_SRC_wizards_clonevm_UIWizardCloneVMPageBasic3_h */
    82 
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp

    r90589 r90607  
    3636
    3737UIWizardCloneVMPageExpert::UIWizardCloneVMPageExpert(const QString &/*strOriginalName*/, const QString &/*strDefaultPath*/,
    38                                                      bool fAdditionalInfo, bool fShowChildsOption, const QString &/*strGroup*/)
    39     : UIWizardCloneVMPage2(fAdditionalInfo)
    40     , UIWizardCloneVMPage3(fShowChildsOption)
     38                                                     bool /*fAdditionalInfo*/, bool fShowChildsOption, const QString &/*strGroup*/)
     39    : m_fShowChildsOption(fShowChildsOption)
    4140{
    4241    /* Create widgets: */
     
    217216}
    218217
    219 void UIWizardCloneVMPageExpert::sltButtonToggled(QAbstractButton *pButton, bool fChecked)
    220 {
    221     if (m_pLinkedCloneRadio && pButton == m_pLinkedCloneRadio && fChecked)
    222     {
    223         m_pCloneModeCnt->setEnabled(false);
    224         m_pMachineRadio->setChecked(true);
    225     }
    226     else
    227     {
    228         m_pCloneModeCnt->setEnabled(true);
    229     }
    230 }
     218//void UIWizardCloneVMPageExpert::sltButtonToggled(QAbstractButton */*pButton*/, bool /*fChecked*/)
     219//{
     220    // if (m_pLinkedCloneRadio && pButton == m_pLinkedCloneRadio && fChecked)
     221    // {
     222    //     m_pCloneModeCnt->setEnabled(false);
     223    //     m_pMachineRadio->setChecked(true);
     224    // }
     225    // else
     226    // {
     227    //     m_pCloneModeCnt->setEnabled(true);
     228    // }
     229//}
    231230
    232231void UIWizardCloneVMPageExpert::retranslateUi()
     
    327326}
    328327
    329 void UIWizardCloneVMPageExpert::sltNameChanged()
    330 {
     328//void UIWizardCloneVMPageExpert::sltNameChanged()
     329//{
    331330    //composeCloneFilePath();
    332 }
    333 
    334 void UIWizardCloneVMPageExpert::sltPathChanged()
    335 {
     331//}
     332
     333//void UIWizardCloneVMPageExpert::sltPathChanged()
     334//{
    336335    //composeCloneFilePath();
    337 }
     336//}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.h

    r90589 r90607  
    2323
    2424/* Local includes: */
    25 #include "UIWizardCloneVMPageBasic1.h"
    26 #include "UIWizardCloneVMPageBasic2.h"
    27 #include "UIWizardCloneVMPageBasic3.h"
     25#include "UINativeWizardPage.h"
    2826
    2927/* Forward declarations: */
     
    3230
    3331/* Expert page of the Clone Virtual Machine wizard: */
    34 class UIWizardCloneVMPageExpert : public UIWizardPage,
    35                                   public UIWizardCloneVMPage2,
    36                                   public UIWizardCloneVMPage3
     32class UIWizardCloneVMPageExpert : public UINativeWizardPage
    3733{
    3834    Q_OBJECT;
     
    5450
    5551    /* Button toggle handler: */
    56     void sltButtonToggled(QAbstractButton *pButton, bool fChecked);
    57     void sltNameChanged();
    58     void sltPathChanged();
     52    // void sltButtonToggled(QAbstractButton *pButton, bool fChecked);
     53    // void sltNameChanged();
     54    // void sltPathChanged();
    5955
    6056private:
     
    7672    QGroupBox   *m_pCloneOptionsCnt;
    7773    QGridLayout *m_pCloneOptionsLayout;
     74
     75    bool m_fShowChildsOption;
    7876};
    7977
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.cpp

    r90599 r90607  
    1717
    1818/* Qt includes: */
    19 // #include <QButtonGroup>
     19#include <QButtonGroup>
    2020#include <QCheckBox>
    2121#include <QComboBox>
     
    2323// #include <QFileInfo>
    2424#include <QLabel>
    25 // #include <QRadioButton>
     25#include <QRadioButton>
    2626#include <QGridLayout>
    2727
     
    5050
    5151/*********************************************************************************************************************************
    52 *   UICloneVMNamePathEditor implementation.                                                                                      *
    53 *********************************************************************************************************************************/
     52 *   UICloneVMNamePathEditor implementation.                                                                                      *
     53 *********************************************************************************************************************************/
    5454
    5555UICloneVMNamePathEditor::UICloneVMNamePathEditor(const QString &strOriginalName, const QString &strDefaultPath, QWidget *pParent /* = 0 */)
     
    130130
    131131
    132 
    133132/*********************************************************************************************************************************
    134 *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
    135 *********************************************************************************************************************************/
     133 *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
     134 *********************************************************************************************************************************/
    136135
    137136
     
    237236        {
    238237            case MACAddressClonePolicy_KeepAllMACs:
    239             {
    240                 m_pMACComboBox->setItemText(i, tr("Include all network adapter MAC addresses"));
    241                 m_pMACComboBox->setItemData(i, tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
    242                 break;
    243             }
     238                {
     239                    m_pMACComboBox->setItemText(i, tr("Include all network adapter MAC addresses"));
     240                    m_pMACComboBox->setItemData(i, tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
     241                    break;
     242                }
    244243            case MACAddressClonePolicy_KeepNATMACs:
    245             {
    246                 m_pMACComboBox->setItemText(i, tr("Include only NAT network adapter MAC addresses"));
    247                 m_pMACComboBox->setItemData(i, tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
    248                 break;
    249             }
     244                {
     245                    m_pMACComboBox->setItemText(i, tr("Include only NAT network adapter MAC addresses"));
     246                    m_pMACComboBox->setItemData(i, tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
     247                    break;
     248                }
    250249            case MACAddressClonePolicy_StripAllMACs:
    251             {
    252                 m_pMACComboBox->setItemText(i, tr("Generate new MAC addresses for all network adapters"));
    253                 m_pMACComboBox->setItemData(i, tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
    254                 break;
    255             }
     250                {
     251                    m_pMACComboBox->setItemText(i, tr("Generate new MAC addresses for all network adapters"));
     252                    m_pMACComboBox->setItemData(i, tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
     253                    break;
     254                }
    256255            default:
    257256                break;
     
    306305        setMACAddressClonePolicy(MACAddressClonePolicy_StripAllMACs);
    307306}
     307
     308/*********************************************************************************************************************************
     309 *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
     310 *********************************************************************************************************************************/
     311
     312UICloneVMCloneTypeGroupBox::UICloneVMCloneTypeGroupBox(QWidget *pParent /* = 0 */)
     313    :QIWithRetranslateUI<QGroupBox>(pParent)
     314    , m_pButtonGroup(0)
     315    , m_pFullCloneRadio(0)
     316    , m_pLinkedCloneRadio(0)
     317{
     318    prepare();
     319}
     320
     321void UICloneVMCloneTypeGroupBox::prepare()
     322{
     323    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
     324    AssertReturnVoid(pMainLayout);
     325    /* Prepare clone-type options button-group: */
     326    m_pButtonGroup = new QButtonGroup(this);
     327    if (m_pButtonGroup)
     328    {
     329        /* Prepare full clone option radio-button: */
     330        m_pFullCloneRadio = new QRadioButton(this);
     331        if (m_pFullCloneRadio)
     332        {
     333            m_pFullCloneRadio->setChecked(true);
     334            m_pButtonGroup->addButton(m_pFullCloneRadio);
     335            pMainLayout->addWidget(m_pFullCloneRadio);
     336        }
     337
     338        /* Load currently supported clone options: */
     339        CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
     340        const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions();
     341        /* Check whether we support linked clone option at all: */
     342        const bool fSupportedLinkedClone = supportedOptions.contains(KCloneOptions_Link);
     343
     344        /* Prepare linked clone option radio-button: */
     345        if (fSupportedLinkedClone)
     346        {
     347            m_pLinkedCloneRadio = new QRadioButton(this);
     348            if (m_pLinkedCloneRadio)
     349            {
     350                m_pButtonGroup->addButton(m_pLinkedCloneRadio);
     351                pMainLayout->addWidget(m_pLinkedCloneRadio);
     352            }
     353        }
     354    }
     355
     356    retranslateUi();
     357}
     358
     359void UICloneVMCloneTypeGroupBox::retranslateUi()
     360{
     361    if (m_pFullCloneRadio)
     362        m_pFullCloneRadio->setText(tr("&Full clone"));
     363    if (m_pLinkedCloneRadio)
     364        m_pLinkedCloneRadio->setText(tr("&Linked clone"));
     365
     366}
     367
     368/*********************************************************************************************************************************
     369 *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
     370 *********************************************************************************************************************************/
     371
     372UICloneVMCloneModeGroupBox::UICloneVMCloneModeGroupBox(bool fShowChildsOption, QWidget *pParent /* = 0 */)
     373    :QIWithRetranslateUI<QGroupBox>(pParent)
     374    , m_fShowChildsOption(fShowChildsOption)
     375    , m_pMachineRadio(0)
     376    , m_pMachineAndChildsRadio(0)
     377    , m_pAllRadio(0)
     378{
     379    prepare();
     380}
     381
     382void UICloneVMCloneModeGroupBox::prepare()
     383{
     384    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
     385    AssertReturnVoid(pMainLayout);
     386
     387    m_pMachineRadio = new QRadioButton(this);
     388    {
     389        m_pMachineRadio->setChecked(true);
     390    }
     391    m_pMachineAndChildsRadio = new QRadioButton(this);
     392    {
     393        if (!m_fShowChildsOption)
     394            m_pMachineAndChildsRadio->hide();
     395    }
     396    m_pAllRadio = new QRadioButton(this);
     397    pMainLayout->addWidget(m_pMachineRadio);
     398    pMainLayout->addWidget(m_pMachineAndChildsRadio);
     399    pMainLayout->addWidget(m_pAllRadio);
     400    pMainLayout->addStretch();
     401
     402    retranslateUi();
     403}
     404
     405void UICloneVMCloneModeGroupBox::retranslateUi()
     406{
     407    if (m_pMachineRadio)
     408        m_pMachineRadio->setText(tr("Current &machine state"));
     409    if (m_pMachineAndChildsRadio)
     410        m_pMachineAndChildsRadio->setText(tr("Current &snapshot tree branch"));
     411    if (m_pAllRadio)
     412        m_pAllRadio->setText(tr("&Everything"));
     413}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.h

    r90599 r90607  
    3232/* Forward declarations: */
    3333// class CMediumFormat;
    34 // class QButtonGroup;
     34class QButtonGroup;
    3535class QCheckBox;
    3636class QGridLayout;
    3737class QComboBox;
    3838class QLabel;
     39class QRadioButton;
    3940// class QVBoxLayout;
    4041// class QIRichTextLabel;
     
    133134};
    134135
     136class UICloneVMCloneTypeGroupBox : public QIWithRetranslateUI<QGroupBox>
     137{
     138    Q_OBJECT;
     139
     140signals:
     141
     142public:
     143
     144    UICloneVMCloneTypeGroupBox(QWidget *pParent = 0);
     145
     146private:
     147
     148    void prepare();
     149    virtual void retranslateUi() /* override final */;
     150
     151    QButtonGroup *m_pButtonGroup;
     152    QRadioButton *m_pFullCloneRadio;
     153    QRadioButton *m_pLinkedCloneRadio;
     154};
     155
     156
     157class UICloneVMCloneModeGroupBox : public QIWithRetranslateUI<QGroupBox>
     158{
     159    Q_OBJECT;
     160
     161signals:
     162
     163public:
     164
     165    UICloneVMCloneModeGroupBox(bool fShowChildsOption, QWidget *pParent = 0);
     166
     167private:
     168
     169    void prepare();
     170    virtual void retranslateUi() /* override final */;
     171
     172    bool m_fShowChildsOption;
     173    QRadioButton *m_pMachineRadio;
     174    QRadioButton *m_pMachineAndChildsRadio;
     175    QRadioButton *m_pAllRadio;
     176
     177};
     178
     179
    135180
    136181#endif /* !FEQT_INCLUDED_SRC_wizards_editors_UIWizardCloneVMEditors_h */
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