VirtualBox

Changeset 47269 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jul 19, 2013 3:53:05 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
87400
Message:

FE/Qt: Machine settings: System page: Cleanup/rework (part 6): Pointing HID extended handling.

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

Legend:

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

    r47268 r47269  
    153153    sltValueChangedCPUExecCap(mSlCPUExecCap->value());
    154154
     155    /* Configure 'pointing HID type' combo: */
     156    mCbHIDType->setSizeAdjustPolicy(QComboBox::AdjustToContents);
     157
    155158    /* Populate chipset combo: */
    156159    mCbChipset->addItem(gpConverter->toString(KChipsetType_PIIX3), QVariant(KChipsetType_PIIX3));
     
    171174bool UIMachineSettingsSystem::isHIDEnabled() const
    172175{
    173     return mCbUseAbsHID->isChecked();
     176    return (KPointingHIDType)mCbHIDType->itemData(mCbHIDType->currentIndex()).toInt() != KPointingHIDType_PS2Mouse;
    174177}
    175178
     
    231234    /* Load other motherboard data: */
    232235    systemData.m_chipsetType = m_machine.GetChipsetType();
     236    systemData.m_pointingHIDType = m_machine.GetPointingHIDType();
    233237    systemData.m_fEnabledIoApic = m_machine.GetBIOSSettings().GetIOAPICEnabled();
    234238    systemData.m_fEnabledEFI = m_machine.GetFirmwareType() >= KFirmwareType_EFI && m_machine.GetFirmwareType() <= KFirmwareType_EFIDUAL;
    235239    systemData.m_fEnabledUTC = m_machine.GetRTCUseUTC();
    236     systemData.m_fEnabledAbsoluteHID = m_machine.GetPointingHIDType() == KPointingHIDType_USBTablet;
    237240
    238241    /* Load CPU data: */
     
    258261    /* Get system data from cache: */
    259262    const UIDataSettingsMachineSystem &systemData = m_cache.base();
     263
     264    /* Repopulate 'pointing HID type' combo.
     265     * We are doing that *now* because it has dynamical content
     266     * which depends on recashed value: */
     267    repopulateComboPointingHIDType();
    260268
    261269    /* Load motherboard data to page: */
     
    273281    }
    274282    /* Load other motherboard data to page: */
    275     int iChipsetPosition = mCbChipset->findData(systemData.m_chipsetType);
    276     mCbChipset->setCurrentIndex(iChipsetPosition == -1 ? 0 : iChipsetPosition);
     283    int iChipsetTypePosition = mCbChipset->findData(systemData.m_chipsetType);
     284    mCbChipset->setCurrentIndex(iChipsetTypePosition == -1 ? 0 : iChipsetTypePosition);
     285    int iHIDTypePosition = mCbHIDType->findData(systemData.m_pointingHIDType);
     286    mCbHIDType->setCurrentIndex(iHIDTypePosition == -1 ? 0 : iHIDTypePosition);
    277287    mCbApic->setChecked(systemData.m_fEnabledIoApic);
    278288    mCbEFI->setChecked(systemData.m_fEnabledEFI);
    279289    mCbTCUseUTC->setChecked(systemData.m_fEnabledUTC);
    280     mCbUseAbsHID->setChecked(systemData.m_fEnabledAbsoluteHID);
    281290
    282291    /* Load CPU data to page: */
     
    318327    /* Gather other motherboard data: */
    319328    systemData.m_chipsetType = (KChipsetType)mCbChipset->itemData(mCbChipset->currentIndex()).toInt();
     329    systemData.m_pointingHIDType = (KPointingHIDType)mCbHIDType->itemData(mCbHIDType->currentIndex()).toInt();
    320330    systemData.m_fEnabledIoApic = mCbApic->isChecked() || mSlCPU->value() > 1 ||
    321331                                  (KChipsetType)mCbChipset->itemData(mCbChipset->currentIndex()).toInt() == KChipsetType_ICH9;
    322332    systemData.m_fEnabledEFI = mCbEFI->isChecked();
    323333    systemData.m_fEnabledUTC = mCbTCUseUTC->isChecked();
    324     systemData.m_fEnabledAbsoluteHID = mCbUseAbsHID->isChecked();
    325334
    326335    /* Gather CPU data: */
     
    369378            }
    370379            m_machine.SetChipsetType(systemData.m_chipsetType);
     380            m_machine.SetPointingHIDType(systemData.m_pointingHIDType);
    371381            m_machine.GetBIOSSettings().SetIOAPICEnabled(systemData.m_fEnabledIoApic);
    372382            m_machine.SetFirmwareType(systemData.m_fEnabledEFI ? KFirmwareType_EFI : KFirmwareType_BIOS);
    373383            m_machine.SetRTCUseUTC(systemData.m_fEnabledUTC);
    374             m_machine.SetPointingHIDType(systemData.m_fEnabledAbsoluteHID ? KPointingHIDType_USBTablet : KPointingHIDType_PS2Mouse);
    375384
    376385            /* Processor tab: */
     
    398407    m_pValidator = pValidator;
    399408    connect(mCbChipset, SIGNAL(currentIndexChanged(int)), m_pValidator, SLOT(revalidate()));
     409    connect(mCbHIDType, SIGNAL(currentIndexChanged(int)), m_pValidator, SLOT(revalidate()));
    400410    connect(mCbApic, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
    401411    connect(mCbVirt, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
    402     connect(mCbUseAbsHID, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
    403412}
    404413
     
    493502
    494503    /* HID dependency from OHCI feature: */
    495     if (mCbUseAbsHID->isChecked() && !m_fOHCIEnabled)
     504    if (isHIDEnabled() && !m_fOHCIEnabled)
    496505    {
    497506        strWarning = tr(
     
    516525    setTabOrder(mTbBootItemUp, mTbBootItemDown);
    517526    setTabOrder(mTbBootItemDown, mCbChipset);
    518     setTabOrder(mCbChipset, mCbApic);
     527    setTabOrder(mCbChipset, mCbHIDType);
     528    setTabOrder(mCbHIDType, mCbApic);
    519529    setTabOrder(mCbApic, mCbEFI);
    520530    setTabOrder(mCbEFI, mCbTCUseUTC);
    521     setTabOrder(mCbTCUseUTC, mCbUseAbsHID);
    522531
    523532    /* Processor tab-order: */
    524     setTabOrder(mCbUseAbsHID, mSlCPU);
     533    setTabOrder(mCbTCUseUTC, mSlCPU);
    525534    setTabOrder(mSlCPU, mLeCPU);
    526535    setTabOrder(mLeCPU, mSlCPUExecCap);
     
    553562    mLbCPUExecCapMax->setText(tr("<qt>%1%</qt>", "Max CPU execution cap in %").arg(m_uMaxGuestCPUExecCap));
    554563
    555     /* Retranslate combo-box: */
     564    /* Retranslate combo-boxes: */
    556565    retranslateComboPointingChipsetType();
     566    retranslateComboPointingHIDType();
    557567}
    558568
     
    591601}
    592602
     603void UIMachineSettingsSystem::repopulateComboPointingHIDType()
     604{
     605    /* Is there any value currently present/selected? */
     606    KPointingHIDType currentValue = KPointingHIDType_None;
     607    {
     608        int iCurrentIndex = mCbHIDType->currentIndex();
     609        if (iCurrentIndex != -1)
     610            currentValue = (KPointingHIDType)mCbHIDType->itemData(iCurrentIndex).toInt();
     611    }
     612
     613    /* Clear combo: */
     614    mCbHIDType->clear();
     615
     616    /* Repopulate combo taking into account currently cached value: */
     617    KPointingHIDType cachedValue = m_cache.base().m_pointingHIDType;
     618    {
     619        /* "PS/2 Mouse" value is always here: */
     620        mCbHIDType->addItem(gpConverter->toString(KPointingHIDType_PS2Mouse), (int)KPointingHIDType_PS2Mouse);
     621
     622        /* "USB Mouse" value is here only if it is currently selected: */
     623        if (cachedValue == KPointingHIDType_USBMouse)
     624            mCbHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMouse), (int)KPointingHIDType_USBMouse);
     625
     626        /* "USB Mouse/Tablet" value is always here: */
     627        mCbHIDType->addItem(gpConverter->toString(KPointingHIDType_USBTablet), (int)KPointingHIDType_USBTablet);
     628
     629        /* "PS/2 and USB Mouse" value is here only if it is currently selected: */
     630        if (cachedValue == KPointingHIDType_ComboMouse)
     631            mCbHIDType->addItem(gpConverter->toString(KPointingHIDType_ComboMouse), (int)KPointingHIDType_ComboMouse);
     632
     633        /* "USB Multi-Touch Mouse/Tablet" value is always here: */
     634        mCbHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMultiTouch), (int)KPointingHIDType_USBMultiTouch);
     635    }
     636
     637    /* Was there any value previously present/selected? */
     638    if (currentValue != KPointingHIDType_None)
     639    {
     640        int iPreviousIndex = mCbHIDType->findData((int)currentValue);
     641        if (iPreviousIndex != -1)
     642            mCbHIDType->setCurrentIndex(iPreviousIndex);
     643    }
     644}
     645
    593646void UIMachineSettingsSystem::valueChangedCPU(int iValue)
    594647{
     
    620673        /* Look for the corresponding item: */
    621674        int iCorrespondingIndex = mCbChipset->findData((int)type);
    622         /* Re-translate corresponding item if it was found: */
     675        /* Re-translate if corresponding item was found: */
    623676        if (iCorrespondingIndex != -1)
    624677            mCbChipset->setItemText(iCorrespondingIndex, gpConverter->toString(type));
     678    }
     679}
     680
     681void UIMachineSettingsSystem::retranslateComboPointingHIDType()
     682{
     683    /* For each the element in KPointingHIDType enum: */
     684    for (int iIndex = (int)KPointingHIDType_None; iIndex < (int)KPointingHIDType_Max; ++iIndex)
     685    {
     686        /* Cast to the corresponding type: */
     687        KPointingHIDType type = (KPointingHIDType)iIndex;
     688        /* Look for the corresponding item: */
     689        int iCorrespondingIndex = mCbHIDType->findData((int)type);
     690        /* Re-translate if corresponding item was found: */
     691        if (iCorrespondingIndex != -1)
     692            mCbHIDType->setItemText(iCorrespondingIndex, gpConverter->toString(type));
    625693    }
    626694}
     
    644712    mLbChipset->setEnabled(isMachineOffline());
    645713    mCbChipset->setEnabled(isMachineOffline());
     714    mLbHIDType->setEnabled(isMachineOffline());
     715    mCbHIDType->setEnabled(isMachineOffline());
    646716    mLbMotherboardExtended->setEnabled(isMachineOffline());
    647717    mCbApic->setEnabled(isMachineOffline());
    648718    mCbEFI->setEnabled(isMachineOffline());
    649719    mCbTCUseUTC->setEnabled(isMachineOffline());
    650     mCbUseAbsHID->setEnabled(isMachineOffline());
    651720
    652721    /* Processor tab: */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h

    r47268 r47269  
    5454        , m_bootItems(QList<UIBootItemData>())
    5555        , m_chipsetType(KChipsetType_Null)
     56        , m_pointingHIDType(KPointingHIDType_None)
    5657        , m_fEnabledIoApic(false)
    5758        , m_fEnabledEFI(false)
    5859        , m_fEnabledUTC(false)
    59         , m_fEnabledAbsoluteHID(false)
    6060        /* CPU data: */
    6161        , m_cCPUCount(-1)
     
    7777               (m_bootItems == other.m_bootItems) &&
    7878               (m_chipsetType == other.m_chipsetType) &&
     79               (m_pointingHIDType == other.m_pointingHIDType) &&
    7980               (m_fEnabledIoApic == other.m_fEnabledIoApic) &&
    8081               (m_fEnabledEFI == other.m_fEnabledEFI) &&
    8182               (m_fEnabledUTC == other.m_fEnabledUTC) &&
    82                (m_fEnabledAbsoluteHID == other.m_fEnabledAbsoluteHID) &&
    8383               /* CPU data: */
    8484               (m_cCPUCount == other.m_cCPUCount) &&
     
    102102    QList<UIBootItemData> m_bootItems;
    103103    KChipsetType m_chipsetType;
     104    KPointingHIDType m_pointingHIDType;
    104105    bool m_fEnabledIoApic;
    105106    bool m_fEnabledEFI;
    106107    bool m_fEnabledUTC;
    107     bool m_fEnabledAbsoluteHID;
    108108    /* Variables: CPU data: */
    109109    int m_cCPUCount;
     
    179179private:
    180180
    181     /* Helper: Translation stuff: */
     181    /* Helpers: Translation stuff: */
    182182    void retranslateComboPointingChipsetType();
     183    void retranslateComboPointingHIDType();
    183184
    184185    /* Handler: Polishing stuff: */
     
    190191    /* Helper: Boot-table stuff: */
    191192    void adjustBootOrderTWSize();
     193
     194    /* Helper: Pointing HID type combo stuff: */
     195    void repopulateComboPointingHIDType();
    192196
    193197    /* Variable: Validation stuff: */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.ui

    r46497 r47269  
    331331       </item>
    332332       <item row="5" column="0">
    333         <widget class="QLabel" name="mLbMotherboardExtended">
     333        <widget class="QLabel" name="mLbHIDType">
    334334         <property name="sizePolicy">
    335335          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
     
    339339         </property>
    340340         <property name="text">
    341           <string>Extended Features:</string>
     341          <string>&amp;Pointing device:</string>
    342342         </property>
    343343         <property name="alignment">
    344344          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
    345345         </property>
     346         <property name="buddy">
     347          <cstring>mCbHIDType</cstring>
     348         </property>
    346349        </widget>
    347350       </item>
    348351       <item row="5" column="1" colspan="3">
     352        <layout class="QHBoxLayout" name="mLtHIDType">
     353         <item>
     354          <widget class="QComboBox" name="mCbHIDType" >
     355           <property name="sizePolicy" >
     356            <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
     357             <horstretch>0</horstretch>
     358             <verstretch>0</verstretch>
     359             </sizepolicy>
     360           </property>
     361           <property name="whatsThis" >
     362            <string>Determines pointing device type. Whether standard PS/2 mouse, USB mouse/tablet or USB multi-touch mouse/tablet will be emulated.</string>
     363           </property>
     364          </widget>
     365         </item>
     366         <item>
     367          <spacer name="mSpHor4">
     368           <property name="orientation">
     369            <enum>Qt::Horizontal</enum>
     370           </property>
     371           <property name="sizeHint" stdset="0">
     372            <size>
     373             <width>0</width>
     374             <height>0</height>
     375            </size>
     376           </property>
     377          </spacer>
     378         </item>
     379        </layout>
     380       </item>
     381       <item row="6" column="0">
     382        <widget class="QLabel" name="mLbMotherboardExtended">
     383         <property name="sizePolicy">
     384          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
     385           <horstretch>0</horstretch>
     386           <verstretch>0</verstretch>
     387          </sizepolicy>
     388         </property>
     389         <property name="text">
     390          <string>Extended Features:</string>
     391         </property>
     392         <property name="alignment">
     393          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
     394         </property>
     395        </widget>
     396       </item>
     397       <item row="6" column="1" colspan="3">
    349398        <widget class="QCheckBox" name="mCbApic">
    350399         <property name="sizePolicy">
     
    362411        </widget>
    363412       </item>
    364        <item row="6" column="1" colspan="3">
     413       <item row="7" column="1" colspan="3">
    365414        <widget class="QCheckBox" name="mCbEFI">
    366415         <property name="sizePolicy">
     
    378427        </widget>
    379428       </item>
    380        <item row="7" column="1" colspan="3">
     429       <item row="8" column="1" colspan="3">
    381430        <widget class="QCheckBox" name="mCbTCUseUTC" >
    382431         <property name="sizePolicy" >
     
    391440         <property name="text" >
    392441          <string>Hardware clock in &amp;UTC time</string>
    393          </property>
    394         </widget>
    395        </item>
    396        <item row="8" column="1" colspan="3">
    397         <widget class="QCheckBox" name="mCbUseAbsHID" >
    398          <property name="sizePolicy" >
    399           <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding" >
    400            <horstretch>0</horstretch>
    401            <verstretch>0</verstretch>
    402            </sizepolicy>
    403          </property>
    404          <property name="whatsThis" >
    405           <string>If checked, an absolute pointing device (a USB tablet) will be supported. Otherwise, only a standard PS/2 mouse will be emulated.</string>
    406          </property>
    407          <property name="text" >
    408           <string>Enable &amp;absolute pointing device</string>
    409442         </property>
    410443        </widget>
     
    489522           </item>
    490523           <item>
    491             <spacer name="mSpHor4">
     524            <spacer name="mSpHor5">
    492525             <property name="orientation">
    493526              <enum>Qt::Horizontal</enum>
     
    590623           </item>
    591624           <item>
    592             <spacer name="mSpHor5">
     625            <spacer name="mSpHor6">
    593626             <property name="orientation">
    594627              <enum>Qt::Horizontal</enum>
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