SettingsDialog::SettingsDialog(QObject *parent ) : QObject( parent ) , m_accountsWidgetUi( new Ui_Settings_Accounts ) , m_accountsWidget( new QWidget ) , m_collectionWidgetUi( new Ui_Settings_Collection ) , 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 ) , m_accountModel( 0 ) , m_sipSpinner( 0 ) { 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; TomahawkSettings* s = TomahawkSettings::instance(); // CHANGED m_advancedWidgetUi->checkBoxExitOnClose->setChecked( s->exitOnClose()); m_advancedWidgetUi->checkBoxReporter->setChecked( s->crashReporterEnabled() ); m_advancedWidgetUi->checkBoxHttp->setChecked( s->httpEnabled() ); m_advancedWidgetUi->checkBoxListenApi->setChecked( s->httpBindAll() ); m_advancedWidgetUi->checkBoxSongChangeNotifications->setChecked( s->songChangeNotificationEnabled() ); //Network settings Tomahawk::Network::ExternalAddress::Mode mode = TomahawkSettings::instance()->externalAddressMode(); if ( mode == Tomahawk::Network::ExternalAddress::Lan ) m_advancedWidgetUi->lanOnlyRadioButton->setChecked( true ); else if ( mode == Tomahawk::Network::ExternalAddress::Static ) m_advancedWidgetUi->staticIpRadioButton->setChecked( true ); else m_advancedWidgetUi->upnpRadioButton->setChecked( true ); m_advancedWidgetUi->staticHostSettingsButton->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); bool useProxy = TomahawkSettings::instance()->proxyType() == QNetworkProxy::Socks5Proxy; m_advancedWidgetUi->enableProxyCheckBox->setChecked( useProxy ); m_advancedWidgetUi->proxyButton->setEnabled( useProxy ); m_advancedWidgetUi->aclEntryClearButton->setEnabled( TomahawkSettings::instance()->aclEntries().size() > 0 ); connect( m_advancedWidgetUi->aclEntryClearButton, SIGNAL( clicked( bool ) ), this, SLOT( aclEntryClearButtonClicked() ) ); #ifdef Q_OS_MAC // Avoid resize handles on sheets on osx m_proxySettings.setSizeGripEnabled( true ); QSizeGrip* p = m_proxySettings.findChild< QSizeGrip* >(); p->setFixedSize( 0, 0 ); m_staticHostSettings.setSizeGripEnabled( true ); p = m_staticHostSettings.findChild< QSizeGrip* >(); p->setFixedSize( 0, 0 ); #endif m_accountsWidgetUi->installFromFileBtn->setText( tr( "Install Plug-In..." ) ); // Accounts AccountDelegate* accountDelegate = new AccountDelegate( this ); m_accountsWidgetUi->accountsView->setItemDelegate( accountDelegate ); m_accountsWidgetUi->accountsView->setContextMenuPolicy( Qt::CustomContextMenu ); m_accountsWidgetUi->accountsView->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); m_accountsWidgetUi->accountsView->setMouseTracking( true ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::Account* ) ), SLOT( openAccountConfig( Tomahawk::Accounts::Account* ) ) ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::AccountFactory* ) ), SLOT( openAccountFactoryConfig( Tomahawk::Accounts::AccountFactory* ) ) ); connect( accountDelegate, SIGNAL( update( QModelIndex ) ), m_accountsWidgetUi->accountsView, SLOT( update( QModelIndex ) ) ); m_accountModel = new AccountModel( this ); m_accountProxy = new AccountModelFilterProxy( m_accountModel ); m_accountProxy->setSourceModel( m_accountModel ); connect( m_accountProxy, SIGNAL( startInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( startInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( doneInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( doneInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( errorInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( errorInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( scrollTo( QModelIndex ) ), SLOT( scrollTo( QModelIndex ) ) ); m_accountsWidgetUi->accountsView->setModel( m_accountProxy ); connect( m_accountsWidgetUi->installFromFileBtn, SIGNAL( clicked( bool ) ), SLOT( installFromFile() ) ); connect( m_accountModel, SIGNAL( createAccount( Tomahawk::Accounts::AccountFactory* ) ), SLOT( createAccountFromFactory( Tomahawk::Accounts::AccountFactory* ) ) ); m_accountsWidgetUi->accountsFilterCombo->addItem( tr( "All" ), Accounts::NoType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( SipType ), SipType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( ResolverType ), ResolverType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( StatusPushType ), StatusPushType ); connect( m_accountsWidgetUi->accountsFilterCombo, SIGNAL( activated( int ) ), SLOT( accountsFilterChanged( int ) ) ); if ( !Servent::instance()->isReady() ) { m_sipSpinner = new AnimatedSpinner( m_accountsWidgetUi->accountsView ); m_sipSpinner->fadeIn(); connect( Servent::instance(), SIGNAL( ready() ), SLOT( serventReady() ) ); } // ADVANCED m_advancedWidgetUi->proxyButton->setVisible( true ); m_collectionWidgetUi->checkBoxWatchForChanges->setChecked( s->watchForChanges() ); m_collectionWidgetUi->scannerTimeSpinBox->setValue( s->scannerTime() ); m_collectionWidgetUi->enableEchonestCatalog->setChecked( s->enableEchonestCatalogs() ); connect( m_collectionWidgetUi->checkBoxWatchForChanges, SIGNAL( clicked( bool ) ), SLOT( updateScanOptionsView() ) ); if ( m_collectionWidgetUi->checkBoxWatchForChanges->isChecked() ) { m_collectionWidgetUi->scanTimeLabel->show(); m_collectionWidgetUi->scannerTimeSpinBox->show(); } else { m_collectionWidgetUi->scanTimeLabel->hide(); m_collectionWidgetUi->scannerTimeSpinBox->hide(); } /* foreach ( const QString& dir, TomahawkSettings::instance()->scannerPaths() ) { m_collectionWidgetUi->dirTree->checkPath( dir, Qt::Checked ); }*/ m_collectionWidgetUi->pathListWidget->addItems( TomahawkSettings::instance()->scannerPaths() ); const int buttonSize = TomahawkUtils::defaultFontHeight() * 2.5; m_collectionWidgetUi->addLibraryPathButton->setFixedSize( buttonSize, buttonSize ); m_collectionWidgetUi->removeLibraryPathButton->setFixedSize( m_collectionWidgetUi->addLibraryPathButton->size() ); connect( m_collectionWidgetUi->addLibraryPathButton, SIGNAL( clicked() ), SLOT( addLibraryPath() ) ); connect( m_collectionWidgetUi->removeLibraryPathButton, SIGNAL( clicked() ), SLOT( removeLibraryPath() ) ); int buttonsWidth = qMax( m_advancedWidgetUi->proxyButton->sizeHint().width(), m_advancedWidgetUi->aclEntryClearButton->sizeHint().width() ); 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() ) ); m_downloadsFormats.insert( "MP3", tr( "MP3" ) ); m_downloadsFormats.insert( "FLAC", tr( "FLAC" ) ); m_downloadsFormats.insert( "M4A", tr( "M4A" ) ); m_downloadsFormats.insert( "MP4", tr( "MP4" ) ); foreach ( const QString& format, m_downloadsFormats.values() ) { m_downloadsWidgetUi->preferredFormatComboBox->addItem( format ); } int i = m_downloadsWidgetUi->preferredFormatComboBox->findText( m_downloadsFormats.value( TomahawkSettings::instance()->downloadsPreferredFormat() ) ); if ( i < 0 ) i = m_downloadsWidgetUi->preferredFormatComboBox->findText( "MP3" ); m_downloadsWidgetUi->preferredFormatComboBox->setCurrentIndex( i ); #ifndef Q_OS_MAC m_advancedWidget->setMinimumSize( m_advancedWidget->sizeHint() ); m_accountsWidget->setMinimumWidth( 500 ); #else m_accountsWidget->setContentsMargins( 6, 6, 6, 6 ); m_accountsWidgetUi->horizontalLayout->setContentsMargins( 0, 0, 0, 0 ); m_accountsWidgetUi->installFromFileBtn->setContentsMargins( 0, 0, 0, 0 ); m_accountsWidget->setMinimumSize( 550, 400 ); m_accountsWidgetUi->accountsView->setAttribute( Qt::WA_MacShowFocusRect, false ); m_collectionWidget->setContentsMargins( 6, 6, 6, 6 ); m_collectionWidget->setMinimumHeight( m_collectionWidgetUi->verticalLayout->sizeHint().height() + 20 ); m_collectionWidgetUi->pathListWidget->setAttribute( Qt::WA_MacShowFocusRect, false ); m_advancedWidget->setContentsMargins( 6, 6, 6, 6 ); m_advancedWidget->setMinimumHeight( m_advancedWidgetUi->verticalLayout->sizeHint().height() ); #endif // NOW PLAYING // #ifdef Q_OS_MAC // ui->checkBoxEnableAdium->setChecked( s->nowPlayingEnabled() ); // #else // ui->checkBoxEnableAdium->hide(); // #endif m_dialog->addTab( m_accountsWidget, TomahawkUtils::defaultPixmap( TomahawkUtils::AccountSettings ), tr( "Plug-Ins" ), tr( "Configure the accounts and services used by Tomahawk " "to search and retrieve music, find your friends and " "update your status." ) ); m_dialog->addTab( m_collectionWidget, TomahawkUtils::defaultPixmap( TomahawkUtils::MusicSettings ), tr( "Collection" ), tr( "Manage how Tomahawk finds music on your computer." ) ); m_dialog->addTab( m_advancedWidget, TomahawkUtils::defaultPixmap( TomahawkUtils::AdvancedSettings ), tr( "Advanced" ), tr( "Configure Tomahawk's advanced settings, including " "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() ) ); connect( m_advancedWidgetUi->proxyButton, SIGNAL( clicked() ), SLOT( showProxySettings() ) ); connect( m_advancedWidgetUi->lanOnlyRadioButton, SIGNAL( toggled( bool ) ), SLOT( requiresRestart() ) ); connect( m_advancedWidgetUi->staticIpRadioButton, SIGNAL( toggled( bool ) ), SLOT( requiresRestart() ) ); connect( m_advancedWidgetUi->upnpRadioButton, SIGNAL( toggled( bool ) ), SLOT( requiresRestart() ) ); connect( m_advancedWidgetUi->lanOnlyRadioButton, 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->enableProxyCheckBox, SIGNAL( toggled( bool ) ), SLOT( toggleProxyEnabled() ) ); connect( m_advancedWidgetUi->enableProxyCheckBox, SIGNAL( toggled( bool ) ), SLOT( requiresRestart() ) ); connect( m_dialog, SIGNAL( accepted() ), SLOT( saveSettings() ) ); connect( m_dialog, SIGNAL( rejected() ), SLOT( onRejected() ) ); }
SettingsDialog::SettingsDialog( QWidget *parent ) : QDialog( parent ) , ui( new Ui_StackedSettingsDialog ) , m_proxySettings( this ) , m_rejected( false ) , m_accountModel( 0 ) , m_sipSpinner( 0 ) { ui->setupUi( this ); TomahawkSettings* s = TomahawkSettings::instance(); TomahawkUtils::unmarginLayout( layout() ); ui->stackedWidget->setContentsMargins( 4, 4, 4, 0 ); ui->checkBoxReporter->setChecked( s->crashReporterEnabled() ); ui->checkBoxHttp->setChecked( s->httpEnabled() ); ui->checkBoxStaticPreferred->setChecked( s->preferStaticHostPort() ); ui->checkBoxUpnp->setChecked( s->externalAddressMode() == TomahawkSettings::Upnp ); ui->checkBoxUpnp->setEnabled( !s->preferStaticHostPort() ); createIcons(); #ifdef Q_WS_X11 ui->listWidget->setFrameShape( QFrame::StyledPanel ); ui->listWidget->setFrameShadow( QFrame::Sunken ); setContentsMargins( 4, 4, 4, 4 ); #else setContentsMargins( 0, 4, 4, 4 ); #endif #ifdef Q_WS_MAC ui->listWidget->setFixedWidth( 83 ); #endif #ifdef Q_WS_MAC // Avoid resize handles on sheets on osx m_proxySettings.setSizeGripEnabled( true ); QSizeGrip* p = m_proxySettings.findChild< QSizeGrip* >(); p->setFixedSize( 0, 0 ); #endif // Accounts AccountDelegate* accountDelegate = new AccountDelegate( this ); ui->accountsView->setItemDelegate( accountDelegate ); ui->accountsView->setContextMenuPolicy( Qt::CustomContextMenu ); ui->accountsView->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); ui->accountsView->setMouseTracking( true ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::Account* ) ), this, SLOT( openAccountConfig( Tomahawk::Accounts::Account* ) ) ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::AccountFactory* ) ), this, SLOT( openAccountFactoryConfig( Tomahawk::Accounts::AccountFactory* ) ) ); connect( accountDelegate, SIGNAL( update( QModelIndex ) ), ui->accountsView, SLOT( update( QModelIndex ) ) ); m_accountModel = new AccountModel( this ); m_accountProxy = new AccountModelFilterProxy( m_accountModel ); m_accountProxy->setSourceModel( m_accountModel ); connect( m_accountProxy, SIGNAL( scrollTo( QModelIndex ) ), this, SLOT( scrollTo( QModelIndex ) ) ); ui->accountsView->setModel( m_accountProxy ); connect( ui->installFromFileBtn, SIGNAL( clicked( bool ) ), this, SLOT( installFromFile() ) ); connect( m_accountModel, SIGNAL( createAccount( Tomahawk::Accounts::AccountFactory* ) ), this, SLOT( createAccountFromFactory( Tomahawk::Accounts::AccountFactory* ) ) ); ui->accountsFilterCombo->addItem( tr( "All" ), Accounts::NoType ); ui->accountsFilterCombo->addItem( accountTypeToString( SipType ), SipType ); ui->accountsFilterCombo->addItem( accountTypeToString( ResolverType ), ResolverType ); ui->accountsFilterCombo->addItem( accountTypeToString( StatusPushType ), StatusPushType ); connect( ui->accountsFilterCombo, SIGNAL( activated( int ) ), this, SLOT( accountsFilterChanged( int ) ) ); if ( !Servent::instance()->isReady() ) { m_sipSpinner = new LoadingSpinner( ui->accountsView ); m_sipSpinner->fadeIn(); connect( Servent::instance(), SIGNAL( ready() ), this, SLOT( serventReady() ) ); } // ADVANCED ui->staticHostName->setText( s->externalHostname() ); ui->staticPort->setValue( s->externalPort() ); ui->proxyButton->setVisible( true ); ui->checkBoxWatchForChanges->setChecked( s->watchForChanges() ); ui->scannerTimeSpinBox->setValue( s->scannerTime() ); ui->enableEchonestCatalog->setChecked( s->enableEchonestCatalogs() ); connect( ui->checkBoxWatchForChanges, SIGNAL( clicked( bool ) ), SLOT( updateScanOptionsView() ) ); if ( ui->checkBoxWatchForChanges->isChecked() ) { ui->scanTimeLabel->show(); ui->scannerTimeSpinBox->show(); } else { ui->scanTimeLabel->hide(); ui->scannerTimeSpinBox->hide(); } foreach ( const QString& dir, TomahawkSettings::instance()->scannerPaths() ) { ui->dirTree->checkPath( dir, Qt::Checked ); }
SettingsDialog::SettingsDialog(QObject *parent ) : QObject( parent ) , m_accountsWidgetUi( new Ui_Settings_Accounts ) , m_accountsWidget( new QWidget ) , m_collectionWidgetUi( new Ui_Settings_Collection ) , m_collectionWidget( new QWidget ) , m_advancedWidgetUi( new Ui_Settings_Advanced ) , m_advancedWidget( new QWidget ) , m_proxySettings( 0 ) , m_rejected( false ) , m_restartRequired( false ) , m_accountModel( 0 ) , m_sipSpinner( 0 ) { m_accountsWidgetUi->setupUi( m_accountsWidget ); m_collectionWidgetUi->setupUi( m_collectionWidget ); m_advancedWidgetUi->setupUi( m_advancedWidget ); m_accountsWidgetUi->accountsFilterCombo->setFocusPolicy( Qt::NoFocus ); m_dialog = new QToolbarTabDialog; TomahawkSettings* s = TomahawkSettings::instance(); m_advancedWidgetUi->checkBoxReporter->setChecked( s->crashReporterEnabled() ); m_advancedWidgetUi->checkBoxHttp->setChecked( s->httpEnabled() ); m_advancedWidgetUi->checkBoxSongChangeNotifications->setChecked( s->songChangeNotificationEnabled() ); #ifndef Q_OS_LINUX // no backends on OSX or Win so far m_advancedWidgetUi->checkBoxSongChangeNotifications->setVisible( false ); #endif //Network settings TomahawkSettings::ExternalAddressMode mode = TomahawkSettings::instance()->externalAddressMode(); if ( mode == TomahawkSettings::Lan ) m_advancedWidgetUi->lanOnlyRadioButton->setChecked( true ); else if ( mode == TomahawkSettings::Static ) m_advancedWidgetUi->staticIpRadioButton->setChecked( true ); else m_advancedWidgetUi->upnpRadioButton->setChecked( true ); m_advancedWidgetUi->staticHostNamePortLabel->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); m_advancedWidgetUi->staticHostName->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); m_advancedWidgetUi->staticPort->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); m_advancedWidgetUi->staticHostNameLabel->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); m_advancedWidgetUi->staticPortLabel->setEnabled( m_advancedWidgetUi->staticIpRadioButton->isChecked() ); bool useProxy = TomahawkSettings::instance()->proxyType() == QNetworkProxy::Socks5Proxy; m_advancedWidgetUi->enableProxyCheckBox->setChecked( useProxy ); m_advancedWidgetUi->proxyButton->setEnabled( useProxy ); m_advancedWidgetUi->aclEntryClearButton->setEnabled( TomahawkSettings::instance()->aclEntries().size() > 0 ); connect( m_advancedWidgetUi->aclEntryClearButton, SIGNAL( clicked( bool ) ), this, SLOT( aclEntryClearButtonClicked() ) ); #ifdef Q_WS_MAC // Avoid resize handles on sheets on osx m_proxySettings.setSizeGripEnabled( true ); QSizeGrip* p = m_proxySettings.findChild< QSizeGrip* >(); p->setFixedSize( 0, 0 ); #endif m_accountsWidgetUi->installFromFileBtn->setText( tr( "Install from file" ) ); // Accounts AccountDelegate* accountDelegate = new AccountDelegate( this ); m_accountsWidgetUi->accountsView->setItemDelegate( accountDelegate ); m_accountsWidgetUi->accountsView->setContextMenuPolicy( Qt::CustomContextMenu ); m_accountsWidgetUi->accountsView->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); m_accountsWidgetUi->accountsView->setMouseTracking( true ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::Account* ) ), this, SLOT( openAccountConfig( Tomahawk::Accounts::Account* ) ) ); connect( accountDelegate, SIGNAL( openConfig( Tomahawk::Accounts::AccountFactory* ) ), this, SLOT( openAccountFactoryConfig( Tomahawk::Accounts::AccountFactory* ) ) ); connect( accountDelegate, SIGNAL( update( QModelIndex ) ), m_accountsWidgetUi->accountsView, SLOT( update( QModelIndex ) ) ); m_accountModel = new AccountModel( this ); m_accountProxy = new AccountModelFilterProxy( m_accountModel ); m_accountProxy->setSourceModel( m_accountModel ); connect( m_accountProxy, SIGNAL( startInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( startInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( doneInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( doneInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( errorInstalling( QPersistentModelIndex ) ), accountDelegate, SLOT( errorInstalling(QPersistentModelIndex) ) ); connect( m_accountProxy, SIGNAL( scrollTo( QModelIndex ) ), this, SLOT( scrollTo( QModelIndex ) ) ); m_accountsWidgetUi->accountsView->setModel( m_accountProxy ); connect( m_accountsWidgetUi->installFromFileBtn, SIGNAL( clicked( bool ) ), this, SLOT( installFromFile() ) ); connect( m_accountModel, SIGNAL( createAccount( Tomahawk::Accounts::AccountFactory* ) ), this, SLOT( createAccountFromFactory( Tomahawk::Accounts::AccountFactory* ) ) ); m_accountsWidgetUi->accountsFilterCombo->addItem( tr( "All" ), Accounts::NoType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( SipType ), SipType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( ResolverType ), ResolverType ); m_accountsWidgetUi->accountsFilterCombo->addItem( accountTypeToString( StatusPushType ), StatusPushType ); connect( m_accountsWidgetUi->accountsFilterCombo, SIGNAL( activated( int ) ), this, SLOT( accountsFilterChanged( int ) ) ); if ( !Servent::instance()->isReady() ) { m_sipSpinner = new AnimatedSpinner( m_accountsWidgetUi->accountsView ); m_sipSpinner->fadeIn(); connect( Servent::instance(), SIGNAL( ready() ), this, SLOT( serventReady() ) ); } // ADVANCED m_advancedWidgetUi->staticHostName->setText( s->externalHostname() ); m_advancedWidgetUi->staticPort->setValue( s->externalPort() ); m_advancedWidgetUi->proxyButton->setVisible( true ); m_collectionWidgetUi->checkBoxWatchForChanges->setChecked( s->watchForChanges() ); m_collectionWidgetUi->scannerTimeSpinBox->setValue( s->scannerTime() ); m_collectionWidgetUi->enableEchonestCatalog->setChecked( s->enableEchonestCatalogs() ); connect( m_collectionWidgetUi->checkBoxWatchForChanges, SIGNAL( clicked( bool ) ), SLOT( updateScanOptionsView() ) ); if ( m_collectionWidgetUi->checkBoxWatchForChanges->isChecked() ) { m_collectionWidgetUi->scanTimeLabel->show(); m_collectionWidgetUi->scannerTimeSpinBox->show(); } else { m_collectionWidgetUi->scanTimeLabel->hide(); m_collectionWidgetUi->scannerTimeSpinBox->hide(); } foreach ( const QString& dir, TomahawkSettings::instance()->scannerPaths() ) { m_collectionWidgetUi->dirTree->checkPath( dir, Qt::Checked ); }
SettingsDialog::SettingsDialog( QWidget *parent ) : QDialog( parent ) , ui( new Ui_StackedSettingsDialog ) , m_proxySettings( this ) , m_rejected( false ) , m_sipModel( 0 ) , m_resolversModel( 0 ) { ui->setupUi( this ); TomahawkSettings* s = TomahawkSettings::instance(); ui->checkBoxHttp->setChecked( s->httpEnabled() ); ui->checkBoxStaticPreferred->setChecked( s->preferStaticHostPort() ); ui->checkBoxUpnp->setChecked( s->externalAddressMode() == TomahawkSettings::Upnp ); ui->checkBoxUpnp->setEnabled( !s->preferStaticHostPort() ); createIcons(); #ifdef Q_WS_X11 ui->listWidget->setFrameShape( QFrame::StyledPanel ); ui->listWidget->setFrameShadow( QFrame::Sunken ); setContentsMargins( 4, 4, 4, 4 ); #else ui->verticalLayout->removeItem( ui->verticalSpacer_3 ); #endif #ifdef Q_WS_MAC // Avoid resize handles on sheets on osx m_proxySettings.setSizeGripEnabled( true ); QSizeGrip* p = m_proxySettings.findChild< QSizeGrip* >(); p->setFixedSize( 0, 0 ); #endif // SIP PLUGINS SipConfigDelegate* sipdel = new SipConfigDelegate( this ); ui->accountsView->setItemDelegate( sipdel ); ui->accountsView->setContextMenuPolicy( Qt::CustomContextMenu ); connect( ui->accountsView, SIGNAL( clicked( QModelIndex ) ), this, SLOT( sipItemClicked( QModelIndex ) ) ); connect( sipdel, SIGNAL( openConfig( SipPlugin* ) ), this, SLOT( openSipConfig( SipPlugin* ) ) ); connect( ui->accountsView, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( sipContextMenuRequest( QPoint ) ) ); m_sipModel = new SipModel( this ); ui->accountsView->setModel( m_sipModel ); setupSipButtons(); ui->staticHostName->setText( s->externalHostname() ); ui->staticPort->setValue( s->externalPort() ); ui->proxyButton->setVisible( true ); // MUSIC SCANNER //FIXME: MULTIPLECOLLECTIONDIRS if ( s->scannerPaths().count() ) ui->lineEditMusicPath_2->setText( s->scannerPaths().first() ); else { ui->lineEditMusicPath_2->setText( QDesktopServices::storageLocation( QDesktopServices::MusicLocation ) ); } // WATCH CHANGES // FIXME: QFileSystemWatcher is broken (as we know) and deprecated. Find another way. ui->checkBoxWatchForChanges->setChecked( s->watchForChanges() ); ui->checkBoxWatchForChanges->setVisible( false ); // LAST FM ui->checkBoxEnableLastfm->setChecked( s->scrobblingEnabled() ); ui->lineEditLastfmUsername->setText( s->lastFmUsername() ); ui->lineEditLastfmPassword->setText(s->lastFmPassword() ); connect( ui->pushButtonTestLastfmLogin, SIGNAL( clicked( bool) ), this, SLOT( testLastFmLogin() ) ); // SCRIPT RESOLVER ui->removeScript->setEnabled( false ); ResolverConfigDelegate* del = new ResolverConfigDelegate( this ); connect( del, SIGNAL( openConfig( QString ) ), this, SLOT( openResolverConfig( QString ) ) ); ui->scriptList->setItemDelegate( del ); m_resolversModel = new ResolversModel( s->allScriptResolvers(), s->enabledScriptResolvers(), this ); ui->scriptList->setModel( m_resolversModel ); connect( ui->scriptList->selectionModel(), SIGNAL( selectionChanged( QItemSelection,QItemSelection ) ), this, SLOT( scriptSelectionChanged() ) ); connect( ui->addScript, SIGNAL( clicked( bool ) ), this, SLOT( addScriptResolver() ) ); connect( ui->removeScript, SIGNAL( clicked( bool ) ), this, SLOT( removeScriptResolver() ) ); connect( ui->buttonBrowse_2, SIGNAL( clicked() ), SLOT( showPathSelector() ) ); connect( ui->proxyButton, SIGNAL( clicked() ), SLOT( showProxySettings() ) ); connect( ui->checkBoxStaticPreferred, SIGNAL( toggled(bool) ), SLOT( toggleUpnp(bool) ) ); connect( this, SIGNAL( rejected() ), SLOT( onRejected() ) ); ui->listWidget->setCurrentRow( 0 ); }