diff --git a/src/libtomahawk/utils/TomahawkUtils.h b/src/libtomahawk/utils/TomahawkUtils.h index 85a9aaf8d..27a34cab3 100644 --- a/src/libtomahawk/utils/TomahawkUtils.h +++ b/src/libtomahawk/utils/TomahawkUtils.h @@ -104,6 +104,7 @@ namespace TomahawkUtils ListRemove, ListAdd, AdvancedSettings, + DownloadsSettings, AccountSettings, MusicSettings, Add, diff --git a/src/libtomahawk/utils/TomahawkUtilsGui.cpp b/src/libtomahawk/utils/TomahawkUtilsGui.cpp index b7eff0046..81c413dcd 100644 --- a/src/libtomahawk/utils/TomahawkUtilsGui.cpp +++ b/src/libtomahawk/utils/TomahawkUtilsGui.cpp @@ -733,6 +733,9 @@ defaultPixmap( ImageType type, ImageMode mode, const QSize& size ) case MusicSettings: pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/music-settings.svg", size ); break; + case DownloadsSettings: + pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/music-settings.svg", size ); + break; case DropSong: pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/drop-song.svg", size ); diff --git a/src/tomahawk/CMakeLists.txt b/src/tomahawk/CMakeLists.txt index 47c9612ff..11a828c4e 100644 --- a/src/tomahawk/CMakeLists.txt +++ b/src/tomahawk/CMakeLists.txt @@ -79,6 +79,7 @@ SET( tomahawkUI ${tomahawkUI} dialogs/Settings_Accounts.ui dialogs/Settings_Advanced.ui dialogs/Settings_Collection.ui + dialogs/Settings_Downloads.ui TomahawkWindow.ui diff --git a/src/tomahawk/dialogs/SettingsDialog.cpp b/src/tomahawk/dialogs/SettingsDialog.cpp index 9c1a36ca5..19f0f3d98 100644 --- a/src/tomahawk/dialogs/SettingsDialog.cpp +++ b/src/tomahawk/dialogs/SettingsDialog.cpp @@ -25,6 +25,7 @@ #include "ui_Settings_Accounts.h" #include "ui_Settings_Collection.h" #include "ui_Settings_Advanced.h" +#include "ui_Settings_Downloads.h" #include "config.h" @@ -79,6 +80,8 @@ SettingsDialog::SettingsDialog(QObject *parent ) , m_collectionWidget( new QWidget ) , m_advancedWidgetUi( new Ui_Settings_Advanced ) , m_advancedWidget( new QWidget ) + , m_downloadsWidgetUi( new Ui_Settings_Downloads ) + , m_downloadsWidget( new QWidget ) , m_staticHostSettings( 0 ) , m_proxySettings( 0 ) , m_restartRequired( false ) @@ -88,10 +91,12 @@ SettingsDialog::SettingsDialog(QObject *parent ) m_accountsWidget->setFont( TomahawkUtils::systemFont() ); m_collectionWidget->setFont( TomahawkUtils::systemFont() ); m_advancedWidget->setFont( TomahawkUtils::systemFont() ); + m_downloadsWidget->setFont( TomahawkUtils::systemFont() ); m_accountsWidgetUi->setupUi( m_accountsWidget ); m_collectionWidgetUi->setupUi( m_collectionWidget ); m_advancedWidgetUi->setupUi( m_advancedWidget ); + m_downloadsWidgetUi->setupUi( m_downloadsWidget ); m_accountsWidgetUi->accountsFilterCombo->setFocusPolicy( Qt::NoFocus ); m_dialog = new QToolbarTabDialog; @@ -210,6 +215,9 @@ SettingsDialog::SettingsDialog(QObject *parent ) m_advancedWidgetUi->proxyButton->setFixedWidth( buttonsWidth ); m_advancedWidgetUi->aclEntryClearButton->setFixedWidth( buttonsWidth ); + m_downloadsWidgetUi->downloadsFolder->setText( TomahawkSettings::instance()->downloadsPath() ); + connect( m_downloadsWidgetUi->pickFolderButton, SIGNAL( clicked() ), SLOT( pickDownloadsPath() ) ); + #ifndef Q_OS_MAC m_advancedWidget->setMinimumSize( m_advancedWidget->sizeHint() ); m_accountsWidget->setMinimumWidth( 500 ); @@ -248,6 +256,9 @@ SettingsDialog::SettingsDialog(QObject *parent ) "network connectivity settings, browser interaction " "and more." ) ); + m_dialog->addTab( m_downloadsWidget, TomahawkUtils::defaultPixmap( TomahawkUtils::DownloadsSettings ), + tr( "Downloads" ), tr( "Configure Tomahawk's integrated download manager." ) ); + m_dialog->setCurrentIndex( 0 ); connect( m_advancedWidgetUi->staticHostSettingsButton, SIGNAL( clicked() ), SLOT( showStaticHostSettings() ) ); @@ -290,6 +301,7 @@ SettingsDialog::saveSettings() s->setWatchForChanges( m_collectionWidgetUi->checkBoxWatchForChanges->isChecked() ); s->setScannerTime( m_collectionWidgetUi->scannerTimeSpinBox->value() ); s->setEnableEchonestCatalogs( m_collectionWidgetUi->enableEchonestCatalog->isChecked() ); + s->setDownloadsPath( m_downloadsWidgetUi->downloadsFolder->text() ); // s->setNowPlayingEnabled( ui->checkBoxEnableAdium->isChecked() ); @@ -411,10 +423,24 @@ SettingsDialog::toggleProxyEnabled() } +void +SettingsDialog::pickDownloadsPath() +{ + const QString dir = QFileDialog::getExistingDirectory( m_downloadsWidget, tr( "Open Directory" ), + QDir::homePath(), + QFileDialog::ShowDirsOnly ); + + if ( !dir.isEmpty() ) + { + m_downloadsWidgetUi->downloadsFolder->setText( dir ); + } +} + + void SettingsDialog::addLibraryPath() { - QString dir = QFileDialog::getExistingDirectory( m_collectionWidget, tr( "Open Directory" ), + const QString dir = QFileDialog::getExistingDirectory( m_collectionWidget, tr( "Open Directory" ), QDir::homePath(), QFileDialog::ShowDirsOnly ); diff --git a/src/tomahawk/dialogs/SettingsDialog.h b/src/tomahawk/dialogs/SettingsDialog.h index ed687aaa4..5c35b93c4 100644 --- a/src/tomahawk/dialogs/SettingsDialog.h +++ b/src/tomahawk/dialogs/SettingsDialog.h @@ -32,6 +32,7 @@ class QListWidgetItem; class Ui_Settings_Accounts; class Ui_Settings_Collection; class Ui_Settings_Advanced; +class Ui_Settings_Downloads; class SipPlugin; class ResolversModel; class QNetworkReply; @@ -110,6 +111,7 @@ private slots: void showProxySettings(); void addLibraryPath(); void removeLibraryPath(); + void pickDownloadsPath(); void accountsFilterChanged( int ); @@ -138,6 +140,9 @@ private: Ui_Settings_Advanced* m_advancedWidgetUi; QWidget* m_advancedWidget; + Ui_Settings_Downloads* m_downloadsWidgetUi; + QWidget* m_downloadsWidget; + QToolbarTabDialog* m_dialog; HostDialog m_staticHostSettings; diff --git a/src/tomahawk/dialogs/Settings_Downloads.ui b/src/tomahawk/dialogs/Settings_Downloads.ui new file mode 100644 index 000000000..912752569 --- /dev/null +++ b/src/tomahawk/dialogs/Settings_Downloads.ui @@ -0,0 +1,68 @@ + + + Settings_Downloads + + + + 0 + 0 + 423 + 367 + + + + + 0 + 0 + + + + Form + + + + + + Folder to download music to: + + + true + + + + + + + + + true + + + + + + + Browse... + + + + + + + + + Qt::Vertical + + + + 20 + 303 + + + + + + + + +