VirtualBox

Ignore:
Timestamp:
May 16, 2019 1:10:28 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
130593
Message:

FE/Qt: bugref:6247: VM Settings / Storage page: Finally add combo-box allowing to change bus type for existing controllers; This also requires a bit of UIConverter stuff to be extended to parse bus types on the fly.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h

    r77647 r78547  
    298298template<> SHARED_LIBRARY_STUFF KAuthType fromString<KAuthType>(const QString &strType);
    299299template<> SHARED_LIBRARY_STUFF QString toString(const KStorageBus &bus);
     300template<> SHARED_LIBRARY_STUFF KStorageBus fromString<KStorageBus>(const QString &strType);
    300301template<> SHARED_LIBRARY_STUFF QString toString(const KStorageControllerType &type);
    301302template<> SHARED_LIBRARY_STUFF KStorageControllerType fromString<KStorageControllerType>(const QString &strType);
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp

    r78521 r78547  
    585585}
    586586
     587/* KStorageBus <= QString: */
     588template<> KStorageBus fromString<KStorageBus>(const QString &strType)
     589{
     590    QHash<QString, KStorageBus> list;
     591    list.insert(QApplication::translate("VBoxGlobal", "IDE", "StorageBus"),         KStorageBus_IDE);
     592    list.insert(QApplication::translate("VBoxGlobal", "SATA", "StorageBus"),        KStorageBus_SATA);
     593    list.insert(QApplication::translate("VBoxGlobal", "SCSI", "StorageBus"),        KStorageBus_SCSI);
     594    list.insert(QApplication::translate("VBoxGlobal", "Floppy", "StorageBus"),      KStorageBus_Floppy);
     595    list.insert(QApplication::translate("VBoxGlobal", "SAS", "StorageBus"),         KStorageBus_SAS);
     596    list.insert(QApplication::translate("VBoxGlobal", "USB", "StorageBus"),         KStorageBus_USB);
     597    list.insert(QApplication::translate("VBoxGlobal", "PCIe", "StorageBus"),        KStorageBus_PCIe);
     598    list.insert(QApplication::translate("VBoxGlobal", "virtio-scsi", "StorageBus"), KStorageBus_VirtioSCSI);
     599    if (!list.contains(strType))
     600    {
     601        AssertMsgFailed(("No value for '%s'", strType.toUtf8().constData()));
     602    }
     603    return list.value(strType, KStorageBus_Null);
     604}
     605
    587606/* QString <= KStorageControllerType: */
    588607template<> QString toString(const KStorageControllerType &type)
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp

    r78546 r78547  
    26112611    mLbName->setEnabled(isMachineOffline());
    26122612    mLeName->setEnabled(isMachineOffline());
     2613    mLbBus->setEnabled(isMachineOffline());
     2614    mCbBus->setEnabled(isMachineOffline());
    26132615    mLbType->setEnabled(isMachineOffline());
    26142616    mCbType->setEnabled(isMachineOffline());
     
    28952897                    mLeName->setText(strCtrName);
    28962898
     2899                /* Getting Controller Bus type: */
     2900                mCbBus->clear();
     2901                const ControllerBusList controllerBusList(m_pModelStorage->data(index, StorageModel::R_CtrBusTypes).value<ControllerBusList>());
     2902                for (int i = 0; i < controllerBusList.size(); ++i)
     2903                    mCbBus->insertItem(mCbBus->count(), gpConverter->toString(controllerBusList[i]));
     2904                const KStorageBus enmBus = m_pModelStorage->data(index, StorageModel::R_CtrBusType).value<KStorageBus>();
     2905                const int iBusPos = mCbBus->findText(gpConverter->toString(enmBus));
     2906                mCbBus->setCurrentIndex(iBusPos == -1 ? 0 : iBusPos);
     2907
    28972908                /* Getting Controller Sub type: */
    28982909                mCbType->clear();
     
    29042915                mCbType->setCurrentIndex(iCtrPos == -1 ? 0 : iCtrPos);
    29052916
    2906                 const KStorageBus enmBus = m_pModelStorage->data(index, StorageModel::R_CtrBusType).value <KStorageBus>();
    29072917                mLbPortCount->setVisible(enmBus == KStorageBus_SATA || enmBus == KStorageBus_SAS);
    29082918                mSbPortCount->setVisible(enmBus == KStorageBus_SATA || enmBus == KStorageBus_SAS);
     
    30333043            if (pSdr == mLeName)
    30343044                m_pModelStorage->setData(index, mLeName->text(), StorageModel::R_CtrName);
     3045            /* Setting Controller Bus-Type: */
     3046            else if (pSdr == mCbBus)
     3047                m_pModelStorage->setData(index, QVariant::fromValue(gpConverter->fromString<KStorageBus>(mCbBus->currentText())),
     3048                                         StorageModel::R_CtrBusType);
    30353049            /* Setting Controller Sub-Type: */
    30363050            else if (pSdr == mCbType)
     
    38273841    connect(mSbPortCount, SIGNAL(valueChanged(int)), this, SLOT(sltSetInformation()));
    38283842    connect(mLeName, SIGNAL(textEdited(const QString &)), this, SLOT(sltSetInformation()));
     3843    connect(mCbBus, SIGNAL(activated(int)), this, SLOT(sltSetInformation()));
    38293844    connect(mCbType, SIGNAL(activated(int)), this, SLOT(sltSetInformation()));
    38303845    connect(mCbSlot, SIGNAL(activated(int)), this, SLOT(sltSetInformation()));
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.ui

    r71948 r78547  
    174174        </item>
    175175        <item row="2" column="1" >
     176         <widget class="QLabel" name="mLbBus" >
     177          <property name="text" >
     178           <string>&amp;Bus:</string>
     179          </property>
     180          <property name="buddy" >
     181           <cstring>mCbBus</cstring>
     182          </property>
     183          <property name="alignment" >
     184           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
     185          </property>
     186         </widget>
     187        </item>
     188        <item row="2" column="2" >
     189         <widget class="QComboBox" name="mCbBus" >
     190          <property name="whatsThis" >
     191           <string>Selects the bus type of the storage controller currently selected in the Storage Tree.</string>
     192          </property>
     193          <property name="sizePolicy" >
     194           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
     195            <horstretch>0</horstretch>
     196            <verstretch>0</verstretch>
     197           </sizepolicy>
     198          </property>
     199         </widget>
     200        </item>
     201        <item row="3" column="1" >
    176202         <widget class="QLabel" name="mLbType" >
    177203          <property name="text" >
     
    186212         </widget>
    187213        </item>
    188         <item row="2" column="2" >
     214        <item row="3" column="2" >
    189215         <widget class="QComboBox" name="mCbType" >
    190216          <property name="whatsThis" >
     
    199225         </widget>
    200226        </item>
    201         <item row="3" column="1" >
     227        <item row="4" column="1" >
    202228         <widget class="QLabel" name="mLbPortCount" >
    203229          <property name="text" >
     
    212238         </widget>
    213239        </item>
    214         <item row="3" column="2" >
     240        <item row="4" column="2" >
    215241         <widget class="QSpinBox" name="mSbPortCount" >
    216242          <property name="whatsThis" >
     
    225251         </widget>
    226252        </item>
    227         <item row="4" column="2" >
     253        <item row="5" column="2" >
    228254         <widget class="QCheckBox" name="mCbIoCache" >
    229255          <property name="whatsThis" >
     
    235261         </widget>
    236262        </item>
    237         <item row="5" column="0" colspan="3" >
     263        <item row="6" column="0" colspan="3" >
    238264         <spacer name="mSp3" >
    239265          <property name="orientation" >
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