VirtualBox

Ignore:
Timestamp:
Jul 11, 2014 1:08:11 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
94920
Message:

FE/Qt: Paravirtualization Interface UI support.

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

Legend:

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

    r51654 r51988  
    9696template<> bool canConvert<KMachineState>();
    9797template<> bool canConvert<KSessionState>();
     98template<> bool canConvert<KParavirtProvider>();
    9899template<> bool canConvert<KDeviceType>();
    99100template<> bool canConvert<KClipboardMode>();
     
    173174template<> QString toString(const KMachineState &state);
    174175template<> QString toString(const KSessionState &state);
     176template<> QString toString(const KParavirtProvider &type);
    175177template<> QString toString(const KDeviceType &type);
    176178template<> QString toString(const KClipboardMode &mode);
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp

    r51579 r51988  
    3333template<> bool canConvert<KMachineState>() { return true; }
    3434template<> bool canConvert<KSessionState>() { return true; }
     35template<> bool canConvert<KParavirtProvider>() { return true; }
    3536template<> bool canConvert<KDeviceType>() { return true; }
    3637template<> bool canConvert<KClipboardMode>() { return true; }
     
    172173}
    173174
     175/* QString <= KParavirtProvider: */
     176template<> QString toString(const KParavirtProvider &type)
     177{
     178    switch (type)
     179    {
     180        case KParavirtProvider_None:    return QApplication::translate("VBoxGlobal", "None", "ParavirtProvider");
     181        case KParavirtProvider_Default: return QApplication::translate("VBoxGlobal", "Default", "ParavirtProvider");
     182        case KParavirtProvider_Legacy:  return QApplication::translate("VBoxGlobal", "Legacy", "ParavirtProvider");
     183        case KParavirtProvider_Minimal: return QApplication::translate("VBoxGlobal", "Minimal", "ParavirtProvider");
     184        case KParavirtProvider_HyperV:  return QApplication::translate("VBoxGlobal", "Hyper-V", "ParavirtProvider");
     185        default: AssertMsgFailed(("No text for %d", type)); break;
     186    }
     187    return QString();
     188}
     189
    174190/* QString <= KDeviceType: */
    175191template<> QString toString(const KDeviceType &type)
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r51874 r51988  
    12121212            iRowCount += 2; /* VT-x/AMD-V items. */
    12131213
     1214        /* Paravirtualization Interface: */
     1215        const QString strParavirtProvider = gpConverter->toString(aMachine.GetParavirtProvider());
     1216
     1217        iRowCount += 1; /* Paravirtualization Interface. */
     1218
    12141219        QString item = QString (sSectionItemTpl2).arg (tr ("Base Memory", "details report"),
    12151220                                                       tr ("<nobr>%1 MB</nobr>", "details report"))
     
    12321237                item += QString (sSectionItemTpl2).arg (tr ("VT-x/AMD-V", "details report"), virt)
    12331238                     +  QString (sSectionItemTpl2).arg (tr ("Nested Paging", "details report"), nested);
     1239
     1240        item += QString(sSectionItemTpl2).arg(tr("Paravirtualization Interface", "details report"), strParavirtProvider);
    12341241
    12351242        report += sectionTpl
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElements.cpp

    r51740 r51988  
    342342            if (machine().GetCPUProperty(KCPUPropertyType_PAE))
    343343                acceleration << QApplication::translate("UIGDetails", "PAE/NX", "details (system)");
     344            switch (machine().GetParavirtProvider())
     345            {
     346                case KParavirtProvider_Default: acceleration << QApplication::translate("UIGDetails", "Default Paravirtualization", "details (system)"); break;
     347                case KParavirtProvider_Legacy:  acceleration << QApplication::translate("UIGDetails", "Legacy Paravirtualization", "details (system)"); break;
     348                case KParavirtProvider_Minimal: acceleration << QApplication::translate("UIGDetails", "Minimal Paravirtualization", "details (system)"); break;
     349                case KParavirtProvider_HyperV:  acceleration << QApplication::translate("UIGDetails", "Hyper-V Paravirtualization", "details (system)"); break;
     350                default: break;
     351            }
    344352            if (!acceleration.isEmpty())
    345353                m_text << UITextTableLine(QApplication::translate("UIGDetails", "Acceleration", "details (system)"),
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp

    r51345 r51988  
    129129
    130130    /* Load acceleration data: */
     131    systemData.m_paravirtProvider = m_machine.GetParavirtProvider();
    131132    systemData.m_fEnabledHwVirtEx = m_machine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled);
    132133    systemData.m_fEnabledNestedPaging = m_machine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging);
     
    179180
    180181    /* Load acceleration data to page: */
     182    int iParavirtProviderPosition = m_pComboParavirtProvider->findData(systemData.m_paravirtProvider);
     183    m_pComboParavirtProvider->setCurrentIndex(iParavirtProviderPosition == -1 ? 0 : iParavirtProviderPosition);
    181184    m_pCheckBoxVirtualization->setChecked(systemData.m_fEnabledHwVirtEx);
    182185    m_pCheckBoxNestedPaging->setChecked(systemData.m_fEnabledNestedPaging);
     
    222225
    223226    /* Gather acceleration data: */
     227    systemData.m_paravirtProvider = (KParavirtProvider)m_pComboParavirtProvider->itemData(m_pComboParavirtProvider->currentIndex()).toInt();
    224228    systemData.m_fEnabledHwVirtEx = m_pCheckBoxVirtualization->checkState() == Qt::Checked || m_pSliderCPUCount->value() > 1;
    225229    systemData.m_fEnabledNestedPaging = m_pCheckBoxNestedPaging->isChecked();
     
    271275
    272276            /* Acceleration tab: */
     277            m_machine.SetParavirtProvider(systemData.m_paravirtProvider);
    273278            m_machine.SetHWVirtExProperty(KHWVirtExPropertyType_Enabled, systemData.m_fEnabledHwVirtEx);
    274279            m_machine.SetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging, systemData.m_fEnabledNestedPaging);
     
    417422    setTabOrder(m_pEditorCPUCount, m_pSliderCPUExecCap);
    418423    setTabOrder(m_pSliderCPUExecCap, m_pEditorCPUExecCap);
    419     setTabOrder(m_pEditorCPUExecCap, m_pCheckBoxPAE);
     424    setTabOrder(m_pEditorCPUExecCap, m_pComboParavirtProvider);
    420425
    421426    /* Configure navigation for 'acceleration' tab: */
     427    setTabOrder(m_pComboParavirtProvider, m_pCheckBoxPAE);
    422428    setTabOrder(m_pCheckBoxPAE, m_pCheckBoxVirtualization);
    423429    setTabOrder(m_pCheckBoxVirtualization, m_pCheckBoxNestedPaging);
     
    445451
    446452    /* Retranslate combo-boxes: */
    447     retranslateComboPointingChipsetType();
     453    retranslateComboChipsetType();
    448454    retranslateComboPointingHIDType();
     455    retranslateComboParavirtProvider();
    449456}
    450457
     
    490497    /* Acceleration tab: */
    491498    m_pTabWidgetSystem->setTabEnabled(2, systemData.m_fSupportedHwVirtEx);
     499    m_pComboParavirtProvider->setEnabled(isMachineOffline());
    492500    m_pLabelVirtualization->setEnabled(isMachineOffline());
    493501    m_pCheckBoxVirtualization->setEnabled(isMachineOffline());
     
    581589    prepareTabMotherboard();
    582590    prepareTabProcessor();
     591    prepareTabAcceleration();
    583592
    584593    /* Prepare validation: */
     
    704713}
    705714
     715void UIMachineSettingsSystem::prepareTabAcceleration()
     716{
     717    /* Populate 'paravirt provider' combo: */
     718    m_pComboParavirtProvider->addItem(gpConverter->toString(KParavirtProvider_None), QVariant(KParavirtProvider_None));
     719    m_pComboParavirtProvider->addItem(gpConverter->toString(KParavirtProvider_Default), QVariant(KParavirtProvider_Default));
     720    m_pComboParavirtProvider->addItem(gpConverter->toString(KParavirtProvider_Legacy), QVariant(KParavirtProvider_Legacy));
     721    m_pComboParavirtProvider->addItem(gpConverter->toString(KParavirtProvider_Minimal), QVariant(KParavirtProvider_Minimal));
     722    m_pComboParavirtProvider->addItem(gpConverter->toString(KParavirtProvider_HyperV), QVariant(KParavirtProvider_HyperV));
     723}
     724
    706725void UIMachineSettingsSystem::prepareValidation()
    707726{
     
    756775}
    757776
    758 void UIMachineSettingsSystem::retranslateComboPointingChipsetType()
    759 {
    760     /* For each the element in KPointingHIDType enum: */
     777void UIMachineSettingsSystem::retranslateComboChipsetType()
     778{
     779    /* For each the element in KChipsetType enum: */
    761780    for (int iIndex = (int)KChipsetType_Null; iIndex < (int)KChipsetType_Max; ++iIndex)
    762781    {
     
    783802        if (iCorrespondingIndex != -1)
    784803            m_pComboPointingHIDType->setItemText(iCorrespondingIndex, gpConverter->toString(type));
     804    }
     805}
     806
     807void UIMachineSettingsSystem::retranslateComboParavirtProvider()
     808{
     809    /* For each the element in KParavirtProvider enum: */
     810    for (int iIndex = (int)KParavirtProvider_None; iIndex < (int)KParavirtProvider_Max; ++iIndex)
     811    {
     812        /* Cast to the corresponding type: */
     813        KParavirtProvider type = (KParavirtProvider)iIndex;
     814        /* Look for the corresponding item: */
     815        int iCorrespondingIndex = m_pComboParavirtProvider->findData((int)type);
     816        /* Re-translate if corresponding item was found: */
     817        if (iCorrespondingIndex != -1)
     818            m_pComboParavirtProvider->setItemText(iCorrespondingIndex, gpConverter->toString(type));
    785819    }
    786820}
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h

    r51345 r51988  
    6363        , m_fEnabledPAE(false)
    6464        /* Acceleration data: */
     65        , m_paravirtProvider(KParavirtProvider_None)
    6566        , m_fEnabledHwVirtEx(false)
    6667        , m_fEnabledNestedPaging(false)
     
    8687               (m_fEnabledPAE == other.m_fEnabledPAE) &&
    8788                /* Acceleration data: */
     89               (m_paravirtProvider == other.m_paravirtProvider) &&
    8890               (m_fEnabledHwVirtEx == other.m_fEnabledHwVirtEx) &&
    8991               (m_fEnabledNestedPaging == other.m_fEnabledNestedPaging);
     
    111113    bool m_fEnabledPAE;
    112114    /* Variables: Acceleration data: */
     115    KParavirtProvider m_paravirtProvider;
    113116    bool m_fEnabledHwVirtEx;
    114117    bool m_fEnabledNestedPaging;
     
    185188    void prepareTabMotherboard();
    186189    void prepareTabProcessor();
     190    void prepareTabAcceleration();
    187191    void prepareValidation();
    188192
     
    191195
    192196    /* Helpers: Translation stuff: */
    193     void retranslateComboPointingChipsetType();
     197    void retranslateComboChipsetType();
    194198    void retranslateComboPointingHIDType();
     199    void retranslateComboParavirtProvider();
    195200
    196201    /* Helper: Boot-table stuff: */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.ui

    r51276 r51988  
    546546      <layout class="QGridLayout">
    547547       <item row="0" column="0">
     548        <widget class="QLabel" name="m_pLabelParavirtType">
     549         <property name="text">
     550          <string>&amp;Paravirtualization Interface:</string>
     551         </property>
     552         <property name="alignment">
     553          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
     554         </property>
     555         <property name="buddy">
     556          <cstring>m_pComboParavirtProvider</cstring>
     557         </property>
     558        </widget>
     559       </item>
     560       <item row="0" column="1">
     561        <layout class="QHBoxLayout">
     562         <item>
     563          <widget class="QComboBox" name="m_pComboParavirtProvider">
     564           <property name="sizePolicy">
     565            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
     566             <horstretch>0</horstretch>
     567             <verstretch>0</verstretch>
     568            </sizepolicy>
     569           </property>
     570           <property name="whatsThis">
     571            <string>Selects the paravirtualization guest interface provider to be used by this virtual machine.</string>
     572           </property>
     573          </widget>
     574         </item>
     575         <item>
     576          <spacer name="m_pSpacerHorizontal7">
     577           <property name="orientation">
     578            <enum>Qt::Horizontal</enum>
     579           </property>
     580           <property name="sizeHint" stdset="0">
     581            <size>
     582             <width>0</width>
     583             <height>0</height>
     584            </size>
     585           </property>
     586          </spacer>
     587         </item>
     588        </layout>
     589       </item>
     590       <item row="1" column="0">
    548591        <widget class="QLabel" name="m_pLabelVirtualization">
    549592         <property name="text">
    550593          <string>Hardware Virtualization:</string>
    551594         </property>
    552         </widget>
    553        </item>
    554        <item row="0" column="1">
     595         <property name="alignment">
     596          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
     597         </property>
     598        </widget>
     599       </item>
     600       <item row="1" column="1">
    555601        <widget class="QCheckBox" name="m_pCheckBoxVirtualization">
    556602         <property name="sizePolicy">
     
    568614        </widget>
    569615       </item>
    570        <item row="1" column="1">
     616       <item row="2" column="1">
    571617        <widget class="QCheckBox" name="m_pCheckBoxNestedPaging">
    572618         <property name="sizePolicy">
     
    584630        </widget>
    585631       </item>
    586        <item row="2" column="0" colspan="2">
     632       <item row="3" column="0" colspan="2">
    587633        <spacer name="m_pSpacerVertical4">
    588634         <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