1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-11 16:44:05 +02:00

Fix up non-mac with new qocoa widget

This commit is contained in:
Leo Franchi
2012-08-08 16:08:49 -04:00
parent fc712fba19
commit 8f86171130
7 changed files with 77 additions and 72 deletions

View File

@@ -237,60 +237,62 @@ SettingsDialog::SettingsDialog(QObject *parent )
connect( m_advancedWidgetUi->staticIpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) ); connect( m_advancedWidgetUi->staticIpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) );
connect( m_advancedWidgetUi->upnpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) ); connect( m_advancedWidgetUi->upnpRadioButton, SIGNAL( toggled(bool) ), SLOT( toggleRemoteMode() ) );
connect( m_advancedWidgetUi->enableProxyCheckBox, SIGNAL( toggled(bool) ), SLOT( toggleProxyEnabled() ) ); 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() 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_accountsWidget->deleteLater();
m_collectionWidget->deleteLater(); m_collectionWidget->deleteLater();
m_advancedWidget->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 void
SettingsDialog::onRejected() SettingsDialog::onRejected()
{ {
@@ -417,7 +408,7 @@ SettingsDialog::openAccountFactoryConfig( AccountFactory* factory )
} }
#ifndef Q_OS_MAC #ifndef Q_OS_MAC
AccountFactoryWrapper dialog( factory, this ); AccountFactoryWrapper dialog( factory, 0 );
QWeakPointer< AccountFactoryWrapper > watcher( &dialog ); QWeakPointer< AccountFactoryWrapper > watcher( &dialog );
dialog.exec(); dialog.exec();

View File

@@ -106,9 +106,10 @@ private slots:
void requiresRestart(); void requiresRestart();
private: private slots:
void createIcons(); void saveSettings();
private:
Ui_Settings_Accounts* m_accountsWidgetUi; Ui_Settings_Accounts* m_accountsWidgetUi;
QWidget* m_accountsWidget; QWidget* m_accountsWidget;

View File

@@ -100,6 +100,7 @@ TomahawkWindow::TomahawkWindow( QWidget* parent )
, m_searchWidget( 0 ) , m_searchWidget( 0 )
, m_audioControls( new AudioControls( this ) ) , m_audioControls( new AudioControls( this ) )
, m_trayIcon( new TomahawkTrayIcon( this ) ) , m_trayIcon( new TomahawkTrayIcon( this ) )
, m_settingsDialog( 0 )
, m_audioRetryCounter( 0 ) , m_audioRetryCounter( 0 )
{ {
setWindowIcon( QIcon( RESPATH "icons/tomahawk-icon-128x128.png" ) ); setWindowIcon( QIcon( RESPATH "icons/tomahawk-icon-128x128.png" ) );
@@ -809,8 +810,10 @@ TomahawkWindow::onHistoryForwardAvailable( bool avail )
void void
TomahawkWindow::showSettingsDialog() TomahawkWindow::showSettingsDialog()
{ {
SettingsDialog win; if ( !m_settingsDialog )
win.show(); m_settingsDialog = new SettingsDialog;
m_settingsDialog->show();
} }

View File

@@ -37,6 +37,7 @@
#include <shobjidl.h> #include <shobjidl.h>
#endif #endif
class SettingsDialog;
namespace Tomahawk namespace Tomahawk
{ {
namespace Accounts namespace Accounts
@@ -184,6 +185,7 @@ private:
QueueView* m_queueView; QueueView* m_queueView;
AnimatedSplitter* m_sidebar; AnimatedSplitter* m_sidebar;
JobStatusSortModel* m_jobsModel; JobStatusSortModel* m_jobsModel;
SettingsDialog* m_settingsDialog;
// Menus and menu actions: Accounts menu // Menus and menu actions: Accounts menu
QMenuBar *m_menuBar; QMenuBar *m_menuBar;

View File

@@ -409,7 +409,7 @@ IF( APPLE )
/System/Library/Frameworks/Security.framework /System/Library/Frameworks/Security.framework
) )
ELSE( APPLE ) 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 ) ENDIF( APPLE )
IF(LIBLASTFM_FOUND) IF(LIBLASTFM_FOUND)

View File

@@ -19,11 +19,12 @@ public slots:
return; return;
const int idx = toolbar->actions().indexOf(action); const int idx = toolbar->actions().indexOf(action);
Q_ASSERT(idx > -1); // There's a left spacer, so we want 1 less
if (idx < 0) Q_ASSERT(idx > 0);
if (idx < 1)
return; return;
stack->setCurrentIndex(idx); stack->setCurrentIndex(idx - 1);
} }
void accepted() { void accepted() {
@@ -133,7 +134,7 @@ void QToolbarTabDialog::setCurrentIndex(int index)
return; return;
Q_ASSERT(index < pimpl->toolbar->actions().length()); Q_ASSERT(index < pimpl->toolbar->actions().length() + 1);
Q_ASSERT(index < pimpl->stack->count()); Q_ASSERT(index < pimpl->stack->count());
if (index < 0 || index > pimpl->toolbar->actions().length()) if (index < 0 || index > pimpl->toolbar->actions().length())
return; return;
@@ -142,6 +143,11 @@ void QToolbarTabDialog::setCurrentIndex(int index)
if (pimpl->stack->currentIndex() != index) if (pimpl->stack->currentIndex() != index)
pimpl->stack->setCurrentIndex(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() void QToolbarTabDialog::show()
@@ -164,4 +170,4 @@ void QToolbarTabDialog::hide()
pimpl->dialog.data()->hide(); pimpl->dialog.data()->hide();
} }
#include "moc_qtoolbartabdialog_nonmac.cpp" #include "qtoolbartabdialog.moc"

View File

@@ -68,6 +68,8 @@ SourceTreeView::SourceTreeView( QWidget* parent )
setAttribute( Qt::WA_MacShowFocusRect, 0 ); setAttribute( Qt::WA_MacShowFocusRect, 0 );
setContentsMargins( 0, 0, 0, 0 ); setContentsMargins( 0, 0, 0, 0 );
tDebug() << "POINT SIZEL" << font().pointSize();
QFont fnt; QFont fnt;
fnt.setPointSize( font().pointSize() - 1 ); fnt.setPointSize( font().pointSize() - 1 );
setFont( fnt ); setFont( fnt );