From 8f86171130ad4b70ad35a6fba048cce53d7d08e0 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Wed, 8 Aug 2012 16:08:49 -0400 Subject: [PATCH] Fix up non-mac with new qocoa widget --- src/SettingsDialog.cpp | 113 ++++++++---------- src/SettingsDialog.h | 7 +- src/TomahawkWindow.cpp | 7 +- src/TomahawkWindow.h | 2 + src/libtomahawk/CMakeLists.txt | 2 +- ...ialog_nonmac.cpp => qtoolbartabdialog.cpp} | 16 ++- src/sourcetree/SourceTreeView.cpp | 2 + 7 files changed, 77 insertions(+), 72 deletions(-) rename src/libtomahawk/thirdparty/Qocoa/{qtoolbartabdialog_nonmac.cpp => qtoolbartabdialog.cpp} (91%) diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index 4aafe6386..e04908a44 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -237,60 +237,62 @@ SettingsDialog::SettingsDialog(QObject *parent ) connect( m_advancedWidgetUi->staticIpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) ); connect( m_advancedWidgetUi->upnpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) ); connect( m_advancedWidgetUi->enableProxyCheckBox, SIGNAL( toggled(bool) ), SLOT( toggleProxyEnabled() ) ); -// connect( this, SIGNAL( rejected() ), SLOT( onRejected() ) ); + + connect( m_dialog, SIGNAL( accepted() ), SLOT( saveSettings() ) ); + connect( m_dialog, SIGNAL( rejected() ), SLOT( onRejected() ) ); +} + + +void +SettingsDialog::saveSettings() +{ + qDebug() << Q_FUNC_INFO; + + TomahawkSettings* s = TomahawkSettings::instance(); + + s->setCrashReporterEnabled( m_advancedWidgetUi->checkBoxReporter->checkState() == Qt::Checked ); + s->setHttpEnabled( m_advancedWidgetUi->checkBoxHttp->checkState() == Qt::Checked ); + s->setProxyType( m_advancedWidgetUi->enableProxyCheckBox->isChecked() ? QNetworkProxy::Socks5Proxy : QNetworkProxy::NoProxy ); + s->setExternalAddressMode( m_advancedWidgetUi->upnpRadioButton->isChecked() ? TomahawkSettings::Upnp : ( m_advancedWidgetUi->lanOnlyRadioButton->isChecked() ? TomahawkSettings::Lan : TomahawkSettings::Static ) ); + + s->setExternalHostname( m_advancedWidgetUi->staticHostName->text() ); + s->setExternalPort( m_advancedWidgetUi->staticPort->value() ); + + s->setScannerPaths( m_collectionWidgetUi->dirTree->getCheckedPaths() ); + s->setWatchForChanges( m_collectionWidgetUi->checkBoxWatchForChanges->isChecked() ); + s->setScannerTime( m_collectionWidgetUi->scannerTimeSpinBox->value() ); + s->setEnableEchonestCatalogs( m_collectionWidgetUi->enableEchonestCatalog->isChecked() ); + +// s->setNowPlayingEnabled( ui->checkBoxEnableAdium->isChecked() ); + + s->applyChanges(); + s->sync(); + + if ( m_restartRequired ) + QMessageBox::information( 0, tr( "Information" ), tr( "Some changed settings will not take effect until Tomahawk is restarted" ) ); + + TomahawkUtils::NetworkProxyFactory* proxyFactory = TomahawkUtils::proxyFactory(); + if ( !m_advancedWidgetUi->enableProxyCheckBox->isChecked() ) + { + tDebug() << Q_FUNC_INFO << "Got NoProxy selected"; + proxyFactory->setProxy( QNetworkProxy::NoProxy ); + } + else + { + tDebug() << Q_FUNC_INFO << "Got Socks5Proxy selected"; + proxyFactory->setProxy( QNetworkProxy( QNetworkProxy::Socks5Proxy, s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() ) ); + if ( !s->proxyNoProxyHosts().isEmpty() ) + { + tDebug() << Q_FUNC_INFO << "noproxy hosts:" << s->proxyNoProxyHosts(); + tDebug() << Q_FUNC_INFO << "split noproxy line edit is " << s->proxyNoProxyHosts().split( ' ', QString::SkipEmptyParts ); + proxyFactory->setNoProxyHosts( s->proxyNoProxyHosts().split( ' ', QString::SkipEmptyParts ) ); + } + } } SettingsDialog::~SettingsDialog() { - qDebug() << Q_FUNC_INFO; - - if ( !m_rejected ) - { - TomahawkSettings* s = TomahawkSettings::instance(); - - s->setCrashReporterEnabled( m_advancedWidgetUi->checkBoxReporter->checkState() == Qt::Checked ); - s->setHttpEnabled( m_advancedWidgetUi->checkBoxHttp->checkState() == Qt::Checked ); - s->setProxyType( m_advancedWidgetUi->enableProxyCheckBox->isChecked() ? QNetworkProxy::Socks5Proxy : QNetworkProxy::NoProxy ); - s->setExternalAddressMode( m_advancedWidgetUi->upnpRadioButton->isChecked() ? TomahawkSettings::Upnp : ( m_advancedWidgetUi->lanOnlyRadioButton->isChecked() ? TomahawkSettings::Lan : TomahawkSettings::Static ) ); - - s->setExternalHostname( m_advancedWidgetUi->staticHostName->text() ); - s->setExternalPort( m_advancedWidgetUi->staticPort->value() ); - - s->setScannerPaths( m_collectionWidgetUi->dirTree->getCheckedPaths() ); - s->setWatchForChanges( m_collectionWidgetUi->checkBoxWatchForChanges->isChecked() ); - s->setScannerTime( m_collectionWidgetUi->scannerTimeSpinBox->value() ); - s->setEnableEchonestCatalogs( m_collectionWidgetUi->enableEchonestCatalog->isChecked() ); - -// s->setNowPlayingEnabled( ui->checkBoxEnableAdium->isChecked() ); - - s->applyChanges(); - s->sync(); - - if ( m_restartRequired ) - QMessageBox::information( 0, tr( "Information" ), tr( "Some changed settings will not take effect until Tomahawk is restarted" ) ); - - TomahawkUtils::NetworkProxyFactory* proxyFactory = TomahawkUtils::proxyFactory(); - if ( !m_advancedWidgetUi->enableProxyCheckBox->isChecked() ) - { - tDebug() << Q_FUNC_INFO << "Got NoProxy selected"; - proxyFactory->setProxy( QNetworkProxy::NoProxy ); - } - else - { - tDebug() << Q_FUNC_INFO << "Got Socks5Proxy selected"; - proxyFactory->setProxy( QNetworkProxy( QNetworkProxy::Socks5Proxy, s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() ) ); - if ( !s->proxyNoProxyHosts().isEmpty() ) - { - tDebug() << Q_FUNC_INFO << "noproxy hosts:" << s->proxyNoProxyHosts(); - tDebug() << Q_FUNC_INFO << "split noproxy line edit is " << s->proxyNoProxyHosts().split( ' ', QString::SkipEmptyParts ); - proxyFactory->setNoProxyHosts( s->proxyNoProxyHosts().split( ' ', QString::SkipEmptyParts ) ); - } - } - } - else - qDebug() << "Settings dialog cancelled, NOT saving prefs."; - m_accountsWidget->deleteLater(); m_collectionWidget->deleteLater(); m_advancedWidget->deleteLater(); @@ -311,17 +313,6 @@ SettingsDialog::serventReady() } -//void -//SettingsDialog::changePage( QAction *action ) -//{ -// int index = m_settingsGroup->actions().indexOf( action ); -// if( ui->stackedWidget->currentIndex() != index ) -// { -// ui->stackedWidget->setCurrentIndex( index ); -// } -//} - - void SettingsDialog::onRejected() { @@ -417,7 +408,7 @@ SettingsDialog::openAccountFactoryConfig( AccountFactory* factory ) } #ifndef Q_OS_MAC - AccountFactoryWrapper dialog( factory, this ); + AccountFactoryWrapper dialog( factory, 0 ); QWeakPointer< AccountFactoryWrapper > watcher( &dialog ); dialog.exec(); diff --git a/src/SettingsDialog.h b/src/SettingsDialog.h index e9d9f8032..885997fde 100644 --- a/src/SettingsDialog.h +++ b/src/SettingsDialog.h @@ -103,12 +103,13 @@ private slots: void serventReady(); void aclEntryClearButtonClicked(); - + void requiresRestart(); -private: - void createIcons(); +private slots: + void saveSettings(); +private: Ui_Settings_Accounts* m_accountsWidgetUi; QWidget* m_accountsWidget; diff --git a/src/TomahawkWindow.cpp b/src/TomahawkWindow.cpp index 30491c261..9adb2c6bc 100644 --- a/src/TomahawkWindow.cpp +++ b/src/TomahawkWindow.cpp @@ -100,6 +100,7 @@ TomahawkWindow::TomahawkWindow( QWidget* parent ) , m_searchWidget( 0 ) , m_audioControls( new AudioControls( this ) ) , m_trayIcon( new TomahawkTrayIcon( this ) ) + , m_settingsDialog( 0 ) , m_audioRetryCounter( 0 ) { setWindowIcon( QIcon( RESPATH "icons/tomahawk-icon-128x128.png" ) ); @@ -809,8 +810,10 @@ TomahawkWindow::onHistoryForwardAvailable( bool avail ) void TomahawkWindow::showSettingsDialog() { - SettingsDialog win; - win.show(); + if ( !m_settingsDialog ) + m_settingsDialog = new SettingsDialog; + + m_settingsDialog->show(); } diff --git a/src/TomahawkWindow.h b/src/TomahawkWindow.h index 0b0f130c7..b51477780 100644 --- a/src/TomahawkWindow.h +++ b/src/TomahawkWindow.h @@ -37,6 +37,7 @@ #include #endif +class SettingsDialog; namespace Tomahawk { namespace Accounts @@ -184,6 +185,7 @@ private: QueueView* m_queueView; AnimatedSplitter* m_sidebar; JobStatusSortModel* m_jobsModel; + SettingsDialog* m_settingsDialog; // Menus and menu actions: Accounts menu QMenuBar *m_menuBar; diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt index c59e804f3..7cb8b637a 100644 --- a/src/libtomahawk/CMakeLists.txt +++ b/src/libtomahawk/CMakeLists.txt @@ -409,7 +409,7 @@ IF( APPLE ) /System/Library/Frameworks/Security.framework ) ELSE( APPLE ) - SET( libGuiSources ${libGuiSources} thirdparty/Qocoa/qsearchfield.cpp thirdparty/Qocoa/qtoolbartabdialog_nonmac.cpp ) + SET( libGuiSources ${libGuiSources} thirdparty/Qocoa/qsearchfield.cpp thirdparty/Qocoa/qtoolbartabdialog.cpp ) ENDIF( APPLE ) IF(LIBLASTFM_FOUND) diff --git a/src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog_nonmac.cpp b/src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog.cpp similarity index 91% rename from src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog_nonmac.cpp rename to src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog.cpp index 08b998b4c..89d0b10a6 100644 --- a/src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog_nonmac.cpp +++ b/src/libtomahawk/thirdparty/Qocoa/qtoolbartabdialog.cpp @@ -19,11 +19,12 @@ public slots: return; const int idx = toolbar->actions().indexOf(action); - Q_ASSERT(idx > -1); - if (idx < 0) + // There's a left spacer, so we want 1 less + Q_ASSERT(idx > 0); + if (idx < 1) return; - stack->setCurrentIndex(idx); + stack->setCurrentIndex(idx - 1); } void accepted() { @@ -133,7 +134,7 @@ void QToolbarTabDialog::setCurrentIndex(int index) return; - Q_ASSERT(index < pimpl->toolbar->actions().length()); + Q_ASSERT(index < pimpl->toolbar->actions().length() + 1); Q_ASSERT(index < pimpl->stack->count()); if (index < 0 || index > pimpl->toolbar->actions().length()) return; @@ -142,6 +143,11 @@ void QToolbarTabDialog::setCurrentIndex(int index) if (pimpl->stack->currentIndex() != index) pimpl->stack->setCurrentIndex(index); + + // 1 spacer item before the first action + QAction* toCheck = pimpl->toolbar->actions().at(index + 1); + if (pimpl->actionGroup->checkedAction() != toCheck) + toCheck->setChecked(true); } void QToolbarTabDialog::show() @@ -164,4 +170,4 @@ void QToolbarTabDialog::hide() pimpl->dialog.data()->hide(); } -#include "moc_qtoolbartabdialog_nonmac.cpp" +#include "qtoolbartabdialog.moc" diff --git a/src/sourcetree/SourceTreeView.cpp b/src/sourcetree/SourceTreeView.cpp index e0499e333..760660592 100644 --- a/src/sourcetree/SourceTreeView.cpp +++ b/src/sourcetree/SourceTreeView.cpp @@ -68,6 +68,8 @@ SourceTreeView::SourceTreeView( QWidget* parent ) setAttribute( Qt::WA_MacShowFocusRect, 0 ); setContentsMargins( 0, 0, 0, 0 ); + tDebug() << "POINT SIZEL" << font().pointSize(); + QFont fnt; fnt.setPointSize( font().pointSize() - 1 ); setFont( fnt );