Changeset 46641 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Jun 18, 2013 6:40:33 PM (12 years ago)
- 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 7 7 8 8 /* 9 * Copyright (C) 2006-201 2Oracle Corporation9 * Copyright (C) 2006-2013 Oracle Corporation 10 10 * 11 11 * This file is part of VirtualBox Open Source Edition (OSE), as … … 27 27 UIMachineSettingsAudio::UIMachineSettingsAudio() 28 28 { 29 /* Apply UI decorations */ 30 Ui::UIMachineSettingsAudio::setupUi (this); 31 /* Applying language settings */ 32 retranslateUi(); 29 /* Prepare: */ 30 prepare(); 33 31 } 34 32 … … 72 70 /* Load audio data to page: */ 73 71 m_pCheckBoxAudio->setChecked(audioData.m_fAudioEnabled); 74 m_pComboAudioDriver->setCurrentIndex(m_pComboAudioDriver->find Text(gpConverter->toString(audioData.m_audioDriverType)));75 m_pComboAudioController->setCurrentIndex(m_pComboAudioController->find Text(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)); 76 74 77 75 /* Polish page finally: */ … … 88 86 /* Gather audio data: */ 89 87 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()); 92 90 93 91 /* Cache audio data: */ … … 102 100 UISettingsPageMachine::fetchData(data); 103 101 104 /* Check ifaudio 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()) 106 104 { 107 105 /* Check if adapter still valid: */ 108 CAudioAdapter a dapter = m_machine.GetAudioAdapter();109 if (!a dapter.isNull())106 CAudioAdapter audioAdapter = m_machine.GetAudioAdapter(); 107 if (!audioAdapter.isNull()) 110 108 { 111 109 /* Get audio data from cache: */ … … 113 111 114 112 /* 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); 121 116 } 122 117 } … … 126 121 } 127 122 128 void UIMachineSettingsAudio::setOrderAfter (QWidget *aWidget) 129 { 130 setTabOrder (aWidget, m_pCheckBoxAudio); 131 setTabOrder (m_pCheckBoxAudio, m_pComboAudioDriver); 132 setTabOrder (m_pComboAudioDriver, m_pComboAudioController); 123 void 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); 133 129 } 134 130 135 131 void UIMachineSettingsAudio::retranslateUi() 136 132 { 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)); 153 145 # 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 163 157 #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)); 165 159 # 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 170 165 # 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)); 193 182 } 194 183 195 184 void UIMachineSettingsAudio::polishPage() 196 185 { 186 /* Polish audio-page availability: */ 197 187 m_pContainerAudioOptions->setEnabled(isMachineOffline()); 198 188 m_pContainerAudioSubOptions->setEnabled(m_pCheckBoxAudio->isChecked()); 199 189 } 200 190 191 void 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 203 void 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 6 6 7 7 /* 8 * Copyright (C) 2006-201 2Oracle Corporation8 * Copyright (C) 2006-2013 Oracle Corporation 9 9 * 10 10 * This file is part of VirtualBox Open Source Edition (OSE), as … … 27 27 struct UIDataSettingsMachineAudio 28 28 { 29 /* Default constructor: */29 /* Constructor: */ 30 30 UIDataSettingsMachineAudio() 31 31 : m_fAudioEnabled(false) 32 32 , m_audioDriverType(KAudioDriverType_Null) 33 33 , m_audioControllerType(KAudioControllerType_AC97) {} 34 /* Functions: */ 34 35 /* Helpers: Compare functions/operators: */ 35 36 bool equal(const UIDataSettingsMachineAudio &other) const 36 37 { … … 39 40 (m_audioControllerType == other.m_audioControllerType); 40 41 } 41 /* Operators: */42 42 bool operator==(const UIDataSettingsMachineAudio &other) const { return equal(other); } 43 43 bool operator!=(const UIDataSettingsMachineAudio &other) const { return !equal(other); } 44 44 45 /* Variables: */ 45 46 bool m_fAudioEnabled; … … 50 51 51 52 /* Machine settings / Audio page: */ 52 class UIMachineSettingsAudio : public UISettingsPageMachine, 53 public Ui::UIMachineSettingsAudio 53 class UIMachineSettingsAudio : public UISettingsPageMachine, public Ui::UIMachineSettingsAudio 54 54 { 55 55 Q_OBJECT; … … 57 57 public: 58 58 59 /* Constructor: */ 59 60 UIMachineSettingsAudio(); 60 61 61 62 protected: 63 64 /* API: Cache stuff: */ 65 bool changed() const { return m_cache.wasChanged(); } 62 66 63 67 /* Load data to cache from corresponding external object(s), … … 75 79 void saveFromCacheTo(QVariant &data); 76 80 77 /* Page changed: */78 bool changed() const { return m_cache.wasChanged(); }81 /* API: Focus-order stuff: */ 82 void setOrderAfter(QWidget *pWidget); 79 83 80 void setOrderAfter (QWidget *aWidget); 84 /* Helper: Translate stuff: */ 85 void retranslateUi(); 81 86 82 void retranslateUi(); 87 /* Helper: Polish stuff: */ 88 void polishPage(); 83 89 84 90 private: 85 91 92 /* Helpers: Prepare stuff: */ 93 void prepare(); 86 94 void prepareComboboxes(); 87 88 void polishPage();89 95 90 96 /* Cache: */
Note:
See TracChangeset
for help on using the changeset viewer.