VirtualBox

Changeset 2915 in vbox


Ignore:
Timestamp:
May 29, 2007 1:02:09 PM (18 years ago)
Author:
vboxsync
Message:

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

Done as requested:
The "FirstRun" flag is reseted upon every boot-sequence or hd/cd/fd settings related widget changed (comment #17).

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

Legend:

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

    r2895 r2915  
    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>
    27902787    <variable access="private">bool mIsBootSettingsChanged;</variable>
    27912788</variables>
     
    28252822    <slot>updateInterfaces( QWidget* )</slot>
    28262823    <slot>networkPageUpdate( QWidget* )</slot>
     2824    <slot>bootSequenceChanged()</slot>
    28272825</slots>
    28282826<functions>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h

    r2903 r2915  
    8787    ~BootItemsTable() {}
    8888
     89    void emitItemToggled() { emit itemToggled(); }
     90
    8991signals:
    9092
    9193    void moveItemUp();
    9294    void moveItemDown();
     95    void itemToggled();
    9396
    9497private slots:
     
    131134{
    132135    Q_OBJECT
     136
     137    class BootItem : public QCheckListItem
     138    {
     139        public:
     140
     141            BootItem (BootItemsTable *aParent, QListViewItem *aAfter,
     142                      const QString &aName, Type aType)
     143                : QCheckListItem (aParent, aAfter, aName, aType) {}
     144
     145        private:
     146
     147            void stateChange (bool)
     148            {
     149                BootItemsTable *table = static_cast<BootItemsTable*> (listView());
     150                table->emitItemToggled();
     151            }
     152    };
    133153
    134154public:
     
    168188        connect (mBootTable, SIGNAL (moveItemUp()), this, SLOT (moveItemUp()));
    169189        connect (mBootTable, SIGNAL (moveItemDown()), this, SLOT (moveItemDown()));
     190        connect (mBootTable, SIGNAL (itemToggled()), this, SLOT (onItemToggled()));
    170191        buttonLayout->addWidget (mBtnUp);
    171192        buttonLayout->addWidget (mBtnDown);
     
    190211        QStringList uniqueList;
    191212        int minimumWidth = 0;
    192         mSequence = QString::null;
    193213        for (int i = 1; i <= 4; ++ i)
    194214        {
     
    196216            if (type != CEnums::NoDevice)
    197217            {
    198                 mSequence += type;
    199218                QString name = vboxGlobal().toString (type);
    200                 QCheckListItem *item = new QCheckListItem (mBootTable,
     219                QCheckListItem *item = new BootItem (mBootTable,
    201220                    mBootTable->lastItem(), name, QCheckListItem::CheckBox);
    202221                item->setOn (true);
     
    212231            if (!uniqueList.contains (name))
    213232            {
    214                 QCheckListItem *item = new QCheckListItem (mBootTable,
     233                QCheckListItem *item = new BootItem (mBootTable,
    215234                    mBootTable->lastItem(), name, QCheckListItem::CheckBox);
    216235                uniqueList << name;
     
    233252        int index = 1;
    234253        item = static_cast<QCheckListItem*> (mBootTable->firstChild());
    235         QString sequence = QString::null;
    236254        while (item)
    237255        {
     
    241259                    vboxGlobal().toDeviceType (item->text (0));
    242260                aMachine.SetBootOrder (index++, type);
    243                 sequence += type;
    244261            }
    245262            item = static_cast<QCheckListItem*> (item->nextSibling());
     
    253270            item = static_cast<QCheckListItem*> (item->nextSibling());
    254271        }
    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);
    260         }
    261272    }
    262273
     
    274285        }
    275286    }
     287
     288signals:
     289
     290    void bootSequenceChanged();
    276291
    277292private slots:
     
    285300        itemAbove->moveItem (item);
    286301        processCurrentChanged (item);
     302        emit bootSequenceChanged();
    287303    }
    288304
     
    295311        item->moveItem (itemBelow);
    296312        processCurrentChanged (item);
     313        emit bootSequenceChanged();
     314    }
     315
     316    void onItemToggled()
     317    {
     318        emit bootSequenceChanged();
    297319    }
    298320
     
    313335    QToolButton *mBtnUp;
    314336    QToolButton *mBtnDown;
    315     QString mSequence;
    316337};
    317338
     
    715736    /* Boot-order table */
    716737    tblBootOrder = new BootItemsList (groupBox12, "tblBootOrder");
     738    connect (tblBootOrder, SIGNAL (bootSequenceChanged()),
     739             this, SLOT (bootSequenceChanged()));
    717740    /* Fixing focus order for BootItemsList */
    718741    setTabOrder (tbwGeneral, tblBootOrder);
     
    830853
    831854    VBoxGlobal::centerWidget (this, parentWidget());
     855
     856    mIsBootSettingsChanged = false;
    832857}
    833858
     
    886911
    887912
     913void VBoxVMSettingsDlg::bootSequenceChanged()
     914{
     915    mIsBootSettingsChanged = true;
     916}
     917
     918
    888919void VBoxVMSettingsDlg::hdaMediaChanged()
    889920{
     921    bootSequenceChanged();
    890922    uuidHDA = grbHDA->isChecked() ? cbHDA->getId() : QUuid();
    891923    txHDA->setText (getHdInfo (grbHDA, uuidHDA));
     
    897929void VBoxVMSettingsDlg::hdbMediaChanged()
    898930{
     931    bootSequenceChanged();
    899932    uuidHDB = grbHDB->isChecked() ? cbHDB->getId() : QUuid();
    900933    txHDB->setText (getHdInfo (grbHDB, uuidHDB));
     
    906939void VBoxVMSettingsDlg::hddMediaChanged()
    907940{
     941    bootSequenceChanged();
    908942    uuidHDD = grbHDD->isChecked() ? cbHDD->getId() : QUuid();
    909943    txHDD->setText (getHdInfo (grbHDD, uuidHDD));
     
    915949void VBoxVMSettingsDlg::cdMediaChanged()
    916950{
     951    bootSequenceChanged();
    917952    uuidISODVD = bgDVD->isChecked() ? cbISODVD->getId() : QUuid();
    918953    /* revailidate */
     
    923958void VBoxVMSettingsDlg::fdMediaChanged()
    924959{
     960    bootSequenceChanged();
    925961    uuidISOFloppy = bgFloppy->isChecked() ? cbISOFloppy->getId() : QUuid();
    926962    /* revailidate */
     
    12881324        grbHDD->setChecked (false);
    12891325
    1290         /* Creating a clean hd array */
    1291         for (uint i = 0; i < SIZEOF_ARRAY (diskSet); ++ i)
    1292             mHDList << QUuid();
    1293 
    12941326        CHardDiskAttachmentEnumerator en =
    12951327            machine.GetHardDiskAttachments().Enumerate();
     
    13141346                    diskSet [i].data.tx->setText (vboxGlobal().details (hd));
    13151347                    *(diskSet [i].data.uuid) = QUuid (root.GetId());
    1316                     mHDList [i] = root.GetId();
    13171348                }
    13181349            }
     
    13391370
    13401371        CFloppyDrive floppy = machine.GetFloppyDrive();
    1341         mFDsettings = QString ("%1 %2").arg (floppy.GetState());
    13421372        switch (floppy.GetState())
    13431373        {
     
    13611391                }
    13621392                rbHostFloppy->setChecked (true);
    1363                 mFDsettings += name;
    13641393                break;
    13651394            }
     
    13721401                rbISOFloppy->setChecked (true);
    13731402                uuidISOFloppy = QUuid (img.GetId());
    1374                 mFDsettings += uuidISOFloppy;
    13751403                break;
    13761404            }
     
    14041432
    14051433        CDVDDrive dvd = machine.GetDVDDrive();
    1406         mCDsettings = QString ("%1 %2").arg (dvd.GetState());
    14071434        switch (dvd.GetState())
    14081435        {
     
    14261453                }
    14271454                rbHostDVD->setChecked (true);
    1428                 mCDsettings += name;
    14291455                break;
    14301456            }
     
    14371463                rbISODVD->setChecked (true);
    14381464                uuidISODVD = QUuid (img.GetId());
    1439                 mCDsettings += uuidISODVD;
    14401465                break;
    14411466            }
     
    15541579COMResult VBoxVMSettingsDlg::putBackToMachine()
    15551580{
    1556     mIsBootSettingsChanged = false;
    1557 
    15581581    CVirtualBox vbox = vboxGlobal().virtualBox();
    15591582    CBIOSSettings biosSettings = cmachine.GetBIOSSettings();
     
    16331656
    16341657        /* now, attach new disks */
    1635         QStringList hdList;
    16361658        for (uint i = 0; i < SIZEOF_ARRAY (diskSet); i++)
    16371659        {
    16381660            QUuid *newId = diskSet [i].data.uuid;
    1639             hdList << *newId;
    16401661            if (diskSet [i].data.grb->isChecked() && !(*newId).isNull())
    16411662            {
     
    16461667            }
    16471668        }
    1648 
    1649         /* Check if the hd sequence was changed */
    1650         if (mHDList != hdList)
    1651             mIsBootSettingsChanged = true;
    16521669    }
    16531670
    16541671    /* floppy image */
    16551672    {
    1656         QString curFDsettings;
    16571673        CFloppyDrive floppy = cmachine.GetFloppyDrive();
    16581674        if (!bgFloppy->isChecked())
    16591675        {
    16601676            floppy.Unmount();
    1661             curFDsettings = QString ("%1 %2").arg (floppy.GetState());
    16621677        }
    16631678        else if (rbHostFloppy->isChecked())
     
    16711686             *  as is
    16721687             */
    1673             curFDsettings = QString ("%1 %2").arg (floppy.GetState())
    1674                 .arg (floppy.GetHostDrive().GetName());
    16751688        }
    16761689        else if (rbISOFloppy->isChecked())
     
    16781691            Assert (!uuidISOFloppy.isNull());
    16791692            floppy.MountImage (uuidISOFloppy);
    1680             curFDsettings = QString ("%1 %2").arg (floppy.GetState())
    1681                 .arg (floppy.GetImage().GetId());
    1682         }
    1683 
    1684         /* Check if the fd settings was changed */
    1685         if (mFDsettings != curFDsettings)
    1686             mIsBootSettingsChanged = true;
     1693        }
    16871694    }
    16881695
    16891696    /* CD/DVD-ROM image */
    16901697    {
    1691         QString curCDsettings;
    16921698        CDVDDrive dvd = cmachine.GetDVDDrive();
    16931699        if (!bgDVD->isChecked())
    16941700        {
    16951701            dvd.Unmount();
    1696             curCDsettings = QString ("%1 %2").arg (dvd.GetState());
    16971702        }
    16981703        else if (rbHostDVD->isChecked())
     
    17061711             *  as is
    17071712             */
    1708             curCDsettings = QString ("%1 %2").arg (dvd.GetState())
    1709                 .arg (dvd.GetHostDrive().GetName());
    17101713        }
    17111714        else if (rbISODVD->isChecked())
     
    17131716            Assert (!uuidISODVD.isNull());
    17141717            dvd.MountImage (uuidISODVD);
    1715             curCDsettings = QString ("%1 %2").arg (dvd.GetState())
    1716                 .arg (dvd.GetImage().GetId());
    1717         }
    1718 
    1719         /* Check if the cd sequence was changed */
    1720         if (mCDsettings != curCDsettings)
    1721             mIsBootSettingsChanged = true;
     1718        }
    17221719    }
    17231720
     
    18201817void VBoxVMSettingsDlg::showVDImageManager (QUuid *id, VBoxMediaComboBox *cbb, QLabel*)
    18211818{
     1819    bootSequenceChanged();
     1820
    18221821    VBoxDefs::DiskType type = VBoxDefs::InvalidType;
    18231822    if (cbb == cbISODVD)
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