diff --git a/data/images/account-settings.png b/data/images/account-settings.png index 19fddebe8..32a451b9c 100644 Binary files a/data/images/account-settings.png and b/data/images/account-settings.png differ diff --git a/data/images/advanced-settings.png b/data/images/advanced-settings.png index 9d3ebb405..4ee30db8d 100644 Binary files a/data/images/advanced-settings.png and b/data/images/advanced-settings.png differ diff --git a/data/images/music-settings.png b/data/images/music-settings.png index 3dd854027..c5b808876 100644 Binary files a/data/images/music-settings.png and b/data/images/music-settings.png differ diff --git a/data/images/sipplugin-add.png b/data/images/sipplugin-add.png new file mode 100644 index 000000000..306278fa6 Binary files /dev/null and b/data/images/sipplugin-add.png differ diff --git a/data/images/sipplugin-offline.png b/data/images/sipplugin-offline.png index fd50901be..129e1a4a0 100644 Binary files a/data/images/sipplugin-offline.png and b/data/images/sipplugin-offline.png differ diff --git a/data/images/sipplugin-online.png b/data/images/sipplugin-online.png index 1221e1310..4de1519f3 100644 Binary files a/data/images/sipplugin-online.png and b/data/images/sipplugin-online.png differ diff --git a/data/images/sipplugin-remove.png b/data/images/sipplugin-remove.png new file mode 100644 index 000000000..e6d7af00c Binary files /dev/null and b/data/images/sipplugin-remove.png differ diff --git a/resources.qrc b/resources.qrc index 6d0f9b26f..6e7b7580d 100644 --- a/resources.qrc +++ b/resources.qrc @@ -1,104 +1,108 @@ - - -./data/images/add-friend-button-pressed.png -./data/images/add-friend-button-rest.png -./data/images/avatar-dude-plus.png -./data/images/avatar-dude.png -./data/images/back-pressed.png -./data/images/back-rest.png -./data/images/cover-shadow.png -./data/images/magnifying-glass.png -./data/images/no-album-art-placeholder.png -./data/images/now-playing-panel.png -./data/images/now-playing-speaker.png -./data/images/pause-pressed.png -./data/images/pause-rest.png -./data/images/play-pressed.png -./data/images/play-rest.png -./data/images/playlist-icon.png -./data/images/repeat-1-on-pressed.png -./data/images/repeat-1-on-rest.png -./data/images/repeat-all-on-pressed.png -./data/images/repeat-all-on-rest.png -./data/images/repeat-off-pressed.png -./data/images/repeat-off-rest.png -./data/images/search-box-dismiss-x.png -./data/images/search-box.png -./data/images/seek-and-volume-knob-pressed.png -./data/images/seek-and-volume-knob-rest.png -./data/images/seek-slider-bkg.png -./data/images/seek-slider-level.png -./data/images/shuffle-off-pressed.png -./data/images/shuffle-off-rest.png -./data/images/shuffle-on-pressed.png -./data/images/shuffle-on-rest.png -./data/images/skip-pressed.png -./data/images/skip-rest.png -./data/images/source-info.png -./data/images/source-off-pressed.png -./data/images/source-off-rest.png -./data/images/source-on-pressed.png -./data/images/source-on-rest.png -./data/images/status-alert-icon.png -./data/images/status-bar-bkg.png -./data/images/status-dismiss-x.png -./data/images/user-avatar.png -./data/images/view-toggle-active-centre.png -./data/images/view-toggle-active-left.png -./data/images/view-toggle-active-right.png -./data/images/view-toggle-icon-artist-active.png -./data/images/view-toggle-icon-artist-inactive.png -./data/images/view-toggle-icon-cloud-active.png -./data/images/view-toggle-icon-cloud-inactive.png -./data/images/view-toggle-icon-list-active.png -./data/images/view-toggle-icon-list-inactive.png -./data/images/view-toggle-inactive-centre.png -./data/images/view-toggle-inactive-left.png -./data/images/view-toggle-inactive-right.png -./data/images/view-toggle-pressed-centre.png -./data/images/view-toggle-pressed-left.png -./data/images/view-toggle-pressed-right.png -./data/images/list-add.png -./data/images/list-remove.png -./data/images/arrow-up-double.png -./data/images/arrow-down-double.png -./data/images/volume-icon-full.png -./data/images/arrow-right-double.png -./data/images/view-refresh.png -./data/images/volume-icon-muted.png -./data/images/volume-slider-bkg.png -./data/images/volume-slider-level.png -./data/images/echonest_logo.png -./data/images/loading-animation.gif -./data/images/home.png -./data/images/back.png -./data/images/forward.png -./data/images/music-icon.png -./data/images/configure.png -./data/images/create-playlist.png -./data/images/add.png -./data/images/recently-played.png -./data/images/supercollection.png -./data/images/sipplugin-online.png -./data/images/sipplugin-offline.png -./data/images/advanced-settings.png -./data/images/account-settings.png -./data/images/music-settings.png -./data/images/resolvers-settings.png -./data/images/lastfm-settings.png -./data/topbar-radiobuttons.css -./data/icons/tomahawk-icon-16x16.png -./data/icons/tomahawk-icon-32x32.png -./data/icons/tomahawk-icon-64x64.png -./data/icons/tomahawk-icon-128x128.png -./data/icons/tomahawk-icon-256x256.png -./data/icons/tomahawk-icon-512x512.png -./data/icons/audio-x-generic-22x22.png -./data/icons/audio-x-generic-32x32.png -./data/icons/audio-x-generic-16x16.png -./data/www/auth.html -./data/www/auth.na.html -./data/www/tomahawk_banner_small.png -./data/sql/dbmigrate-22_to_23.sql - + + + ./data/images/add-friend-button-pressed.png + ./data/images/add-friend-button-rest.png + ./data/images/avatar-dude-plus.png + ./data/images/avatar-dude.png + ./data/images/back-pressed.png + ./data/images/back-rest.png + ./data/images/cover-shadow.png + ./data/images/magnifying-glass.png + ./data/images/no-album-art-placeholder.png + ./data/images/now-playing-panel.png + ./data/images/now-playing-speaker.png + ./data/images/pause-pressed.png + ./data/images/pause-rest.png + ./data/images/play-pressed.png + ./data/images/play-rest.png + data/images/sipplugin-add.png + data/images/seek-slider-level.png + data/images/shuffle-off-rest.png + data/images/sipplugin-remove.png + ./data/images/playlist-icon.png + ./data/images/repeat-1-on-pressed.png + ./data/images/repeat-1-on-rest.png + ./data/images/repeat-all-on-pressed.png + ./data/images/repeat-all-on-rest.png + ./data/images/repeat-off-pressed.png + ./data/images/repeat-off-rest.png + ./data/images/search-box-dismiss-x.png + ./data/images/search-box.png + ./data/images/seek-and-volume-knob-pressed.png + ./data/images/seek-and-volume-knob-rest.png + ./data/images/seek-slider-bkg.png + ./data/images/seek-slider-level.png + ./data/images/shuffle-off-pressed.png + ./data/images/shuffle-off-rest.png + ./data/images/shuffle-on-pressed.png + ./data/images/shuffle-on-rest.png + ./data/images/skip-pressed.png + ./data/images/skip-rest.png + ./data/images/source-info.png + ./data/images/source-off-pressed.png + ./data/images/source-off-rest.png + ./data/images/source-on-pressed.png + ./data/images/source-on-rest.png + ./data/images/status-alert-icon.png + ./data/images/status-bar-bkg.png + ./data/images/status-dismiss-x.png + ./data/images/user-avatar.png + ./data/images/view-toggle-active-centre.png + ./data/images/view-toggle-active-left.png + ./data/images/view-toggle-active-right.png + ./data/images/view-toggle-icon-artist-active.png + ./data/images/view-toggle-icon-artist-inactive.png + ./data/images/view-toggle-icon-cloud-active.png + ./data/images/view-toggle-icon-cloud-inactive.png + ./data/images/view-toggle-icon-list-active.png + ./data/images/view-toggle-icon-list-inactive.png + ./data/images/view-toggle-inactive-centre.png + ./data/images/view-toggle-inactive-left.png + ./data/images/view-toggle-inactive-right.png + ./data/images/view-toggle-pressed-centre.png + ./data/images/view-toggle-pressed-left.png + ./data/images/view-toggle-pressed-right.png + ./data/images/list-add.png + ./data/images/list-remove.png + ./data/images/arrow-up-double.png + ./data/images/arrow-down-double.png + ./data/images/volume-icon-full.png + ./data/images/arrow-right-double.png + ./data/images/view-refresh.png + ./data/images/volume-icon-muted.png + ./data/images/volume-slider-bkg.png + ./data/images/volume-slider-level.png + ./data/images/echonest_logo.png + ./data/images/loading-animation.gif + ./data/images/home.png + ./data/images/back.png + ./data/images/forward.png + ./data/images/music-icon.png + ./data/images/configure.png + ./data/images/create-playlist.png + ./data/images/add.png + ./data/images/recently-played.png + ./data/images/supercollection.png + ./data/images/sipplugin-online.png + ./data/images/sipplugin-offline.png + ./data/images/advanced-settings.png + ./data/images/account-settings.png + ./data/images/music-settings.png + ./data/images/resolvers-settings.png + ./data/images/lastfm-settings.png + ./data/topbar-radiobuttons.css + ./data/icons/tomahawk-icon-16x16.png + ./data/icons/tomahawk-icon-32x32.png + ./data/icons/tomahawk-icon-64x64.png + ./data/icons/tomahawk-icon-128x128.png + ./data/icons/tomahawk-icon-256x256.png + ./data/icons/tomahawk-icon-512x512.png + ./data/icons/audio-x-generic-22x22.png + ./data/icons/audio-x-generic-32x32.png + ./data/icons/audio-x-generic-16x16.png + ./data/www/auth.html + ./data/www/auth.na.html + ./data/www/tomahawk_banner_small.png + ./data/sql/dbmigrate-22_to_23.sql + diff --git a/src/sip/jreen/jabber-icon.png b/src/sip/jreen/jabber-icon.png index 1b5f78b2f..d7425523d 100644 Binary files a/src/sip/jreen/jabber-icon.png and b/src/sip/jreen/jabber-icon.png differ diff --git a/src/sip/twitter/twitterconfigwidget.cpp b/src/sip/twitter/twitterconfigwidget.cpp index 2e6775aa6..4caa6fad3 100644 --- a/src/sip/twitter/twitterconfigwidget.cpp +++ b/src/sip/twitter/twitterconfigwidget.cpp @@ -51,6 +51,7 @@ TwitterConfigWidget::TwitterConfigWidget( TwitterPlugin* plugin, QWidget *parent ui->twitterTweetComboBox->setCurrentIndex( 0 ); ui->twitterUserTweetLineEdit->setReadOnly( true ); ui->twitterUserTweetLineEdit->setEnabled( false ); + ui->autoConnectCheckbox->setChecked( m_plugin->twitterAutoConnect() ); if ( m_plugin->twitterOAuthToken().isEmpty() || m_plugin->twitterOAuthTokenSecret().isEmpty() || m_plugin->twitterScreenName().isEmpty() ) { diff --git a/src/sip/twitter/twitterconfigwidget.ui b/src/sip/twitter/twitterconfigwidget.ui index d9662243a..f707e9189 100644 --- a/src/sip/twitter/twitterconfigwidget.ui +++ b/src/sip/twitter/twitterconfigwidget.ui @@ -7,7 +7,7 @@ 0 0 515 - 323 + 385 diff --git a/src/sip/zeroconf/CMakeLists.txt b/src/sip/zeroconf/CMakeLists.txt index 730678e3c..fe23431a3 100644 --- a/src/sip/zeroconf/CMakeLists.txt +++ b/src/sip/zeroconf/CMakeLists.txt @@ -19,9 +19,10 @@ include_directories( . ${CMAKE_CURRENT_BINARY_DIR} .. ${QT_INCLUDE_DIR} ) +qt4_wrap_ui( UI_SRCS configwidget.ui ) qt4_add_resources( RC_SRCS "resources.qrc" ) qt4_wrap_cpp( zeroconfMoc ${zeroconfHeaders} ) -add_library( tomahawk_sipzeroconf SHARED ${zeroconfSources} ${zeroconfMoc} ${RC_SRCS} ) +add_library( tomahawk_sipzeroconf SHARED ${zeroconfSources} ${zeroconfMoc} ${RC_SRCS} ${UI_SRCS} ) IF( WIN32 ) SET( OS_SPECIFIC_LINK_LIBRARIES diff --git a/src/sip/zeroconf/zeroconf-icon.png b/src/sip/zeroconf/zeroconf-icon.png index 7371f8eae..9364bf24f 100644 Binary files a/src/sip/zeroconf/zeroconf-icon.png and b/src/sip/zeroconf/zeroconf-icon.png differ diff --git a/src/sip/zeroconf/zeroconf.cpp b/src/sip/zeroconf/zeroconf.cpp index d169ba41f..35818beb6 100644 --- a/src/sip/zeroconf/zeroconf.cpp +++ b/src/sip/zeroconf/zeroconf.cpp @@ -18,6 +18,9 @@ #include "zeroconf.h" +#include "tomahawksettings.h" +#include "ui_configwidget.h" + #include SipPlugin* @@ -26,6 +29,21 @@ ZeroconfFactory::createPlugin( const QString& pluginId ) return new ZeroconfPlugin( pluginId.isEmpty() ? generateId() : pluginId ); } +ZeroconfPlugin::ZeroconfPlugin ( const QString& pluginId ) + : SipPlugin( pluginId ) + , m_zeroconf( 0 ) + , m_state( Disconnected ) + , m_cachedNodes() +{ + qDebug() << Q_FUNC_INFO; + + m_configWidget = QWeakPointer< QWidget >( new QWidget ); + m_ui = new Ui_ZeroconfConfig; + m_ui->setupUi( m_configWidget.data() ); + m_ui->autoConnectCheckbox->setChecked( autoConnect() ); + m_configWidget.data()->setVisible( false ); +} + const QString ZeroconfPlugin::name() const { @@ -58,8 +76,11 @@ ZeroconfFactory::icon() const bool -ZeroconfPlugin::connectPlugin( bool /*startup*/ ) +ZeroconfPlugin::connectPlugin( bool startup ) { + if( startup && !autoConnect() ) + return false; + delete m_zeroconf; m_zeroconf = new TomahawkZeroconf( Servent::instance()->port(), this ); QObject::connect( m_zeroconf, SIGNAL( tomahawkHostFound( QString, int, QString, QString ) ), @@ -116,4 +137,17 @@ ZeroconfPlugin::lanHostFound( const QString& host, int port, const QString& name qDebug() << "Already connected to" << host; } +void +ZeroconfPlugin::saveConfig() +{ + TomahawkSettings::instance()->setValue( pluginId() + "/autoconnect", m_ui->autoConnectCheckbox->isChecked() ); +} + +bool +ZeroconfPlugin::autoConnect() const +{ + return TomahawkSettings::instance()->value( pluginId() + "/autoconnect", true ).toBool(); +} + + Q_EXPORT_PLUGIN2( sipfactory, ZeroconfFactory ) diff --git a/src/sip/zeroconf/zeroconf.h b/src/sip/zeroconf/zeroconf.h index 6457e319e..9e6edca97 100644 --- a/src/sip/zeroconf/zeroconf.h +++ b/src/sip/zeroconf/zeroconf.h @@ -26,6 +26,8 @@ #define MYNAME "Local Network" +class Ui_ZeroconfConfig; + class SIPDLLEXPORT ZeroconfFactory : public SipPluginFactory { Q_OBJECT @@ -39,6 +41,7 @@ public: virtual bool isUnique() const { return true; } virtual QIcon icon() const; + virtual SipPlugin* createPlugin ( const QString& pluginId = QString() ); }; @@ -47,14 +50,7 @@ class SIPDLLEXPORT ZeroconfPlugin : public SipPlugin Q_OBJECT public: - ZeroconfPlugin( const QString& pluginId ) - : SipPlugin( pluginId ) - , m_zeroconf( 0 ) - , m_state( Disconnected ) - , m_cachedNodes() - { - qDebug() << Q_FUNC_INFO; - } + ZeroconfPlugin( const QString& pluginId ); virtual ~ZeroconfPlugin() { @@ -67,6 +63,8 @@ public: virtual ConnectionState connectionState() const; virtual bool isValid() const { return true; }; virtual QIcon icon() const; + virtual QWidget* configWidget() { return m_configWidget.data(); } + virtual void saveConfig(); public slots: virtual bool connectPlugin( bool startup ); @@ -94,9 +92,14 @@ private slots: void lanHostFound( const QString& host, int port, const QString& name, const QString& nodeid ); private: + bool autoConnect() const; + TomahawkZeroconf* m_zeroconf; ConnectionState m_state; QVector m_cachedNodes; + + Ui_ZeroconfConfig* m_ui; // so the google wrapper can change the config dialog a bit + QWeakPointer< QWidget > m_configWidget; }; #endif diff --git a/src/sipconfigdelegate.cpp b/src/sipconfigdelegate.cpp index 4223f3a59..9cc8fdc31 100644 --- a/src/sipconfigdelegate.cpp +++ b/src/sipconfigdelegate.cpp @@ -164,7 +164,7 @@ SipConfigDelegate::paint ( QPainter* painter, const QStyleOptionViewItem& option } // draw the online/offline status - int statusIconSize = 10; + int statusIconSize = 18; int statusX = confRect.left() - 2*PADDING - statusIconSize; QFont statusF = opt.font; statusF.setPointSize( statusF.pointSize() - 2 ); @@ -198,7 +198,7 @@ SipConfigDelegate::paint ( QPainter* painter, const QStyleOptionViewItem& option width = itemRect.width() - textLeftEdge; if( !index.data( SipModel::ErrorString ).toString().isEmpty() ) { // error, show that too - QRect errorRect( textLeftEdge, mid + top, width, mid - PADDING ); + QRect errorRect( textLeftEdge, mid + top, width, mid - PADDING + 1 ); QFontMetrics errorFm( error ); QString str = errorFm.elidedText( index.data( SipModel::ErrorString ).toString(), Qt::ElideRight, errorRect.width() ); @@ -209,7 +209,7 @@ SipConfigDelegate::paint ( QPainter* painter, const QStyleOptionViewItem& option } QString nameStr = namefm.elidedText( index.data( Qt::DisplayRole ).toString(), Qt::ElideRight, width ); painter->setFont( name ); - painter->drawText( QRect( textLeftEdge, pos + top, width, nameHeight ), nameStr ); + painter->drawText( QRect( textLeftEdge, pos + top, width, nameHeight + 1 ), nameStr ); painter->restore(); } } diff --git a/src/stackedsettingsdialog.ui b/src/stackedsettingsdialog.ui index 015d2859a..91abc1c48 100644 --- a/src/stackedsettingsdialog.ui +++ b/src/stackedsettingsdialog.ui @@ -100,7 +100,7 @@ - 3 + 0 @@ -153,7 +153,7 @@ - :/data/images/list-add.png:/data/images/list-add.png + :/data/images/sipplugin-add.png:/data/images/sipplugin-add.png QToolButton::InstantPopup @@ -167,7 +167,7 @@ - :/data/images/list-remove.png:/data/images/list-remove.png + :/data/images/sipplugin-remove.png:/data/images/sipplugin-remove.png QToolButton::DelayedPopup