VirtualBox

Changeset 2895 in vbox


Ignore:
Timestamp:
May 28, 2007 1:16:22 PM (18 years ago)
Author:
vboxsync
Message:

1750: Add CDROM configuration to "Create VM" wizard:

Done: The “GUI/FirstRun” flag is erased from the configuration file in case of user manually changes the boot sequence or the CD/FD/HD configuration through the "VM Settings Dialog".

Location:
trunk/src/VBox/Frontends/VirtualBox/ui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui

    r2889 r2895  
    27852785    <variable access="private">QIRichLabel *whatsThisLabel;</variable>
    27862786    <variable access="private">BootItemsList *tblBootOrder;</variable>
     2787    <variable access="private">QStringList mHDList;</variable>
     2788    <variable access="private">QString mCDsettings;</variable>
     2789    <variable access="private">QString mFDsettings;</variable>
     2790    <variable access="private">bool mIsBootSettingsChanged;</variable>
    27872791</variables>
    27882792<slots>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h

    r2889 r2895  
    2929** place of a destructor.
    3030*****************************************************************************/
     31
     32
     33extern const char *GUI_FirstRun;
    3134
    3235
     
    187190        QStringList uniqueList;
    188191        int minimumWidth = 0;
     192        mSequence = QString::null;
    189193        for (int i = 1; i <= 4; ++ i)
    190194        {
     
    192196            if (type != CEnums::NoDevice)
    193197            {
     198                mSequence += type;
    194199                QString name = vboxGlobal().toString (type);
    195200                QCheckListItem *item = new QCheckListItem (mBootTable,
     
    228233        int index = 1;
    229234        item = static_cast<QCheckListItem*> (mBootTable->firstChild());
     235        QString sequence = QString::null;
    230236        while (item)
    231237        {
     
    235241                    vboxGlobal().toDeviceType (item->text (0));
    236242                aMachine.SetBootOrder (index++, type);
     243                sequence += type;
    237244            }
    238245            item = static_cast<QCheckListItem*> (item->nextSibling());
     
    245252                aMachine.SetBootOrder (index++, CEnums::NoDevice);
    246253            item = static_cast<QCheckListItem*> (item->nextSibling());
     254        }
     255        /* Check if the boot sequence was changed */
     256        if (mSequence != sequence)
     257        {
     258            /* Clear the "GUI_FirstRun" extra data key */
     259            aMachine.SetExtraData (GUI_FirstRun, QString::null);
    247260        }
    248261    }
     
    300313    QToolButton *mBtnUp;
    301314    QToolButton *mBtnDown;
     315    QString mSequence;
    302316};
    303317
     
    12731287        grbHDD->setChecked (false);
    12741288
     1289        /* Creating a clean hd array */
     1290        for (uint i = 0; i < SIZEOF_ARRAY (diskSet); ++ i)
     1291            mHDList << QUuid();
     1292
    12751293        CHardDiskAttachmentEnumerator en =
    12761294            machine.GetHardDiskAttachments().Enumerate();
     
    12951313                    diskSet [i].data.tx->setText (vboxGlobal().details (hd));
    12961314                    *(diskSet [i].data.uuid) = QUuid (root.GetId());
     1315                    mHDList [i] = root.GetId();
    12971316                }
    12981317            }
     
    13191338
    13201339        CFloppyDrive floppy = machine.GetFloppyDrive();
     1340        mFDsettings = QString ("%1 %2").arg (floppy.GetState());
    13211341        switch (floppy.GetState())
    13221342        {
     
    13401360                }
    13411361                rbHostFloppy->setChecked (true);
     1362                mFDsettings += name;
    13421363                break;
    13431364            }
     
    13501371                rbISOFloppy->setChecked (true);
    13511372                uuidISOFloppy = QUuid (img.GetId());
     1373                mFDsettings += uuidISOFloppy;
    13521374                break;
    13531375            }
     
    13811403
    13821404        CDVDDrive dvd = machine.GetDVDDrive();
     1405        mCDsettings = QString ("%1 %2").arg (dvd.GetState());
    13831406        switch (dvd.GetState())
    13841407        {
     
    14021425                }
    14031426                rbHostDVD->setChecked (true);
     1427                mCDsettings += name;
    14041428                break;
    14051429            }
     
    14121436                rbISODVD->setChecked (true);
    14131437                uuidISODVD = QUuid (img.GetId());
     1438                mCDsettings += uuidISODVD;
    14141439                break;
    14151440            }
     
    15281553COMResult VBoxVMSettingsDlg::putBackToMachine()
    15291554{
     1555    mIsBootSettingsChanged = false;
     1556
    15301557    CVirtualBox vbox = vboxGlobal().virtualBox();
    15311558    CBIOSSettings biosSettings = cmachine.GetBIOSSettings();
     
    16051632
    16061633        /* now, attach new disks */
     1634        QStringList hdList;
    16071635        for (uint i = 0; i < SIZEOF_ARRAY (diskSet); i++)
    16081636        {
    16091637            QUuid *newId = diskSet [i].data.uuid;
     1638            hdList << *newId;
    16101639            if (diskSet [i].data.grb->isChecked() && !(*newId).isNull())
    16111640            {
     
    16161645            }
    16171646        }
     1647
     1648        /* Check if the hd sequence was changed */
     1649        if (mHDList != hdList)
     1650            mIsBootSettingsChanged = true;
    16181651    }
    16191652
    16201653    /* floppy image */
    16211654    {
     1655        QString curFDsettings;
    16221656        CFloppyDrive floppy = cmachine.GetFloppyDrive();
    16231657        if (!bgFloppy->isChecked())
    16241658        {
    16251659            floppy.Unmount();
     1660            curFDsettings = QString ("%1 %2").arg (floppy.GetState());
    16261661        }
    16271662        else if (rbHostFloppy->isChecked())
     
    16351670             *  as is
    16361671             */
     1672            curFDsettings = QString ("%1 %2").arg (floppy.GetState())
     1673                .arg (floppy.GetHostDrive().GetName());
    16371674        }
    16381675        else if (rbISOFloppy->isChecked())
     
    16401677            Assert (!uuidISOFloppy.isNull());
    16411678            floppy.MountImage (uuidISOFloppy);
    1642         }
     1679            curFDsettings = QString ("%1 %2").arg (floppy.GetState())
     1680                .arg (floppy.GetImage().GetId());
     1681        }
     1682
     1683        /* Check if the fd settings was changed */
     1684        if (mFDsettings != curFDsettings)
     1685            mIsBootSettingsChanged = true;
    16431686    }
    16441687
    16451688    /* CD/DVD-ROM image */
    16461689    {
     1690        QString curCDsettings;
    16471691        CDVDDrive dvd = cmachine.GetDVDDrive();
    16481692        if (!bgDVD->isChecked())
    16491693        {
    16501694            dvd.Unmount();
     1695            curCDsettings = QString ("%1 %2").arg (dvd.GetState());
    16511696        }
    16521697        else if (rbHostDVD->isChecked())
     
    16601705             *  as is
    16611706             */
     1707            curCDsettings = QString ("%1 %2").arg (dvd.GetState())
     1708                .arg (dvd.GetHostDrive().GetName());
    16621709        }
    16631710        else if (rbISODVD->isChecked())
     
    16651712            Assert (!uuidISODVD.isNull());
    16661713            dvd.MountImage (uuidISODVD);
    1667         }
    1668     }
     1714            curCDsettings = QString ("%1 %2").arg (dvd.GetState())
     1715                .arg (dvd.GetImage().GetId());
     1716        }
     1717
     1718        /* Check if the cd sequence was changed */
     1719        if (mCDsettings != curCDsettings)
     1720            mIsBootSettingsChanged = true;
     1721    }
     1722
     1723    /* Clear the "GUI_FirstRun" extra data key in case of one of the boot
     1724     * settings was changed */
     1725    if (mIsBootSettingsChanged)
     1726        cmachine.SetExtraData (GUI_FirstRun, QString::null);
    16691727
    16701728    /* audio */
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