diff --git a/app/audio/audiomanager.cpp b/app/audio/audiomanager.cpp index d4716a7f9..a3ff8c4e8 100644 --- a/app/audio/audiomanager.cpp +++ b/app/audio/audiomanager.cpp @@ -28,6 +28,18 @@ namespace olive { AudioManager* AudioManager::instance_ = nullptr; +QString AudioManager::GetAudioBackendName(AudioManager::Backend b) +{ + switch (b) { + case kAudioBackendQt: + return tr("Qt"); + case kAudioBackendCount: + break; + } + + return tr("Unknown"); +} + void AudioManager::CreateInstance() { if (instance_ == nullptr) { diff --git a/app/audio/audiomanager.h b/app/audio/audiomanager.h index 26503e26c..3e159d255 100644 --- a/app/audio/audiomanager.h +++ b/app/audio/audiomanager.h @@ -44,6 +44,13 @@ class AudioManager : public QObject { Q_OBJECT public: + enum Backend { + kAudioBackendQt, + kAudioBackendCount + }; + + static QString GetAudioBackendName(Backend b); + static void CreateInstance(); static void DestroyInstance(); diff --git a/app/dialog/preferences/tabs/preferencesappearancetab.cpp b/app/dialog/preferences/tabs/preferencesappearancetab.cpp index 6bc54e753..e7fc9058f 100644 --- a/app/dialog/preferences/tabs/preferencesappearancetab.cpp +++ b/app/dialog/preferences/tabs/preferencesappearancetab.cpp @@ -36,7 +36,6 @@ namespace olive { PreferencesAppearanceTab::PreferencesAppearanceTab() { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); QGridLayout* appearance_layout = new QGridLayout(); layout->addLayout(appearance_layout); diff --git a/app/dialog/preferences/tabs/preferencesaudiotab.cpp b/app/dialog/preferences/tabs/preferencesaudiotab.cpp index 7ee42c0fa..079fa1e74 100644 --- a/app/dialog/preferences/tabs/preferencesaudiotab.cpp +++ b/app/dialog/preferences/tabs/preferencesaudiotab.cpp @@ -21,6 +21,7 @@ #include "preferencesaudiotab.h" #include +#include #include #include "audio/audiomanager.h" @@ -30,65 +31,88 @@ namespace olive { PreferencesAudioTab::PreferencesAudioTab() { - QGridLayout* audio_tab_layout = new QGridLayout(this); - audio_tab_layout->setMargin(0); + QVBoxLayout* audio_tab_layout = new QVBoxLayout(this); - int row = 0; + { + // Backend Layout + QGridLayout* main_layout = new QGridLayout(); + main_layout->setMargin(0); - // Audio -> Output Device - audio_tab_layout->addWidget(new QLabel(tr("Output Device:")), row, 0); + int row = 0; - audio_output_devices_ = new QComboBox(); - audio_tab_layout->addWidget(audio_output_devices_, row, 1); + main_layout->addWidget(new QLabel(tr("Backend:")), row, 0); - row++; - - // Audio -> Input Device - audio_tab_layout->addWidget(new QLabel(tr("Input Device:")), row, 0); - - audio_input_devices_ = new QComboBox(); - audio_tab_layout->addWidget(audio_input_devices_, row, 1); - - row++; - - // Audio -> Sample Rate - - audio_tab_layout->addWidget(new QLabel(tr("Sample Rate:")), row, 0); - - audio_sample_rate_ = new QComboBox(); - /*combobox_audio_sample_rates(audio_sample_rate); - for (int i=0;icount();i++) { - if (audio_sample_rate->itemData(i).toInt() == olive::config.audio_rate) { - audio_sample_rate->setCurrentIndex(i); - break; + audio_backend_combobox_ = new QComboBox(); + for (int i=0; iaddItem(AudioManager::GetAudioBackendName(static_cast(i))); } - }*/ + main_layout->addWidget(audio_backend_combobox_, row, 1); - audio_tab_layout->addWidget(audio_sample_rate_, row, 1); + audio_tab_layout->addLayout(main_layout); + } - row++; + { + // Qt-Backend Layout + QGroupBox* qt_groupbox = new QGroupBox(); + audio_tab_layout->addWidget(qt_groupbox); - // Audio -> Audio Recording - audio_tab_layout->addWidget(new QLabel(tr("Audio Recording:"), this), row, 0); + QVBoxLayout* qt_layout = new QVBoxLayout(qt_groupbox); - recording_combobox_ = new QComboBox(); - recording_combobox_->addItem(tr("Mono")); - recording_combobox_->addItem(tr("Stereo")); -// recordingComboBox->setCurrentIndex(olive::config.recording_mode - 1); - audio_tab_layout->addWidget(recording_combobox_, row, 1); + int row = 0; - row++; + { + // Output Group + QGroupBox* qt_output_group = new QGroupBox(); + qt_output_group->setTitle(tr("Output")); + qt_layout->addWidget(qt_output_group); - refresh_devices_btn_ = new QPushButton(tr("Refresh Devices")); - audio_tab_layout->addWidget(refresh_devices_btn_, row, 1); + QGridLayout* qt_output_layout = new QGridLayout(qt_output_group); - row++; + qt_output_layout->addWidget(new QLabel(tr("Device:")), row, 0); - RetrieveDeviceLists(); + audio_output_devices_ = new QComboBox(); + qt_output_layout->addWidget(audio_output_devices_, row, 1); + } - connect(refresh_devices_btn_, &QPushButton::clicked, this, &PreferencesAudioTab::RefreshDevices); - connect(AudioManager::instance(), &AudioManager::OutputListReady, this, &PreferencesAudioTab::RetrieveOutputList); - connect(AudioManager::instance(), &AudioManager::InputListReady, this, &PreferencesAudioTab::RetrieveInputList); + row = 0; + + { + QGroupBox* qt_input_group = new QGroupBox(); + qt_input_group->setTitle(tr("Input")); + qt_layout->addWidget(qt_input_group); + + QGridLayout* qt_input_layout = new QGridLayout(qt_input_group); + + qt_input_layout->addWidget(new QLabel(tr("Device:")), row, 0); + + audio_input_devices_ = new QComboBox(); + qt_input_layout->addWidget(audio_input_devices_, row, 1); + + row++; + + qt_input_layout->addWidget(new QLabel(tr("Recording Mode:"), this), row, 0); + + recording_combobox_ = new QComboBox(); + recording_combobox_->addItem(tr("Mono")); + recording_combobox_->addItem(tr("Stereo")); + qt_input_layout->addWidget(recording_combobox_, row, 1); + } + + QHBoxLayout* qt_refresh_layout = new QHBoxLayout(); + qt_layout->addLayout(qt_refresh_layout); + qt_refresh_layout->addStretch(); + + refresh_devices_btn_ = new QPushButton(tr("Refresh Devices")); + qt_refresh_layout->addWidget(refresh_devices_btn_); + + RetrieveDeviceLists(); + + connect(refresh_devices_btn_, &QPushButton::clicked, this, &PreferencesAudioTab::RefreshDevices); + connect(AudioManager::instance(), &AudioManager::OutputListReady, this, &PreferencesAudioTab::RetrieveOutputList); + connect(AudioManager::instance(), &AudioManager::InputListReady, this, &PreferencesAudioTab::RetrieveInputList); + } + + audio_tab_layout->addStretch(); } void PreferencesAudioTab::Accept(MultiUndoCommand *command) diff --git a/app/dialog/preferences/tabs/preferencesaudiotab.h b/app/dialog/preferences/tabs/preferencesaudiotab.h index ba0eed3eb..6a2feb2ec 100644 --- a/app/dialog/preferences/tabs/preferencesaudiotab.h +++ b/app/dialog/preferences/tabs/preferencesaudiotab.h @@ -38,6 +38,8 @@ public: virtual void Accept(MultiUndoCommand* command) override; private: + QComboBox* audio_backend_combobox_; + /** * @brief UI widget for selecting the output audio device */ @@ -48,11 +50,6 @@ private: */ QComboBox* audio_input_devices_; - /** - * @brief UI widget for selecting the audio sampling rates - */ - QComboBox* audio_sample_rate_; - /** * @brief UI widget for editing the recording channels */ diff --git a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp index eee5680c1..e6ae2fcd8 100644 --- a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp +++ b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp @@ -30,7 +30,6 @@ namespace olive { PreferencesBehaviorTab::PreferencesBehaviorTab() { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); behavior_tree_ = new QTreeWidget(); layout->addWidget(behavior_tree_); diff --git a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp index 1213fa67f..dc874debe 100644 --- a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp +++ b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp @@ -35,7 +35,6 @@ namespace olive { PreferencesGeneralTab::PreferencesGeneralTab() { QVBoxLayout* layout = new QVBoxLayout(this); - layout->setMargin(0); { QGroupBox* global_groupbox = new QGroupBox(tr("Locale")); diff --git a/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp b/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp index 1a4354999..3099a70f2 100644 --- a/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp +++ b/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp @@ -32,7 +32,6 @@ namespace olive { PreferencesKeyboardTab::PreferencesKeyboardTab(QMenuBar *menubar) { QVBoxLayout* shortcut_layout = new QVBoxLayout(this); - shortcut_layout->setMargin(0); QLineEdit* key_search_line = new QLineEdit(); key_search_line->setPlaceholderText(tr("Search for action or shortcut"));