VirtualBox

Ignore:
Timestamp:
Mar 20, 2015 4:03:47 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99095
Message:

FE/Qt: Machine settings: General page: Cleanup rework to prepare to the encryption settings integration (step 2).

Location:
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp

    r54832 r54880  
    4141CGuestOSType UIMachineSettingsGeneral::guestOSType() const
    4242{
     43    AssertPtrReturn(m_pNameAndSystemEditor, CGuestOSType());
    4344    return m_pNameAndSystemEditor->type();
    4445}
     
    4647bool UIMachineSettingsGeneral::is64BitOSTypeSelected() const
    4748{
     49    AssertPtrReturn(m_pNameAndSystemEditor, false);
    4850    return m_pNameAndSystemEditor->type().GetIs64Bit();
    4951}
     
    5254bool UIMachineSettingsGeneral::isWindowsOSTypeSelected() const
    5355{
     56    AssertPtrReturn(m_pNameAndSystemEditor, false);
    5457    return m_pNameAndSystemEditor->type().GetFamilyId() == "Windows";
    5558}
     
    8083    UIDataSettingsMachineGeneral generalData;
    8184
    82     /* Gather general data: */
     85    /* 'Basic' tab data: */
    8386    generalData.m_strName = m_machine.GetName();
    8487    generalData.m_strGuestOsTypeId = m_machine.GetOSTypeId();
     88
     89    /* 'Advanced' tab data: */
    8590    generalData.m_strSnapshotsFolder = m_machine.GetSnapshotFolder();
    8691    generalData.m_strSnapshotsHomeDir = QFileInfo(m_machine.GetSettingsFilePath()).absolutePath();
    8792    generalData.m_clipboardMode = m_machine.GetClipboardMode();
    8893    generalData.m_dndMode = m_machine.GetDnDMode();
     94
     95    /* 'Description' tab data: */
    8996    generalData.m_strDescription = m_machine.GetDescription();
    9097
     
    101108    const UIDataSettingsMachineGeneral &generalData = m_cache.base();
    102109
    103     /* Load general data to page: */
     110    /* 'Basic' tab data: */
     111    AssertPtrReturnVoid(m_pNameAndSystemEditor);
    104112    m_pNameAndSystemEditor->setName(generalData.m_strName);
    105113    m_pNameAndSystemEditor->setType(vboxGlobal().vmGuestOSType(generalData.m_strGuestOsTypeId));
     114
     115    /* 'Advanced' tab data: */
     116    AssertPtrReturnVoid(mPsSnapshot);
     117    AssertPtrReturnVoid(mCbClipboard);
     118    AssertPtrReturnVoid(mCbDragAndDrop);
    106119    mPsSnapshot->setPath(generalData.m_strSnapshotsFolder);
    107120    mPsSnapshot->setHomeDir(generalData.m_strSnapshotsHomeDir);
    108121    mCbClipboard->setCurrentIndex(generalData.m_clipboardMode);
    109122    mCbDragAndDrop->setCurrentIndex(generalData.m_dndMode);
     123
     124    /* 'Description' tab data: */
     125    AssertPtrReturnVoid(mTeDescription);
    110126    mTeDescription->setPlainText(generalData.m_strDescription);
    111127
     
    122138    UIDataSettingsMachineGeneral generalData = m_cache.base();
    123139
    124     /* Gather general data: */
     140    /* 'Basic' tab data: */
     141    AssertPtrReturnVoid(m_pNameAndSystemEditor);
    125142    generalData.m_strName = m_pNameAndSystemEditor->name();
    126143    generalData.m_strGuestOsTypeId = m_pNameAndSystemEditor->type().GetId();
     144
     145    /* 'Advanced' tab data: */
     146    AssertPtrReturnVoid(mPsSnapshot);
     147    AssertPtrReturnVoid(mCbClipboard);
     148    AssertPtrReturnVoid(mCbDragAndDrop);
    127149    generalData.m_strSnapshotsFolder = mPsSnapshot->path();
    128150    generalData.m_clipboardMode = (KClipboardMode)mCbClipboard->currentIndex();
    129151    generalData.m_dndMode = (KDnDMode)mCbDragAndDrop->currentIndex();
     152
     153    /* 'Description' tab data: */
     154    AssertPtrReturnVoid(mTeDescription);
    130155    generalData.m_strDescription = mTeDescription->toPlainText().isEmpty() ?
    131156                                   QString::null : mTeDescription->toPlainText();
     
    146171        const UIDataSettingsMachineGeneral &generalData = m_cache.data();
    147172
    148         /* Store general data: */
    149173        if (isMachineInValidMode())
    150174        {
    151             /* Advanced tab: */
    152             m_machine.SetClipboardMode(generalData.m_clipboardMode);
    153             m_machine.SetDnDMode(generalData.m_dndMode);
    154             /* Description tab: */
    155             m_machine.SetDescription(generalData.m_strDescription);
     175            /* 'Advanced' tab data: */
     176            if (generalData.m_clipboardMode != m_cache.base().m_clipboardMode)
     177                m_machine.SetClipboardMode(generalData.m_clipboardMode);
     178            if (generalData.m_dndMode != m_cache.base().m_dndMode)
     179                m_machine.SetDnDMode(generalData.m_dndMode);
     180
     181            /* 'Description' tab: */
     182            if (generalData.m_strDescription != m_cache.base().m_strDescription)
     183                m_machine.SetDescription(generalData.m_strDescription);
    156184        }
     185
    157186        if (isMachineOffline())
    158187        {
    159             /* Basic tab: Must update long mode CPU feature bit when os type changes. */
     188            /* 'Basic' tab data: Must update long mode CPU feature bit when os type changes. */
    160189            if (generalData.m_strGuestOsTypeId != m_cache.base().m_strGuestOsTypeId)
    161190            {
     
    165194                m_machine.SetCPUProperty(KCPUPropertyType_LongMode, newType.GetIs64Bit());
    166195            }
    167             /* Advanced tab: */
    168             m_machine.SetSnapshotFolder(generalData.m_strSnapshotsFolder);
    169             /* Basic (again) tab: */
    170             /* VM name must be last as otherwise its VM rename magic can collide with other settings in the config,
     196
     197            /* 'Advanced' tab data: */
     198            if (generalData.m_strSnapshotsFolder != m_cache.base().m_strSnapshotsFolder)
     199                m_machine.SetSnapshotFolder(generalData.m_strSnapshotsFolder);
     200
     201            /* 'Basic' (again) tab data: */
     202            /* VM name must be last as otherwise its VM rename magic
     203             * can collide with other settings in the config,
    171204             * especially with the snapshot folder: */
    172             m_machine.SetName(generalData.m_strName);
     205            if (generalData.m_strName != m_cache.base().m_strName)
     206                m_machine.SetName(generalData.m_strName);
    173207        }
    174208    }
     
    212246void UIMachineSettingsGeneral::setOrderAfter(QWidget *pWidget)
    213247{
    214     /* Basic tab-order: */
     248    /* 'Basic' tab: */
     249    AssertPtrReturnVoid(pWidget);
     250    AssertPtrReturnVoid(mTwGeneral);
     251    AssertPtrReturnVoid(mTwGeneral->focusProxy());
     252    AssertPtrReturnVoid(m_pNameAndSystemEditor);
    215253    setTabOrder(pWidget, mTwGeneral->focusProxy());
    216254    setTabOrder(mTwGeneral->focusProxy(), m_pNameAndSystemEditor);
    217255
    218     /* Advanced tab-order: */
     256    /* 'Advanced' tab: */
     257    AssertPtrReturnVoid(mPsSnapshot);
     258    AssertPtrReturnVoid(mCbClipboard);
     259    AssertPtrReturnVoid(mCbDragAndDrop);
    219260    setTabOrder(m_pNameAndSystemEditor, mPsSnapshot);
    220261    setTabOrder(mPsSnapshot, mCbClipboard);
    221262    setTabOrder(mCbClipboard, mCbDragAndDrop);
    222263
    223     /* Description tab-order: */
     264    /* 'Description' tab: */
     265    AssertPtrReturnVoid(mTeDescription);
    224266    setTabOrder(mCbDragAndDrop, mTeDescription);
    225267}
     
    231273
    232274    /* Translate path selector: */
     275    AssertPtrReturnVoid(mPsSnapshot);
    233276    mPsSnapshot->setWhatsThis(tr("Holds the path where snapshots of this "
    234277                                 "virtual machine will be stored. Be aware that "
    235278                                 "snapshots can take quite a lot of disk space."));
    236279    /* Translate Shared Clipboard mode combo: */
     280    AssertPtrReturnVoid(mCbClipboard);
    237281    mCbClipboard->setItemText(0, gpConverter->toString(KClipboardMode_Disabled));
    238282    mCbClipboard->setItemText(1, gpConverter->toString(KClipboardMode_HostToGuest));
     
    240284    mCbClipboard->setItemText(3, gpConverter->toString(KClipboardMode_Bidirectional));
    241285    /* Translate Drag'n'drop mode combo: */
     286    AssertPtrReturnVoid(mCbDragAndDrop);
    242287    mCbDragAndDrop->setItemText(0, gpConverter->toString(KDnDMode_Disabled));
    243288    mCbDragAndDrop->setItemText(1, gpConverter->toString(KDnDMode_HostToGuest));
     
    251296    Ui::UIMachineSettingsGeneral::setupUi(this);
    252297
    253     /* Prepare pages: */
    254     preparePageBasic();
    255     preparePageAdvanced();
    256     preparePageDescription();
    257 }
    258 
    259 void UIMachineSettingsGeneral::preparePageBasic()
     298    /* Prepare tabs: */
     299    prepareTabBasic();
     300    prepareTabAdvanced();
     301    prepareTabDescription();
     302}
     303
     304void UIMachineSettingsGeneral::prepareTabBasic()
    260305{
    261306    /* Name and OS Type widget was created in the .ui file: */
     
    269314}
    270315
    271 void UIMachineSettingsGeneral::preparePageAdvanced()
     316void UIMachineSettingsGeneral::prepareTabAdvanced()
    272317{
    273318    /* Shared Clipboard mode combo was created in the .ui file: */
     
    275320    {
    276321        /* Configure Shared Clipboard mode combo: */
    277         mCbClipboard->addItem (""); /* KClipboardMode_Disabled */
    278         mCbClipboard->addItem (""); /* KClipboardMode_HostToGuest */
    279         mCbClipboard->addItem (""); /* KClipboardMode_GuestToHost */
    280         mCbClipboard->addItem (""); /* KClipboardMode_Bidirectional */
     322        mCbClipboard->addItem(""); /* KClipboardMode_Disabled */
     323        mCbClipboard->addItem(""); /* KClipboardMode_HostToGuest */
     324        mCbClipboard->addItem(""); /* KClipboardMode_GuestToHost */
     325        mCbClipboard->addItem(""); /* KClipboardMode_Bidirectional */
    281326    }
    282327    /* Drag&drop mode combo was created in the .ui file: */
     
    284329    {
    285330        /* Configure Drag&drop mode combo: */
    286         mCbDragAndDrop->addItem (""); /* KDnDMode_Disabled */
    287         mCbDragAndDrop->addItem (""); /* KDnDMode_HostToGuest */
    288         mCbDragAndDrop->addItem (""); /* KDnDMode_GuestToHost */
    289         mCbDragAndDrop->addItem (""); /* KDnDMode_Bidirectional */
    290     }
    291 }
    292 
    293 void UIMachineSettingsGeneral::preparePageDescription()
     331        mCbDragAndDrop->addItem(""); /* KDnDMode_Disabled */
     332        mCbDragAndDrop->addItem(""); /* KDnDMode_HostToGuest */
     333        mCbDragAndDrop->addItem(""); /* KDnDMode_GuestToHost */
     334        mCbDragAndDrop->addItem(""); /* KDnDMode_Bidirectional */
     335    }
     336}
     337
     338void UIMachineSettingsGeneral::prepareTabDescription()
    294339{
    295340    /* Description text editor was created in the .ui file: */
     
    305350void UIMachineSettingsGeneral::polishPage()
    306351{
    307     /* Basic tab: */
     352    /* 'Basic' tab: */
     353    AssertPtrReturnVoid(m_pNameAndSystemEditor);
    308354    m_pNameAndSystemEditor->setEnabled(isMachineOffline());
    309     /* Advanced tab: */
     355
     356    /* 'Advanced' tab: */
     357    AssertPtrReturnVoid(mLbSnapshot);
     358    AssertPtrReturnVoid(mPsSnapshot);
     359    AssertPtrReturnVoid(mLbClipboard);
     360    AssertPtrReturnVoid(mCbClipboard);
     361    AssertPtrReturnVoid(mLbDragAndDrop);
     362    AssertPtrReturnVoid(mCbDragAndDrop);
    310363    mLbSnapshot->setEnabled(isMachineOffline());
    311364    mPsSnapshot->setEnabled(isMachineOffline());
     
    314367    mLbDragAndDrop->setEnabled(isMachineInValidMode());
    315368    mCbDragAndDrop->setEnabled(isMachineInValidMode());
    316 }
    317 
     369
     370    /* 'Description' tab: */
     371    AssertPtrReturnVoid(mTeDescription);
     372    mTeDescription->setEnabled(isMachineInValidMode());
     373}
     374
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h

    r54857 r54880  
    3333        , m_clipboardMode(KClipboardMode_Disabled)
    3434        , m_dndMode(KDnDMode_Disabled)
    35         , m_strDescription(QString()) {}
     35        , m_strDescription(QString())
     36    {}
    3637
    3738    /** Returns whether passed @a other is equal to this. */
     
    6162    /** Holds the default VM snapshot folder. */
    6263    QString m_strSnapshotsHomeDir;
    63 
    6464    /** Holds the VM shared clipboard mode. */
    6565    KClipboardMode m_clipboardMode;
     
    127127    /** Prepare routine. */
    128128    void prepare();
    129     /** Prepare 'Basic' page routine. */
    130     void preparePageBasic();
    131     /** Prepare 'Advanced' page routine. */
    132     void preparePageAdvanced();
    133     /** Prepare 'Description' page routine. */
    134     void preparePageDescription();
     129    /** Prepare 'Basic' tab routine. */
     130    void prepareTabBasic();
     131    /** Prepare 'Advanced' tab routine. */
     132    void prepareTabAdvanced();
     133    /** Prepare 'Description' tab routine. */
     134    void prepareTabDescription();
    135135
    136136    /** Polish routine. */
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