diff --git a/src/transcoder/transcodersettingspage.cpp b/src/transcoder/transcodersettingspage.cpp index a57713910..784b9b1db 100644 --- a/src/transcoder/transcodersettingspage.cpp +++ b/src/transcoder/transcodersettingspage.cpp @@ -17,6 +17,8 @@ #include "transcodersettingspage.h" +#include "transcoder.h" +#include "transcoderoptionsdialog.h" #include "ui/iconloader.h" #include "ui_transcodersettingspage.h" @@ -24,26 +26,44 @@ TranscoderSettingsPage::TranscoderSettingsPage(SettingsDialog* dialog) : SettingsPage(dialog), ui_(new Ui_TranscoderSettingsPage) { ui_->setupUi(this); setWindowIcon(IconLoader::Load("tools-wizard", IconLoader::Base)); + + AddTab(tr("FLAC"), Transcoder::Codec_Flac); + AddTab(tr("AAC"), Transcoder::Codec_Mp4); + AddTab(tr("MP3"), Transcoder::Codec_Mp3); + AddTab(tr("Vorbis"), Transcoder::Codec_Vorbis); + AddTab(tr("Speex"), Transcoder::Codec_Speex); + AddTab(tr("Opus"), Transcoder::Codec_Opus); + AddTab(tr("WMA"), Transcoder::Codec_Wma); } TranscoderSettingsPage::~TranscoderSettingsPage() { delete ui_; } +void TranscoderSettingsPage::AddTab(const QString& label, + Transcoder::CodecType codec) { + const QString mime_type = Transcoder::MimeType(codec); + + TranscoderOptionsInterface* tab = + TranscoderOptionsDialog::MakeOptionsPage(mime_type); + options_pages_ << tab; + + // Insert in localized alphabetical order + for (int i = 0; i < ui_->optionTabs->count(); i++) { + if (label.localeAwareCompare(ui_->optionTabs->tabText(i)) < 0) { + ui_->optionTabs->insertTab(i, tab, label); + return; + } + } + ui_->optionTabs->addTab(tab, label); +} + void TranscoderSettingsPage::Load() { - ui_->transcoding_aac->Load(); - ui_->transcoding_flac->Load(); - ui_->transcoding_mp3->Load(); - ui_->transcoding_speex->Load(); - ui_->transcoding_vorbis->Load(); - ui_->transcoding_wma->Load(); - ui_->transcoding_opus->Load(); + for (TranscoderOptionsInterface* options : options_pages_) { + options->Load(); + } } void TranscoderSettingsPage::Save() { - ui_->transcoding_aac->Save(); - ui_->transcoding_flac->Save(); - ui_->transcoding_mp3->Save(); - ui_->transcoding_speex->Save(); - ui_->transcoding_vorbis->Save(); - ui_->transcoding_wma->Save(); - ui_->transcoding_opus->Save(); + for (TranscoderOptionsInterface* options : options_pages_) { + options->Save(); + } } diff --git a/src/transcoder/transcodersettingspage.h b/src/transcoder/transcodersettingspage.h index fc2b8b068..1c9bbf961 100644 --- a/src/transcoder/transcodersettingspage.h +++ b/src/transcoder/transcodersettingspage.h @@ -18,8 +18,10 @@ #ifndef TRANSCODERSETTINGSPAGE_H #define TRANSCODERSETTINGSPAGE_H +#include "transcoder.h" #include "ui/settingspage.h" +class TranscoderOptionsInterface; class Ui_TranscoderSettingsPage; class TranscoderSettingsPage : public SettingsPage { @@ -33,7 +35,9 @@ class TranscoderSettingsPage : public SettingsPage { void Save(); private: + void AddTab(const QString& label, Transcoder::CodecType mime_type); Ui_TranscoderSettingsPage* ui_; + QList options_pages_; }; #endif // TRANSCODERSETTINGSPAGE_H diff --git a/src/transcoder/transcodersettingspage.ui b/src/transcoder/transcodersettingspage.ui index 5b7e0621b..dd41f3192 100644 --- a/src/transcoder/transcodersettingspage.ui +++ b/src/transcoder/transcodersettingspage.ui @@ -25,170 +25,14 @@ - + - 0 + -1 - - - MP3 - - - - 0 - - - 0 - - - - - - - - - Vorbis - - - - 0 - - - 0 - - - - - - - - - FLAC - - - - 0 - - - 0 - - - - - - - - - Speex - - - - 0 - - - 0 - - - - - - - - - AAC - - - - 0 - - - 0 - - - - - - - - - WMA - - - - 0 - - - 0 - - - - - - - - - Opus - - - - 0 - - - 0 - - - - - - - - - TranscoderOptionsMP3 - QWidget -
transcoder/transcoderoptionsmp3.h
- 1 -
- - TranscoderOptionsVorbis - QWidget -
transcoder/transcoderoptionsvorbis.h
- 1 -
- - TranscoderOptionsSpeex - QWidget -
transcoder/transcoderoptionsspeex.h
- 1 -
- - TranscoderOptionsAAC - QWidget -
transcoder/transcoderoptionsaac.h
- 1 -
- - TranscoderOptionsFlac - QWidget -
transcoder/transcoderoptionsflac.h
- 1 -
- - TranscoderOptionsWma - QWidget -
transcoder/transcoderoptionswma.h
- 1 -
- - TranscoderOptionsOpus - QWidget -
transcoder/transcoderoptionsopus.h
- 1 -
-