diff --git a/3rdparty/qocoa/qsearchfield_nonmac.cpp b/3rdparty/qocoa/qsearchfield_nonmac.cpp
index f5d16157c..cf9dc4ee2 100644
--- a/3rdparty/qocoa/qsearchfield_nonmac.cpp
+++ b/3rdparty/qocoa/qsearchfield_nonmac.cpp
@@ -63,7 +63,7 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent)
connect(lineEdit, SIGNAL(textChanged(QString)),
this, SLOT(setText(QString)));
- QIcon clearIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
+ QIcon clearIcon(IconLoader::Load("edit-clear-locationbar-ltr", IconLoader::Base));
QToolButton *clearButton = new QToolButton(this);
clearButton->setIcon(clearIcon);
diff --git a/data/data.qrc b/data/data.qrc
index d2907b238..85a094fc2 100644
--- a/data/data.qrc
+++ b/data/data.qrc
@@ -47,12 +47,14 @@
icons/22x22/go-next.png
icons/22x22/go-previous.png
icons/22x22/go-up.png
+ icons/22x22/group.png
icons/22x22/help-about.png
icons/22x22/help-hint.png
icons/22x22/hypnotoad.png
icons/22x22/input-keyboard.png
icons/22x22/ipodtouchicon.png
icons/22x22/kittens.png
+ icons/22x22/link.png
icons/22x22/list-add.png
icons/22x22/list-remove.png
icons/22x22/mail-message.png
@@ -83,7 +85,7 @@
icons/22x22/phone-nokia-n900.png
icons/22x22/phone-palm-pre.png
icons/22x22/phone.png
- icons/22x22/spotify.png
+ icons/22x22/qtlogo.png
icons/22x22/user-away.png
icons/22x22/view-choose.png
icons/22x22/view-fullscreen.png
@@ -126,12 +128,15 @@
icons/32x32/go-next.png
icons/32x32/go-previous.png
icons/32x32/go-up.png
+ icons/32x32/group.png
icons/32x32/help-about.png
icons/32x32/help-hint.png
icons/32x32/hypnotoad.png
icons/32x32/input-keyboard.png
+ icons/32x32/internet-services.png
icons/32x32/ipodtouchicon.png
icons/32x32/kittens.png
+ icons/32x32/link.png
icons/32x32/list-add.png
icons/32x32/list-remove.png
icons/32x32/mail-message.png
@@ -162,8 +167,8 @@
icons/32x32/phone-nokia-n900.png
icons/32x32/phone-palm-pre.png
icons/32x32/phone.png
+ icons/32x32/qtlogo.png
icons/32x32/search.png
- icons/32x32/spotify.png
icons/32x32/tools-wizard.png
icons/32x32/view-choose.png
icons/32x32/view-fullscreen.png
@@ -205,12 +210,14 @@
icons/48x48/go-next.png
icons/48x48/go-previous.png
icons/48x48/go-up.png
+ icons/48x48/group.png
icons/48x48/help-about.png
icons/48x48/help-hint.png
icons/48x48/hypnotoad.png
icons/48x48/input-keyboard.png
icons/48x48/ipodtouchicon.png
icons/48x48/kittens.png
+ icons/48x48/link.png
icons/48x48/list-add.png
icons/48x48/list-remove.png
icons/48x48/mail-message.png
@@ -242,7 +249,7 @@
icons/48x48/phone-nokia-n900.png
icons/48x48/phone-palm-pre.png
icons/48x48/phone.png
- icons/48x48/spotify.png
+ icons/48x48/qtlogo.png
icons/48x48/view-choose.png
icons/48x48/view-fullscreen.png
icons/48x48/view-media-equalizer.png
@@ -309,36 +316,102 @@
playstore/tr_generic_rgb_wo_45.png
playstore/uk_generic_rgb_wo_45.png
playstore/vi_generic_rgb_wo_45.png
- providers/amazon.png
- providers/amazonclouddrive.png
- providers/aol.png
- providers/bbc.png
- providers/box.png
- providers/cdbaby.png
- providers/digitallyimported-32.png
- providers/digitallyimported.png
- providers/dropbox.png
- providers/echonest.png
- providers/googledrive.png
- providers/itunes.png
- providers/jamendo.png
- providers/jazzradio.png
- providers/magnatune.png
- providers/mog.png
- providers/mtvmusic.png
- providers/musicbrainz.png
- providers/mygpo32.png
- providers/myspace.png
- providers/podcast16.png
- providers/podcast32.png
- providers/rockradio.png
- providers/skydrive.png
- providers/somafm.png
- providers/songkick.png
- providers/soundcloud.png
- providers/subsonic-32.png
- providers/subsonic.png
- providers/wikipedia.png
+ providers/22x22/amazon.png
+ providers/22x22/amazonclouddrive.png
+ providers/22x22/aol.png
+ providers/22x22/bbc.png
+ providers/22x22/box.png
+ providers/22x22/cdbaby.png
+ providers/22x22/digitallyimported.png
+ providers/22x22/dropbox.png
+ providers/22x22/echonest.png
+ providers/22x22/googledrive.png
+ providers/22x22/itunes.png
+ providers/22x22/jamendo.png
+ providers/22x22/jazzradio.png
+ providers/22x22/lastfm.png
+ providers/22x22/magnatune.png
+ providers/22x22/mog.png
+ providers/22x22/mtvmusic.png
+ providers/22x22/musicbrainz.png
+ providers/22x22/mygpo.png
+ providers/22x22/myspace.png
+ providers/22x22/podcast.png
+ providers/22x22/radiotunes.png
+ providers/22x22/rockradio.png
+ providers/22x22/seafile.png
+ providers/22x22/skydrive.png
+ providers/22x22/somafm.png
+ providers/22x22/songkick.png
+ providers/22x22/soundcloud.png
+ providers/22x22/spotify.png
+ providers/22x22/subsonic.png
+ providers/22x22/vk.png
+ providers/22x22/wikipedia.png
+ providers/32x32/amazon.png
+ providers/32x32/amazonclouddrive.png
+ providers/32x32/aol.png
+ providers/32x32/bbc.png
+ providers/32x32/box.png
+ providers/32x32/cdbaby.png
+ providers/32x32/digitallyimported.png
+ providers/32x32/dropbox.png
+ providers/32x32/echonest.png
+ providers/32x32/googledrive.png
+ providers/32x32/itunes.png
+ providers/32x32/jamendo.png
+ providers/32x32/jazzradio.png
+ providers/32x32/lastfm.png
+ providers/32x32/magnatune.png
+ providers/32x32/mog.png
+ providers/32x32/mtvmusic.png
+ providers/32x32/musicbrainz.png
+ providers/32x32/mygpo.png
+ providers/32x32/myspace.png
+ providers/32x32/podcast.png
+ providers/32x32/radiotunes.png
+ providers/32x32/rockradio.png
+ providers/32x32/seafile.png
+ providers/32x32/skydrive.png
+ providers/32x32/somafm.png
+ providers/32x32/songkick.png
+ providers/32x32/soundcloud.png
+ providers/32x32/spotify.png
+ providers/32x32/subsonic.png
+ providers/32x32/vk.png
+ providers/32x32/wikipedia.png
+ providers/48x48/amazon.png
+ providers/48x48/amazonclouddrive.png
+ providers/48x48/aol.png
+ providers/48x48/bbc.png
+ providers/48x48/box.png
+ providers/48x48/cdbaby.png
+ providers/48x48/digitallyimported.png
+ providers/48x48/dropbox.png
+ providers/48x48/echonest.png
+ providers/48x48/googledrive.png
+ providers/48x48/itunes.png
+ providers/48x48/jamendo.png
+ providers/48x48/jazzradio.png
+ providers/48x48/lastfm.png
+ providers/48x48/magnatune.png
+ providers/48x48/mog.png
+ providers/48x48/mtvmusic.png
+ providers/48x48/musicbrainz.png
+ providers/48x48/mygpo.png
+ providers/48x48/myspace.png
+ providers/48x48/podcast.png
+ providers/48x48/radiotunes.png
+ providers/48x48/rockradio.png
+ providers/48x48/seafile.png
+ providers/48x48/skydrive.png
+ providers/48x48/somafm.png
+ providers/48x48/songkick.png
+ providers/48x48/soundcloud.png
+ providers/48x48/spotify.png
+ providers/48x48/subsonic.png
+ providers/48x48/vk.png
+ providers/48x48/wikipedia.png
rainbowdash.png
sample.mood
schema/device-schema.sql
@@ -407,26 +480,5 @@
volumeslider-gradient.png
volumeslider-handle_glow.png
volumeslider-handle.png
- vk/add.png
- vk/bookmarks.png
- vk/delete.png
- vk/discography.png
- vk/download.png
- vk/edit.png
- vk/find.png
- vk/group.png
- vk/my_music.png
- vk/play_alt.png
- vk/playlist.png
- vk/recommends.png
- vk/remove.png
- vk/upload.png
- vk/user.png
- vk/deactivated.gif
- providers/vk.png
- vk/link.png
- providers/seafile.png
- icons/32x32/internet-services.png
- providers/radiotunes.png
diff --git a/data/icons/22x22/audio-volume-muted.png b/data/icons/22x22/audio-volume-muted.png
new file mode 100644
index 000000000..9b9c0c025
Binary files /dev/null and b/data/icons/22x22/audio-volume-muted.png differ
diff --git a/data/icons/22x22/group.png b/data/icons/22x22/group.png
new file mode 100644
index 000000000..332d0590c
Binary files /dev/null and b/data/icons/22x22/group.png differ
diff --git a/data/icons/22x22/link.png b/data/icons/22x22/link.png
new file mode 100644
index 000000000..0448cc54d
Binary files /dev/null and b/data/icons/22x22/link.png differ
diff --git a/data/icons/22x22/qtlogo.png b/data/icons/22x22/qtlogo.png
new file mode 100644
index 000000000..7e6e19542
Binary files /dev/null and b/data/icons/22x22/qtlogo.png differ
diff --git a/data/icons/22x22/spotify.png b/data/icons/22x22/spotify.png
deleted file mode 100644
index b9100b595..000000000
Binary files a/data/icons/22x22/spotify.png and /dev/null differ
diff --git a/data/icons/32x32/audio-volume-muted.png b/data/icons/32x32/audio-volume-muted.png
new file mode 100644
index 000000000..b41dcb3e0
Binary files /dev/null and b/data/icons/32x32/audio-volume-muted.png differ
diff --git a/data/vk/group.png b/data/icons/32x32/group.png
similarity index 100%
rename from data/vk/group.png
rename to data/icons/32x32/group.png
diff --git a/data/icons/32x32/link.png b/data/icons/32x32/link.png
new file mode 100644
index 000000000..7594c26cb
Binary files /dev/null and b/data/icons/32x32/link.png differ
diff --git a/data/icons/32x32/qtlogo.png b/data/icons/32x32/qtlogo.png
new file mode 100644
index 000000000..fad6f41c4
Binary files /dev/null and b/data/icons/32x32/qtlogo.png differ
diff --git a/data/icons/32x32/spotify.png b/data/icons/32x32/spotify.png
deleted file mode 100644
index a4fd6f3e7..000000000
Binary files a/data/icons/32x32/spotify.png and /dev/null differ
diff --git a/data/icons/48x48/audio-volume-muted.png b/data/icons/48x48/audio-volume-muted.png
new file mode 100644
index 000000000..1b05b4388
Binary files /dev/null and b/data/icons/48x48/audio-volume-muted.png differ
diff --git a/data/icons/48x48/group.png b/data/icons/48x48/group.png
new file mode 100644
index 000000000..e67bd2b24
Binary files /dev/null and b/data/icons/48x48/group.png differ
diff --git a/data/icons/48x48/link.png b/data/icons/48x48/link.png
new file mode 100644
index 000000000..bcc4d6e36
Binary files /dev/null and b/data/icons/48x48/link.png differ
diff --git a/data/icons/48x48/qtlogo.png b/data/icons/48x48/qtlogo.png
new file mode 100644
index 000000000..c0c5b3374
Binary files /dev/null and b/data/icons/48x48/qtlogo.png differ
diff --git a/data/icons/48x48/spotify.png b/data/icons/48x48/spotify.png
deleted file mode 100644
index 4c0562488..000000000
Binary files a/data/icons/48x48/spotify.png and /dev/null differ
diff --git a/data/last.fm/love.png b/data/last.fm/love.png
index 5a185a9d1..6e750a56a 100644
Binary files a/data/last.fm/love.png and b/data/last.fm/love.png differ
diff --git a/data/last.fm/loved_radio.png b/data/last.fm/loved_radio.png
index f231dbd32..904385c32 100644
Binary files a/data/last.fm/loved_radio.png and b/data/last.fm/loved_radio.png differ
diff --git a/data/providers/22x22/amazon.png b/data/providers/22x22/amazon.png
new file mode 100644
index 000000000..fc6838d69
Binary files /dev/null and b/data/providers/22x22/amazon.png differ
diff --git a/data/providers/22x22/amazonclouddrive.png b/data/providers/22x22/amazonclouddrive.png
new file mode 100644
index 000000000..88733d8d2
Binary files /dev/null and b/data/providers/22x22/amazonclouddrive.png differ
diff --git a/data/providers/22x22/aol.png b/data/providers/22x22/aol.png
new file mode 100644
index 000000000..e3182918d
Binary files /dev/null and b/data/providers/22x22/aol.png differ
diff --git a/data/providers/22x22/bbc.png b/data/providers/22x22/bbc.png
new file mode 100644
index 000000000..100338d30
Binary files /dev/null and b/data/providers/22x22/bbc.png differ
diff --git a/data/providers/22x22/box.png b/data/providers/22x22/box.png
new file mode 100644
index 000000000..1645cfd95
Binary files /dev/null and b/data/providers/22x22/box.png differ
diff --git a/data/providers/22x22/cdbaby.png b/data/providers/22x22/cdbaby.png
new file mode 100644
index 000000000..bb06ca324
Binary files /dev/null and b/data/providers/22x22/cdbaby.png differ
diff --git a/data/providers/22x22/digitallyimported.png b/data/providers/22x22/digitallyimported.png
new file mode 100644
index 000000000..7df2f2c1e
Binary files /dev/null and b/data/providers/22x22/digitallyimported.png differ
diff --git a/data/providers/22x22/dropbox.png b/data/providers/22x22/dropbox.png
new file mode 100644
index 000000000..e93cb6019
Binary files /dev/null and b/data/providers/22x22/dropbox.png differ
diff --git a/data/providers/22x22/echonest.png b/data/providers/22x22/echonest.png
new file mode 100644
index 000000000..bda34cb95
Binary files /dev/null and b/data/providers/22x22/echonest.png differ
diff --git a/data/providers/22x22/googledrive.png b/data/providers/22x22/googledrive.png
new file mode 100644
index 000000000..cc862ae26
Binary files /dev/null and b/data/providers/22x22/googledrive.png differ
diff --git a/data/providers/22x22/itunes.png b/data/providers/22x22/itunes.png
new file mode 100644
index 000000000..40e57be33
Binary files /dev/null and b/data/providers/22x22/itunes.png differ
diff --git a/data/providers/22x22/jamendo.png b/data/providers/22x22/jamendo.png
new file mode 100644
index 000000000..ccefdd595
Binary files /dev/null and b/data/providers/22x22/jamendo.png differ
diff --git a/data/providers/22x22/jazzradio.png b/data/providers/22x22/jazzradio.png
new file mode 100644
index 000000000..67019d064
Binary files /dev/null and b/data/providers/22x22/jazzradio.png differ
diff --git a/data/providers/22x22/lastfm.png b/data/providers/22x22/lastfm.png
new file mode 100644
index 000000000..ed93ec447
Binary files /dev/null and b/data/providers/22x22/lastfm.png differ
diff --git a/data/providers/22x22/magnatune.png b/data/providers/22x22/magnatune.png
new file mode 100644
index 000000000..34685e0ba
Binary files /dev/null and b/data/providers/22x22/magnatune.png differ
diff --git a/data/providers/22x22/mog.png b/data/providers/22x22/mog.png
new file mode 100644
index 000000000..092a0d96e
Binary files /dev/null and b/data/providers/22x22/mog.png differ
diff --git a/data/providers/22x22/mtvmusic.png b/data/providers/22x22/mtvmusic.png
new file mode 100644
index 000000000..00d2978f5
Binary files /dev/null and b/data/providers/22x22/mtvmusic.png differ
diff --git a/data/providers/22x22/musicbrainz.png b/data/providers/22x22/musicbrainz.png
new file mode 100644
index 000000000..ab7f17dc4
Binary files /dev/null and b/data/providers/22x22/musicbrainz.png differ
diff --git a/data/providers/22x22/mygpo.png b/data/providers/22x22/mygpo.png
new file mode 100644
index 000000000..bcf045925
Binary files /dev/null and b/data/providers/22x22/mygpo.png differ
diff --git a/data/providers/22x22/myspace.png b/data/providers/22x22/myspace.png
new file mode 100644
index 000000000..ddfd0c75f
Binary files /dev/null and b/data/providers/22x22/myspace.png differ
diff --git a/data/providers/22x22/podcast.png b/data/providers/22x22/podcast.png
new file mode 100644
index 000000000..6f8edaf70
Binary files /dev/null and b/data/providers/22x22/podcast.png differ
diff --git a/data/providers/22x22/radiotunes.png b/data/providers/22x22/radiotunes.png
new file mode 100644
index 000000000..c39b5ebd5
Binary files /dev/null and b/data/providers/22x22/radiotunes.png differ
diff --git a/data/providers/22x22/rockradio.png b/data/providers/22x22/rockradio.png
new file mode 100644
index 000000000..3a2fd4cf5
Binary files /dev/null and b/data/providers/22x22/rockradio.png differ
diff --git a/data/providers/22x22/seafile.png b/data/providers/22x22/seafile.png
new file mode 100644
index 000000000..eaa38b9b5
Binary files /dev/null and b/data/providers/22x22/seafile.png differ
diff --git a/data/providers/22x22/skydrive.png b/data/providers/22x22/skydrive.png
new file mode 100644
index 000000000..27da7f4d0
Binary files /dev/null and b/data/providers/22x22/skydrive.png differ
diff --git a/data/providers/22x22/somafm.png b/data/providers/22x22/somafm.png
new file mode 100644
index 000000000..a438f23b2
Binary files /dev/null and b/data/providers/22x22/somafm.png differ
diff --git a/data/providers/22x22/songkick.png b/data/providers/22x22/songkick.png
new file mode 100644
index 000000000..7f10a2fa3
Binary files /dev/null and b/data/providers/22x22/songkick.png differ
diff --git a/data/providers/22x22/soundcloud.png b/data/providers/22x22/soundcloud.png
new file mode 100644
index 000000000..7bff1fc8c
Binary files /dev/null and b/data/providers/22x22/soundcloud.png differ
diff --git a/data/providers/22x22/spotify.png b/data/providers/22x22/spotify.png
new file mode 100644
index 000000000..560018e1a
Binary files /dev/null and b/data/providers/22x22/spotify.png differ
diff --git a/data/providers/22x22/subsonic.png b/data/providers/22x22/subsonic.png
new file mode 100644
index 000000000..4f5015ae9
Binary files /dev/null and b/data/providers/22x22/subsonic.png differ
diff --git a/data/providers/22x22/vk.png b/data/providers/22x22/vk.png
new file mode 100644
index 000000000..dbe0327f0
Binary files /dev/null and b/data/providers/22x22/vk.png differ
diff --git a/data/providers/22x22/wikipedia.png b/data/providers/22x22/wikipedia.png
new file mode 100644
index 000000000..7100c394e
Binary files /dev/null and b/data/providers/22x22/wikipedia.png differ
diff --git a/data/providers/32x32/amazon.png b/data/providers/32x32/amazon.png
new file mode 100644
index 000000000..fc8612a8c
Binary files /dev/null and b/data/providers/32x32/amazon.png differ
diff --git a/data/providers/32x32/amazonclouddrive.png b/data/providers/32x32/amazonclouddrive.png
new file mode 100644
index 000000000..0f17af490
Binary files /dev/null and b/data/providers/32x32/amazonclouddrive.png differ
diff --git a/data/providers/32x32/aol.png b/data/providers/32x32/aol.png
new file mode 100644
index 000000000..af2cf71cb
Binary files /dev/null and b/data/providers/32x32/aol.png differ
diff --git a/data/providers/32x32/bbc.png b/data/providers/32x32/bbc.png
new file mode 100644
index 000000000..4670a6faf
Binary files /dev/null and b/data/providers/32x32/bbc.png differ
diff --git a/data/providers/32x32/box.png b/data/providers/32x32/box.png
new file mode 100644
index 000000000..4629fe160
Binary files /dev/null and b/data/providers/32x32/box.png differ
diff --git a/data/providers/32x32/cdbaby.png b/data/providers/32x32/cdbaby.png
new file mode 100644
index 000000000..15b3363df
Binary files /dev/null and b/data/providers/32x32/cdbaby.png differ
diff --git a/data/providers/32x32/digitallyimported.png b/data/providers/32x32/digitallyimported.png
new file mode 100644
index 000000000..0be6b7f73
Binary files /dev/null and b/data/providers/32x32/digitallyimported.png differ
diff --git a/data/providers/32x32/dropbox.png b/data/providers/32x32/dropbox.png
new file mode 100644
index 000000000..7abdf523e
Binary files /dev/null and b/data/providers/32x32/dropbox.png differ
diff --git a/data/providers/32x32/echonest.png b/data/providers/32x32/echonest.png
new file mode 100644
index 000000000..58ba7a27f
Binary files /dev/null and b/data/providers/32x32/echonest.png differ
diff --git a/data/providers/32x32/googledrive.png b/data/providers/32x32/googledrive.png
new file mode 100644
index 000000000..17c768700
Binary files /dev/null and b/data/providers/32x32/googledrive.png differ
diff --git a/data/providers/32x32/itunes.png b/data/providers/32x32/itunes.png
new file mode 100644
index 000000000..d398328b6
Binary files /dev/null and b/data/providers/32x32/itunes.png differ
diff --git a/data/providers/32x32/jamendo.png b/data/providers/32x32/jamendo.png
new file mode 100644
index 000000000..84e1d2036
Binary files /dev/null and b/data/providers/32x32/jamendo.png differ
diff --git a/data/providers/32x32/jazzradio.png b/data/providers/32x32/jazzradio.png
new file mode 100644
index 000000000..3edc7d21e
Binary files /dev/null and b/data/providers/32x32/jazzradio.png differ
diff --git a/data/providers/32x32/lastfm.png b/data/providers/32x32/lastfm.png
new file mode 100644
index 000000000..881899dc3
Binary files /dev/null and b/data/providers/32x32/lastfm.png differ
diff --git a/data/providers/32x32/magnatune.png b/data/providers/32x32/magnatune.png
new file mode 100644
index 000000000..e575f2d3f
Binary files /dev/null and b/data/providers/32x32/magnatune.png differ
diff --git a/data/providers/32x32/mog.png b/data/providers/32x32/mog.png
new file mode 100644
index 000000000..413c5a781
Binary files /dev/null and b/data/providers/32x32/mog.png differ
diff --git a/data/providers/32x32/mtvmusic.png b/data/providers/32x32/mtvmusic.png
new file mode 100644
index 000000000..455168986
Binary files /dev/null and b/data/providers/32x32/mtvmusic.png differ
diff --git a/data/providers/32x32/musicbrainz.png b/data/providers/32x32/musicbrainz.png
new file mode 100644
index 000000000..84e2edcaf
Binary files /dev/null and b/data/providers/32x32/musicbrainz.png differ
diff --git a/data/providers/32x32/mygpo.png b/data/providers/32x32/mygpo.png
new file mode 100644
index 000000000..3072a0720
Binary files /dev/null and b/data/providers/32x32/mygpo.png differ
diff --git a/data/providers/32x32/myspace.png b/data/providers/32x32/myspace.png
new file mode 100644
index 000000000..037a1fb13
Binary files /dev/null and b/data/providers/32x32/myspace.png differ
diff --git a/data/providers/32x32/podcast.png b/data/providers/32x32/podcast.png
new file mode 100644
index 000000000..d7fa7e67b
Binary files /dev/null and b/data/providers/32x32/podcast.png differ
diff --git a/data/providers/32x32/radiotunes.png b/data/providers/32x32/radiotunes.png
new file mode 100644
index 000000000..e6ad48a2a
Binary files /dev/null and b/data/providers/32x32/radiotunes.png differ
diff --git a/data/providers/32x32/rockradio.png b/data/providers/32x32/rockradio.png
new file mode 100644
index 000000000..4352ff98a
Binary files /dev/null and b/data/providers/32x32/rockradio.png differ
diff --git a/data/providers/32x32/seafile.png b/data/providers/32x32/seafile.png
new file mode 100644
index 000000000..fd75a8f85
Binary files /dev/null and b/data/providers/32x32/seafile.png differ
diff --git a/data/providers/32x32/skydrive.png b/data/providers/32x32/skydrive.png
new file mode 100644
index 000000000..92593cf38
Binary files /dev/null and b/data/providers/32x32/skydrive.png differ
diff --git a/data/providers/32x32/somafm.png b/data/providers/32x32/somafm.png
new file mode 100644
index 000000000..0a048732a
Binary files /dev/null and b/data/providers/32x32/somafm.png differ
diff --git a/data/providers/32x32/songkick.png b/data/providers/32x32/songkick.png
new file mode 100644
index 000000000..c2efad00a
Binary files /dev/null and b/data/providers/32x32/songkick.png differ
diff --git a/data/providers/32x32/soundcloud.png b/data/providers/32x32/soundcloud.png
new file mode 100644
index 000000000..c8940f165
Binary files /dev/null and b/data/providers/32x32/soundcloud.png differ
diff --git a/data/providers/32x32/spotify.png b/data/providers/32x32/spotify.png
new file mode 100644
index 000000000..6b1fb1322
Binary files /dev/null and b/data/providers/32x32/spotify.png differ
diff --git a/data/providers/32x32/subsonic.png b/data/providers/32x32/subsonic.png
new file mode 100644
index 000000000..5b9b875df
Binary files /dev/null and b/data/providers/32x32/subsonic.png differ
diff --git a/data/providers/32x32/vk.png b/data/providers/32x32/vk.png
new file mode 100644
index 000000000..9ce371761
Binary files /dev/null and b/data/providers/32x32/vk.png differ
diff --git a/data/providers/32x32/wikipedia.png b/data/providers/32x32/wikipedia.png
new file mode 100644
index 000000000..76532d329
Binary files /dev/null and b/data/providers/32x32/wikipedia.png differ
diff --git a/data/providers/48x48/amazon.png b/data/providers/48x48/amazon.png
new file mode 100644
index 000000000..7145996aa
Binary files /dev/null and b/data/providers/48x48/amazon.png differ
diff --git a/data/providers/48x48/amazonclouddrive.png b/data/providers/48x48/amazonclouddrive.png
new file mode 100644
index 000000000..733e18467
Binary files /dev/null and b/data/providers/48x48/amazonclouddrive.png differ
diff --git a/data/providers/48x48/aol.png b/data/providers/48x48/aol.png
new file mode 100644
index 000000000..9e0413778
Binary files /dev/null and b/data/providers/48x48/aol.png differ
diff --git a/data/providers/48x48/bbc.png b/data/providers/48x48/bbc.png
new file mode 100644
index 000000000..a55ec73f2
Binary files /dev/null and b/data/providers/48x48/bbc.png differ
diff --git a/data/providers/box.png b/data/providers/48x48/box.png
similarity index 100%
rename from data/providers/box.png
rename to data/providers/48x48/box.png
diff --git a/data/providers/48x48/cdbaby.png b/data/providers/48x48/cdbaby.png
new file mode 100644
index 000000000..d3b6a3fa4
Binary files /dev/null and b/data/providers/48x48/cdbaby.png differ
diff --git a/data/providers/48x48/digitallyimported.png b/data/providers/48x48/digitallyimported.png
new file mode 100644
index 000000000..87beb5346
Binary files /dev/null and b/data/providers/48x48/digitallyimported.png differ
diff --git a/data/providers/48x48/dropbox.png b/data/providers/48x48/dropbox.png
new file mode 100644
index 000000000..3d120345e
Binary files /dev/null and b/data/providers/48x48/dropbox.png differ
diff --git a/data/providers/48x48/echonest.png b/data/providers/48x48/echonest.png
new file mode 100644
index 000000000..e8f94e947
Binary files /dev/null and b/data/providers/48x48/echonest.png differ
diff --git a/data/providers/48x48/googledrive.png b/data/providers/48x48/googledrive.png
new file mode 100644
index 000000000..267eefbe6
Binary files /dev/null and b/data/providers/48x48/googledrive.png differ
diff --git a/data/providers/48x48/itunes.png b/data/providers/48x48/itunes.png
new file mode 100644
index 000000000..c1ff850a2
Binary files /dev/null and b/data/providers/48x48/itunes.png differ
diff --git a/data/providers/48x48/jamendo.png b/data/providers/48x48/jamendo.png
new file mode 100644
index 000000000..a5fa9feb0
Binary files /dev/null and b/data/providers/48x48/jamendo.png differ
diff --git a/data/providers/48x48/jazzradio.png b/data/providers/48x48/jazzradio.png
new file mode 100644
index 000000000..a65d37de9
Binary files /dev/null and b/data/providers/48x48/jazzradio.png differ
diff --git a/data/providers/48x48/lastfm.png b/data/providers/48x48/lastfm.png
new file mode 100644
index 000000000..24044e5a6
Binary files /dev/null and b/data/providers/48x48/lastfm.png differ
diff --git a/data/providers/48x48/magnatune.png b/data/providers/48x48/magnatune.png
new file mode 100644
index 000000000..a529e9ce3
Binary files /dev/null and b/data/providers/48x48/magnatune.png differ
diff --git a/data/providers/48x48/mog.png b/data/providers/48x48/mog.png
new file mode 100644
index 000000000..cf985814c
Binary files /dev/null and b/data/providers/48x48/mog.png differ
diff --git a/data/providers/48x48/mtvmusic.png b/data/providers/48x48/mtvmusic.png
new file mode 100644
index 000000000..4ac2be524
Binary files /dev/null and b/data/providers/48x48/mtvmusic.png differ
diff --git a/data/providers/48x48/musicbrainz.png b/data/providers/48x48/musicbrainz.png
new file mode 100644
index 000000000..2dce71246
Binary files /dev/null and b/data/providers/48x48/musicbrainz.png differ
diff --git a/data/providers/48x48/mygpo.png b/data/providers/48x48/mygpo.png
new file mode 100644
index 000000000..68370329f
Binary files /dev/null and b/data/providers/48x48/mygpo.png differ
diff --git a/data/providers/48x48/myspace.png b/data/providers/48x48/myspace.png
new file mode 100644
index 000000000..2315b3506
Binary files /dev/null and b/data/providers/48x48/myspace.png differ
diff --git a/data/providers/48x48/podcast.png b/data/providers/48x48/podcast.png
new file mode 100644
index 000000000..cdfba1741
Binary files /dev/null and b/data/providers/48x48/podcast.png differ
diff --git a/data/providers/48x48/radiotunes.png b/data/providers/48x48/radiotunes.png
new file mode 100644
index 000000000..75b9ebb42
Binary files /dev/null and b/data/providers/48x48/radiotunes.png differ
diff --git a/data/providers/48x48/rockradio.png b/data/providers/48x48/rockradio.png
new file mode 100644
index 000000000..e29012287
Binary files /dev/null and b/data/providers/48x48/rockradio.png differ
diff --git a/data/providers/48x48/seafile.png b/data/providers/48x48/seafile.png
new file mode 100644
index 000000000..90982d861
Binary files /dev/null and b/data/providers/48x48/seafile.png differ
diff --git a/data/providers/48x48/skydrive.png b/data/providers/48x48/skydrive.png
new file mode 100644
index 000000000..82df8c319
Binary files /dev/null and b/data/providers/48x48/skydrive.png differ
diff --git a/data/providers/48x48/somafm.png b/data/providers/48x48/somafm.png
new file mode 100644
index 000000000..ed7d8ccb9
Binary files /dev/null and b/data/providers/48x48/somafm.png differ
diff --git a/data/providers/48x48/songkick.png b/data/providers/48x48/songkick.png
new file mode 100644
index 000000000..aba0c8beb
Binary files /dev/null and b/data/providers/48x48/songkick.png differ
diff --git a/data/providers/48x48/soundcloud.png b/data/providers/48x48/soundcloud.png
new file mode 100644
index 000000000..181a7e866
Binary files /dev/null and b/data/providers/48x48/soundcloud.png differ
diff --git a/data/providers/48x48/spotify.png b/data/providers/48x48/spotify.png
new file mode 100644
index 000000000..f8535b324
Binary files /dev/null and b/data/providers/48x48/spotify.png differ
diff --git a/data/providers/48x48/subsonic.png b/data/providers/48x48/subsonic.png
new file mode 100644
index 000000000..521b9c90a
Binary files /dev/null and b/data/providers/48x48/subsonic.png differ
diff --git a/data/providers/48x48/vk.png b/data/providers/48x48/vk.png
new file mode 100644
index 000000000..3df4238a4
Binary files /dev/null and b/data/providers/48x48/vk.png differ
diff --git a/data/providers/48x48/wikipedia.png b/data/providers/48x48/wikipedia.png
new file mode 100644
index 000000000..e7a523eca
Binary files /dev/null and b/data/providers/48x48/wikipedia.png differ
diff --git a/data/providers/amazon.png b/data/providers/amazon.png
deleted file mode 100644
index 5f92ffe10..000000000
Binary files a/data/providers/amazon.png and /dev/null differ
diff --git a/data/providers/amazonclouddrive.png b/data/providers/amazonclouddrive.png
deleted file mode 100644
index d3707287a..000000000
Binary files a/data/providers/amazonclouddrive.png and /dev/null differ
diff --git a/data/providers/aol.png b/data/providers/aol.png
deleted file mode 100644
index 985b97a0f..000000000
Binary files a/data/providers/aol.png and /dev/null differ
diff --git a/data/providers/bbc.png b/data/providers/bbc.png
deleted file mode 100644
index 579f85f8b..000000000
Binary files a/data/providers/bbc.png and /dev/null differ
diff --git a/data/providers/cdbaby.png b/data/providers/cdbaby.png
deleted file mode 100644
index 547a89183..000000000
Binary files a/data/providers/cdbaby.png and /dev/null differ
diff --git a/data/providers/digitallyimported-32.png b/data/providers/digitallyimported-32.png
deleted file mode 100644
index bfef73f5c..000000000
Binary files a/data/providers/digitallyimported-32.png and /dev/null differ
diff --git a/data/providers/digitallyimported.png b/data/providers/digitallyimported.png
deleted file mode 100644
index 86b18ba04..000000000
Binary files a/data/providers/digitallyimported.png and /dev/null differ
diff --git a/data/providers/dropbox.png b/data/providers/dropbox.png
deleted file mode 100644
index d9a18826b..000000000
Binary files a/data/providers/dropbox.png and /dev/null differ
diff --git a/data/providers/echonest.png b/data/providers/echonest.png
deleted file mode 100644
index 74863e7a5..000000000
Binary files a/data/providers/echonest.png and /dev/null differ
diff --git a/data/providers/googledrive.png b/data/providers/googledrive.png
deleted file mode 100644
index 590dde867..000000000
Binary files a/data/providers/googledrive.png and /dev/null differ
diff --git a/data/providers/itunes.png b/data/providers/itunes.png
deleted file mode 100644
index e8c686ef8..000000000
Binary files a/data/providers/itunes.png and /dev/null differ
diff --git a/data/providers/jamendo.png b/data/providers/jamendo.png
deleted file mode 100644
index ef23018f7..000000000
Binary files a/data/providers/jamendo.png and /dev/null differ
diff --git a/data/providers/jazzradio.png b/data/providers/jazzradio.png
deleted file mode 100644
index 45f8b6138..000000000
Binary files a/data/providers/jazzradio.png and /dev/null differ
diff --git a/data/providers/magnatune.png b/data/providers/magnatune.png
deleted file mode 100644
index 68370f4bc..000000000
Binary files a/data/providers/magnatune.png and /dev/null differ
diff --git a/data/providers/mog.png b/data/providers/mog.png
deleted file mode 100644
index 017420f89..000000000
Binary files a/data/providers/mog.png and /dev/null differ
diff --git a/data/providers/mtvmusic.png b/data/providers/mtvmusic.png
deleted file mode 100644
index 7da4685b6..000000000
Binary files a/data/providers/mtvmusic.png and /dev/null differ
diff --git a/data/providers/musicbrainz.png b/data/providers/musicbrainz.png
deleted file mode 100644
index a87e056a0..000000000
Binary files a/data/providers/musicbrainz.png and /dev/null differ
diff --git a/data/providers/mygpo32.png b/data/providers/mygpo32.png
deleted file mode 100644
index fcb16142f..000000000
Binary files a/data/providers/mygpo32.png and /dev/null differ
diff --git a/data/providers/myspace.png b/data/providers/myspace.png
deleted file mode 100644
index 304d628ea..000000000
Binary files a/data/providers/myspace.png and /dev/null differ
diff --git a/data/providers/podcast16.png b/data/providers/podcast16.png
deleted file mode 100644
index 667bdef57..000000000
Binary files a/data/providers/podcast16.png and /dev/null differ
diff --git a/data/providers/podcast32.png b/data/providers/podcast32.png
deleted file mode 100644
index 66cb4d3bf..000000000
Binary files a/data/providers/podcast32.png and /dev/null differ
diff --git a/data/providers/radiotunes.png b/data/providers/radiotunes.png
deleted file mode 100644
index e7e0bb83a..000000000
Binary files a/data/providers/radiotunes.png and /dev/null differ
diff --git a/data/providers/rockradio.png b/data/providers/rockradio.png
deleted file mode 100644
index ffc7634af..000000000
Binary files a/data/providers/rockradio.png and /dev/null differ
diff --git a/data/providers/seafile.png b/data/providers/seafile.png
deleted file mode 100644
index e08b9407c..000000000
Binary files a/data/providers/seafile.png and /dev/null differ
diff --git a/data/providers/skydrive.png b/data/providers/skydrive.png
deleted file mode 100644
index 5e8f45a27..000000000
Binary files a/data/providers/skydrive.png and /dev/null differ
diff --git a/data/providers/somafm.png b/data/providers/somafm.png
deleted file mode 100644
index e793f5bc0..000000000
Binary files a/data/providers/somafm.png and /dev/null differ
diff --git a/data/providers/songkick.png b/data/providers/songkick.png
deleted file mode 100644
index 5e59c4d6d..000000000
Binary files a/data/providers/songkick.png and /dev/null differ
diff --git a/data/providers/soundcloud.png b/data/providers/soundcloud.png
deleted file mode 100644
index 034972f2f..000000000
Binary files a/data/providers/soundcloud.png and /dev/null differ
diff --git a/data/providers/subsonic-32.png b/data/providers/subsonic-32.png
deleted file mode 100644
index 077c3c72e..000000000
Binary files a/data/providers/subsonic-32.png and /dev/null differ
diff --git a/data/providers/subsonic.png b/data/providers/subsonic.png
deleted file mode 100644
index efbfe3a29..000000000
Binary files a/data/providers/subsonic.png and /dev/null differ
diff --git a/data/providers/vk.png b/data/providers/vk.png
deleted file mode 100644
index f4ab8ff89..000000000
Binary files a/data/providers/vk.png and /dev/null differ
diff --git a/data/providers/wikipedia.png b/data/providers/wikipedia.png
deleted file mode 100644
index 4a84436fa..000000000
Binary files a/data/providers/wikipedia.png and /dev/null differ
diff --git a/data/vk/add.png b/data/vk/add.png
deleted file mode 100644
index 5d47db460..000000000
Binary files a/data/vk/add.png and /dev/null differ
diff --git a/data/vk/bookmarks.png b/data/vk/bookmarks.png
deleted file mode 100644
index e2c67ffd1..000000000
Binary files a/data/vk/bookmarks.png and /dev/null differ
diff --git a/data/vk/deactivated.gif b/data/vk/deactivated.gif
deleted file mode 100644
index 4414b8019..000000000
Binary files a/data/vk/deactivated.gif and /dev/null differ
diff --git a/data/vk/delete.png b/data/vk/delete.png
deleted file mode 100644
index 7f40e250a..000000000
Binary files a/data/vk/delete.png and /dev/null differ
diff --git a/data/vk/discography.png b/data/vk/discography.png
deleted file mode 100644
index 5af8f0f0d..000000000
Binary files a/data/vk/discography.png and /dev/null differ
diff --git a/data/vk/download.png b/data/vk/download.png
deleted file mode 100644
index 730a99065..000000000
Binary files a/data/vk/download.png and /dev/null differ
diff --git a/data/vk/edit.png b/data/vk/edit.png
deleted file mode 100644
index e17f1d0f3..000000000
Binary files a/data/vk/edit.png and /dev/null differ
diff --git a/data/vk/find.png b/data/vk/find.png
deleted file mode 100644
index 213a4f1a3..000000000
Binary files a/data/vk/find.png and /dev/null differ
diff --git a/data/vk/link.png b/data/vk/link.png
deleted file mode 100644
index a6d3f47d6..000000000
Binary files a/data/vk/link.png and /dev/null differ
diff --git a/data/vk/my_music.png b/data/vk/my_music.png
deleted file mode 100644
index 0198b5a23..000000000
Binary files a/data/vk/my_music.png and /dev/null differ
diff --git a/data/vk/play_alt.png b/data/vk/play_alt.png
deleted file mode 100644
index 2ccec3060..000000000
Binary files a/data/vk/play_alt.png and /dev/null differ
diff --git a/data/vk/playlist.png b/data/vk/playlist.png
deleted file mode 100644
index a4cb22870..000000000
Binary files a/data/vk/playlist.png and /dev/null differ
diff --git a/data/vk/recommends.png b/data/vk/recommends.png
deleted file mode 100644
index 2a0d3b3c4..000000000
Binary files a/data/vk/recommends.png and /dev/null differ
diff --git a/data/vk/remove.png b/data/vk/remove.png
deleted file mode 100644
index 9a8f8929b..000000000
Binary files a/data/vk/remove.png and /dev/null differ
diff --git a/data/vk/upload.png b/data/vk/upload.png
deleted file mode 100644
index 0596e0a49..000000000
Binary files a/data/vk/upload.png and /dev/null differ
diff --git a/data/vk/user.png b/data/vk/user.png
deleted file mode 100644
index f58b69688..000000000
Binary files a/data/vk/user.png and /dev/null differ
diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
index f1d3cbefa..739cadb93 100644
--- a/src/core/utilities.cpp
+++ b/src/core/utilities.cpp
@@ -344,6 +344,9 @@ QString GetConfigPath(ConfigPath config) {
#endif
} break;
+ case Path_Icons:
+ return GetConfigPath(Path_Root) + "/customiconset";
+
case Path_AlbumCovers:
return GetConfigPath(Path_Root) + "/albumcovers";
diff --git a/src/core/utilities.h b/src/core/utilities.h
index ccc3b450e..5fd8fc102 100644
--- a/src/core/utilities.h
+++ b/src/core/utilities.h
@@ -124,6 +124,7 @@ QString FiddleFileExtension(const QString& filename,
enum ConfigPath {
Path_Root,
+ Path_Icons,
Path_AlbumCovers,
Path_NetworkCache,
Path_GstreamerRegistry,
diff --git a/src/devices/devicemanager.cpp b/src/devices/devicemanager.cpp
index 52a532ac9..6396b56cb 100644
--- a/src/devices/devicemanager.cpp
+++ b/src/devices/devicemanager.cpp
@@ -115,7 +115,7 @@ void DeviceManager::DeviceInfo::LoadIcon(const QVariantList& icons,
const QString& name_hint) {
if (icons.isEmpty()) {
icon_name_ = "drive-removable-media-usb-pendrive";
- icon_ = IconLoader::Load(icon_name_);
+ icon_ = IconLoader::Load(icon_name_, IconLoader::Base);
return;
}
@@ -125,7 +125,7 @@ void DeviceManager::DeviceInfo::LoadIcon(const QVariantList& icons,
icon_ = QIcon(icon.value());
return;
} else {
- icon_ = IconLoader::Load(icon.toString());
+ icon_ = IconLoader::Load(icon.toString(), IconLoader::Base);
if (!icon_.isNull()) {
icon_name_ = icon.toString();
return;
@@ -143,7 +143,7 @@ void DeviceManager::DeviceInfo::LoadIcon(const QVariantList& icons,
icon_name_ = "multimedia-player-ipod-standard-monochrome";
else
icon_name_ = "drive-removable-media-usb-pendrive";
- icon_ = IconLoader::Load(icon_name_);
+ icon_ = IconLoader::Load(icon_name_, IconLoader::Base);
}
const DeviceManager::DeviceInfo::Backend*
@@ -166,7 +166,7 @@ DeviceManager::DeviceInfo::BestBackend() const {
DeviceManager::DeviceManager(Application* app, QObject* parent)
: QAbstractListModel(parent),
app_(app),
- not_connected_overlay_(IconLoader::Load("edit-delete")) {
+ not_connected_overlay_(IconLoader::Load("edit-delete", IconLoader::Base)) {
thread_pool_.setMaxThreadCount(1);
connect(app_->task_manager(), SIGNAL(TasksChanged()), SLOT(TasksChanged()));
diff --git a/src/devices/deviceproperties.cpp b/src/devices/deviceproperties.cpp
index c097d409d..19acc1b85 100644
--- a/src/devices/deviceproperties.cpp
+++ b/src/devices/deviceproperties.cpp
@@ -86,7 +86,8 @@ void DeviceProperties::ShowDevice(int row) {
<< "phone-palm-pre";
for (const QString& icon_name : icon_names) {
- QListWidgetItem* item = new QListWidgetItem(IconLoader::Load(icon_name),
+ QListWidgetItem* item = new QListWidgetItem(IconLoader::Load(icon_name,
+ IconLoader::Base),
QString(), ui_->icon);
item->setData(Qt::UserRole, icon_name);
}
diff --git a/src/devices/deviceview.cpp b/src/devices/deviceview.cpp
index 36592a7df..7d62571aa 100644
--- a/src/devices/deviceview.cpp
+++ b/src/devices/deviceview.cpp
@@ -199,32 +199,36 @@ void DeviceView::contextMenuEvent(QContextMenuEvent* e) {
library_menu_ = new QMenu(this);
// Device menu
- eject_action_ = device_menu_->addAction(IconLoader::Load("media-eject"),
+ eject_action_ = device_menu_->addAction(IconLoader::Load("media-eject",
+ IconLoader::Base),
tr("Safely remove device"), this,
SLOT(Unmount()));
forget_action_ =
- device_menu_->addAction(IconLoader::Load("list-remove"),
+ device_menu_->addAction(IconLoader::Load("list-remove", IconLoader::Base),
tr("Forget device"), this, SLOT(Forget()));
device_menu_->addSeparator();
- properties_action_ = device_menu_->addAction(IconLoader::Load("configure"),
+ properties_action_ = device_menu_->addAction(IconLoader::Load("configure",
+ IconLoader::Base),
tr("Device properties..."),
this, SLOT(Properties()));
// Library menu
add_to_playlist_action_ = library_menu_->addAction(
- IconLoader::Load("media-playback-start"),
+ IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Append to current playlist"), this, SLOT(AddToPlaylist()));
load_action_ = library_menu_->addAction(
- IconLoader::Load("media-playback-start"),
+ IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Replace current playlist"), this, SLOT(Load()));
open_in_new_playlist_ = library_menu_->addAction(
- IconLoader::Load("document-new"), tr("Open in new playlist"), this,
- SLOT(OpenInNewPlaylist()));
+ IconLoader::Load("document-new", IconLoader::Base),
+ tr("Open in new playlist"), this, SLOT(OpenInNewPlaylist()));
library_menu_->addSeparator();
- organise_action_ = library_menu_->addAction(IconLoader::Load("edit-copy"),
+ organise_action_ = library_menu_->addAction(IconLoader::Load("edit-copy",
+ IconLoader::Base),
tr("Copy to library..."), this,
SLOT(Organise()));
- delete_action_ = library_menu_->addAction(IconLoader::Load("edit-delete"),
+ delete_action_ = library_menu_->addAction(IconLoader::Load("edit-delete",
+ IconLoader::Base),
tr("Delete from device..."), this,
SLOT(Delete()));
}
diff --git a/src/devices/deviceviewcontainer.cpp b/src/devices/deviceviewcontainer.cpp
index 4acd77367..08229c804 100644
--- a/src/devices/deviceviewcontainer.cpp
+++ b/src/devices/deviceviewcontainer.cpp
@@ -40,8 +40,10 @@ void DeviceViewContainer::showEvent(QShowEvent* e) {
if (!loaded_icons_) {
loaded_icons_ = true;
- ui_->close_frame_button->setIcon(IconLoader::Load("edit-delete"));
- ui_->warning_icon->setPixmap(IconLoader::Load("dialog-warning").pixmap(22));
+ ui_->close_frame_button->setIcon(IconLoader::Load("edit-delete",
+ IconLoader::Base));
+ ui_->warning_icon->setPixmap(IconLoader::Load("dialog-warning",
+ IconLoader::Base).pixmap(22));
}
QWidget::showEvent(e);
diff --git a/src/globalsearch/globalsearchmodel.cpp b/src/globalsearch/globalsearchmodel.cpp
index bd0f8becc..9584ab75b 100644
--- a/src/globalsearch/globalsearchmodel.cpp
+++ b/src/globalsearch/globalsearchmodel.cpp
@@ -18,6 +18,7 @@
#include "globalsearch.h"
#include "globalsearchmodel.h"
#include "core/mimedata.h"
+#include "ui/iconloader.h"
#include
@@ -26,8 +27,8 @@ GlobalSearchModel::GlobalSearchModel(GlobalSearch* engine, QObject* parent)
engine_(engine),
proxy_(nullptr),
use_pretty_covers_(true),
- artist_icon_(":/icons/22x22/x-clementine-artist.png"),
- album_icon_(":/icons/22x22/x-clementine-album.png") {
+ artist_icon_(IconLoader::Load("x-clementine-artist", IconLoader::Base)),
+ album_icon_(IconLoader::Load("x-clementine-album", IconLoader::Base)) {
group_by_[0] = LibraryModel::GroupBy_Artist;
group_by_[1] = LibraryModel::GroupBy_Album;
group_by_[2] = LibraryModel::GroupBy_None;
diff --git a/src/globalsearch/globalsearchsettingspage.cpp b/src/globalsearch/globalsearchsettingspage.cpp
index 460d63a81..a5ea53e27 100644
--- a/src/globalsearch/globalsearchsettingspage.cpp
+++ b/src/globalsearch/globalsearchsettingspage.cpp
@@ -27,11 +27,12 @@
GlobalSearchSettingsPage::GlobalSearchSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui::GlobalSearchSettingsPage) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("search", IconLoader::Base));
ui_->sources->header()->setResizeMode(0, QHeaderView::Stretch);
ui_->sources->header()->setResizeMode(1, QHeaderView::ResizeToContents);
- warning_icon_ = IconLoader::Load("dialog-warning");
+ warning_icon_ = IconLoader::Load("dialog-warning", IconLoader::Base);
connect(ui_->up, SIGNAL(clicked()), SLOT(MoveUp()));
connect(ui_->down, SIGNAL(clicked()), SLOT(MoveDown()));
diff --git a/src/globalsearch/globalsearchview.cpp b/src/globalsearch/globalsearchview.cpp
index 8b9af9c3c..7ab8258d8 100644
--- a/src/globalsearch/globalsearchview.cpp
+++ b/src/globalsearch/globalsearchview.cpp
@@ -62,8 +62,8 @@ GlobalSearchView::GlobalSearchView(Application* app, QWidget* parent)
current_proxy_(front_proxy_),
swap_models_timer_(new QTimer(this)),
update_suggestions_timer_(new QTimer(this)),
- search_icon_(IconLoader::Load("search")),
- warning_icon_(IconLoader::Load("dialog-warning")),
+ search_icon_(IconLoader::Load("search", IconLoader::Base)),
+ warning_icon_(IconLoader::Load("dialog-warning", IconLoader::Base)),
show_providers_(true),
show_suggestions_(true) {
ui_->setupUi(this);
@@ -74,7 +74,7 @@ GlobalSearchView::GlobalSearchView(Application* app, QWidget* parent)
ui_->search->installEventFilter(this);
ui_->results_stack->installEventFilter(this);
- ui_->settings->setIcon(IconLoader::Load("configure"));
+ ui_->settings->setIcon(IconLoader::Load("configure", IconLoader::Base));
// Must be a queued connection to ensure the GlobalSearch handles it first.
connect(app_, SIGNAL(SettingsChanged()), SLOT(ReloadSettings()),
@@ -145,7 +145,7 @@ GlobalSearchView::GlobalSearchView(Application* app, QWidget* parent)
QMenu* settings_menu = new QMenu(this);
settings_menu->addActions(group_by_actions_->actions());
settings_menu->addSeparator();
- settings_menu->addAction(IconLoader::Load("configure"),
+ settings_menu->addAction(IconLoader::Load("configure", IconLoader::Base),
tr("Configure global search..."), this,
SLOT(OpenSettingsDialog()));
ui_->settings->setMenu(settings_menu);
@@ -449,27 +449,27 @@ bool GlobalSearchView::ResultsContextMenuEvent(QContextMenuEvent* event) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
context_actions_ << context_menu_->addAction(
- IconLoader::Load("media-playback-start"),
+ IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Append to current playlist"), this,
SLOT(AddSelectedToPlaylist()));
context_actions_ << context_menu_->addAction(
- IconLoader::Load("media-playback-start"),
+ IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Replace current playlist"), this,
SLOT(LoadSelected()));
context_actions_ << context_menu_->addAction(
- IconLoader::Load("document-new"),
+ IconLoader::Load("document-new", IconLoader::Base),
tr("Open in new playlist"), this,
SLOT(OpenSelectedInNewPlaylist()));
context_menu_->addSeparator();
context_actions_ << context_menu_->addAction(
- IconLoader::Load("go-next"), tr("Queue track"),
+ IconLoader::Load("go-next", IconLoader::Base), tr("Queue track"),
this, SLOT(AddSelectedToPlaylistEnqueue()));
context_menu_->addSeparator();
context_menu_->addMenu(tr("Group by"))
->addActions(group_by_actions_->actions());
- context_menu_->addAction(IconLoader::Load("configure"),
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
tr("Configure global search..."), this,
SLOT(OpenSettingsDialog()));
}
diff --git a/src/globalsearch/icecastsearchprovider.cpp b/src/globalsearch/icecastsearchprovider.cpp
index 763533f3b..c890d1ac6 100644
--- a/src/globalsearch/icecastsearchprovider.cpp
+++ b/src/globalsearch/icecastsearchprovider.cpp
@@ -17,11 +17,12 @@
#include "icecastsearchprovider.h"
#include "internet/icecast/icecastbackend.h"
+#include "ui/iconloader.h"
IcecastSearchProvider::IcecastSearchProvider(IcecastBackend* backend,
Application* app, QObject* parent)
: BlockingSearchProvider(app, parent), backend_(backend) {
- Init("Icecast", "icecast", QIcon(":last.fm/icon_radio.png"),
+ Init("Icecast", "icecast", IconLoader::Load("icon_radio", IconLoader::Lastfm),
DisabledByDefault);
}
diff --git a/src/globalsearch/savedradiosearchprovider.cpp b/src/globalsearch/savedradiosearchprovider.cpp
index 0c3f5d56d..c571eb72e 100644
--- a/src/globalsearch/savedradiosearchprovider.cpp
+++ b/src/globalsearch/savedradiosearchprovider.cpp
@@ -24,7 +24,8 @@ SavedRadioSearchProvider::SavedRadioSearchProvider(SavedRadio* service,
QObject* parent)
: SimpleSearchProvider(app, parent), service_(service) {
Init(tr("Your radio streams"), "savedradio",
- IconLoader::Load("document-open-remote"), MimeDataContainsUrlsOnly);
+ IconLoader::Load("document-open-remote", IconLoader::Base),
+ MimeDataContainsUrlsOnly);
set_max_suggestion_count(3);
diff --git a/src/globalsearch/soundcloudsearchprovider.cpp b/src/globalsearch/soundcloudsearchprovider.cpp
index 4284f4ef6..cd03ecb43 100644
--- a/src/globalsearch/soundcloudsearchprovider.cpp
+++ b/src/globalsearch/soundcloudsearchprovider.cpp
@@ -23,6 +23,7 @@
#include "core/logging.h"
#include "covers/albumcoverloader.h"
#include "internet/soundcloud/soundcloudservice.h"
+#include "ui/iconloader.h"
SoundCloudSearchProvider::SoundCloudSearchProvider(Application* app,
QObject* parent)
@@ -31,8 +32,9 @@ SoundCloudSearchProvider::SoundCloudSearchProvider(Application* app,
void SoundCloudSearchProvider::Init(SoundCloudService* service) {
service_ = service;
SearchProvider::Init(
- "SoundCloud", "soundcloud", QIcon(":providers/soundcloud.png"),
- WantsDelayedQueries | ArtIsProbablyRemote | CanShowConfig);
+ "SoundCloud", "soundcloud", IconLoader::Load("soundcloud",
+ IconLoader::Provider), WantsDelayedQueries | ArtIsProbablyRemote |
+ CanShowConfig);
connect(service_, SIGNAL(SimpleSearchResults(int, SongList)),
SLOT(SearchDone(int, SongList)));
diff --git a/src/globalsearch/spotifysearchprovider.cpp b/src/globalsearch/spotifysearchprovider.cpp
index 601164223..5e71ffc50 100644
--- a/src/globalsearch/spotifysearchprovider.cpp
+++ b/src/globalsearch/spotifysearchprovider.cpp
@@ -24,6 +24,7 @@
#include "internet/core/internetmodel.h"
#include "internet/spotify/spotifyserver.h"
#include "playlist/songmimedata.h"
+#include "ui/iconloader.h"
namespace {
const int kSearchSongLimit = 5;
@@ -32,7 +33,7 @@ const int kSearchAlbumLimit = 20;
SpotifySearchProvider::SpotifySearchProvider(Application* app, QObject* parent)
: SearchProvider(app, parent), server_(nullptr), service_(nullptr) {
- Init("Spotify", "spotify", QIcon(":icons/32x32/spotify.png"),
+ Init("Spotify", "spotify", IconLoader::Load("spotify", IconLoader::Provider),
WantsDelayedQueries | WantsSerialisedArtQueries | ArtIsProbablyRemote |
CanShowConfig | CanGiveSuggestions);
}
diff --git a/src/globalsearch/urlsearchprovider.cpp b/src/globalsearch/urlsearchprovider.cpp
index 82f8f20a3..806583159 100644
--- a/src/globalsearch/urlsearchprovider.cpp
+++ b/src/globalsearch/urlsearchprovider.cpp
@@ -26,7 +26,7 @@ const char* UrlSearchProvider::kUrlRegex = "^[a-zA-Z][a-zA-Z0-9+-.]*://";
UrlSearchProvider::UrlSearchProvider(Application* app, QObject* parent)
: SearchProvider(app, parent), url_regex_(kUrlRegex) {
- QIcon icon = IconLoader::Load("applications-internet");
+ QIcon icon = IconLoader::Load("applications-internet", IconLoader::Base);
image_ = ScaleAndPad(icon.pixmap(kArtHeight, kArtHeight).toImage());
Init("URL", "url", icon, MimeDataContainsUrlsOnly);
diff --git a/src/globalsearch/vksearchprovider.cpp b/src/globalsearch/vksearchprovider.cpp
index b12a65551..25d4cc495 100644
--- a/src/globalsearch/vksearchprovider.cpp
+++ b/src/globalsearch/vksearchprovider.cpp
@@ -21,14 +21,16 @@
#include "core/logging.h"
#include "core/song.h"
+#include "ui/iconloader.h"
VkSearchProvider::VkSearchProvider(Application* app, QObject* parent)
: SearchProvider(app, parent), service_(NULL) {}
void VkSearchProvider::Init(VkService* service) {
service_ = service;
- SearchProvider::Init("Vk.com", "vk.com", QIcon(":providers/vk.png"),
- WantsDelayedQueries | CanShowConfig);
+ SearchProvider::Init("Vk.com", "vk.com", IconLoader::Load("vk",
+ IconLoader::Provider), WantsDelayedQueries
+ | CanShowConfig);
connect(service_, SIGNAL(SongSearchResult(SearchID, SongList)), this,
SLOT(SongSearchResult(SearchID, SongList)));
diff --git a/src/internet/amazon/amazonclouddrive.cpp b/src/internet/amazon/amazonclouddrive.cpp
index 257d6a539..c4b4b8722 100644
--- a/src/internet/amazon/amazonclouddrive.cpp
+++ b/src/internet/amazon/amazonclouddrive.cpp
@@ -37,6 +37,7 @@
#include "internet/amazon/amazonurlhandler.h"
#include "library/librarybackend.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
using std::chrono::seconds;
using std::placeholders::_1;
@@ -62,7 +63,7 @@ static const char* kDownloadEndpoint = "%1/nodes/%2/content";
AmazonCloudDrive::AmazonCloudDrive(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kServiceId,
- QIcon(":/providers/amazonclouddrive.png"),
+ IconLoader::Load("amazonclouddrive", IconLoader::Provider),
SettingsDialog::Page_AmazonCloudDrive),
network_(new NetworkAccessManager(this)) {
app->player()->RegisterUrlHandler(new AmazonUrlHandler(this, this));
diff --git a/src/internet/amazon/amazonsettingspage.cpp b/src/internet/amazon/amazonsettingspage.cpp
index 0fd41fcce..48ec4fd77 100644
--- a/src/internet/amazon/amazonsettingspage.cpp
+++ b/src/internet/amazon/amazonsettingspage.cpp
@@ -22,12 +22,15 @@
#include "internet/amazon/amazonclouddrive.h"
#include "internet/core/internetmodel.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
AmazonSettingsPage::AmazonSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
ui_(new Ui::AmazonSettingsPage),
service_(dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("amazon", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/box/boxservice.cpp b/src/internet/box/boxservice.cpp
index 3a39caaad..e461f543a 100644
--- a/src/internet/box/boxservice.cpp
+++ b/src/internet/box/boxservice.cpp
@@ -26,6 +26,7 @@
#include "internet/box/boxurlhandler.h"
#include "internet/core/oauthenticator.h"
#include "library/librarybackend.h"
+#include "ui/iconloader.h"
const char* BoxService::kServiceName = "Box";
const char* BoxService::kSettingsGroup = "Box";
@@ -49,7 +50,8 @@ static const char* kEvents = "https://api.box.com/2.0/events";
BoxService::BoxService(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kSettingsGroup,
- QIcon(":/providers/box.png"), SettingsDialog::Page_Box) {
+ IconLoader::Load("box", IconLoader::Provider),
+ SettingsDialog::Page_Box) {
app->player()->RegisterUrlHandler(new BoxUrlHandler(this, this));
}
diff --git a/src/internet/box/boxsettingspage.cpp b/src/internet/box/boxsettingspage.cpp
index c1c860bea..361394b5a 100644
--- a/src/internet/box/boxsettingspage.cpp
+++ b/src/internet/box/boxsettingspage.cpp
@@ -25,12 +25,15 @@
#include "internet/box/boxservice.h"
#include "internet/core/internetmodel.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
BoxSettingsPage::BoxSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
ui_(new Ui::BoxSettingsPage),
service_(dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("box", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/core/cloudfileservice.cpp b/src/internet/core/cloudfileservice.cpp
index c14c9d2bc..a4034c213 100644
--- a/src/internet/core/cloudfileservice.cpp
+++ b/src/internet/core/cloudfileservice.cpp
@@ -99,11 +99,13 @@ void CloudFileService::ShowContextMenu(const QPoint& global_pos) {
if (!context_menu_) {
context_menu_.reset(new QMenu);
context_menu_->addActions(GetPlaylistActions());
- context_menu_->addAction(IconLoader::Load("download"), tr("Cover Manager"),
- this, SLOT(ShowCoverManager()));
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
+ tr("Cover Manager"), this,
+ SLOT(ShowCoverManager()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("configure"), tr("Configure..."),
- this, SLOT(ShowSettingsDialog()));
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
+ tr("Configure..."), this,
+ SLOT(ShowSettingsDialog()));
}
context_menu_->popup(global_pos);
}
diff --git a/src/internet/core/internetservice.cpp b/src/internet/core/internetservice.cpp
index 57d0a4c06..39bfb1aa5 100644
--- a/src/internet/core/internetservice.cpp
+++ b/src/internet/core/internetservice.cpp
@@ -76,7 +76,8 @@ QList InternetService::GetPlaylistActions() {
QAction* InternetService::GetAppendToPlaylistAction() {
if (!append_to_playlist_) {
- append_to_playlist_ = new QAction(IconLoader::Load("media-playback-start"),
+ append_to_playlist_ = new QAction(IconLoader::Load("media-playback-start",
+ IconLoader::Base),
tr("Append to current playlist"), this);
connect(append_to_playlist_, SIGNAL(triggered()), this,
SLOT(AppendToPlaylist()));
@@ -87,7 +88,8 @@ QAction* InternetService::GetAppendToPlaylistAction() {
QAction* InternetService::GetReplacePlaylistAction() {
if (!replace_playlist_) {
- replace_playlist_ = new QAction(IconLoader::Load("media-playback-start"),
+ replace_playlist_ = new QAction(IconLoader::Load("media-playback-start",
+ IconLoader::Base),
tr("Replace current playlist"), this);
connect(replace_playlist_, SIGNAL(triggered()), this,
SLOT(ReplacePlaylist()));
@@ -98,7 +100,8 @@ QAction* InternetService::GetReplacePlaylistAction() {
QAction* InternetService::GetOpenInNewPlaylistAction() {
if (!open_in_new_playlist_) {
- open_in_new_playlist_ = new QAction(IconLoader::Load("document-new"),
+ open_in_new_playlist_ = new QAction(IconLoader::Load("document-new",
+ IconLoader::Base),
tr("Open in new playlist"), this);
connect(open_in_new_playlist_, SIGNAL(triggered()), this,
SLOT(OpenInNewPlaylist()));
diff --git a/src/internet/core/internetshowsettingspage.cpp b/src/internet/core/internetshowsettingspage.cpp
index 6df377921..4c271b170 100644
--- a/src/internet/core/internetshowsettingspage.cpp
+++ b/src/internet/core/internetshowsettingspage.cpp
@@ -19,6 +19,7 @@
#include "internetshowsettingspage.h"
#include "core/application.h"
+#include "ui/iconloader.h"
#include "ui/settingsdialog.h"
#include "internet/core/internetservice.h"
#include "internet/core/internetmodel.h"
@@ -28,6 +29,7 @@
InternetShowSettingsPage::InternetShowSettingsPage(SettingsDialog* parent)
: SettingsPage(parent), ui_(new Ui::InternetShowSettingsPage) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("internet-services", IconLoader::Base));
ui_->sources->header()->setResizeMode(0, QHeaderView::Stretch);
ui_->sources->header()->setResizeMode(1, QHeaderView::ResizeToContents);
diff --git a/src/internet/core/searchboxwidget.cpp b/src/internet/core/searchboxwidget.cpp
index 3c99796d4..62a95599a 100644
--- a/src/internet/core/searchboxwidget.cpp
+++ b/src/internet/core/searchboxwidget.cpp
@@ -35,13 +35,13 @@ SearchBoxWidget::SearchBoxWidget(InternetService* service)
ui_->setupUi(this);
// Icons
- ui_->options->setIcon(IconLoader::Load("configure"));
+ ui_->options->setIcon(IconLoader::Load("configure", IconLoader::Base));
// Options menu
menu_->setIcon(ui_->options->icon());
ui_->options->setMenu(menu_);
- menu_->addAction(IconLoader::Load("configure"),
+ menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
tr("Configure %1...").arg(service_->name()), service_,
SLOT(ShowConfig()));
diff --git a/src/internet/digitally/digitallyimportedservicebase.cpp b/src/internet/digitally/digitallyimportedservicebase.cpp
index 0c712bb0c..9965008b5 100644
--- a/src/internet/digitally/digitallyimportedservicebase.cpp
+++ b/src/internet/digitally/digitallyimportedservicebase.cpp
@@ -136,7 +136,8 @@ void DigitallyImportedServiceBase::PopulateStreams() {
SongFromChannel(channel, &song);
QStandardItem* item =
- new QStandardItem(QIcon(":/last.fm/icon_radio.png"), song.title());
+ new QStandardItem(IconLoader::Load("icon_radio",
+ IconLoader::Lastfm), song.title());
item->setData(channel.description_, Qt::ToolTipRole);
item->setData(InternetModel::PlayBehaviour_SingleItem,
InternetModel::Role_PlayBehaviour);
@@ -172,15 +173,16 @@ void DigitallyImportedServiceBase::ShowContextMenu(const QPoint& global_pos) {
if (!context_menu_) {
context_menu_.reset(new QMenu);
context_menu_->addActions(GetPlaylistActions());
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg(homepage_url_.host()),
this, SLOT(Homepage()));
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh streams"), this,
SLOT(ForceRefreshStreams()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("configure"), tr("Configure..."),
- this, SLOT(ShowSettingsDialog()));
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
+ tr("Configure..."), this,
+ SLOT(ShowSettingsDialog()));
}
context_menu_->popup(global_pos);
@@ -241,26 +243,30 @@ DigitallyImportedService::DigitallyImportedService(Application* app,
QObject* parent)
: DigitallyImportedServiceBase("DigitallyImported", "Digitally Imported",
QUrl("http://www.di.fm"),
- QIcon(":/providers/digitallyimported.png"),
+ IconLoader::Load("digitallyimported",
+ IconLoader::Provider),
"di", app, model, true, parent) {}
RadioTunesService::RadioTunesService(Application* app, InternetModel* model,
QObject* parent)
: DigitallyImportedServiceBase("RadioTunes", "RadioTunes.com",
QUrl("http://www.radiotunes.com/"),
- QIcon(":/providers/radiotunes.png"),
+ IconLoader::Load("radiotunes",
+ IconLoader::Provider),
"radiotunes", app, model, true, parent) {}
JazzRadioService::JazzRadioService(Application* app, InternetModel* model,
QObject* parent)
: DigitallyImportedServiceBase("JazzRadio", "JAZZRADIO.com",
QUrl("http://www.jazzradio.com"),
- QIcon(":/providers/jazzradio.png"),
+ IconLoader::Load("jazzradio",
+ IconLoader::Provider),
"jazzradio", app, model, true, parent) {}
RockRadioService::RockRadioService(Application* app, InternetModel* model,
QObject* parent)
: DigitallyImportedServiceBase("RockRadio", "ROCKRADIO.com",
QUrl("http://www.rockradio.com"),
- QIcon(":/providers/rockradio.png"),
+ IconLoader::Load("rockradio",
+ IconLoader::Provider),
"rockradio", app, model, false, parent) {}
diff --git a/src/internet/digitally/digitallyimportedsettingspage.cpp b/src/internet/digitally/digitallyimportedsettingspage.cpp
index 476773d27..2121e6905 100644
--- a/src/internet/digitally/digitallyimportedsettingspage.cpp
+++ b/src/internet/digitally/digitallyimportedsettingspage.cpp
@@ -27,6 +27,7 @@
#include "digitallyimportedclient.h"
#include "digitallyimportedservicebase.h"
#include "core/closure.h"
+#include "ui/iconloader.h"
DigitallyImportedSettingsPage::DigitallyImportedSettingsPage(
SettingsDialog* dialog)
@@ -34,7 +35,7 @@ DigitallyImportedSettingsPage::DigitallyImportedSettingsPage(
ui_(new Ui_DigitallyImportedSettingsPage),
client_(new DigitallyImportedClient("di", this)) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/providers/digitallyimported-32.png"));
+ setWindowIcon(IconLoader::Load("digitallyimported", IconLoader::Provider));
connect(ui_->login_state, SIGNAL(LogoutClicked()), SLOT(Logout()));
connect(ui_->login_state, SIGNAL(LoginClicked()), SLOT(Login()));
diff --git a/src/internet/digitally/digitallyimportedurlhandler.cpp b/src/internet/digitally/digitallyimportedurlhandler.cpp
index c2fea88b7..9f5707346 100644
--- a/src/internet/digitally/digitallyimportedurlhandler.cpp
+++ b/src/internet/digitally/digitallyimportedurlhandler.cpp
@@ -26,6 +26,7 @@
#include "core/logging.h"
#include "core/taskmanager.h"
#include "playlistparsers/playlistparser.h"
+#include "ui/iconloader.h"
DigitallyImportedUrlHandler::DigitallyImportedUrlHandler(
Application* app, DigitallyImportedServiceBase* service)
@@ -37,13 +38,13 @@ QString DigitallyImportedUrlHandler::scheme() const {
QIcon DigitallyImportedUrlHandler::icon() const {
if (scheme() == "di") {
- return QIcon(":providers/digitallyimported.png");
+ return IconLoader::Load("digitallyimported", IconLoader::Provider);
} else if (scheme() == "radiotunes") {
- return QIcon(":providers/radiotunes.png");
+ return IconLoader::Load("radiotunes", IconLoader::Provider);
} else if (scheme() == "jazzradio") {
- return QIcon(":providers/jazzradio.png");
+ return IconLoader::Load("jazzradio", IconLoader::Provider);
} else if (scheme() == "rockradio") {
- return QIcon(":providers/rockradio.png");
+ return IconLoader::Load("rockradio", IconLoader::Provider);
}
return QIcon();
}
diff --git a/src/internet/dropbox/dropboxservice.cpp b/src/internet/dropbox/dropboxservice.cpp
index 9448c0ee3..2341dd884 100644
--- a/src/internet/dropbox/dropboxservice.cpp
+++ b/src/internet/dropbox/dropboxservice.cpp
@@ -33,6 +33,7 @@
#include "internet/core/oauthenticator.h"
#include "internet/dropbox/dropboxurlhandler.h"
#include "library/librarybackend.h"
+#include "ui/iconloader.h"
using Utilities::ParseRFC822DateTime;
@@ -52,7 +53,7 @@ static const char* kLongPollEndpoint =
DropboxService::DropboxService(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kServiceId,
- QIcon(":/providers/dropbox.png"),
+ IconLoader::Load("dropbox", IconLoader::Provider),
SettingsDialog::Page_Dropbox),
network_(new NetworkAccessManager(this)) {
QSettings settings;
diff --git a/src/internet/dropbox/dropboxsettingspage.cpp b/src/internet/dropbox/dropboxsettingspage.cpp
index df982c2ad..603c7108f 100644
--- a/src/internet/dropbox/dropboxsettingspage.cpp
+++ b/src/internet/dropbox/dropboxsettingspage.cpp
@@ -24,6 +24,7 @@
#include "internet/dropbox/dropboxservice.h"
#include "internet/core/internetmodel.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
namespace {
static const char* kOAuthEndpoint =
@@ -40,6 +41,8 @@ DropboxSettingsPage::DropboxSettingsPage(SettingsDialog* parent)
ui_(new Ui::DropboxSettingsPage),
service_(dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("dropbox", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/googledrive/googledriveservice.cpp b/src/internet/googledrive/googledriveservice.cpp
index d7b106677..1465f3891 100644
--- a/src/internet/googledrive/googledriveservice.cpp
+++ b/src/internet/googledrive/googledriveservice.cpp
@@ -55,7 +55,7 @@ static const char* kServiceId = "google_drive";
GoogleDriveService::GoogleDriveService(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kServiceId,
- QIcon(":/providers/googledrive.png"),
+ IconLoader::Load("googledrive", IconLoader::Provider),
SettingsDialog::Page_GoogleDrive),
client_(new google_drive::Client(this)),
open_in_drive_action_(nullptr),
@@ -213,20 +213,23 @@ void GoogleDriveService::ShowContextMenu(const QPoint& global_pos) {
context_menu_.reset(new QMenu);
context_menu_->addActions(GetPlaylistActions());
open_in_drive_action_ = context_menu_->addAction(
- QIcon(":/providers/googledrive.png"), tr("Open in Google Drive"), this,
- SLOT(OpenWithDrive()));
+ IconLoader::Load("googledrive", IconLoader::Provider),
+ tr("Open in Google Drive"), this, SLOT(OpenWithDrive()));
context_menu_->addSeparator();
- update_action_ = context_menu_->addAction(IconLoader::Load("view-refresh"),
+ update_action_ = context_menu_->addAction(IconLoader::Load("view-refresh",
+ IconLoader::Base),
tr("Check for updates"), this,
SLOT(CheckForUpdates()));
full_rescan_action_ = context_menu_->addAction(
- IconLoader::Load("view-refresh"), tr("Do a full rescan..."), this,
- SLOT(ConfirmFullRescan()));
+ IconLoader::Load("view-refresh", IconLoader::Base),
+ tr("Do a full rescan..."), this, SLOT(ConfirmFullRescan()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("download"), tr("Cover Manager"),
- this, SLOT(ShowCoverManager()));
- context_menu_->addAction(IconLoader::Load("configure"), tr("Configure..."),
- this, SLOT(ShowSettingsDialog()));
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
+ tr("Cover Manager"), this,
+ SLOT(ShowCoverManager()));
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
+ tr("Configure..."), this,
+ SLOT(ShowSettingsDialog()));
}
// Only show some actions if there are real songs selected
diff --git a/src/internet/googledrive/googledrivesettingspage.cpp b/src/internet/googledrive/googledrivesettingspage.cpp
index 7a0c2b828..36bac70ba 100644
--- a/src/internet/googledrive/googledrivesettingspage.cpp
+++ b/src/internet/googledrive/googledrivesettingspage.cpp
@@ -27,6 +27,7 @@
#include "core/application.h"
#include "internet/core/internetmodel.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
GoogleDriveSettingsPage::GoogleDriveSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
@@ -34,6 +35,8 @@ GoogleDriveSettingsPage::GoogleDriveSettingsPage(SettingsDialog* parent)
service_(
dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("googledrive", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/icecast/icecastfilterwidget.cpp b/src/internet/icecast/icecastfilterwidget.cpp
index 7b6297215..993341544 100644
--- a/src/internet/icecast/icecastfilterwidget.cpp
+++ b/src/internet/icecast/icecastfilterwidget.cpp
@@ -38,7 +38,7 @@ IcecastFilterWidget::IcecastFilterWidget(QWidget* parent)
ui_->setupUi(this);
// Icons
- ui_->options->setIcon(IconLoader::Load("configure"));
+ ui_->options->setIcon(IconLoader::Load("configure", IconLoader::Base));
// Options actions
QActionGroup* group = new QActionGroup(this);
diff --git a/src/internet/icecast/icecastmodel.cpp b/src/internet/icecast/icecastmodel.cpp
index 98ef34493..26e0e898d 100644
--- a/src/internet/icecast/icecastmodel.cpp
+++ b/src/internet/icecast/icecastmodel.cpp
@@ -21,12 +21,14 @@
#include "icecastbackend.h"
#include "icecastmodel.h"
#include "playlist/songmimedata.h"
+#include "ui/iconloader.h"
+
IcecastModel::IcecastModel(IcecastBackend* backend, QObject* parent)
: SimpleTreeModel(new IcecastItem(this), parent),
backend_(backend),
sort_mode_(SortMode_GenreByPopularity),
- genre_icon_(":last.fm/icon_tag.png"),
- station_icon_(":last.fm/icon_radio.png") {
+ genre_icon_(IconLoader::Load("icon_tag", IconLoader::Lastfm)),
+ station_icon_(IconLoader::Load("icon_radio", IconLoader::Lastfm)) {
root_->lazy_loaded = true;
}
diff --git a/src/internet/icecast/icecastservice.cpp b/src/internet/icecast/icecastservice.cpp
index 978a1d9ee..416205340 100644
--- a/src/internet/icecast/icecastservice.cpp
+++ b/src/internet/icecast/icecastservice.cpp
@@ -75,7 +75,8 @@ IcecastService::IcecastService(Application* app, InternetModel* parent)
IcecastService::~IcecastService() {}
QStandardItem* IcecastService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":last.fm/icon_radio.png"), kServiceName);
+ root_ = new QStandardItem(IconLoader::Load("icon_radio",
+ IconLoader::Lastfm), kServiceName);
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
@@ -298,10 +299,10 @@ void IcecastService::EnsureMenuCreated() {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg("dir.xiph.org"), this,
SLOT(Homepage()));
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh station list"), this,
SLOT(LoadDirectory()));
diff --git a/src/internet/internetradio/savedradio.cpp b/src/internet/internetradio/savedradio.cpp
index 0343d5cfa..122d8ce96 100644
--- a/src/internet/internetradio/savedradio.cpp
+++ b/src/internet/internetradio/savedradio.cpp
@@ -49,8 +49,8 @@ SavedRadio::SavedRadio(Application* app, InternetModel* parent)
SavedRadio::~SavedRadio() { delete context_menu_; }
QStandardItem* SavedRadio::CreateRootItem() {
- root_ = new QStandardItem(IconLoader::Load("document-open-remote"),
- tr("Your radio streams"));
+ root_ = new QStandardItem(IconLoader::Load("document-open-remote",
+ IconLoader::Base), tr("Your radio streams"));
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
@@ -104,13 +104,15 @@ void SavedRadio::ShowContextMenu(const QPoint& global_pos) {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
remove_action_ = context_menu_->addAction(
- IconLoader::Load("list-remove"), tr("Remove"), this, SLOT(Remove()));
- edit_action_ = context_menu_->addAction(IconLoader::Load("edit-rename"),
- tr("Edit..."), this, SLOT(Edit()));
+ IconLoader::Load("list-remove", IconLoader::Base), tr("Remove"),
+ this, SLOT(Remove()));
+ edit_action_ = context_menu_->addAction(IconLoader::Load("edit-rename",
+ IconLoader::Base), tr("Edit..."),
+ this, SLOT(Edit()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("document-open-remote"),
- tr("Add another stream..."), this,
- SIGNAL(ShowAddStreamDialog()));
+ context_menu_->addAction(IconLoader::Load("document-open-remote",
+ IconLoader::Base), tr("Add another stream..."),
+ this, SIGNAL(ShowAddStreamDialog()));
}
const bool is_root =
@@ -163,7 +165,8 @@ void SavedRadio::Edit() {
void SavedRadio::AddStreamToList(const Stream& stream, QStandardItem* parent) {
QStandardItem* s =
- new QStandardItem(QIcon(":last.fm/icon_radio.png"), stream.name_);
+ new QStandardItem(IconLoader::Load("icon_radio", IconLoader::Lastfm),
+ stream.name_);
s->setData(stream.url_, InternetModel::Role_Url);
s->setData(InternetModel::PlayBehaviour_UseSongLoader,
InternetModel::Role_PlayBehaviour);
diff --git a/src/internet/jamendo/jamendoservice.cpp b/src/internet/jamendo/jamendoservice.cpp
index d68662e1d..aff708ac7 100644
--- a/src/internet/jamendo/jamendoservice.cpp
+++ b/src/internet/jamendo/jamendoservice.cpp
@@ -136,7 +136,7 @@ JamendoService::JamendoService(Application* app, InternetModel* parent)
search_provider_ = new LibrarySearchProvider(
library_backend_, tr("Jamendo"), "jamendo",
- QIcon(":/providers/jamendo.png"), false, app_, this);
+ IconLoader::Load("jamendo", IconLoader::Provider), false, app_, this);
app_->global_search()->AddProvider(search_provider_);
connect(app_->global_search(),
SIGNAL(ProviderToggled(const SearchProvider*, bool)),
@@ -147,7 +147,8 @@ JamendoService::~JamendoService() {}
QStandardItem* JamendoService::CreateRootItem() {
QStandardItem* item =
- new QStandardItem(QIcon(":providers/jamendo.png"), kServiceName);
+ new QStandardItem(IconLoader::Load("jamendo", IconLoader::Provider),
+ kServiceName);
item->setData(true, InternetModel::Role_CanLazyLoad);
return item;
}
@@ -423,17 +424,19 @@ void JamendoService::EnsureMenuCreated() {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
- album_info_ = context_menu_->addAction(IconLoader::Load("view-media-lyrics"),
+ album_info_ = context_menu_->addAction(IconLoader::Load("view-media-lyrics",
+ IconLoader::Base),
tr("Album info on jamendo.com..."),
this, SLOT(AlbumInfo()));
- download_album_ = context_menu_->addAction(IconLoader::Load("download"),
+ download_album_ = context_menu_->addAction(IconLoader::Load("download",
+ IconLoader::Base),
tr("Download this album..."), this,
SLOT(DownloadAlbum()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg("jamendo.com"), this,
SLOT(Homepage()));
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh catalogue"), this,
SLOT(DownloadDirectory()));
diff --git a/src/internet/lastfm/lastfmsettingspage.cpp b/src/internet/lastfm/lastfmsettingspage.cpp
index 22313aece..016a78a91 100644
--- a/src/internet/lastfm/lastfmsettingspage.cpp
+++ b/src/internet/lastfm/lastfmsettingspage.cpp
@@ -40,7 +40,7 @@ LastFMSettingsPage::LastFMSettingsPage(SettingsDialog* dialog)
ui_->setupUi(this);
// Icons
- setWindowIcon(QIcon(":/last.fm/as.png"));
+ setWindowIcon(IconLoader::Load("lastfm", IconLoader::Provider));
connect(service_, SIGNAL(AuthenticationComplete(bool, QString)),
SLOT(AuthenticationComplete(bool, QString)));
diff --git a/src/internet/magnatune/magnatuneservice.cpp b/src/internet/magnatune/magnatuneservice.cpp
index 7206e8808..104e23a7b 100644
--- a/src/internet/magnatune/magnatuneservice.cpp
+++ b/src/internet/magnatune/magnatuneservice.cpp
@@ -107,7 +107,8 @@ MagnatuneService::MagnatuneService(Application* app, InternetModel* parent)
app_->player()->RegisterUrlHandler(url_handler_);
app_->global_search()->AddProvider(new LibrarySearchProvider(
library_backend_, tr("Magnatune"), "magnatune",
- QIcon(":/providers/magnatune.png"), true, app_, this));
+ IconLoader::Load("magnatune", IconLoader::Provider),
+ true, app_, this));
}
MagnatuneService::~MagnatuneService() { delete context_menu_; }
@@ -123,7 +124,8 @@ void MagnatuneService::ReloadSettings() {
}
QStandardItem* MagnatuneService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":/providers/magnatune.png"), kServiceName);
+ root_ = new QStandardItem(IconLoader::Load("magnatune", IconLoader::Provider),
+ kServiceName);
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
@@ -276,19 +278,20 @@ void MagnatuneService::EnsureMenuCreated() {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
- download_ = context_menu_->addAction(IconLoader::Load("download"),
+ download_ = context_menu_->addAction(IconLoader::Load("download",
+ IconLoader::Base),
tr("Download this album"), this,
SLOT(Download()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg("magnatune.com"), this,
SLOT(Homepage()));
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh catalogue"), this,
SLOT(ReloadDatabase()));
QAction* config_action = context_menu_->addAction(
- IconLoader::Load("configure"), tr("Configure Magnatune..."), this,
- SLOT(ShowConfig()));
+ IconLoader::Load("configure", IconLoader::Base), tr("Configure Magnatune..."),
+ this, SLOT(ShowConfig()));
library_filter_ = new LibraryFilterWidget(0);
library_filter_->SetSettingsGroup(kSettingsGroup);
diff --git a/src/internet/magnatune/magnatunesettingspage.cpp b/src/internet/magnatune/magnatunesettingspage.cpp
index 4574e87dd..470404080 100644
--- a/src/internet/magnatune/magnatunesettingspage.cpp
+++ b/src/internet/magnatune/magnatunesettingspage.cpp
@@ -31,6 +31,7 @@
#include "magnatuneservice.h"
#include "internet/core/internetmodel.h"
#include "ui_magnatunesettingspage.h"
+#include "ui/iconloader.h"
MagnatuneSettingsPage::MagnatuneSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog),
@@ -38,7 +39,7 @@ MagnatuneSettingsPage::MagnatuneSettingsPage(SettingsDialog* dialog)
ui_(new Ui_MagnatuneSettingsPage),
logged_in_(false) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/providers/magnatune.png"));
+ setWindowIcon(IconLoader::Load("magnatune", IconLoader::Provider));
connect(ui_->membership, SIGNAL(currentIndexChanged(int)),
SLOT(MembershipChanged(int)));
diff --git a/src/internet/podcasts/addpodcastbyurl.cpp b/src/internet/podcasts/addpodcastbyurl.cpp
index 00aa13095..131ed65d6 100644
--- a/src/internet/podcasts/addpodcastbyurl.cpp
+++ b/src/internet/podcasts/addpodcastbyurl.cpp
@@ -27,6 +27,7 @@
#include "podcasturlloader.h"
#include "ui_addpodcastbyurl.h"
#include "core/closure.h"
+#include "ui/iconloader.h"
AddPodcastByUrl::AddPodcastByUrl(Application* app, QWidget* parent)
: AddPodcastPage(app, parent),
@@ -34,6 +35,7 @@ AddPodcastByUrl::AddPodcastByUrl(Application* app, QWidget* parent)
loader_(new PodcastUrlLoader(this)) {
ui_->setupUi(this);
connect(ui_->go, SIGNAL(clicked()), SLOT(GoClicked()));
+ setWindowIcon(IconLoader::Load("podcast", IconLoader::Provider));
}
AddPodcastByUrl::~AddPodcastByUrl() { delete ui_; }
diff --git a/src/internet/podcasts/addpodcastdialog.cpp b/src/internet/podcasts/addpodcastdialog.cpp
index 1e8c69496..5f368d06d 100644
--- a/src/internet/podcasts/addpodcastdialog.cpp
+++ b/src/internet/podcasts/addpodcastdialog.cpp
@@ -59,25 +59,29 @@ AddPodcastDialog::AddPodcastDialog(Application* app, QWidget* parent)
// Create Add and Remove Podcast buttons
add_button_ =
- new QPushButton(IconLoader::Load("list-add"), tr("Add Podcast"), this);
+ new QPushButton(IconLoader::Load("list-add", IconLoader::Base),
+ tr("Add Podcast"), this);
add_button_->setEnabled(false);
connect(add_button_, SIGNAL(clicked()), SLOT(AddPodcast()));
ui_->button_box->addButton(add_button_, QDialogButtonBox::ActionRole);
remove_button_ =
- new QPushButton(IconLoader::Load("list-remove"), tr("Unsubscribe"), this);
+ new QPushButton(IconLoader::Load("list-remove", IconLoader::Base),
+ tr("Unsubscribe"), this);
remove_button_->setEnabled(false);
connect(remove_button_, SIGNAL(clicked()), SLOT(RemovePodcast()));
ui_->button_box->addButton(remove_button_, QDialogButtonBox::ActionRole);
QPushButton* settings_button = new QPushButton(
- IconLoader::Load("configure"), tr("Configure podcasts..."), this);
+ IconLoader::Load("configure", IconLoader::Base),
+ tr("Configure podcasts..."), this);
connect(settings_button, SIGNAL(clicked()), SLOT(OpenSettingsPage()));
ui_->button_box->addButton(settings_button, QDialogButtonBox::ResetRole);
// Create an Open OPML file button
QPushButton* open_opml_button = new QPushButton(
- IconLoader::Load("document-open"), tr("Open OPML file..."), this);
+ IconLoader::Load("document-open", IconLoader::Base),
+ tr("Open OPML file..."), this);
connect(open_opml_button, SIGNAL(clicked()), this, SLOT(OpenOPMLFile()));
ui_->button_box->addButton(open_opml_button, QDialogButtonBox::ResetRole);
@@ -85,7 +89,8 @@ AddPodcastDialog::AddPodcastDialog(Application* app, QWidget* parent)
by_url_page_ = new AddPodcastByUrl(app, this);
AddPage(by_url_page_);
AddPage(new FixedOpmlPage(QUrl(kBbcOpmlUrl), tr("BBC Podcasts"),
- QIcon(":providers/bbc.png"), app, this));
+ IconLoader::Load("bbc", IconLoader::Provider),
+ app, this));
AddPage(new GPodderTopTagsPage(app, this));
AddPage(new GPodderSearchPage(app, this));
AddPage(new ITunesSearchPage(app, this));
diff --git a/src/internet/podcasts/gpoddersearchpage.cpp b/src/internet/podcasts/gpoddersearchpage.cpp
index 835ebb337..5f453c056 100644
--- a/src/internet/podcasts/gpoddersearchpage.cpp
+++ b/src/internet/podcasts/gpoddersearchpage.cpp
@@ -26,6 +26,7 @@
#include "ui_gpoddersearchpage.h"
#include "core/closure.h"
#include "core/network.h"
+#include "ui/iconloader.h"
GPodderSearchPage::GPodderSearchPage(Application* app, QWidget* parent)
: AddPodcastPage(app, parent),
@@ -34,6 +35,7 @@ GPodderSearchPage::GPodderSearchPage(Application* app, QWidget* parent)
api_(new mygpo::ApiRequest(network_)) {
ui_->setupUi(this);
connect(ui_->search, SIGNAL(clicked()), SLOT(SearchClicked()));
+ setWindowIcon(IconLoader::Load("mygpo", IconLoader::Provider));
}
GPodderSearchPage::~GPodderSearchPage() {
diff --git a/src/internet/podcasts/gpoddertoptagspage.cpp b/src/internet/podcasts/gpoddertoptagspage.cpp
index 269cdb9ce..506a46d37 100644
--- a/src/internet/podcasts/gpoddertoptagspage.cpp
+++ b/src/internet/podcasts/gpoddertoptagspage.cpp
@@ -24,6 +24,7 @@
#include "gpoddertoptagsmodel.h"
#include "core/closure.h"
#include "core/network.h"
+#include "ui/iconloader.h"
const int GPodderTopTagsPage::kMaxTagCount = 100;
@@ -33,7 +34,7 @@ GPodderTopTagsPage::GPodderTopTagsPage(Application* app, QWidget* parent)
api_(new mygpo::ApiRequest(network_)),
done_initial_load_(false) {
setWindowTitle(tr("gpodder.net directory"));
- setWindowIcon(QIcon(":providers/mygpo32.png"));
+ setWindowIcon(IconLoader::Load("mygpo", IconLoader::Provider));
SetModel(new GPodderTopTagsModel(api_, app, this));
}
diff --git a/src/internet/podcasts/itunessearchpage.cpp b/src/internet/podcasts/itunessearchpage.cpp
index a17005f95..20f9b2a6b 100644
--- a/src/internet/podcasts/itunessearchpage.cpp
+++ b/src/internet/podcasts/itunessearchpage.cpp
@@ -28,6 +28,7 @@
#include "podcast.h"
#include "podcastdiscoverymodel.h"
#include "ui_itunessearchpage.h"
+#include "ui/iconloader.h"
const char* ITunesSearchPage::kUrlBase =
"http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/"
@@ -39,6 +40,7 @@ ITunesSearchPage::ITunesSearchPage(Application* app, QWidget* parent)
network_(new NetworkAccessManager(this)) {
ui_->setupUi(this);
connect(ui_->search, SIGNAL(clicked()), SLOT(SearchClicked()));
+ setWindowIcon(IconLoader::Load("itunes", IconLoader::Provider));
}
ITunesSearchPage::~ITunesSearchPage() { delete ui_; }
diff --git a/src/internet/podcasts/podcastdiscoverymodel.cpp b/src/internet/podcasts/podcastdiscoverymodel.cpp
index 744dbb9d7..076562d90 100644
--- a/src/internet/podcasts/podcastdiscoverymodel.cpp
+++ b/src/internet/podcasts/podcastdiscoverymodel.cpp
@@ -32,7 +32,7 @@ PodcastDiscoveryModel::PodcastDiscoveryModel(Application* app, QObject* parent)
: QStandardItemModel(parent),
app_(app),
icon_loader_(new StandardItemIconLoader(app->album_cover_loader(), this)),
- default_icon_(":providers/podcast16.png") {
+ default_icon_(IconLoader::Load("podcast", IconLoader::Provider)) {
icon_loader_->SetModel(this);
}
@@ -63,7 +63,7 @@ QStandardItem* PodcastDiscoveryModel::CreatePodcastItem(
QStandardItem* PodcastDiscoveryModel::CreateFolder(const QString& name) {
if (folder_icon_.isNull()) {
- folder_icon_ = IconLoader::Load("folder");
+ folder_icon_ = IconLoader::Load("folder", IconLoader::Base);
}
QStandardItem* item = new QStandardItem;
diff --git a/src/internet/podcasts/podcastservice.cpp b/src/internet/podcasts/podcastservice.cpp
index a482d31d6..b6a824df2 100644
--- a/src/internet/podcasts/podcastservice.cpp
+++ b/src/internet/podcasts/podcastservice.cpp
@@ -128,7 +128,8 @@ bool PodcastSortProxyModel::lessThan(const QModelIndex& left,
}
QStandardItem* PodcastService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":providers/podcast16.png"), tr("Podcasts"));
+ root_ = new QStandardItem(IconLoader::Load("podcast", IconLoader::Provider),
+ tr("Podcasts"));
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
@@ -227,7 +228,7 @@ void PodcastService::PopulatePodcastList(QStandardItem* parent) {
SLOT(DownloadProgressChanged(PodcastEpisode, PodcastDownload::State, int)));
if (default_icon_.isNull()) {
- default_icon_ = QIcon(":providers/podcast16.png");
+ default_icon_ = IconLoader::Load("podcast", IconLoader::Provider);
}
for (const Podcast& podcast : backend_->GetAllSubscriptions()) {
@@ -277,7 +278,7 @@ void PodcastService::UpdateEpisodeText(QStandardItem* item,
// Downloaded episodes get an icon
if (episode.downloaded()) {
if (downloaded_icon_.isNull()) {
- downloaded_icon_ = IconLoader::Load("document-save");
+ downloaded_icon_ = IconLoader::Load("document-save", IconLoader::Base);
}
icon = downloaded_icon_;
}
@@ -286,7 +287,7 @@ void PodcastService::UpdateEpisodeText(QStandardItem* item,
switch (state) {
case PodcastDownload::Queued:
if (queued_icon_.isNull()) {
- queued_icon_ = QIcon(":icons/22x22/user-away.png");
+ queued_icon_ = IconLoader::Load("user-away", IconLoader::Base);
}
icon = queued_icon_;
tooltip = tr("Download queued");
@@ -294,7 +295,7 @@ void PodcastService::UpdateEpisodeText(QStandardItem* item,
case PodcastDownload::Downloading:
if (downloading_icon_.isNull()) {
- downloading_icon_ = IconLoader::Load("go-down");
+ downloading_icon_ = IconLoader::Load("go-down", IconLoader::Base);
}
icon = downloading_icon_;
tooltip = tr("Downloading (%1%)...").arg(percent);
@@ -324,7 +325,7 @@ void PodcastService::UpdatePodcastText(QStandardItem* item,
switch (state) {
case PodcastDownload::Queued:
if (queued_icon_.isNull()) {
- queued_icon_ = QIcon(":icons/22x22/user-away.png");
+ queued_icon_ = IconLoader::Load("user-away", IconLoader::Base);
}
icon = queued_icon_;
item->setIcon(icon);
@@ -333,7 +334,7 @@ void PodcastService::UpdatePodcastText(QStandardItem* item,
case PodcastDownload::Downloading:
if (downloading_icon_.isNull()) {
- downloading_icon_ = IconLoader::Load("go-down");
+ downloading_icon_ = IconLoader::Load("go-down", IconLoader::Base);
}
icon = downloading_icon_;
item->setIcon(icon);
@@ -413,9 +414,9 @@ QStandardItem* PodcastService::CreatePodcastEpisodeItem(
void PodcastService::ShowContextMenu(const QPoint& global_pos) {
if (!context_menu_) {
context_menu_ = new QMenu;
- context_menu_->addAction(IconLoader::Load("list-add"), tr("Add podcast..."),
- this, SLOT(AddPodcast()));
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("list-add", IconLoader::Base),
+ tr("Add podcast..."), this, SLOT(AddPodcast()));
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Update all podcasts"), app_->podcast_updater(),
SLOT(UpdateAllPodcastsNow()));
@@ -424,23 +425,24 @@ void PodcastService::ShowContextMenu(const QPoint& global_pos) {
context_menu_->addSeparator();
update_selected_action_ = context_menu_->addAction(
- IconLoader::Load("view-refresh"), tr("Update this podcast"), this,
- SLOT(UpdateSelectedPodcast()));
+ IconLoader::Load("view-refresh", IconLoader::Base),
+ tr("Update this podcast"), this, SLOT(UpdateSelectedPodcast()));
download_selected_action_ =
- context_menu_->addAction(IconLoader::Load("download"), "", this,
- SLOT(DownloadSelectedEpisode()));
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
+ "", this, SLOT(DownloadSelectedEpisode()));
delete_downloaded_action_ = context_menu_->addAction(
- IconLoader::Load("edit-delete"), tr("Delete downloaded data"), this,
- SLOT(DeleteDownloadedData()));
+ IconLoader::Load("edit-delete", IconLoader::Base),
+ tr("Delete downloaded data"), this, SLOT(DeleteDownloadedData()));
copy_to_device_ = context_menu_->addAction(
- IconLoader::Load("multimedia-player-ipod-mini-blue"),
+ IconLoader::Load("multimedia-player-ipod-mini-blue", IconLoader::Base),
tr("Copy to device..."), this, SLOT(CopyToDevice()));
- cancel_download_ = context_menu_->addAction(IconLoader::Load("cancel"),
+ cancel_download_ = context_menu_->addAction(IconLoader::Load("cancel",
+ IconLoader::Base),
tr("Cancel download"), this,
SLOT(CancelDownload()));
remove_selected_action_ = context_menu_->addAction(
- IconLoader::Load("list-remove"), tr("Unsubscribe"), this,
- SLOT(RemoveSelectedPodcast()));
+ IconLoader::Load("list-remove", IconLoader::Base), tr("Unsubscribe"),
+ this, SLOT(RemoveSelectedPodcast()));
context_menu_->addSeparator();
set_new_action_ =
@@ -449,7 +451,7 @@ void PodcastService::ShowContextMenu(const QPoint& global_pos) {
this, SLOT(SetListened()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("configure"),
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
tr("Configure podcasts..."), this,
SLOT(ShowConfig()));
diff --git a/src/internet/podcasts/podcastsettingspage.cpp b/src/internet/podcasts/podcastsettingspage.cpp
index 3915a7836..23404dd5a 100644
--- a/src/internet/podcasts/podcastsettingspage.cpp
+++ b/src/internet/podcasts/podcastsettingspage.cpp
@@ -32,12 +32,15 @@
#include "library/librarymodel.h"
#include "podcastdownloader.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
const char* PodcastSettingsPage::kSettingsGroup = "Podcasts";
PodcastSettingsPage::PodcastSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_PodcastSettingsPage) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("podcast", IconLoader::Provider));
+
connect(ui_->login, SIGNAL(clicked()), SLOT(LoginClicked()));
connect(ui_->login_state, SIGNAL(LoginClicked()), SLOT(LoginClicked()));
connect(ui_->login_state, SIGNAL(LogoutClicked()), SLOT(LogoutClicked()));
diff --git a/src/internet/seafile/seafileservice.cpp b/src/internet/seafile/seafileservice.cpp
index 9bb4451a5..69909513e 100644
--- a/src/internet/seafile/seafileservice.cpp
+++ b/src/internet/seafile/seafileservice.cpp
@@ -32,6 +32,7 @@
#include "internet/seafile/seafileurlhandler.h"
#include "library/librarybackend.h"
#include "internet/core/oauthenticator.h"
+#include "ui/iconloader.h"
const char* SeafileService::kServiceName = "Seafile";
const char* SeafileService::kSettingsGroup = "Seafile";
@@ -51,7 +52,7 @@ static const int kMaxTries = 10;
SeafileService::SeafileService(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kSettingsGroup,
- QIcon(":/providers/seafile.png"),
+ IconLoader::Load("seafile", IconLoader::Provider),
SettingsDialog::Page_Seafile),
indexing_task_id_(-1),
indexing_task_max_(0),
diff --git a/src/internet/seafile/seafilesettingspage.cpp b/src/internet/seafile/seafilesettingspage.cpp
index d87026606..e2867ed43 100644
--- a/src/internet/seafile/seafilesettingspage.cpp
+++ b/src/internet/seafile/seafilesettingspage.cpp
@@ -38,7 +38,7 @@ SeafileSettingsPage::SeafileSettingsPage(SettingsDialog* dialog)
service_(InternetModel::Service()) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/providers/seafile.png"));
+ setWindowIcon(IconLoader::Load("seafile", IconLoader::Provider));
connect(ui_->login_button, SIGNAL(clicked()), SLOT(Login()));
connect(ui_->login_state, SIGNAL(LogoutClicked()), SLOT(Logout()));
diff --git a/src/internet/skydrive/skydriveservice.cpp b/src/internet/skydrive/skydriveservice.cpp
index 91bfce90c..e32d22e25 100644
--- a/src/internet/skydrive/skydriveservice.cpp
+++ b/src/internet/skydrive/skydriveservice.cpp
@@ -28,6 +28,7 @@
#include "core/waitforsignal.h"
#include "internet/core/oauthenticator.h"
#include "internet/skydrive/skydriveurlhandler.h"
+#include "ui/iconloader.h"
namespace {
@@ -52,7 +53,7 @@ const char* SkydriveService::kSettingsGroup = "Skydrive";
SkydriveService::SkydriveService(Application* app, InternetModel* parent)
: CloudFileService(app, parent, kServiceName, kServiceId,
- QIcon(":providers/skydrive.png"),
+ IconLoader::Load("skydrive", IconLoader::Provider),
SettingsDialog::Page_Skydrive) {
app->player()->RegisterUrlHandler(new SkydriveUrlHandler(this, this));
}
diff --git a/src/internet/skydrive/skydrivesettingspage.cpp b/src/internet/skydrive/skydrivesettingspage.cpp
index 7dfe83ad2..487d8451b 100644
--- a/src/internet/skydrive/skydrivesettingspage.cpp
+++ b/src/internet/skydrive/skydrivesettingspage.cpp
@@ -25,12 +25,15 @@
#include "internet/skydrive/skydriveservice.h"
#include "internet/core/internetmodel.h"
#include "ui/settingsdialog.h"
+#include "ui/iconloader.h"
SkydriveSettingsPage::SkydriveSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
ui_(new Ui::SkydriveSettingsPage),
service_(dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("skydrive", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/somafm/somafmservice.cpp b/src/internet/somafm/somafmservice.cpp
index 616d591d1..efb3251bd 100644
--- a/src/internet/somafm/somafmservice.cpp
+++ b/src/internet/somafm/somafmservice.cpp
@@ -98,16 +98,16 @@ void SomaFMServiceBase::ShowContextMenu(const QPoint& global_pos) {
if (!context_menu_) {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg(homepage_url_.host()),
this, SLOT(Homepage()));
if (!donate_page_url_.isEmpty()) {
- context_menu_->addAction(IconLoader::Load("download"), tr("Donate"), this,
- SLOT(Donate()));
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
+ tr("Donate"), this, SLOT(Donate()));
}
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh channels"), this,
SLOT(ForceRefreshStreams()));
}
@@ -233,7 +233,8 @@ void SomaFMServiceBase::PopulateStreams() {
for (const Stream& stream : streams_) {
QStandardItem* item =
- new QStandardItem(QIcon(":last.fm/icon_radio.png"), QString());
+ new QStandardItem(IconLoader::Load("icon_radio", IconLoader::Lastfm),
+ QString());
item->setText(stream.title_);
item->setData(QVariant::fromValue(stream.ToSong(name_)),
InternetModel::Role_SongMetadata);
@@ -263,4 +264,5 @@ void SomaFMServiceBase::ReloadSettings() {
SomaFMService::SomaFMService(Application* app, InternetModel* parent)
: SomaFMServiceBase(
app, parent, "SomaFM", QUrl("https://somafm.com/channels.xml"),
- QUrl("https://somafm.com"), QUrl(), QIcon(":providers/somafm.png")) {}
+ QUrl("https://somafm.com"), QUrl(), IconLoader::Load("somafm",
+ IconLoader::Provider)) {}
diff --git a/src/internet/soundcloud/soundcloudservice.cpp b/src/internet/soundcloud/soundcloudservice.cpp
index 4883afa96..0bfc63953 100644
--- a/src/internet/soundcloud/soundcloudservice.cpp
+++ b/src/internet/soundcloud/soundcloudservice.cpp
@@ -92,7 +92,8 @@ SoundCloudService::SoundCloudService(Application* app, InternetModel* parent)
SoundCloudService::~SoundCloudService() {}
QStandardItem* SoundCloudService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":providers/soundcloud.png"), kServiceName);
+ root_ = new QStandardItem(IconLoader::Load("soundcloud",
+ IconLoader::Provider), kServiceName);
root_->setData(true, InternetModel::Role_CanLazyLoad);
root_->setData(InternetModel::PlayBehaviour_DoubleClickAction,
InternetModel::Role_PlayBehaviour);
@@ -113,7 +114,8 @@ void SoundCloudService::LazyPopulate(QStandardItem* item) {
void SoundCloudService::EnsureItemsCreated() {
if (!search_) {
search_ =
- new QStandardItem(IconLoader::Load("edit-find"), tr("Search results"));
+ new QStandardItem(IconLoader::Load("edit-find", IconLoader::Base),
+ tr("Search results"));
search_->setToolTip(
tr("Start typing something on the search box above to "
"fill this search results list"));
@@ -347,7 +349,7 @@ void SoundCloudService::EnsureMenuCreated() {
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("download"),
+ context_menu_->addAction(IconLoader::Load("download", IconLoader::Base),
tr("Open %1 in browser").arg("soundcloud.com"),
this, SLOT(Homepage()));
}
diff --git a/src/internet/soundcloud/soundcloudsettingspage.cpp b/src/internet/soundcloud/soundcloudsettingspage.cpp
index 4382a4f5e..ac51242f9 100644
--- a/src/internet/soundcloud/soundcloudsettingspage.cpp
+++ b/src/internet/soundcloud/soundcloudsettingspage.cpp
@@ -21,6 +21,7 @@
#include "ui_soundcloudsettingspage.h"
#include "core/application.h"
#include "internet/core/internetmodel.h"
+#include "ui/iconloader.h"
SoundCloudSettingsPage::SoundCloudSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
@@ -28,6 +29,8 @@ SoundCloudSettingsPage::SoundCloudSettingsPage(SettingsDialog* parent)
service_(
dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("soundcloud", IconLoader::Provider));
+
ui_->login_state->AddCredentialGroup(ui_->login_container);
connect(ui_->login_button, SIGNAL(clicked()), SLOT(LoginClicked()));
diff --git a/src/internet/spotify/spotifyservice.cpp b/src/internet/spotify/spotifyservice.cpp
index 278d3aad9..551ec8f7e 100644
--- a/src/internet/spotify/spotifyservice.cpp
+++ b/src/internet/spotify/spotifyservice.cpp
@@ -125,7 +125,8 @@ SpotifyService::~SpotifyService() {
}
QStandardItem* SpotifyService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":icons/22x22/spotify.png"), kServiceName);
+ root_ = new QStandardItem(IconLoader::Load("spotify", IconLoader::Provider),
+ kServiceName);
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
@@ -403,7 +404,8 @@ void SpotifyService::PlaylistsUpdated(const pb::spotify::Playlists& response) {
// Create starred and inbox playlists if they're not here already
if (!search_) {
search_ =
- new QStandardItem(IconLoader::Load("edit-find"), tr("Search results"));
+ new QStandardItem(IconLoader::Load("edit-find", IconLoader::Base),
+ tr("Search results"));
search_->setToolTip(
tr("Start typing something on the search box above to "
"fill this search results list"));
@@ -418,7 +420,8 @@ void SpotifyService::PlaylistsUpdated(const pb::spotify::Playlists& response) {
InternetModel::Role_PlayBehaviour);
starred_->setData(true, InternetModel::Role_CanBeModified);
- inbox_ = new QStandardItem(IconLoader::Load("mail-message"), tr("Inbox"));
+ inbox_ = new QStandardItem(IconLoader::Load("mail-message",
+ IconLoader::Base), tr("Inbox"));
inbox_->setData(Type_InboxPlaylist, InternetModel::Role_Type);
inbox_->setData(true, InternetModel::Role_CanLazyLoad);
inbox_->setData(InternetModel::PlayBehaviour_MultipleItems,
@@ -613,7 +616,8 @@ QList SpotifyService::playlistitem_actions(const Song& song) {
playlistitem_actions_.append(add_to_starred);
// Create a menu with 'add to playlist' actions for each Spotify playlist
- QAction* add_to_playlists = new QAction(IconLoader::Load("list-add"),
+ QAction* add_to_playlists = new QAction(IconLoader::Load("list-add",
+ IconLoader::Base),
tr("Add to Spotify playlists"), this);
QMenu* playlists_menu = new QMenu();
for (const QStandardItem* playlist_item : playlists_) {
@@ -659,8 +663,8 @@ void SpotifyService::EnsureMenuCreated() {
playlist_context_menu_->addActions(GetPlaylistActions());
playlist_context_menu_->addSeparator();
playlist_sync_action_ = playlist_context_menu_->addAction(
- IconLoader::Load("view-refresh"), tr("Make playlist available offline"),
- this, SLOT(SyncPlaylist()));
+ IconLoader::Load("view-refresh", IconLoader::Base),
+ tr("Make playlist available offline"), this, SLOT(SyncPlaylist()));
get_url_to_share_playlist_ = playlist_context_menu_->addAction(
tr("Get a URL to share this playlist"), this,
SLOT(GetCurrentPlaylistUrlToShare()));
@@ -671,7 +675,8 @@ void SpotifyService::EnsureMenuCreated() {
song_context_menu_->addActions(GetPlaylistActions());
song_context_menu_->addSeparator();
remove_from_playlist_ = song_context_menu_->addAction(
- IconLoader::Load("list-remove"), tr("Remove from playlist"), this,
+ IconLoader::Load("list-remove", IconLoader::Base),
+ tr("Remove from playlist"), this,
SLOT(RemoveCurrentFromPlaylist()));
song_context_menu_->addAction(tr("Get a URL to share this Spotify song"),
this, SLOT(GetCurrentSongUrlToShare()));
@@ -909,7 +914,8 @@ void SpotifyService::SyncPlaylistProgress(
}
QAction* SpotifyService::GetNewShowConfigAction() {
- QAction* action = new QAction(IconLoader::Load("configure"),
+ QAction* action = new QAction(IconLoader::Load("configure",
+ IconLoader::Base),
tr("Configure Spotify..."), this);
connect(action, SIGNAL(triggered()), this, SLOT(ShowConfig()));
return action;
diff --git a/src/internet/spotify/spotifysettingspage.cpp b/src/internet/spotify/spotifysettingspage.cpp
index 4a35de177..51ec5a92c 100644
--- a/src/internet/spotify/spotifysettingspage.cpp
+++ b/src/internet/spotify/spotifysettingspage.cpp
@@ -41,7 +41,7 @@ SpotifySettingsPage::SpotifySettingsPage(SettingsDialog* dialog)
validated_(false) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/icons/48x48/spotify.png"));
+ setWindowIcon(IconLoader::Load("spotify", IconLoader::Provider));
QFont bold_font(font());
bold_font.setBold(true);
diff --git a/src/internet/subsonic/subsonicservice.cpp b/src/internet/subsonic/subsonicservice.cpp
index 29a18f375..4d1b73fe1 100644
--- a/src/internet/subsonic/subsonicservice.cpp
+++ b/src/internet/subsonic/subsonicservice.cpp
@@ -105,12 +105,12 @@ SubsonicService::SubsonicService(Application* app, InternetModel* parent)
context_menu_ = new QMenu;
context_menu_->addActions(GetPlaylistActions());
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("view-refresh"),
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
tr("Refresh catalogue"), this,
SLOT(ReloadDatabase()));
QAction* config_action = context_menu_->addAction(
- IconLoader::Load("configure"), tr("Configure Subsonic..."), this,
- SLOT(ShowConfig()));
+ IconLoader::Load("configure", IconLoader::Base), tr("Configure Subsonic..."),
+ this, SLOT(ShowConfig()));
context_menu_->addSeparator();
context_menu_->addMenu(library_filter_->menu());
@@ -118,13 +118,14 @@ SubsonicService::SubsonicService(Application* app, InternetModel* parent)
app_->global_search()->AddProvider(new LibrarySearchProvider(
library_backend_, tr("Subsonic"), "subsonic",
- QIcon(":/providers/subsonic.png"), true, app_, this));
+ IconLoader::Load("subsonic", IconLoader::Provider), true, app_, this));
}
SubsonicService::~SubsonicService() {}
QStandardItem* SubsonicService::CreateRootItem() {
- root_ = new QStandardItem(QIcon(":providers/subsonic.png"), kServiceName);
+ root_ = new QStandardItem(IconLoader::Load("subsonic", IconLoader::Provider),
+ kServiceName);
root_->setData(true, InternetModel::Role_CanLazyLoad);
return root_;
}
diff --git a/src/internet/subsonic/subsonicsettingspage.cpp b/src/internet/subsonic/subsonicsettingspage.cpp
index 47c53bfce..a48509f3b 100644
--- a/src/internet/subsonic/subsonicsettingspage.cpp
+++ b/src/internet/subsonic/subsonicsettingspage.cpp
@@ -25,13 +25,14 @@
#include "core/logging.h"
#include "internet/core/internetmodel.h"
+#include "ui/iconloader.h"
SubsonicSettingsPage::SubsonicSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog),
ui_(new Ui_SubsonicSettingsPage),
service_(InternetModel::Service()) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/providers/subsonic-32.png"));
+ setWindowIcon(IconLoader::Load("subsonic", IconLoader::Provider));
connect(ui_->server, SIGNAL(editingFinished()),
SLOT(ServerEditingFinished()));
diff --git a/src/internet/vk/vksearchdialog.cpp b/src/internet/vk/vksearchdialog.cpp
index c1314e568..e6eb65737 100644
--- a/src/internet/vk/vksearchdialog.cpp
+++ b/src/internet/vk/vksearchdialog.cpp
@@ -23,6 +23,7 @@
#include
#include "vkservice.h"
+#include "ui/iconloader.h"
VkSearchDialog::VkSearchDialog(VkService* service, QWidget* parent)
: QDialog(parent),
@@ -185,9 +186,9 @@ QTreeWidgetItem* VkSearchDialog::createItem(const MusicOwner& own) {
QTreeWidgetItem* item = new QTreeWidgetItem(popup);
item->setText(0, own.name());
if (own.id() > 0) {
- item->setIcon(0, QIcon(":vk/user.png"));
+ item->setIcon(0, IconLoader::Load("x-clementine-artist", IconLoader::Base));
} else {
- item->setIcon(0, QIcon(":vk/group.png"));
+ item->setIcon(0, IconLoader::Load("group", IconLoader::Base));
}
item->setData(0, Qt::UserRole, QVariant::fromValue(own));
item->setText(1, QString::number(own.song_count()));
diff --git a/src/internet/vk/vkservice.cpp b/src/internet/vk/vkservice.cpp
index 0efa893dd..a86b826ac 100644
--- a/src/internet/vk/vkservice.cpp
+++ b/src/internet/vk/vkservice.cpp
@@ -266,7 +266,8 @@ VkService::~VkService() {}
*/
QStandardItem* VkService::CreateRootItem() {
- root_item_ = new QStandardItem(QIcon(":providers/vk.png"), kServiceName);
+ root_item_ = new QStandardItem(IconLoader::Load("vk", IconLoader::Provider),
+ kServiceName);
root_item_->setData(true, InternetModel::Role_CanLazyLoad);
return root_item_;
}
@@ -304,45 +305,49 @@ void VkService::EnsureMenuCreated() {
context_menu_->addSeparator();
add_to_bookmarks_ =
- context_menu_->addAction(QIcon(":vk/add.png"), tr("Add to bookmarks"),
- this, SLOT(AddSelectedToBookmarks()));
+ context_menu_->addAction(IconLoader::Load("list-add", IconLoader::Base),
+ tr("Add to bookmarks"), this,
+ SLOT(AddSelectedToBookmarks()));
remove_from_bookmarks_ = context_menu_->addAction(
- QIcon(":vk/remove.png"), tr("Remove from bookmarks"), this,
- SLOT(RemoveFromBookmark()));
+ IconLoader::Load("list-remove", IconLoader::Base), tr("Remove from bookmarks"),
+ this, SLOT(RemoveFromBookmark()));
context_menu_->addSeparator();
find_this_artist_ =
- context_menu_->addAction(QIcon(":vk/find.png"), tr("Find this artist"),
- this, SLOT(FindThisArtist()));
+ context_menu_->addAction(IconLoader::Load("edit-find", IconLoader::Base),
+ tr("Find this artist"), this,
+ SLOT(FindThisArtist()));
add_to_my_music_ =
- context_menu_->addAction(QIcon(":vk/add.png"), tr("Add to My Music"),
- this, SLOT(AddToMyMusic()));
+ context_menu_->addAction(IconLoader::Load("list-add", IconLoader::Base),
+ tr("Add to My Music"), this, SLOT(AddToMyMusic()));
remove_from_my_music_ = context_menu_->addAction(
- QIcon(":vk/remove.png"), tr("Remove from My Music"), this,
- SLOT(RemoveFromMyMusic()));
+ IconLoader::Load("list-remove", IconLoader::Base), tr("Remove from My Music"),
+ this, SLOT(RemoveFromMyMusic()));
- add_song_to_cache_ = context_menu_->addAction(QIcon(":vk/download.png"),
+ add_song_to_cache_ = context_menu_->addAction(IconLoader::Load("download",
+ IconLoader::Base),
tr("Add song to cache"), this,
SLOT(AddSelectedToCache()));
copy_share_url_ = context_menu_->addAction(
- QIcon(":vk/link.png"), tr("Copy share url to clipboard"), this,
- SLOT(CopyShareUrl()));
+ IconLoader::Load("link", IconLoader::Base), tr("Copy share url to clipboard"),
+ this, SLOT(CopyShareUrl()));
- find_owner_ = context_menu_->addAction(QIcon(":vk/find.png"),
+ find_owner_ = context_menu_->addAction(IconLoader::Load("edit-find",
+ IconLoader::Base),
tr("Add user/group to bookmarks"),
this, SLOT(ShowSearchDialog()));
update_item_ =
- context_menu_->addAction(IconLoader::Load("view-refresh"), tr("Update"),
- this, SLOT(UpdateItem()));
+ context_menu_->addAction(IconLoader::Load("view-refresh", IconLoader::Base),
+ tr("Update"), this, SLOT(UpdateItem()));
context_menu_->addSeparator();
- context_menu_->addAction(IconLoader::Load("configure"),
+ context_menu_->addAction(IconLoader::Load("configure", IconLoader::Base),
tr("Configure Vk.com..."), this,
SLOT(ShowConfig()));
}
@@ -515,7 +520,8 @@ QStandardItem* VkService::CreateAndAppendRow(QStandardItem* parent,
break;
case Type_Recommendations:
- item = new QStandardItem(QIcon(":vk/recommends.png"),
+ item = new QStandardItem(IconLoader::Load("audio-headset",
+ IconLoader::Base),
tr("My Recommendations"));
item->setData(true, InternetModel::Role_CanLazyLoad);
item->setData(InternetModel::PlayBehaviour_MultipleItems,
@@ -524,7 +530,8 @@ QStandardItem* VkService::CreateAndAppendRow(QStandardItem* parent,
break;
case Type_Search:
- item = new QStandardItem(QIcon(":vk/find.png"), tr("Search"));
+ item = new QStandardItem(IconLoader::Load("edit-find",
+ IconLoader::Base), tr("Search"));
item->setData(InternetModel::PlayBehaviour_MultipleItems,
InternetModel::Role_PlayBehaviour);
search_result_item_ = item;
@@ -760,9 +767,9 @@ void VkService::LoadBookmarks() {
QStandardItem* VkService::AppendBookmark(const MusicOwner& owner) {
QIcon icon;
if (owner.id() > 0) {
- icon = QIcon(":vk/user.png");
+ icon = IconLoader::Load("x-clementine-artist", IconLoader::Base);
} else {
- icon = QIcon(":vk/group.png");
+ icon = IconLoader::Load("group", IconLoader::Base);
}
QStandardItem* item = new QStandardItem(icon, owner.name());
@@ -809,7 +816,8 @@ void VkService::LoadAlbums(QStandardItem* parent, const MusicOwner& owner) {
QStandardItem* VkService::AppendAlbum(QStandardItem* parent,
const Vreen::AudioAlbumItem& album) {
QStandardItem* item =
- new QStandardItem(QIcon(":vk/playlist.png"), album.title());
+ new QStandardItem(IconLoader::Load("view-media-playlist", IconLoader::Base),
+ album.title());
item->setData(QVariant::fromValue(album), Role_AlbumMetadata);
item->setData(Type_Album, InternetModel::Role_Type);
@@ -826,14 +834,16 @@ QStandardItem* VkService::AppendAlbumList(QStandardItem* parent, bool myself) {
QStandardItem* item;
if (myself) {
- item = new QStandardItem(QIcon(":vk/discography.png"), tr("My Albums"));
+ item = new QStandardItem(IconLoader::Load("x-clementine-album",
+ IconLoader::Base), tr("My Albums"));
// TODO(Ivan Leontiev): Do this better. We have incomplete MusicOwner
// instance for logged in user.
owner.setId(UserID());
my_albums_item_ = item;
} else {
owner = parent->data(Role_MusicOwnerMetadata).value();
- item = new QStandardItem(QIcon(":vk/discography.png"), tr("Albums"));
+ item = new QStandardItem(IconLoader::Load("x-clementine-album",
+ IconLoader::Base), tr("Albums"));
}
item->setData(QVariant::fromValue(owner), Role_MusicOwnerMetadata);
@@ -866,7 +876,8 @@ void VkService::UpdateAlbumSongs(QStandardItem* item) {
QStandardItem* VkService::AppendWall(QStandardItem* parent) {
QStandardItem* item =
- new QStandardItem(QIcon(":vk/playlist.png"), tr("Wall"));
+ new QStandardItem(IconLoader::Load("view-media-playlist",
+ IconLoader::Base), tr("Wall"));
MusicOwner owner = parent->data(Role_MusicOwnerMetadata).value();
item->setData(QVariant::fromValue(owner), Role_MusicOwnerMetadata);
@@ -884,13 +895,15 @@ QStandardItem* VkService::AppendMusic(QStandardItem* parent, bool myself) {
QStandardItem* item;
if (myself) {
- item = new QStandardItem(QIcon(":vk/my_music.png"), tr("My Music"));
+ item = new QStandardItem(IconLoader::Load("love", IconLoader::Lastfm),
+ tr("My Music"));
// TODO(Ivan Leontiev): Do this better. We have incomplete MusicOwner
// instance for logged in user.
owner.setId(UserID());
my_music_item_ = item;
} else {
- item = new QStandardItem(QIcon(":vk/playlist.png"), tr("Music"));
+ item = new QStandardItem(IconLoader::Load("view-media-playlist",
+ IconLoader::Base), tr("Music"));
owner = parent->data(Role_MusicOwnerMetadata).value();
}
diff --git a/src/internet/vk/vksettingspage.cpp b/src/internet/vk/vksettingspage.cpp
index 70f38315d..fd4584176 100644
--- a/src/internet/vk/vksettingspage.cpp
+++ b/src/internet/vk/vksettingspage.cpp
@@ -25,12 +25,15 @@
#include "core/application.h"
#include "core/logging.h"
#include "internet/vk/vkservice.h"
+#include "ui/iconloader.h"
VkSettingsPage::VkSettingsPage(SettingsDialog* parent)
: SettingsPage(parent),
ui_(new Ui::VkSettingsPage),
service_(dialog()->app()->internet_model()->Service()) {
ui_->setupUi(this);
+ setWindowIcon(IconLoader::Load("vk", IconLoader::Provider));
+
connect(service_, SIGNAL(LoginSuccess(bool)), SLOT(LoginSuccess(bool)));
connect(ui_->choose_path, SIGNAL(clicked()), SLOT(CacheDirBrowse()));
connect(ui_->reset, SIGNAL(clicked()), SLOT(ResetCasheFilenames()));
diff --git a/src/library/librarydirectorymodel.cpp b/src/library/librarydirectorymodel.cpp
index afe18c783..921581cee 100644
--- a/src/library/librarydirectorymodel.cpp
+++ b/src/library/librarydirectorymodel.cpp
@@ -26,7 +26,7 @@
LibraryDirectoryModel::LibraryDirectoryModel(LibraryBackend* backend,
QObject* parent)
: QStandardItemModel(parent),
- dir_icon_(IconLoader::Load("document-open-folder")),
+ dir_icon_(IconLoader::Load("document-open-folder", IconLoader::Base)),
backend_(backend) {
connect(backend_, SIGNAL(DirectoryDiscovered(Directory, SubdirectoryList)),
SLOT(DirectoryDiscovered(Directory)));
diff --git a/src/library/libraryfilterwidget.cpp b/src/library/libraryfilterwidget.cpp
index 9060c58f6..b552f3cb6 100644
--- a/src/library/libraryfilterwidget.cpp
+++ b/src/library/libraryfilterwidget.cpp
@@ -55,7 +55,7 @@ LibraryFilterWidget::LibraryFilterWidget(QWidget* parent)
filter_delay_->setSingleShot(true);
// Icons
- ui_->options->setIcon(IconLoader::Load("configure"));
+ ui_->options->setIcon(IconLoader::Load("configure", IconLoader::Base));
// Filter by age
QActionGroup* filter_age_group = new QActionGroup(this);
diff --git a/src/library/librarymodel.cpp b/src/library/librarymodel.cpp
index d26081dde..c4666fdfa 100644
--- a/src/library/librarymodel.cpp
+++ b/src/library/librarymodel.cpp
@@ -84,10 +84,10 @@ LibraryModel::LibraryModel(LibraryBackend* backend, Application* app,
show_smart_playlists_(false),
show_various_artists_(true),
total_song_count_(0),
- artist_icon_(":/icons/22x22/x-clementine-artist.png"),
- album_icon_(":/icons/22x22/x-clementine-album.png"),
- playlists_dir_icon_(IconLoader::Load("folder-sound")),
- playlist_icon_(":/icons/22x22/x-clementine-albums.png"),
+ artist_icon_(IconLoader::Load("x-clementine-artist", IconLoader::Base)),
+ album_icon_(IconLoader::Load("x-clementine-album", IconLoader::Base)),
+ playlists_dir_icon_(IconLoader::Load("folder-sound", IconLoader::Base)),
+ playlist_icon_(IconLoader::Load("x-clementine-albums", IconLoader::Base)),
icon_cache_(new QNetworkDiskCache(this)),
init_task_id_(-1),
use_pretty_covers_(false),
diff --git a/src/library/librarysettingspage.cpp b/src/library/librarysettingspage.cpp
index bafc00c78..afb73df41 100644
--- a/src/library/librarysettingspage.cpp
+++ b/src/library/librarysettingspage.cpp
@@ -45,8 +45,8 @@ LibrarySettingsPage::LibrarySettingsPage(SettingsDialog* dialog)
ui_->list->setItemDelegate(new NativeSeparatorsDelegate(this));
// Icons
- setWindowIcon(IconLoader::Load("folder-sound"));
- ui_->add->setIcon(IconLoader::Load("document-open-folder"));
+ setWindowIcon(IconLoader::Load("folder-sound", IconLoader::Base));
+ ui_->add->setIcon(IconLoader::Load("document-open-folder", IconLoader::Base));
connect(ui_->add, SIGNAL(clicked()), SLOT(Add()));
connect(ui_->remove, SIGNAL(clicked()), SLOT(Remove()));
diff --git a/src/library/libraryview.cpp b/src/library/libraryview.cpp
index ce7c200fa..78c1c4341 100644
--- a/src/library/libraryview.cpp
+++ b/src/library/libraryview.cpp
@@ -368,52 +368,53 @@ void LibraryView::contextMenuEvent(QContextMenuEvent* e) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
add_to_playlist_ = context_menu_->addAction(
- IconLoader::Load("media-playback-start"),
+ IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Append to current playlist"), this, SLOT(AddToPlaylist()));
- load_ = context_menu_->addAction(IconLoader::Load("media-playback-start"),
- tr("Replace current playlist"), this,
- SLOT(Load()));
+ load_ = context_menu_->addAction(
+ IconLoader::Load("media-playback-start", IconLoader::Base),
+ tr("Replace current playlist"), this, SLOT(Load()));
open_in_new_playlist_ = context_menu_->addAction(
- IconLoader::Load("document-new"), tr("Open in new playlist"), this,
- SLOT(OpenInNewPlaylist()));
+ IconLoader::Load("document-new", IconLoader::Base),
+ tr("Open in new playlist"), this, SLOT(OpenInNewPlaylist()));
context_menu_->addSeparator();
add_to_playlist_enqueue_ =
- context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue track"),
- this, SLOT(AddToPlaylistEnqueue()));
+ context_menu_->addAction(IconLoader::Load("go-next", IconLoader::Base),
+ tr("Queue track"), this,
+ SLOT(AddToPlaylistEnqueue()));
context_menu_->addSeparator();
new_smart_playlist_ = context_menu_->addAction(
- IconLoader::Load("document-new"), tr("New smart playlist..."), this,
- SLOT(NewSmartPlaylist()));
+ IconLoader::Load("document-new", IconLoader::Base),
+ tr("New smart playlist..."), this, SLOT(NewSmartPlaylist()));
edit_smart_playlist_ = context_menu_->addAction(
- IconLoader::Load("edit-rename"), tr("Edit smart playlist..."), this,
- SLOT(EditSmartPlaylist()));
+ IconLoader::Load("edit-rename", IconLoader::Base),
+ tr("Edit smart playlist..."), this, SLOT(EditSmartPlaylist()));
delete_smart_playlist_ = context_menu_->addAction(
- IconLoader::Load("edit-delete"), tr("Delete smart playlist"), this,
- SLOT(DeleteSmartPlaylist()));
+ IconLoader::Load("edit-delete", IconLoader::Base),
+ tr("Delete smart playlist"), this, SLOT(DeleteSmartPlaylist()));
context_menu_->addSeparator();
- organise_ = context_menu_->addAction(IconLoader::Load("edit-copy"),
+ organise_ = context_menu_->addAction(IconLoader::Load("edit-copy", IconLoader::Base),
tr("Organise files..."), this,
SLOT(Organise()));
copy_to_device_ = context_menu_->addAction(
- IconLoader::Load("multimedia-player-ipod-mini-blue"),
+ IconLoader::Load("multimedia-player-ipod-mini-blue", IconLoader::Base),
tr("Copy to device..."), this, SLOT(CopyToDevice()));
- delete_ = context_menu_->addAction(IconLoader::Load("edit-delete"),
+ delete_ = context_menu_->addAction(IconLoader::Load("edit-delete", IconLoader::Base),
tr("Delete from disk..."), this,
SLOT(Delete()));
context_menu_->addSeparator();
- edit_track_ = context_menu_->addAction(IconLoader::Load("edit-rename"),
+ edit_track_ = context_menu_->addAction(IconLoader::Load("edit-rename", IconLoader::Base),
tr("Edit track information..."),
this, SLOT(EditTracks()));
- edit_tracks_ = context_menu_->addAction(IconLoader::Load("edit-rename"),
+ edit_tracks_ = context_menu_->addAction(IconLoader::Load("edit-rename", IconLoader::Base),
tr("Edit tracks information..."),
this, SLOT(EditTracks()));
show_in_browser_ = context_menu_->addAction(
- IconLoader::Load("document-open-folder"), tr("Show in file browser..."),
- this, SLOT(ShowInBrowser()));
+ IconLoader::Load("document-open-folder", IconLoader::Base),
+ tr("Show in file browser..."), this, SLOT(ShowInBrowser()));
context_menu_->addSeparator();
show_in_various_ = context_menu_->addAction(tr("Show in various artists"),
diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp
index 2c02be255..d0145f20d 100644
--- a/src/playlist/playlistcontainer.cpp
+++ b/src/playlist/playlistcontainer.cpp
@@ -212,9 +212,9 @@ void PlaylistContainer::SetViewModel(Playlist* playlist) {
delete redo_;
undo_ = playlist->undo_stack()->createUndoAction(this);
redo_ = playlist->undo_stack()->createRedoAction(this);
- undo_->setIcon(IconLoader::Load("edit-undo"));
+ undo_->setIcon(IconLoader::Load("edit-undo", IconLoader::Base));
undo_->setShortcut(QKeySequence::Undo);
- redo_->setIcon(IconLoader::Load("edit-redo"));
+ redo_->setIcon(IconLoader::Load("edit-redo", IconLoader::Base));
redo_->setShortcut(QKeySequence::Redo);
ui_->undo->setDefaultAction(undo_);
diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp
index 76b15544c..17114efdd 100644
--- a/src/playlist/playlistdelegates.cpp
+++ b/src/playlist/playlistdelegates.cpp
@@ -468,15 +468,15 @@ QPixmap SongSourceDelegate::LookupPixmap(const QUrl& url,
icon = handler->icon();
} else {
if (url.scheme() == "spotify") {
- icon = QIcon(":icons/22x22/spotify.png");
+ icon = IconLoader::Load("spotify", IconLoader::Provider);
} else if (url.scheme() == "file") {
- icon = IconLoader::Load("folder-sound");
+ icon = IconLoader::Load("folder-sound", IconLoader::Base);
} else if (url.host() == "api.jamendo.com") {
- icon = QIcon(":/providers/jamendo.png");
+ icon = IconLoader::Load("jamendo", IconLoader::Provider);
} else if (url.host() == "api.soundcloud.com") {
- icon = QIcon(":/providers/soundcloud.png");
+ icon = IconLoader::Load("soundcloud", IconLoader::Provider);
} else if (url.scheme() == "cdda") {
- icon = IconLoader::Load("media-optical");
+ icon = IconLoader::Load("media-optical", IconLoader::Base);
}
}
pixmap = icon.pixmap(size.height());
diff --git a/src/playlist/playlistlistcontainer.cpp b/src/playlist/playlistlistcontainer.cpp
index 659ad9887..fe5ff5010 100644
--- a/src/playlist/playlistlistcontainer.cpp
+++ b/src/playlist/playlistlistcontainer.cpp
@@ -103,12 +103,12 @@ void PlaylistListContainer::showEvent(QShowEvent* e) {
}
loaded_icons_ = true;
- action_new_folder_->setIcon(IconLoader::Load("folder-new"));
- action_remove_->setIcon(IconLoader::Load("edit-delete"));
- action_save_playlist_->setIcon(IconLoader::Load("document-save"));
+ action_new_folder_->setIcon(IconLoader::Load("folder-new", IconLoader::Base));
+ action_remove_->setIcon(IconLoader::Load("edit-delete", IconLoader::Base));
+ action_save_playlist_->setIcon(IconLoader::Load("document-save", IconLoader::Base));
- model_->SetIcons(IconLoader::Load("view-media-playlist"),
- IconLoader::Load("folder"));
+ model_->SetIcons(IconLoader::Load("view-media-playlist", IconLoader::Base),
+ IconLoader::Load("folder", IconLoader::Base));
// Apply these icons to items that have already been created.
RecursivelySetIcons(model_->invisibleRootItem());
diff --git a/src/playlist/playlistsequence.cpp b/src/playlist/playlistsequence.cpp
index abedde1f5..ef21eefe0 100644
--- a/src/playlist/playlistsequence.cpp
+++ b/src/playlist/playlistsequence.cpp
@@ -41,9 +41,9 @@ PlaylistSequence::PlaylistSequence(QWidget* parent, SettingsProvider* settings)
// Icons
ui_->repeat->setIcon(
- AddDesaturatedIcon(IconLoader::Load("media-playlist-repeat")));
+ AddDesaturatedIcon(IconLoader::Load("media-playlist-repeat", IconLoader::Base)));
ui_->shuffle->setIcon(
- AddDesaturatedIcon(IconLoader::Load("media-playlist-shuffle")));
+ AddDesaturatedIcon(IconLoader::Load("media-playlist-shuffle", IconLoader::Base)));
settings_->set_group(kSettingsGroup);
diff --git a/src/playlist/playlisttabbar.cpp b/src/playlist/playlisttabbar.cpp
index 9bc70a593..ba7a674eb 100644
--- a/src/playlist/playlisttabbar.cpp
+++ b/src/playlist/playlisttabbar.cpp
@@ -51,11 +51,11 @@ PlaylistTabBar::PlaylistTabBar(QWidget* parent)
setUsesScrollButtons(true);
setTabsClosable(true);
- close_ = menu_->addAction(IconLoader::Load("list-remove"),
+ close_ = menu_->addAction(IconLoader::Load("list-remove", IconLoader::Base),
tr("Close playlist"), this, SLOT(Close()));
- rename_ = menu_->addAction(IconLoader::Load("edit-rename"),
+ rename_ = menu_->addAction(IconLoader::Load("edit-rename", IconLoader::Base),
tr("Rename playlist..."), this, SLOT(Rename()));
- save_ = menu_->addAction(IconLoader::Load("document-save"),
+ save_ = menu_->addAction(IconLoader::Load("document-save", IconLoader::Base),
tr("Save playlist..."), this, SLOT(Save()));
menu_->addSeparator();
diff --git a/src/playlist/queuemanager.cpp b/src/playlist/queuemanager.cpp
index 7462a2ec6..55520d64f 100644
--- a/src/playlist/queuemanager.cpp
+++ b/src/playlist/queuemanager.cpp
@@ -35,10 +35,10 @@ QueueManager::QueueManager(QWidget* parent)
ui_->list->setItemDelegate(new QueuedItemDelegate(this, 0));
// Set icons on buttons
- ui_->move_down->setIcon(IconLoader::Load("go-down"));
- ui_->move_up->setIcon(IconLoader::Load("go-up"));
- ui_->remove->setIcon(IconLoader::Load("edit-delete"));
- ui_->clear->setIcon(IconLoader::Load("edit-clear-list"));
+ ui_->move_down->setIcon(IconLoader::Load("go-down", IconLoader::Base));
+ ui_->move_up->setIcon(IconLoader::Load("go-up", IconLoader::Base));
+ ui_->remove->setIcon(IconLoader::Load("edit-delete", IconLoader::Base));
+ ui_->clear->setIcon(IconLoader::Load("edit-clear-list", IconLoader::Base));
// Set a standard shortcut
ui_->remove->setShortcut(QKeySequence::Delete);
diff --git a/src/ripper/ripcddialog.cpp b/src/ripper/ripcddialog.cpp
index 66e339a4a..1446d2637 100644
--- a/src/ripper/ripcddialog.cpp
+++ b/src/ripper/ripcddialog.cpp
@@ -195,7 +195,7 @@ void RipCDDialog::AddDestination() {
// Adds a directory to the 'destination' combo box.
void RipCDDialog::AddDestinationDirectory(QString dir) {
- QIcon icon = IconLoader::Load("folder");
+ QIcon icon = IconLoader::Load("folder", IconLoader::Base);
QVariant data = QVariant::fromValue(dir);
// Do not insert duplicates.
int duplicate_index = ui_->destination->findData(data);
diff --git a/src/smartplaylists/searchtermwidget.cpp b/src/smartplaylists/searchtermwidget.cpp
index 1835b3882..80bc4aa2f 100644
--- a/src/smartplaylists/searchtermwidget.cpp
+++ b/src/smartplaylists/searchtermwidget.cpp
@@ -115,7 +115,7 @@ SearchTermWidget::SearchTermWidget(LibraryBackend* library, QWidget* parent)
}
// Icons on the buttons
- ui_->remove->setIcon(IconLoader::Load("list-remove"));
+ ui_->remove->setIcon(IconLoader::Load("list-remove", IconLoader::Base));
// Set stylesheet
QFile stylesheet_file(":/smartplaylistsearchterm.css");
@@ -354,7 +354,7 @@ SearchTermWidget::Overlay::Overlay(SearchTermWidget* parent)
parent_(parent),
opacity_(0.0),
text_(tr("Add search term")),
- icon_(IconLoader::Load("list-add").pixmap(kIconSize)) {
+ icon_(IconLoader::Load("list-add", IconLoader::Base).pixmap(kIconSize)) {
raise();
setFocusPolicy(Qt::TabFocus);
}
diff --git a/src/songinfo/echonestbiographies.cpp b/src/songinfo/echonestbiographies.cpp
index 1f060529a..cd345e48e 100644
--- a/src/songinfo/echonestbiographies.cpp
+++ b/src/songinfo/echonestbiographies.cpp
@@ -23,6 +23,7 @@
#include "songinfotextview.h"
#include "core/logging.h"
+#include "ui/iconloader.h"
struct EchoNestBiographies::Request {
Request(int id) : id_(id), artist_(new Echonest::Artist) {}
@@ -36,14 +37,14 @@ EchoNestBiographies::EchoNestBiographies() {
site_relevance_["lastfm"] = 60;
site_relevance_["amazon"] = 30;
- site_icons_["amazon"] = QIcon(":/providers/amazon.png");
- site_icons_["aol"] = QIcon(":/providers/aol.png");
- site_icons_["cdbaby"] = QIcon(":/providers/cdbaby.png");
- site_icons_["lastfm"] = QIcon(":/last.fm/as.png");
- site_icons_["mog"] = QIcon(":/providers/mog.png");
- site_icons_["mtvmusic"] = QIcon(":/providers/mtvmusic.png");
- site_icons_["myspace"] = QIcon(":/providers/myspace.png");
- site_icons_["wikipedia"] = QIcon(":/providers/wikipedia.png");
+ site_icons_["amazon"] = IconLoader::Load("amazon", IconLoader::Provider);
+ site_icons_["aol"] = IconLoader::Load("aol", IconLoader::Provider);
+ site_icons_["cdbaby"] = IconLoader::Load("cdbaby", IconLoader::Provider);
+ site_icons_["lastfm"] = IconLoader::Load("as", IconLoader::Lastfm);
+ site_icons_["mog"] = IconLoader::Load("mog", IconLoader::Provider);
+ site_icons_["mtvmusic"] = IconLoader::Load("mtvmusic", IconLoader::Provider);
+ site_icons_["myspace"] = IconLoader::Load("myspace", IconLoader::Provider);
+ site_icons_["wikipedia"] = IconLoader::Load("wikipedia", IconLoader::Provider);
}
void EchoNestBiographies::FetchInfo(int id, const Song& metadata) {
diff --git a/src/songinfo/echonestsimilarartists.cpp b/src/songinfo/echonestsimilarartists.cpp
index b481d4c32..af62ff2c1 100644
--- a/src/songinfo/echonestsimilarartists.cpp
+++ b/src/songinfo/echonestsimilarartists.cpp
@@ -57,12 +57,12 @@ void EchoNestSimilarArtists::RequestFinished() {
data.id_ = "echonest/similarartists";
data.title_ = tr("Similar artists");
data.type_ = CollapsibleInfoPane::Data::Type_Similar;
- data.icon_ = QIcon(":/providers/echonest.png");
+ data.icon_ = IconLoader::Load("echonest", IconLoader::Provider);
TagWidget* widget = new TagWidget(TagWidget::Type_Artists);
data.contents_ = widget;
- widget->SetIcon(QIcon(":/icons/22x22/x-clementine-artist.png"));
+ widget->SetIcon(IconLoader::Load("x-clementine-artist", IconLoader::Base));
for (const Echonest::Artist& artist : artists) {
widget->AddTag(artist.name());
diff --git a/src/songinfo/echonesttags.cpp b/src/songinfo/echonesttags.cpp
index 7911cecf4..232ec5191 100644
--- a/src/songinfo/echonesttags.cpp
+++ b/src/songinfo/echonesttags.cpp
@@ -23,6 +23,7 @@
#include "tagwidget.h"
#include "core/logging.h"
+#include "ui/iconloader.h"
struct EchoNestTags::Request {
Request(int id) : id_(id), artist_(new Echonest::Artist) {}
@@ -60,7 +61,7 @@ void EchoNestTags::RequestFinished() {
data.id_ = "echonest/artisttags";
data.title_ = tr("Artist tags");
data.type_ = CollapsibleInfoPane::Data::Type_Tags;
- data.icon_ = QIcon(":/last.fm/icon_tag.png");
+ data.icon_ = IconLoader::Load("icon_tag", IconLoader::Lastfm);
TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget;
diff --git a/src/songinfo/lastfmtrackinfoprovider.cpp b/src/songinfo/lastfmtrackinfoprovider.cpp
index b00e98910..d3460c6e4 100644
--- a/src/songinfo/lastfmtrackinfoprovider.cpp
+++ b/src/songinfo/lastfmtrackinfoprovider.cpp
@@ -75,23 +75,23 @@ void LastfmTrackInfoProvider::GetPlayCounts(int id, const lastfm::XmlQuery& q) {
data.id_ = "lastfm/playcounts";
data.title_ = tr("Last.fm play counts");
data.type_ = CollapsibleInfoPane::Data::Type_PlayCounts;
- data.icon_ = QIcon(":/last.fm/as.png");
+ data.icon_ = IconLoader::Load("as", IconLoader::Lastfm);
SongPlayStats* widget = new SongPlayStats;
data.contents_ = widget;
if (myplaycount != -1) {
if (love)
- widget->AddItem(QIcon(":/last.fm/love.png"), tr("You love this track"));
- widget->AddItem(QIcon(":/last.fm/icon_user.png"),
+ widget->AddItem(IconLoader::Load("love", IconLoader::Lastfm), tr("You love this track"));
+ widget->AddItem(IconLoader::Load("icon_user", IconLoader::Lastfm),
tr("Your scrobbles: %1").arg(myplaycount));
}
if (playcount)
- widget->AddItem(IconLoader::Load("media-playback-start"),
+ widget->AddItem(IconLoader::Load("media-playback-start", IconLoader::Base),
tr("%L1 total plays").arg(playcount));
if (listeners)
- widget->AddItem(QIcon(":/last.fm/my_neighbours.png"),
+ widget->AddItem(IconLoader::Load("my_neighbours", IconLoader::Lastfm),
tr("%L1 other listeners").arg(listeners));
emit InfoReady(id, data);
@@ -109,7 +109,7 @@ void LastfmTrackInfoProvider::GetWiki(int id, const lastfm::XmlQuery& q) {
data.id_ = "lastfm/songwiki";
data.title_ = tr("Last.fm wiki");
data.type_ = CollapsibleInfoPane::Data::Type_Biography;
- data.icon_ = QIcon(":/last.fm/as.png");
+ data.icon_ = IconLoader::Load("as", IconLoader::Lastfm);
SongInfoTextView* widget = new SongInfoTextView;
data.contents_ = widget;
@@ -129,7 +129,7 @@ void LastfmTrackInfoProvider::GetTags(int id, const lastfm::XmlQuery& q) {
data.id_ = "lastfm/songtags";
data.title_ = tr("Last.fm tags");
data.type_ = CollapsibleInfoPane::Data::Type_Biography;
- data.icon_ = QIcon(":/last.fm/icon_tag.png");
+ data.icon_ = IconLoader::Load("icon_tag", IconLoader::Lastfm);
TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget;
diff --git a/src/songinfo/songinfosettingspage.cpp b/src/songinfo/songinfosettingspage.cpp
index deabaaa69..24edc2b08 100644
--- a/src/songinfo/songinfosettingspage.cpp
+++ b/src/songinfo/songinfosettingspage.cpp
@@ -30,7 +30,7 @@
SongInfoSettingsPage::SongInfoSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_SongInfoSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("view-media-lyrics"));
+ setWindowIcon(IconLoader::Load("view-media-lyrics", IconLoader::Base));
connect(ui_->up, SIGNAL(clicked()), SLOT(MoveUp()));
connect(ui_->down, SIGNAL(clicked()), SLOT(MoveDown()));
diff --git a/src/songinfo/songkickconcerts.cpp b/src/songinfo/songkickconcerts.cpp
index 1b36e420e..c3ee4eff6 100644
--- a/src/songinfo/songkickconcerts.cpp
+++ b/src/songinfo/songkickconcerts.cpp
@@ -28,6 +28,7 @@
#include "core/closure.h"
#include "core/logging.h"
#include "songkickconcertwidget.h"
+#include "ui/iconloader.h"
const char* SongkickConcerts::kSongkickArtistBucket = "id:songkick";
const char* SongkickConcerts::kSongkickArtistCalendarUrl =
@@ -170,7 +171,7 @@ void SongkickConcerts::CalendarRequestFinished(QNetworkReply* reply, int id) {
data.type_ = CollapsibleInfoPane::Data::Type_Biography;
data.id_ = QString("songkick/%1").arg(id);
data.title_ = tr("Upcoming Concerts");
- data.icon_ = QIcon(":providers/songkick.png");
+ data.icon_ = IconLoader::Load("songkick", IconLoader::Provider);
data.contents_ = container;
emit InfoReady(id, data);
diff --git a/src/transcoder/transcodedialog.cpp b/src/transcoder/transcodedialog.cpp
index b5b46987a..9663e5192 100644
--- a/src/transcoder/transcodedialog.cpp
+++ b/src/transcoder/transcodedialog.cpp
@@ -311,7 +311,7 @@ void TranscodeDialog::AddDestination() {
ui_->destination->removeItem(1); // Remove the oldest folder item.
}
- QIcon icon = IconLoader::Load("folder");
+ QIcon icon = IconLoader::Load("folder", IconLoader::Base);
QVariant data = QVariant::fromValue(dir);
// Do not insert duplicates.
int duplicate_index = ui_->destination->findData(data);
diff --git a/src/transcoder/transcodersettingspage.cpp b/src/transcoder/transcodersettingspage.cpp
index 5460e60f8..0183fe18c 100644
--- a/src/transcoder/transcodersettingspage.cpp
+++ b/src/transcoder/transcodersettingspage.cpp
@@ -22,7 +22,7 @@
TranscoderSettingsPage::TranscoderSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_TranscoderSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("tools-wizard"));
+ setWindowIcon(IconLoader::Load("tools-wizard", IconLoader::Base));
}
TranscoderSettingsPage::~TranscoderSettingsPage() { delete ui_; }
diff --git a/src/ui/albumcoverchoicecontroller.cpp b/src/ui/albumcoverchoicecontroller.cpp
index c1a229311..e74863627 100644
--- a/src/ui/albumcoverchoicecontroller.cpp
+++ b/src/ui/albumcoverchoicecontroller.cpp
@@ -56,21 +56,23 @@ AlbumCoverChoiceController::AlbumCoverChoiceController(QWidget* parent)
cover_fetcher_(nullptr),
save_file_dialog_(nullptr),
cover_from_url_dialog_(nullptr) {
- cover_from_file_ = new QAction(IconLoader::Load("document-open"),
+ cover_from_file_ = new QAction(IconLoader::Load("document-open", IconLoader::Base),
tr("Load cover from disk..."), this);
- cover_to_file_ = new QAction(IconLoader::Load("document-save"),
+ cover_to_file_ = new QAction(IconLoader::Load("document-save", IconLoader::Base),
tr("Save cover to disk..."), this);
- cover_from_url_ = new QAction(IconLoader::Load("download"),
+ cover_from_url_ = new QAction(IconLoader::Load("download", IconLoader::Base),
tr("Load cover from URL..."), this);
- search_for_cover_ = new QAction(IconLoader::Load("find"),
+ search_for_cover_ = new QAction(IconLoader::Load("find", IconLoader::Base),
tr("Search for album covers..."), this);
unset_cover_ =
- new QAction(IconLoader::Load("list-remove"), tr("Unset cover"), this);
+ new QAction(IconLoader::Load("list-remove", IconLoader::Base),
+ tr("Unset cover"), this);
show_cover_ =
- new QAction(IconLoader::Load("zoom-in"), tr("Show fullsize..."), this);
+ new QAction(IconLoader::Load("zoom-in", IconLoader::Base),
+ tr("Show fullsize..."), this);
search_cover_auto_ =
- new QAction(IconLoader::Load("find"), tr("Search automatically"), this);
+ new QAction(IconLoader::Load("find", IconLoader::Base), tr("Search automatically"), this);
search_cover_auto_->setCheckable(true);
search_cover_auto_->setChecked(false);
diff --git a/src/ui/albumcovermanager.cpp b/src/ui/albumcovermanager.cpp
index 575c53fd8..9f6e0df34 100644
--- a/src/ui/albumcovermanager.cpp
+++ b/src/ui/albumcovermanager.cpp
@@ -66,8 +66,8 @@ AlbumCoverManager::AlbumCoverManager(Application* app,
cover_searcher_(nullptr),
cover_export_(nullptr),
cover_exporter_(new AlbumCoverExporter(this)),
- artist_icon_(IconLoader::Load("x-clementine-artist")),
- all_artists_icon_(IconLoader::Load("x-clementine-album")),
+ artist_icon_(IconLoader::Load("x-clementine-artist", IconLoader::Base)),
+ all_artists_icon_(IconLoader::Load("x-clementine-album", IconLoader::Base)),
context_menu_(new QMenu(this)),
progress_bar_(new QProgressBar(this)),
abort_progress_(new QPushButton(this)),
@@ -77,13 +77,13 @@ AlbumCoverManager::AlbumCoverManager(Application* app,
ui_->albums->set_cover_manager(this);
// Icons
- ui_->action_fetch->setIcon(IconLoader::Load("download"));
- ui_->export_covers->setIcon(IconLoader::Load("document-save"));
- ui_->view->setIcon(IconLoader::Load("view-choose"));
- ui_->fetch->setIcon(IconLoader::Load("download"));
+ ui_->action_fetch->setIcon(IconLoader::Load("download", IconLoader::Base));
+ ui_->export_covers->setIcon(IconLoader::Load("document-save", IconLoader::Base));
+ ui_->view->setIcon(IconLoader::Load("view-choose", IconLoader::Base));
+ ui_->fetch->setIcon(IconLoader::Load("download", IconLoader::Base));
ui_->action_add_to_playlist->setIcon(
- IconLoader::Load("media-playback-start"));
- ui_->action_load->setIcon(IconLoader::Load("media-playback-start"));
+ IconLoader::Load("media-playback-start", IconLoader::Base));
+ ui_->action_load->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
album_cover_choice_controller_->SetApplication(app_);
diff --git a/src/ui/appearancesettingspage.cpp b/src/ui/appearancesettingspage.cpp
index 77c79a380..111513c46 100644
--- a/src/ui/appearancesettingspage.cpp
+++ b/src/ui/appearancesettingspage.cpp
@@ -48,7 +48,7 @@ AppearanceSettingsPage::AppearanceSettingsPage(SettingsDialog* dialog)
playlist_view_background_image_type_(PlaylistView::Default),
initialised_moodbar_previews_(false) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("view-media-visualization"));
+ setWindowIcon(IconLoader::Load("view-media-visualization", IconLoader::Base));
connect(ui_->blur_slider, SIGNAL(valueChanged(int)),
SLOT(BlurLevelChanged(int)));
diff --git a/src/ui/backgroundstreamssettingspage.cpp b/src/ui/backgroundstreamssettingspage.cpp
index 5d7d83cb9..1bb5b6b0f 100644
--- a/src/ui/backgroundstreamssettingspage.cpp
+++ b/src/ui/backgroundstreamssettingspage.cpp
@@ -28,7 +28,7 @@ BackgroundStreamsSettingsPage::BackgroundStreamsSettingsPage(
SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_BackgroundStreamsSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(QIcon(":/icons/32x32/weather-showers-scattered.png"));
+ setWindowIcon(IconLoader::Load("weather-showers-scattered", IconLoader::Base));
for (const QString& name : dialog->background_streams()->streams()) {
AddStream(name);
diff --git a/src/ui/edittagdialog.cpp b/src/ui/edittagdialog.cpp
index 2f5a88aa5..20ac4ab9d 100644
--- a/src/ui/edittagdialog.cpp
+++ b/src/ui/edittagdialog.cpp
@@ -159,8 +159,11 @@ EditTagDialog::EditTagDialog(Application* app, QWidget* parent)
// Add the next/previous buttons
previous_button_ =
- new QPushButton(IconLoader::Load("go-previous"), tr("Previous"), this);
- next_button_ = new QPushButton(IconLoader::Load("go-next"), tr("Next"), this);
+ new QPushButton(IconLoader::Load("go-previous", IconLoader::Base),
+ tr("Previous"), this);
+ next_button_ =
+ new QPushButton(IconLoader::Load("go-next", IconLoader::Base),
+ tr("Next"), this);
ui_->button_box->addButton(previous_button_, QDialogButtonBox::ResetRole);
ui_->button_box->addButton(next_button_, QDialogButtonBox::ResetRole);
diff --git a/src/ui/equalizer.cpp b/src/ui/equalizer.cpp
index 73f1099b3..b406c56f6 100644
--- a/src/ui/equalizer.cpp
+++ b/src/ui/equalizer.cpp
@@ -38,8 +38,8 @@ Equalizer::Equalizer(QWidget* parent)
ui_->setupUi(this);
// Icons
- ui_->preset_del->setIcon(IconLoader::Load("list-remove"));
- ui_->preset_save->setIcon(IconLoader::Load("document-save"));
+ ui_->preset_del->setIcon(IconLoader::Load("list-remove", IconLoader::Base));
+ ui_->preset_save->setIcon(IconLoader::Load("document-save", IconLoader::Base));
preamp_ = AddSlider(tr("Pre-amp"));
diff --git a/src/ui/globalshortcutssettingspage.cpp b/src/ui/globalshortcutssettingspage.cpp
index 37e23f94a..d4e4c1d26 100644
--- a/src/ui/globalshortcutssettingspage.cpp
+++ b/src/ui/globalshortcutssettingspage.cpp
@@ -40,7 +40,7 @@ GlobalShortcutsSettingsPage::GlobalShortcutsSettingsPage(SettingsDialog* dialog)
ui_->setupUi(this);
ui_->shortcut_options->setEnabled(false);
ui_->list->header()->setResizeMode(QHeaderView::ResizeToContents);
- setWindowIcon(IconLoader::Load("input-keyboard"));
+ setWindowIcon(IconLoader::Load("input-keyboard", IconLoader::Base));
settings_.beginGroup(GlobalShortcuts::kSettingsGroup);
diff --git a/src/ui/iconloader.cpp b/src/ui/iconloader.cpp
index 7f0422a88..f5c6781a1 100644
--- a/src/ui/iconloader.cpp
+++ b/src/ui/iconloader.cpp
@@ -17,30 +17,81 @@
#include "iconloader.h"
#include "core/logging.h"
+#include "core/utilities.h"
-#include
#include
+#include
QList IconLoader::sizes_;
+QString IconLoader::custom_icon_path_;
+QList IconLoader::icon_sub_path_;
void IconLoader::Init() {
sizes_.clear();
sizes_ << 22 << 32 << 48;
+ custom_icon_path_ = Utilities::GetConfigPath(Utilities::Path_Icons);
+ icon_sub_path_ = {"/icons", "/providers", "/last.fm"};
}
-QIcon IconLoader::Load(const QString& name) {
- QIcon ret;
+QIcon IconLoader::Load(const QString& name, const IconType& icontype) {
- if (name.isEmpty()) return ret;
+ QIcon ret;
+ // If the icon name is empty
+ if (name.isEmpty()) {
+ qLog(Warning) << "Icon name is null";
+ return ret;
+ }
+
+ // Set the icon load location based on IConType
+ switch (icontype) {
+ case Base: case Provider:
+ break;
+
+ case Lastfm: {
+ // lastfm icons location
+ const QString custom_lastfm_icon_location = custom_icon_path_ + "/last.fm";
+ if (QDir(custom_lastfm_icon_location).exists()) {
+ // Try to load icons from the custom icon location initially
+ const QString locate_file(custom_lastfm_icon_location + "/" + name + ".png");
+
+ if (QFile::exists(locate_file)) ret.addFile(locate_file);
+ if (!ret.isNull()) return ret;
+ }
+
+ // Otherwise use our fallback theme
+ const QString lastfm_path_file(":/last.fm/" + name + ".png");
+
+ if (QFile::exists(lastfm_path_file)) ret.addFile(lastfm_path_file);
+ if (ret.isNull()) qLog(Warning) << "Couldn't load icon" << name;
+ return ret;
+ }
+
+ default:
+ // Should never be reached
+ qLog(Warning) << "Couldn't recognize IconType" << name;
+ return ret;
+ }
+
+ const QString custom_icon_location = custom_icon_path_ + icon_sub_path_.at(icontype);
+ if (QDir(custom_icon_location).exists()) {
+ // Try to load icons from the custom icon location initially
+ const QString locate(custom_icon_location + "/%1x%2/%3.png");
+ for (int size : sizes_) {
+ QString filename_custom(locate.arg(size).arg(size).arg(name));
+
+ if (QFile::exists(filename_custom)) ret.addFile(filename_custom, QSize(size, size));
+ }
+ if (!ret.isNull()) return ret;
+ }
#if QT_VERSION >= 0x040600
- // Try to load it from the theme initially
+ // Then try to load it from the system theme
ret = QIcon::fromTheme(name);
if (!ret.isNull()) return ret;
#endif
// Otherwise use our fallback theme
- const QString path(":/icons/%1x%2/%3.png");
+ const QString path(":" + icon_sub_path_.at(icontype) + "/%1x%2/%3.png");
for (int size : sizes_) {
QString filename(path.arg(size).arg(size).arg(name));
@@ -50,3 +101,4 @@ QIcon IconLoader::Load(const QString& name) {
if (ret.isNull()) qLog(Warning) << "Couldn't load icon" << name;
return ret;
}
+
diff --git a/src/ui/iconloader.h b/src/ui/iconloader.h
index 01b499a59..a854f0524 100644
--- a/src/ui/iconloader.h
+++ b/src/ui/iconloader.h
@@ -22,13 +22,21 @@
class IconLoader {
public:
+ enum IconType {
+ Base = 0,
+ Provider = 1,
+ Lastfm = 2
+ };
+
static void Init();
- static QIcon Load(const QString& name);
+ static QIcon Load(const QString& name, const IconType& icontype);
private:
IconLoader() {}
static QList sizes_;
+ static QString custom_icon_path_;
+ static QList icon_sub_path_;
};
#endif // ICONLOADER_H
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index d4c58ae56..d49184027 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -223,7 +223,7 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
// Add global search providers
app_->global_search()->AddProvider(new LibrarySearchProvider(
app_->library_backend(), tr("Library"), "library",
- IconLoader::Load("folder-sound"), true, app_, this));
+ IconLoader::Load("folder-sound", IconLoader::Base), true, app_, this));
app_->global_search()->ReloadSettings();
global_search_view_->ReloadSettings();
@@ -232,22 +232,23 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
SLOT(AddToPlaylist(QMimeData*)));
// Add tabs to the fancy tab widget
- ui_->tabs->AddTab(global_search_view_, IconLoader::Load("search"),
+ ui_->tabs->AddTab(global_search_view_, IconLoader::Load("search", IconLoader::Base),
tr("Search", "Global search settings dialog title."));
- ui_->tabs->AddTab(library_view_, IconLoader::Load("folder-sound"),
+ ui_->tabs->AddTab(library_view_, IconLoader::Load("folder-sound", IconLoader::Base),
tr("Library"));
- ui_->tabs->AddTab(file_view_, IconLoader::Load("document-open"), tr("Files"));
- ui_->tabs->AddTab(playlist_list_, IconLoader::Load("view-media-playlist"),
+ ui_->tabs->AddTab(file_view_, IconLoader::Load("document-open", IconLoader::Base),
+ tr("Files"));
+ ui_->tabs->AddTab(playlist_list_, IconLoader::Load("view-media-playlist", IconLoader::Base),
tr("Playlists"));
- ui_->tabs->AddTab(internet_view_, IconLoader::Load("applications-internet"),
+ ui_->tabs->AddTab(internet_view_, IconLoader::Load("applications-internet", IconLoader::Base),
tr("Internet"));
ui_->tabs->AddTab(device_view_container_,
- IconLoader::Load("multimedia-player-ipod-mini-blue"),
+ IconLoader::Load("multimedia-player-ipod-mini-blue", IconLoader::Base),
tr("Devices"));
ui_->tabs->AddSpacer();
- ui_->tabs->AddTab(song_info_view_, IconLoader::Load("view-media-lyrics"),
+ ui_->tabs->AddTab(song_info_view_, IconLoader::Load("view-media-lyrics", IconLoader::Base),
tr("Song info"));
- ui_->tabs->AddTab(artist_info_view_, IconLoader::Load("x-clementine-artist"),
+ ui_->tabs->AddTab(artist_info_view_, IconLoader::Load("x-clementine-artist", IconLoader::Base),
tr("Artist info"));
// Add the now playing widget to the fancy tab widget
@@ -292,40 +293,41 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
// Icons
qLog(Debug) << "Creating UI";
- ui_->action_about->setIcon(IconLoader::Load("help-about"));
- ui_->action_about_qt->setIcon(
- QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"));
- ui_->action_add_file->setIcon(IconLoader::Load("document-open"));
- ui_->action_add_folder->setIcon(IconLoader::Load("document-open-folder"));
- ui_->action_add_stream->setIcon(IconLoader::Load("document-open-remote"));
- ui_->action_clear_playlist->setIcon(IconLoader::Load("edit-clear-list"));
- ui_->action_configure->setIcon(IconLoader::Load("configure"));
- ui_->action_cover_manager->setIcon(IconLoader::Load("download"));
- ui_->action_edit_track->setIcon(IconLoader::Load("edit-rename"));
- ui_->action_equalizer->setIcon(IconLoader::Load("view-media-equalizer"));
- ui_->action_jump->setIcon(IconLoader::Load("go-jump"));
- ui_->action_next_track->setIcon(IconLoader::Load("media-skip-forward"));
- ui_->action_open_media->setIcon(IconLoader::Load("document-open"));
- ui_->action_open_cd->setIcon(IconLoader::Load("media-optical"));
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
- ui_->action_previous_track->setIcon(IconLoader::Load("media-skip-backward"));
- ui_->action_quit->setIcon(IconLoader::Load("application-exit"));
- ui_->action_remove_from_playlist->setIcon(IconLoader::Load("list-remove"));
- ui_->action_repeat_mode->setIcon(IconLoader::Load("media-playlist-repeat"));
- ui_->action_rip_audio_cd->setIcon(IconLoader::Load("media-optical"));
- ui_->action_shuffle->setIcon(IconLoader::Load("x-clementine-shuffle"));
- ui_->action_shuffle_mode->setIcon(IconLoader::Load("media-playlist-shuffle"));
- ui_->action_stop->setIcon(IconLoader::Load("media-playback-stop"));
+ ui_->action_about->setIcon(IconLoader::Load("help-about", IconLoader::Base));
+ ui_->action_about_qt->setIcon(IconLoader::Load("qtlogo", IconLoader::Base));
+ ui_->action_add_file->setIcon(IconLoader::Load("document-open", IconLoader::Base));
+ ui_->action_add_folder->setIcon(IconLoader::Load("document-open-folder", IconLoader::Base));
+ ui_->action_add_stream->setIcon(IconLoader::Load("document-open-remote", IconLoader::Base));
+ ui_->action_add_podcast->setIcon(IconLoader::Load("podcast", IconLoader::Provider));
+ ui_->action_clear_playlist->setIcon(IconLoader::Load("edit-clear-list", IconLoader::Base));
+ ui_->action_configure->setIcon(IconLoader::Load("configure", IconLoader::Base));
+ ui_->action_cover_manager->setIcon(IconLoader::Load("download", IconLoader::Base));
+ ui_->action_edit_track->setIcon(IconLoader::Load("edit-rename", IconLoader::Base));
+ ui_->action_equalizer->setIcon(IconLoader::Load("view-media-equalizer", IconLoader::Base));
+ ui_->action_jump->setIcon(IconLoader::Load("go-jump", IconLoader::Base));
+ ui_->action_next_track->setIcon(IconLoader::Load("media-skip-forward", IconLoader::Base));
+ ui_->action_open_media->setIcon(IconLoader::Load("document-open", IconLoader::Base));
+ ui_->action_open_cd->setIcon(IconLoader::Load("media-optical", IconLoader::Base));
+ ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
+ ui_->action_previous_track->setIcon(IconLoader::Load("media-skip-backward", IconLoader::Base));
+ ui_->action_mute->setIcon(IconLoader::Load("audio-volume-muted", IconLoader::Base));
+ ui_->action_quit->setIcon(IconLoader::Load("application-exit", IconLoader::Base));
+ ui_->action_remove_from_playlist->setIcon(IconLoader::Load("list-remove", IconLoader::Base));
+ ui_->action_repeat_mode->setIcon(IconLoader::Load("media-playlist-repeat", IconLoader::Base));
+ ui_->action_rip_audio_cd->setIcon(IconLoader::Load("media-optical", IconLoader::Base));
+ ui_->action_shuffle->setIcon(IconLoader::Load("x-clementine-shuffle", IconLoader::Base));
+ ui_->action_shuffle_mode->setIcon(IconLoader::Load("media-playlist-shuffle", IconLoader::Base));
+ ui_->action_stop->setIcon(IconLoader::Load("media-playback-stop", IconLoader::Base));
ui_->action_stop_after_this_track->setIcon(
- IconLoader::Load("media-playback-stop"));
- ui_->action_new_playlist->setIcon(IconLoader::Load("document-new"));
- ui_->action_load_playlist->setIcon(IconLoader::Load("document-open"));
- ui_->action_save_playlist->setIcon(IconLoader::Load("document-save"));
- ui_->action_full_library_scan->setIcon(IconLoader::Load("view-refresh"));
- ui_->action_rain->setIcon(IconLoader::Load("weather-showers-scattered"));
- ui_->action_hypnotoad->setIcon(IconLoader::Load("hypnotoad"));
- ui_->action_kittens->setIcon(IconLoader::Load("kittens"));
- ui_->action_enterprise->setIcon(IconLoader::Load("enterprise"));
+ IconLoader::Load("media-playback-stop", IconLoader::Base));
+ ui_->action_new_playlist->setIcon(IconLoader::Load("document-new", IconLoader::Base));
+ ui_->action_load_playlist->setIcon(IconLoader::Load("document-open", IconLoader::Base));
+ ui_->action_save_playlist->setIcon(IconLoader::Load("document-save", IconLoader::Base));
+ ui_->action_full_library_scan->setIcon(IconLoader::Load("view-refresh", IconLoader::Base));
+ ui_->action_rain->setIcon(IconLoader::Load("weather-showers-scattered", IconLoader::Base));
+ ui_->action_hypnotoad->setIcon(IconLoader::Load("hypnotoad", IconLoader::Base));
+ ui_->action_kittens->setIcon(IconLoader::Load("kittens", IconLoader::Base));
+ ui_->action_enterprise->setIcon(IconLoader::Load("enterprise", IconLoader::Base));
// File view connections
connect(file_view_, SIGNAL(AddToPlaylist(QMimeData*)),
@@ -589,7 +591,8 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
SLOT(ChangeLibraryQueryMode(QAction*)));
QAction* library_config_action = new QAction(
- IconLoader::Load("configure"), tr("Configure library..."), this);
+ IconLoader::Load("configure", IconLoader::Base),
+ tr("Configure library..."), this);
connect(library_config_action, SIGNAL(triggered()),
SLOT(ShowLibraryConfig()));
library_view_->filter()->SetSettingsGroup(kSettingsGroup);
@@ -609,8 +612,8 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
playlist_menu_->addAction(tr("Play"), this, SLOT(PlaylistPlay()));
playlist_menu_->addAction(ui_->action_stop);
playlist_stop_after_ = playlist_menu_->addAction(
- IconLoader::Load("media-playback-stop"), tr("Stop after this track"),
- this, SLOT(PlaylistStopAfter()));
+ IconLoader::Load("media-playback-stop", IconLoader::Base),
+ tr("Stop after this track"), this, SLOT(PlaylistStopAfter()));
playlist_queue_ = playlist_menu_->addAction("", this, SLOT(PlaylistQueue()));
playlist_queue_->setShortcut(QKeySequence("Ctrl+D"));
ui_->playlist->addAction(playlist_queue_);
@@ -628,26 +631,29 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
playlist_menu_->addAction(ui_->action_add_files_to_transcoder);
playlist_menu_->addSeparator();
playlist_copy_to_library_ = playlist_menu_->addAction(
- IconLoader::Load("edit-copy"), tr("Copy to library..."), this,
- SLOT(PlaylistCopyToLibrary()));
+ IconLoader::Load("edit-copy", IconLoader::Base),
+ tr("Copy to library..."), this, SLOT(PlaylistCopyToLibrary()));
playlist_move_to_library_ = playlist_menu_->addAction(
- IconLoader::Load("go-jump"), tr("Move to library..."), this,
- SLOT(PlaylistMoveToLibrary()));
- playlist_organise_ = playlist_menu_->addAction(IconLoader::Load("edit-copy"),
+ IconLoader::Load("go-jump", IconLoader::Base),
+ tr("Move to library..."), this, SLOT(PlaylistMoveToLibrary()));
+ playlist_organise_ = playlist_menu_->addAction(IconLoader::Load("edit-copy",
+ IconLoader::Base),
tr("Organise files..."), this,
SLOT(PlaylistMoveToLibrary()));
playlist_copy_to_device_ = playlist_menu_->addAction(
- IconLoader::Load("multimedia-player-ipod-mini-blue"),
+ IconLoader::Load("multimedia-player-ipod-mini-blue", IconLoader::Base),
tr("Copy to device..."), this, SLOT(PlaylistCopyToDevice()));
- playlist_delete_ = playlist_menu_->addAction(IconLoader::Load("edit-delete"),
+ playlist_delete_ = playlist_menu_->addAction(IconLoader::Load("edit-delete",
+ IconLoader::Base),
tr("Delete from disk..."), this,
SLOT(PlaylistDelete()));
playlist_open_in_browser_ = playlist_menu_->addAction(
- IconLoader::Load("document-open-folder"), tr("Show in file browser..."),
+ IconLoader::Load("document-open-folder", IconLoader::Base),
+ tr("Show in file browser..."),
this, SLOT(PlaylistOpenInBrowser()));
playlist_show_in_library_ = playlist_menu_->addAction(
- IconLoader::Load("edit-find"), tr("Show in library..."), this,
- SLOT(ShowInLibrary()));
+ IconLoader::Load("edit-find", IconLoader::Base),
+ tr("Show in library..."), this, SLOT(ShowInLibrary()));
playlist_menu_->addSeparator();
playlistitem_actions_separator_ = playlist_menu_->addSeparator();
playlist_menu_->addAction(ui_->action_clear_playlist);
@@ -1022,7 +1028,7 @@ void MainWindow::MediaStopped() {
ui_->action_stop->setEnabled(false);
ui_->action_stop_after_this_track->setEnabled(false);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
+ ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
ui_->action_play_pause->setText(tr("Play"));
ui_->action_play_pause->setEnabled(true);
@@ -1040,7 +1046,7 @@ void MainWindow::MediaStopped() {
void MainWindow::MediaPaused() {
ui_->action_stop->setEnabled(true);
ui_->action_stop_after_this_track->setEnabled(true);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
+ ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
ui_->action_play_pause->setText(tr("Play"));
ui_->action_play_pause->setEnabled(true);
@@ -1054,7 +1060,7 @@ void MainWindow::MediaPaused() {
void MainWindow::MediaPlaying() {
ui_->action_stop->setEnabled(true);
ui_->action_stop_after_this_track->setEnabled(true);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-pause"));
+ ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-pause", IconLoader::Base));
ui_->action_play_pause->setText(tr("Pause"));
bool enable_play_pause = !(app_->player()->GetCurrentItem()->options() &
@@ -1154,7 +1160,7 @@ void MainWindow::ScrobbleButtonVisibilityChanged(bool value) {
// check if the song was scrobbled
if (app_->playlist_manager()->active()->get_lastfm_status() ==
Playlist::LastFM_Scrobbled) {
- ui_->action_toggle_scrobbling->setIcon(QIcon(":/last.fm/as.png"));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("as", IconLoader::Lastfm));
} else {
#ifdef HAVE_LIBLASTFM
SetToggleScrobblingIcon(app_->scrobbler()->IsScrobblingEnabled());
@@ -1547,10 +1553,10 @@ void MainWindow::PlaylistRightClick(const QPoint& global_pos,
source_index.row() &&
app_->player()->GetState() == Engine::Playing) {
playlist_play_pause_->setText(tr("Pause"));
- playlist_play_pause_->setIcon(IconLoader::Load("media-playback-pause"));
+ playlist_play_pause_->setIcon(IconLoader::Load("media-playback-pause", IconLoader::Base));
} else {
playlist_play_pause_->setText(tr("Play"));
- playlist_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ playlist_play_pause_->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
}
// Are we allowed to pause?
@@ -1655,9 +1661,9 @@ void MainWindow::PlaylistRightClick(const QPoint& global_pos,
playlist_skip_->setText(tr("Skip selected tracks"));
if (not_in_queue == 0)
- playlist_queue_->setIcon(IconLoader::Load("go-previous"));
+ playlist_queue_->setIcon(IconLoader::Load("go-previous", IconLoader::Base));
else
- playlist_queue_->setIcon(IconLoader::Load("go-next"));
+ playlist_queue_->setIcon(IconLoader::Load("go-next", IconLoader::Base));
if (!index.isValid()) {
ui_->action_selection_set_value->setVisible(false);
@@ -1717,7 +1723,7 @@ void MainWindow::PlaylistRightClick(const QPoint& global_pos,
// create the playlist submenu
QMenu* add_to_another_menu = new QMenu(tr("Add to another playlist"), this);
- add_to_another_menu->setIcon(IconLoader::Load("list-add"));
+ add_to_another_menu->setIcon(IconLoader::Load("list-add", IconLoader::Base));
for (const PlaylistBackend::Playlist& playlist :
app_->playlist_backend()->GetAllOpenPlaylists()) {
@@ -2638,8 +2644,8 @@ void MainWindow::AutoCompleteTagsAccepted() {
}
QPixmap MainWindow::CreateOverlayedIcon(int position, int scrobble_point) {
- QPixmap normal_icon = QIcon(":/last.fm/as_light.png").pixmap(16);
- QPixmap light_icon = QIcon(":/last.fm/as.png").pixmap(16);
+ QPixmap normal_icon = IconLoader::Load("as_light", IconLoader::Lastfm).pixmap(16);
+ QPixmap light_icon = IconLoader::Load("as", IconLoader::Lastfm).pixmap(16);
QRect rect(normal_icon.rect());
// calculates the progress
@@ -2666,9 +2672,9 @@ QPixmap MainWindow::CreateOverlayedIcon(int position, int scrobble_point) {
void MainWindow::SetToggleScrobblingIcon(bool value) {
if (!value) {
- ui_->action_toggle_scrobbling->setIcon(QIcon(":/last.fm/as_disabled.png"));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("as_disabled", IconLoader::Lastfm));
} else {
- ui_->action_toggle_scrobbling->setIcon(QIcon(":/last.fm/as_light.png"));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("as_light", IconLoader::Lastfm));
}
}
@@ -2683,7 +2689,7 @@ void MainWindow::ScrobbleSubmitted() {
// update the button icon
if (last_fm_enabled)
- ui_->action_toggle_scrobbling->setIcon(QIcon(":/last.fm/as.png"));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("as", IconLoader::Lastfm));
}
void MainWindow::ScrobbleError(int value) {
diff --git a/src/ui/networkproxysettingspage.cpp b/src/ui/networkproxysettingspage.cpp
index 19efb05ae..57cb21b42 100644
--- a/src/ui/networkproxysettingspage.cpp
+++ b/src/ui/networkproxysettingspage.cpp
@@ -25,7 +25,7 @@
NetworkProxySettingsPage::NetworkProxySettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_NetworkProxySettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("applications-internet"));
+ setWindowIcon(IconLoader::Load("applications-internet", IconLoader::Base));
}
NetworkProxySettingsPage::~NetworkProxySettingsPage() { delete ui_; }
diff --git a/src/ui/networkremotesettingspage.cpp b/src/ui/networkremotesettingspage.cpp
index 01277869c..e80811bf5 100644
--- a/src/ui/networkremotesettingspage.cpp
+++ b/src/ui/networkremotesettingspage.cpp
@@ -39,7 +39,7 @@ static bool ComparePresetsByName(const TranscoderPreset& left,
NetworkRemoteSettingsPage::NetworkRemoteSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_NetworkRemoteSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("ipodtouchicon"));
+ setWindowIcon(IconLoader::Load("ipodtouchicon", IconLoader::Base));
connect(ui_->options, SIGNAL(clicked()), SLOT(Options()));
diff --git a/src/ui/notificationssettingspage.cpp b/src/ui/notificationssettingspage.cpp
index 413f23f80..a4826505e 100644
--- a/src/ui/notificationssettingspage.cpp
+++ b/src/ui/notificationssettingspage.cpp
@@ -31,7 +31,7 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog* dialog)
ui_(new Ui_NotificationsSettingsPage),
pretty_popup_(new OSDPretty(OSDPretty::Mode_Draggable)) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("help-hint"));
+ setWindowIcon(IconLoader::Load("help-hint", IconLoader::Base));
pretty_popup_->SetMessage(tr("OSD Preview"), tr("Drag to reposition"),
QImage(":nocover.png"));
@@ -105,8 +105,8 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog* dialog)
SLOT(PrepareNotificationPreview()));
// Icons
- ui_->notifications_exp_chooser1->setIcon(IconLoader::Load("list-add"));
- ui_->notifications_exp_chooser2->setIcon(IconLoader::Load("list-add"));
+ ui_->notifications_exp_chooser1->setIcon(IconLoader::Load("list-add", IconLoader::Base));
+ ui_->notifications_exp_chooser2->setIcon(IconLoader::Load("list-add", IconLoader::Base));
}
NotificationsSettingsPage::~NotificationsSettingsPage() {
diff --git a/src/ui/organisedialog.cpp b/src/ui/organisedialog.cpp
index 29fcd5b02..6c826a8d1 100644
--- a/src/ui/organisedialog.cpp
+++ b/src/ui/organisedialog.cpp
@@ -53,7 +53,7 @@ OrganiseDialog::OrganiseDialog(TaskManager* task_manager, QWidget* parent)
connect(ui_->button_box->button(QDialogButtonBox::Reset), SIGNAL(clicked()),
SLOT(Reset()));
- ui_->aftercopying->setItemIcon(1, IconLoader::Load("edit-delete"));
+ ui_->aftercopying->setItemIcon(1, IconLoader::Load("edit-delete", IconLoader::Base));
// Valid tags
QMap tags;
diff --git a/src/ui/playbacksettingspage.cpp b/src/ui/playbacksettingspage.cpp
index f5c87f55b..957317377 100644
--- a/src/ui/playbacksettingspage.cpp
+++ b/src/ui/playbacksettingspage.cpp
@@ -25,7 +25,7 @@
PlaybackSettingsPage::PlaybackSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_PlaybackSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("media-playback-start"));
+ setWindowIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
connect(ui_->fading_cross, SIGNAL(toggled(bool)),
SLOT(FadingOptionsChanged()));
@@ -62,7 +62,7 @@ void PlaybackSettingsPage::Load() {
QStringList components = output.icon_name.split("-");
QIcon icon;
while (icon.isNull() && !components.isEmpty()) {
- icon = IconLoader::Load(components.join("-"));
+ icon = IconLoader::Load(components.join("-"), IconLoader::Base);
components.removeLast();
}
diff --git a/src/ui/qtsystemtrayicon.cpp b/src/ui/qtsystemtrayicon.cpp
index 39677bc21..828eacf8a 100644
--- a/src/ui/qtsystemtrayicon.cpp
+++ b/src/ui/qtsystemtrayicon.cpp
@@ -37,8 +37,8 @@ QtSystemTrayIcon::QtSystemTrayIcon(QObject* parent)
action_stop_after_this_track_(nullptr),
action_mute_(nullptr),
action_love_(nullptr) {
- QIcon theme_icon = IconLoader::Load("clementine-panel");
- QIcon theme_icon_grey = IconLoader::Load("clementine-panel-grey");
+ QIcon theme_icon = IconLoader::Load("clementine-panel", IconLoader::Base);
+ QIcon theme_icon_grey = IconLoader::Load("clementine-panel-grey", IconLoader::Base);
if (theme_icon.isNull() || theme_icon_grey.isNull()) {
// Load the default icon
@@ -160,7 +160,7 @@ void QtSystemTrayIcon::SetPaused() {
action_stop_->setEnabled(true);
action_stop_after_this_track_->setEnabled(true);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ action_play_pause_->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
action_play_pause_->setText(tr("Play"));
action_play_pause_->setEnabled(true);
@@ -171,7 +171,7 @@ void QtSystemTrayIcon::SetPlaying(bool enable_play_pause, bool enable_love) {
action_stop_->setEnabled(true);
action_stop_after_this_track_->setEnabled(true);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-pause"));
+ action_play_pause_->setIcon(IconLoader::Load("media-playback-pause", IconLoader::Base));
action_play_pause_->setText(tr("Pause"));
action_play_pause_->setEnabled(enable_play_pause);
#ifdef HAVE_LIBLASTFM
@@ -184,7 +184,7 @@ void QtSystemTrayIcon::SetStopped() {
action_stop_->setEnabled(false);
action_stop_after_this_track_->setEnabled(false);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ action_play_pause_->setIcon(IconLoader::Load("media-playback-start", IconLoader::Base));
action_play_pause_->setText(tr("Play"));
action_play_pause_->setEnabled(true);
diff --git a/src/ui/trackselectiondialog.cpp b/src/ui/trackselectiondialog.cpp
index 162489b58..0abda0beb 100644
--- a/src/ui/trackselectiondialog.cpp
+++ b/src/ui/trackselectiondialog.cpp
@@ -44,8 +44,10 @@ TrackSelectionDialog::TrackSelectionDialog(QWidget* parent)
// Add the next/previous buttons
previous_button_ =
- new QPushButton(IconLoader::Load("go-previous"), tr("Previous"), this);
- next_button_ = new QPushButton(IconLoader::Load("go-next"), tr("Next"), this);
+ new QPushButton(IconLoader::Load("go-previous", IconLoader::Base),
+ tr("Previous"), this);
+ next_button_ = new QPushButton(IconLoader::Load("go-next", IconLoader::Base),
+ tr("Next"), this);
ui_->button_box->addButton(previous_button_, QDialogButtonBox::ResetRole);
ui_->button_box->addButton(next_button_, QDialogButtonBox::ResetRole);
diff --git a/src/visualisations/visualisationcontainer.cpp b/src/visualisations/visualisationcontainer.cpp
index fbfbf8dfb..361ee2007 100644
--- a/src/visualisations/visualisationcontainer.cpp
+++ b/src/visualisations/visualisationcontainer.cpp
@@ -98,8 +98,8 @@ void VisualisationContainer::Init() {
selector_->SetVisualisation(vis_);
// Settings menu
- menu_->addAction(IconLoader::Load("view-fullscreen"), tr("Toggle fullscreen"),
- this, SLOT(ToggleFullscreen()));
+ menu_->addAction(IconLoader::Load("view-fullscreen", IconLoader::Base),
+ tr("Toggle fullscreen"), this, SLOT(ToggleFullscreen()));
QMenu* fps_menu = menu_->addMenu(tr("Framerate"));
QSignalMapper* fps_mapper = new QSignalMapper(this);
@@ -131,7 +131,7 @@ void VisualisationContainer::Init() {
menu_->addAction(tr("Select visualizations..."), selector_, SLOT(show()));
menu_->addSeparator();
- menu_->addAction(IconLoader::Load("application-exit"),
+ menu_->addAction(IconLoader::Load("application-exit", IconLoader::Base),
tr("Close visualization"), this, SLOT(hide()));
}
diff --git a/src/visualisations/visualisationoverlay.cpp b/src/visualisations/visualisationoverlay.cpp
index 6df8d31c8..a04106601 100644
--- a/src/visualisations/visualisationoverlay.cpp
+++ b/src/visualisations/visualisationoverlay.cpp
@@ -38,7 +38,7 @@ VisualisationOverlay::VisualisationOverlay(QWidget* parent)
setAttribute(Qt::WA_TranslucentBackground);
setMouseTracking(true);
- ui_->settings->setIcon(IconLoader::Load("configure"));
+ ui_->settings->setIcon(IconLoader::Load("configure", IconLoader::Base));
connect(ui_->settings, SIGNAL(clicked()), SLOT(ShowSettingsMenu()));
connect(fade_timeline_, SIGNAL(valueChanged(qreal)),
diff --git a/src/widgets/fileview.cpp b/src/widgets/fileview.cpp
index 0edfcf80a..0bd6688ea 100644
--- a/src/widgets/fileview.cpp
+++ b/src/widgets/fileview.cpp
@@ -45,10 +45,10 @@ FileView::FileView(QWidget* parent)
ui_->setupUi(this);
// Icons
- ui_->back->setIcon(IconLoader::Load("go-previous"));
- ui_->forward->setIcon(IconLoader::Load("go-next"));
- ui_->home->setIcon(IconLoader::Load("go-home"));
- ui_->up->setIcon(IconLoader::Load("go-up"));
+ ui_->back->setIcon(IconLoader::Load("go-previous", IconLoader::Base));
+ ui_->forward->setIcon(IconLoader::Load("go-next", IconLoader::Base));
+ ui_->home->setIcon(IconLoader::Load("go-home", IconLoader::Base));
+ ui_->up->setIcon(IconLoader::Load("go-up", IconLoader::Base));
connect(ui_->back, SIGNAL(clicked()), undo_stack_, SLOT(undo()));
connect(ui_->forward, SIGNAL(clicked()), undo_stack_, SLOT(redo()));
diff --git a/src/widgets/fileviewlist.cpp b/src/widgets/fileviewlist.cpp
index 27ff164a2..b4d0198b1 100644
--- a/src/widgets/fileviewlist.cpp
+++ b/src/widgets/fileviewlist.cpp
@@ -27,27 +27,29 @@
FileViewList::FileViewList(QWidget* parent)
: QListView(parent), menu_(new QMenu(this)) {
- menu_->addAction(IconLoader::Load("media-playback-start"),
+ menu_->addAction(IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Append to current playlist"), this,
SLOT(AddToPlaylistSlot()));
- menu_->addAction(IconLoader::Load("media-playback-start"),
+ menu_->addAction(IconLoader::Load("media-playback-start", IconLoader::Base),
tr("Replace current playlist"), this, SLOT(LoadSlot()));
- menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"),
- this, SLOT(OpenInNewPlaylistSlot()));
+ menu_->addAction(IconLoader::Load("document-new", IconLoader::Base),
+ tr("Open in new playlist"), this,
+ SLOT(OpenInNewPlaylistSlot()));
menu_->addSeparator();
- menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy to library..."),
- this, SLOT(CopyToLibrarySlot()));
- menu_->addAction(IconLoader::Load("go-jump"), tr("Move to library..."), this,
- SLOT(MoveToLibrarySlot()));
- menu_->addAction(IconLoader::Load("multimedia-player-ipod-mini-blue"),
- tr("Copy to device..."), this, SLOT(CopyToDeviceSlot()));
- menu_->addAction(IconLoader::Load("edit-delete"), tr("Delete from disk..."),
- this, SLOT(DeleteSlot()));
+ menu_->addAction(IconLoader::Load("edit-copy", IconLoader::Base),
+ tr("Copy to library..."), this, SLOT(CopyToLibrarySlot()));
+ menu_->addAction(IconLoader::Load("go-jump", IconLoader::Base),
+ tr("Move to library..."), this, SLOT(MoveToLibrarySlot()));
+ menu_->addAction(IconLoader::Load("multimedia-player-ipod-mini-blue",
+ IconLoader::Base), tr("Copy to device..."), this,
+ SLOT(CopyToDeviceSlot()));
+ menu_->addAction(IconLoader::Load("edit-delete", IconLoader::Base),
+ tr("Delete from disk..."), this, SLOT(DeleteSlot()));
menu_->addSeparator();
- menu_->addAction(IconLoader::Load("edit-rename"),
+ menu_->addAction(IconLoader::Load("edit-rename", IconLoader::Base),
tr("Edit track information..."), this, SLOT(EditTagsSlot()));
- menu_->addAction(IconLoader::Load("document-open-folder"),
+ menu_->addAction(IconLoader::Load("document-open-folder", IconLoader::Base),
tr("Show in file browser..."), this, SLOT(ShowInBrowser()));
setAttribute(Qt::WA_MacShowFocusRect, false);
diff --git a/src/widgets/lineedit.cpp b/src/widgets/lineedit.cpp
index dfbeef65c..d5f09d344 100644
--- a/src/widgets/lineedit.cpp
+++ b/src/widgets/lineedit.cpp
@@ -34,7 +34,7 @@ ExtendedEditor::ExtendedEditor(QWidget* widget, int extra_right_padding,
draw_hint_(draw_hint),
font_point_size_(widget->font().pointSizeF() - 1),
is_rtl_(false) {
- clear_button_->setIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
+ clear_button_->setIcon(IconLoader::Load("edit-clear-locationbar-ltr", IconLoader::Base));
clear_button_->setIconSize(QSize(16, 16));
clear_button_->setCursor(Qt::ArrowCursor);
clear_button_->setStyleSheet("QToolButton { border: none; padding: 0px; }");
diff --git a/src/widgets/loginstatewidget.cpp b/src/widgets/loginstatewidget.cpp
index 5019fda76..923c7f10a 100644
--- a/src/widgets/loginstatewidget.cpp
+++ b/src/widgets/loginstatewidget.cpp
@@ -32,7 +32,7 @@ LoginStateWidget::LoginStateWidget(QWidget* parent)
ui_->account_type->hide();
ui_->busy->hide();
- ui_->sign_out->setIcon(IconLoader::Load("list-remove"));
+ ui_->sign_out->setIcon(IconLoader::Load("list-remove", IconLoader::Base));
QFont bold_font(font());
bold_font.setBold(true);
diff --git a/src/widgets/prettyimage.cpp b/src/widgets/prettyimage.cpp
index 50db99ff5..3a758af56 100644
--- a/src/widgets/prettyimage.cpp
+++ b/src/widgets/prettyimage.cpp
@@ -179,9 +179,9 @@ void PrettyImage::contextMenuEvent(QContextMenuEvent* e) {
if (!menu_) {
menu_ = new QMenu(this);
- menu_->addAction(IconLoader::Load("zoom-in"), tr("Show fullsize..."), this,
- SLOT(ShowFullsize()));
- menu_->addAction(IconLoader::Load("document-save"),
+ menu_->addAction(IconLoader::Load("zoom-in", IconLoader::Base),
+ tr("Show fullsize..."), this, SLOT(ShowFullsize()));
+ menu_->addAction(IconLoader::Load("document-save", IconLoader::Base),
tr("Save image") + "...", this, SLOT(SaveAs()));
}
diff --git a/src/wiimotedev/wiimotesettingspage.cpp b/src/wiimotedev/wiimotesettingspage.cpp
index 3c9adfcf3..2b705ad9c 100644
--- a/src/wiimotedev/wiimotesettingspage.cpp
+++ b/src/wiimotedev/wiimotesettingspage.cpp
@@ -15,6 +15,7 @@
along with Clementine. If not, see .
*/
+#include "ui/iconloader.h"
#include "consts.h"
#include "shortcuts.h"
#include "wiimotesettingspage.h"
@@ -27,7 +28,7 @@ WiimoteSettingsPage::WiimoteSettingsPage(SettingsDialog* dialog)
: SettingsPage(dialog), ui_(new Ui_WiimoteSettingsPage) {
ui_->setupUi(this);
ui_->list->header()->setResizeMode(QHeaderView::ResizeToContents);
- setWindowIcon(QIcon(":/icons/32x32/wiimotedev.png"));
+ setWindowIcon(IconLoader::Load("wiimotedev", IconLoader::Base));
text_buttons_.insert(WIIMOTE_BTN_1, "Wiiremote 1");
text_buttons_.insert(WIIMOTE_BTN_2, "Wiiremote 2");