VirtualBox

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


Ignore:
Timestamp:
Jun 18, 2013 6:40:33 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: Machine settings: Audio page: Cleanup (part 6).

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

Legend:

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

    r46634 r46641  
    77
    88/*
    9  * Copyright (C) 2006-2012 Oracle Corporation
     9 * Copyright (C) 2006-2013 Oracle Corporation
    1010 *
    1111 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2727UIMachineSettingsAudio::UIMachineSettingsAudio()
    2828{
    29     /* Apply UI decorations */
    30     Ui::UIMachineSettingsAudio::setupUi (this);
    31     /* Applying language settings */
    32     retranslateUi();
     29    /* Prepare: */
     30    prepare();
    3331}
    3432
     
    7270    /* Load audio data to page: */
    7371    m_pCheckBoxAudio->setChecked(audioData.m_fAudioEnabled);
    74     m_pComboAudioDriver->setCurrentIndex(m_pComboAudioDriver->findText(gpConverter->toString(audioData.m_audioDriverType)));
    75     m_pComboAudioController->setCurrentIndex(m_pComboAudioController->findText(gpConverter->toString(audioData.m_audioControllerType)));
     72    m_pComboAudioDriver->setCurrentIndex(m_pComboAudioDriver->findData((int)audioData.m_audioDriverType));
     73    m_pComboAudioController->setCurrentIndex(m_pComboAudioController->findData((int)audioData.m_audioControllerType));
    7674
    7775    /* Polish page finally: */
     
    8886    /* Gather audio data: */
    8987    audioData.m_fAudioEnabled = m_pCheckBoxAudio->isChecked();
    90     audioData.m_audioDriverType = gpConverter->fromString<KAudioDriverType>(m_pComboAudioDriver->currentText());
    91     audioData.m_audioControllerType = gpConverter->fromString<KAudioControllerType>(m_pComboAudioController->currentText());
     88    audioData.m_audioDriverType = static_cast<KAudioDriverType>(m_pComboAudioDriver->itemData(m_pComboAudioDriver->currentIndex()).toInt());
     89    audioData.m_audioControllerType = static_cast<KAudioControllerType>(m_pComboAudioController->itemData(m_pComboAudioController->currentIndex()).toInt());
    9290
    9391    /* Cache audio data: */
     
    102100    UISettingsPageMachine::fetchData(data);
    103101
    104     /* Check if audio data was changed: */
    105     if (m_cache.wasChanged())
     102    /* Make sure machine is in 'offline' mode & audio data was changed: */
     103    if (isMachineOffline() && m_cache.wasChanged())
    106104    {
    107105        /* Check if adapter still valid: */
    108         CAudioAdapter adapter = m_machine.GetAudioAdapter();
    109         if (!adapter.isNull())
     106        CAudioAdapter audioAdapter = m_machine.GetAudioAdapter();
     107        if (!audioAdapter.isNull())
    110108        {
    111109            /* Get audio data from cache: */
     
    113111
    114112            /* Store audio data: */
    115             if (isMachineOffline())
    116             {
    117                 adapter.SetEnabled(audioData.m_fAudioEnabled);
    118                 adapter.SetAudioDriver(audioData.m_audioDriverType);
    119                 adapter.SetAudioController(audioData.m_audioControllerType);
    120             }
     113            audioAdapter.SetEnabled(audioData.m_fAudioEnabled);
     114            audioAdapter.SetAudioDriver(audioData.m_audioDriverType);
     115            audioAdapter.SetAudioController(audioData.m_audioControllerType);
    121116        }
    122117    }
     
    126121}
    127122
    128 void UIMachineSettingsAudio::setOrderAfter (QWidget *aWidget)
    129 {
    130     setTabOrder (aWidget, m_pCheckBoxAudio);
    131     setTabOrder (m_pCheckBoxAudio, m_pComboAudioDriver);
    132     setTabOrder (m_pComboAudioDriver, m_pComboAudioController);
     123void UIMachineSettingsAudio::setOrderAfter(QWidget *pWidget)
     124{
     125    /* Audio-page order: */
     126    setTabOrder(pWidget, m_pCheckBoxAudio);
     127    setTabOrder(m_pCheckBoxAudio, m_pComboAudioDriver);
     128    setTabOrder(m_pComboAudioDriver, m_pComboAudioController);
    133129}
    134130
    135131void UIMachineSettingsAudio::retranslateUi()
    136132{
    137     /* Translate uic generated strings */
    138     Ui::UIMachineSettingsAudio::retranslateUi (this);
    139     /* Fill the comboboxes */
    140     prepareComboboxes();
    141 }
    142 
    143 void UIMachineSettingsAudio::prepareComboboxes()
    144 {
    145     /* Save the current selected value */
    146     int currentDriver = m_pComboAudioDriver->currentIndex();
    147     /* Clear the driver box */
    148     m_pComboAudioDriver->clear();
    149     /* Refill them */
    150     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_Null));
    151 #if defined Q_WS_WIN32
    152     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_DirectSound));
     133    /* Translate generated strings: */
     134    Ui::UIMachineSettingsAudio::retranslateUi(this);
     135
     136
     137    /* Translate audio-driver combo.
     138     * Make sure this order corresponds the same in prepareComboboxes(): */
     139    int iIndex = -1;
     140
     141    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_Null));
     142
     143#ifdef Q_OS_WIN
     144    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_DirectSound));
    153145# ifdef VBOX_WITH_WINMM
    154     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_WinMM));
    155 # endif
    156 #endif
    157 #if defined Q_OS_SOLARIS
    158     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_SolAudio));
    159 # if defined VBOX_WITH_SOLARIS_OSS
    160     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_OSS));
    161 #endif
    162 #endif
     146    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_WinMM));
     147# endif /* VBOX_WITH_WINMM */
     148#endif /* Q_OS_WIN */
     149
     150#ifdef Q_OS_SOLARIS
     151    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_SolAudio));
     152# ifdef VBOX_WITH_SOLARIS_OSS
     153    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_OSS));
     154# endif /* VBOX_WITH_SOLARIS_OSS */
     155#endif /* Q_OS_SOLARIS */
     156
    163157#if defined Q_OS_LINUX || defined Q_OS_FREEBSD
    164     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_OSS));
     158    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_OSS));
    165159# ifdef VBOX_WITH_PULSE
    166     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_Pulse));
    167 # endif
    168 #endif
    169 #if defined Q_OS_LINUX
     160    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_Pulse));
     161# endif /* VBOX_WITH_PULSE */
     162#endif /* Q_OS_LINUX | Q_OS_FREEBSD */
     163
     164#ifdef Q_OS_LINUX
    170165# ifdef VBOX_WITH_ALSA
    171     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_ALSA));
    172 # endif
    173 #endif
    174 #if defined Q_OS_MACX
    175     m_pComboAudioDriver->addItem (gpConverter->toString (KAudioDriverType_CoreAudio));
    176 #endif
    177     /* Set the old value */
    178     m_pComboAudioDriver->setCurrentIndex (currentDriver);
    179 
    180     /* Save the current selected value */
    181     int currentController = m_pComboAudioController->currentIndex();
    182     /* Clear the controller box */
    183     m_pComboAudioController->clear();
    184     /* Refill them */
    185     m_pComboAudioController->insertItem (m_pComboAudioController->count(),
    186         gpConverter->toString (KAudioControllerType_HDA));
    187     m_pComboAudioController->insertItem (m_pComboAudioController->count(),
    188         gpConverter->toString (KAudioControllerType_AC97));
    189     m_pComboAudioController->insertItem (m_pComboAudioController->count(),
    190         gpConverter->toString (KAudioControllerType_SB16));
    191     /* Set the old value */
    192     m_pComboAudioController->setCurrentIndex (currentController);
     166    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_ALSA));
     167# endif /* VBOX_WITH_ALSA */
     168#endif /* Q_OS_LINUX */
     169
     170#ifdef Q_OS_MACX
     171    m_pComboAudioDriver->setItemText(++iIndex, gpConverter->toString(KAudioDriverType_CoreAudio));
     172#endif /* Q_OS_MACX */
     173
     174
     175    /* Translate audio-controller combo.
     176     * Make sure this order corresponds the same in prepareComboboxes(): */
     177    iIndex = -1;
     178
     179    m_pComboAudioController->setItemText(++iIndex, gpConverter->toString(KAudioControllerType_HDA));
     180    m_pComboAudioController->setItemText(++iIndex, gpConverter->toString(KAudioControllerType_AC97));
     181    m_pComboAudioController->setItemText(++iIndex, gpConverter->toString(KAudioControllerType_SB16));
    193182}
    194183
    195184void UIMachineSettingsAudio::polishPage()
    196185{
     186    /* Polish audio-page availability: */
    197187    m_pContainerAudioOptions->setEnabled(isMachineOffline());
    198188    m_pContainerAudioSubOptions->setEnabled(m_pCheckBoxAudio->isChecked());
    199189}
    200190
     191void UIMachineSettingsAudio::prepare()
     192{
     193    /* Apply UI decorations: */
     194    Ui::UIMachineSettingsAudio::setupUi(this);
     195
     196    /* Prepare combo-boxes: */
     197    prepareComboboxes();
     198
     199    /* Translate finally: */
     200    retranslateUi();
     201}
     202
     203void UIMachineSettingsAudio::prepareComboboxes()
     204{
     205    /* Prepare audio-driver combo.
     206     * Make sure this order corresponds the same in retranslateUi(): */
     207    int iIndex = -1;
     208
     209    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_Null);
     210
     211#ifdef Q_OS_WIN
     212    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_DirectSound);
     213# ifdef VBOX_WITH_WINMM
     214    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_WinMM);
     215# endif /* VBOX_WITH_WINMM */
     216#endif /* Q_OS_WIN */
     217
     218#ifdef Q_OS_SOLARIS
     219    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_SolAudio);
     220# ifdef VBOX_WITH_SOLARIS_OSS
     221    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_OSS);
     222# endif /* VBOX_WITH_SOLARIS_OSS */
     223#endif /* Q_OS_SOLARIS */
     224
     225#if defined Q_OS_LINUX || defined Q_OS_FREEBSD
     226    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_OSS);
     227# ifdef VBOX_WITH_PULSE
     228    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_Pulse);
     229# endif /* VBOX_WITH_PULSE */
     230#endif /* Q_OS_LINUX | Q_OS_FREEBSD */
     231
     232#ifdef Q_OS_LINUX
     233# ifdef VBOX_WITH_ALSA
     234    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_ALSA);
     235# endif /* VBOX_WITH_ALSA */
     236#endif /* Q_OS_LINUX */
     237
     238#ifdef Q_OS_MACX
     239    m_pComboAudioDriver->insertItem(++iIndex, "", KAudioDriverType_CoreAudio);
     240#endif /* Q_OS_MACX */
     241
     242
     243    /* Prepare audio-controller combo.
     244     * Make sure this order corresponds the same in retranslateUi(): */
     245    iIndex = -1;
     246
     247    m_pComboAudioController->insertItem(++iIndex, "", KAudioControllerType_HDA);
     248    m_pComboAudioController->insertItem(++iIndex, "", KAudioControllerType_AC97);
     249    m_pComboAudioController->insertItem(++iIndex, "", KAudioControllerType_SB16);
     250}
     251
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.h

    r44528 r46641  
    66
    77/*
    8  * Copyright (C) 2006-2012 Oracle Corporation
     8 * Copyright (C) 2006-2013 Oracle Corporation
    99 *
    1010 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2727struct UIDataSettingsMachineAudio
    2828{
    29     /* Default constructor: */
     29    /* Constructor: */
    3030    UIDataSettingsMachineAudio()
    3131        : m_fAudioEnabled(false)
    3232        , m_audioDriverType(KAudioDriverType_Null)
    3333        , m_audioControllerType(KAudioControllerType_AC97) {}
    34     /* Functions: */
     34
     35    /* Helpers: Compare functions/operators: */
    3536    bool equal(const UIDataSettingsMachineAudio &other) const
    3637    {
     
    3940               (m_audioControllerType == other.m_audioControllerType);
    4041    }
    41     /* Operators: */
    4242    bool operator==(const UIDataSettingsMachineAudio &other) const { return equal(other); }
    4343    bool operator!=(const UIDataSettingsMachineAudio &other) const { return !equal(other); }
     44
    4445    /* Variables: */
    4546    bool m_fAudioEnabled;
     
    5051
    5152/* Machine settings / Audio page: */
    52 class UIMachineSettingsAudio : public UISettingsPageMachine,
    53                             public Ui::UIMachineSettingsAudio
     53class UIMachineSettingsAudio : public UISettingsPageMachine, public Ui::UIMachineSettingsAudio
    5454{
    5555    Q_OBJECT;
     
    5757public:
    5858
     59    /* Constructor: */
    5960    UIMachineSettingsAudio();
    6061
    6162protected:
     63
     64    /* API: Cache stuff: */
     65    bool changed() const { return m_cache.wasChanged(); }
    6266
    6367    /* Load data to cache from corresponding external object(s),
     
    7579    void saveFromCacheTo(QVariant &data);
    7680
    77     /* Page changed: */
    78     bool changed() const { return m_cache.wasChanged(); }
     81    /* API: Focus-order stuff: */
     82    void setOrderAfter(QWidget *pWidget);
    7983
    80     void setOrderAfter (QWidget *aWidget);
     84    /* Helper: Translate stuff: */
     85    void retranslateUi();
    8186
    82     void retranslateUi();
     87    /* Helper: Polish stuff: */
     88    void polishPage();
    8389
    8490private:
    8591
     92    /* Helpers: Prepare stuff: */
     93    void prepare();
    8694    void prepareComboboxes();
    87 
    88     void polishPage();
    8995
    9096    /* Cache: */
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