diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 000000000..781c1819b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,18 @@
+### Before posting
+
+Please follow the steps below and check the boxes with [x] once you did the step.
+
+- [ ] I checked the issue tracker for similar issues
+- [ ] I checked the [changelog](https://github.com/clementine-player/Clementine/blob/master/Changelog) if the issue is already resolved
+- [ ] I tried the latest Clementine build from [here](https://builds.clementine-player.org/)
+
+### System information
+
+Please provide information about your system and the version of Clementine used.
+
+- Operating System:
+- Clementine version:
+
+### Expected behaviour / actual behaviour
+
+### Steps to reproduce the problem (only for bugs)
diff --git a/data/icons/22x22/media-playlist-repeat.png b/data/icons/22x22/media-playlist-repeat.png
index 04990a773..f36865cf9 100644
Binary files a/data/icons/22x22/media-playlist-repeat.png and b/data/icons/22x22/media-playlist-repeat.png differ
diff --git a/data/icons/22x22/media-playlist-shuffle.png b/data/icons/22x22/media-playlist-shuffle.png
index 55f9e1d78..1140dabdc 100644
Binary files a/data/icons/22x22/media-playlist-shuffle.png and b/data/icons/22x22/media-playlist-shuffle.png differ
diff --git a/data/icons/32x32/media-playlist-repeat.png b/data/icons/32x32/media-playlist-repeat.png
index 3ea206ac0..9fd3d115c 100644
Binary files a/data/icons/32x32/media-playlist-repeat.png and b/data/icons/32x32/media-playlist-repeat.png differ
diff --git a/data/icons/32x32/media-playlist-shuffle.png b/data/icons/32x32/media-playlist-shuffle.png
index aa1747e27..ac3e6ec77 100644
Binary files a/data/icons/32x32/media-playlist-shuffle.png and b/data/icons/32x32/media-playlist-shuffle.png differ
diff --git a/data/icons/48x48/media-playlist-repeat.png b/data/icons/48x48/media-playlist-repeat.png
index 8b5571772..44a83c008 100644
Binary files a/data/icons/48x48/media-playlist-repeat.png and b/data/icons/48x48/media-playlist-repeat.png differ
diff --git a/data/icons/48x48/media-playlist-shuffle.png b/data/icons/48x48/media-playlist-shuffle.png
index 67fa752d4..393dc83f9 100644
Binary files a/data/icons/48x48/media-playlist-shuffle.png and b/data/icons/48x48/media-playlist-shuffle.png differ
diff --git a/data/icons/svg/media-playlist-repeat.svg b/data/icons/svg/media-playlist-repeat.svg
index c4f04fb97..765ca13e1 100644
--- a/data/icons/svg/media-playlist-repeat.svg
+++ b/data/icons/svg/media-playlist-repeat.svg
@@ -1,19 +1,16 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
diff --git a/data/icons/svg/media-playlist-shuffle.svg b/data/icons/svg/media-playlist-shuffle.svg
index 1599c426e..a843ce923 100644
--- a/data/icons/svg/media-playlist-shuffle.svg
+++ b/data/icons/svg/media-playlist-shuffle.svg
@@ -1,35 +1,32 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/dist/clementine.desktop b/dist/clementine.desktop
index ad1c466ed..2fb9559e3 100644
--- a/dist/clementine.desktop
+++ b/dist/clementine.desktop
@@ -33,7 +33,7 @@ Terminal=false
Categories=AudioVideo;Player;Qt;Audio;
StartupNotify=false
MimeType=application/ogg;application/x-ogg;application/x-ogm-audio;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/ogg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/x-pn-realaudio;audio/x-scpls;audio/x-speex;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;video/x-ms-asf;x-content/audio-player;x-scheme-handler/zune;x-scheme-handler/itpc;x-scheme-handler/itms;x-scheme-handler/feed;
-Actions=Play;Pause;Stop;Previous;Next;
+Actions=Play;Pause;Stop;StopAfterCurrent;Previous;Next;
[Desktop Action Play]
Name=Play
@@ -181,6 +181,54 @@ Name[vi]=Dừng
Name[zh_CN]=停止
Name[zh_TW]=停止
+[Desktop Action StopAfterCurrent]
+Name=Stop after this track
+Exec=clementine --stop-after-current
+OnlyShowIn=Unity;
+Name[be]=Спыніць пасьля гэтага трэку
+Name[bg]=Спри след тази песен
+Name[br]=Paouez goude ar roud-mañ
+Name[ca]=Atura després d’aquesta peça
+Name[cs]=Zastavit po této skladbě
+Name[da]=Stop efter dette spor
+Name[de]=Wiedergabe nach diesem Titel anhalten
+Name[el]=Σταμάτημα μετά από αυτό το κομμάτι
+Name[es]=Detener reproducción al finalizar la pista
+Name[eu]=Gelditu pista honen ondoren
+Name[fa]=ایست پس از این آهنگ
+Name[fi]=Pysäytä toistettavan kappaleen jälkeen
+Name[fr]=Arrêter la lecture après cette piste
+Name[ga]=Stad i ndiaidh an rian seo
+Name[gl]=Deter a reprodución despois da pista actual
+Name[he]=הפסקה אחרי רצועה זו
+Name[hr]=Zaustavi reprodukciju nakon ove pjesme
+Name[hu]=Leállítás az aktuális szám után
+Name[it]=Ferma dopo questa traccia
+Name[ja]=このトラック後に停止
+Name[ko]=이번 트랙 이후 정지
+Name[lt]=Sustabdyti po šio takelio
+Name[lv]=Apturēt pēc šīs dziesmas
+Name[ms]=Henti selepas trek ini
+Name[nb]=Stopp etter denne sangen
+Name[nl]=Na dit nummer stoppen
+Name[pl]=Zatrzymaj po tym utworze
+Name[pt]=Parar após esta faixa
+Name[pt_BR]=Parar depois desta música
+Name[ro]=Oprește după această piesă
+Name[ru]=Остановить после этого трека
+Name[sk]=Zastaviť po tejto skladbe
+Name[sl]=Zaustavi po tej skladbi
+Name[sr]=Заустави после ове нумере
+Name[sr@ijekavian]=
+Name[sr@ijekavianlatin]=
+Name[sr@latin]=Zaustavi posle ove numere
+Name[sv]=Stoppa efter detta spår
+Name[tr]=Bu parçadan sonra durdur
+Name[uk]=Зупинити після цієї доріжки
+Name[vi]=Dừng sau khi phát xong bài này
+Name[zh_CN]=在此曲目后停止
+Name[zh_TW]=在這首歌之後停止
+
[Desktop Action Previous]
Name=Previous
Exec=clementine --previous
diff --git a/ext/clementine-tagreader/CMakeLists.txt b/ext/clementine-tagreader/CMakeLists.txt
index bee991195..816e7edbc 100644
--- a/ext/clementine-tagreader/CMakeLists.txt
+++ b/ext/clementine-tagreader/CMakeLists.txt
@@ -27,10 +27,10 @@ add_executable(clementine-tagreader
target_link_libraries(clementine-tagreader
${TAGLIB_LIBRARIES}
- ${QT_QTCORE_LIBRARY}
- ${QT_QTNETWORK_LIBRARY}
libclementine-common
libclementine-tagreader
+ ${QT_QTCORE_LIBRARY}
+ ${QT_QTNETWORK_LIBRARY}
)
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 13aadf28f..bedaabe13 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1336,6 +1336,7 @@ if (WIN32)
tinysvcmdns
qtwin
dsound
+ ${QT_QTGUI_LIBRARY}
)
endif (WIN32)
diff --git a/src/core/commandlineoptions.cpp b/src/core/commandlineoptions.cpp
index b1d891a52..1b39c9dc7 100644
--- a/src/core/commandlineoptions.cpp
+++ b/src/core/commandlineoptions.cpp
@@ -42,30 +42,31 @@ const char* CommandlineOptions::kHelpText =
" -t, --play-pause %6\n"
" -u, --pause %7\n"
" -s, --stop %8\n"
- " -r, --previous %9\n"
- " -f, --next %10\n"
- " -v, --volume %11\n"
- " --volume-up %12\n"
- " --volume-down %13\n"
- " --volume-increase-by %14\n"
- " --volume-decrease-by %15\n"
- " --seek-to %16\n"
- " --seek-by %17\n"
- " --restart-or-previous %18\n"
+ " -q, --stop-after-current %9\n"
+ " -r, --previous %10\n"
+ " -f, --next %11\n"
+ " -v, --volume %12\n"
+ " --volume-up %13\n"
+ " --volume-down %14\n"
+ " --volume-increase-by %15\n"
+ " --volume-decrease-by %16\n"
+ " --seek-to %17\n"
+ " --seek-by %18\n"
+ " --restart-or-previous %19\n"
"\n"
- "%19:\n"
- " -a, --append %20\n"
- " -l, --load %21\n"
- " -k, --play-track %22\n"
+ "%20:\n"
+ " -a, --append %21\n"
+ " -l, --load %22\n"
+ " -k, --play-track %23\n"
"\n"
- "%23:\n"
- " -o, --show-osd %24\n"
- " -y, --toggle-pretty-osd %25\n"
- " -g, --language %26\n"
- " --quiet %27\n"
- " --verbose %28\n"
- " --log-levels %29\n"
- " --version %30\n";
+ "%24:\n"
+ " -o, --show-osd %25\n"
+ " -y, --toggle-pretty-osd %26\n"
+ " -g, --language %27\n"
+ " --quiet %28\n"
+ " --verbose %29\n"
+ " --log-levels %30\n"
+ " --version %31\n";
const char* CommandlineOptions::kVersionText = "Clementine %1";
@@ -111,6 +112,7 @@ bool CommandlineOptions::Parse() {
{"play-pause", no_argument, 0, 't'},
{"pause", no_argument, 0, 'u'},
{"stop", no_argument, 0, 's'},
+ {"stop-after-current", no_argument, 0, 'q'},
{"previous", no_argument, 0, 'r'},
{"next", no_argument, 0, 'f'},
{"volume", required_argument, 0, 'v'},
@@ -136,7 +138,7 @@ bool CommandlineOptions::Parse() {
// Parse the arguments
bool ok = false;
forever {
- int c = getopt_long(argc_, argv_, "hptusrfv:alk:oyg:", kOptions, nullptr);
+ int c = getopt_long(argc_, argv_, "hptusqrfv:alk:oyg:", kOptions, nullptr);
// End of the options
if (c == -1) break;
@@ -150,8 +152,9 @@ bool CommandlineOptions::Parse() {
tr("Start the playlist currently playing"),
tr("Play if stopped, pause if playing"),
tr("Pause playback"), tr("Stop playback"),
- tr("Skip backwards in playlist"))
- .arg(tr("Skip forwards in playlist"),
+ tr("Stop playback after current track"))
+ .arg(tr("Skip backwards in playlist"),
+ tr("Skip forwards in playlist"),
tr("Set the volume to percent"),
tr("Increase the volume by 4%"),
tr("Decrease the volume by 4%"),
@@ -191,6 +194,9 @@ bool CommandlineOptions::Parse() {
case 's':
player_action_ = Player_Stop;
break;
+ case 'q':
+ player_action_ = Player_StopAfterCurrent;
+ break;
case 'r':
player_action_ = Player_Previous;
break;
diff --git a/src/core/commandlineoptions.h b/src/core/commandlineoptions.h
index 2ce20b4d2..e78026bf7 100644
--- a/src/core/commandlineoptions.h
+++ b/src/core/commandlineoptions.h
@@ -54,6 +54,7 @@ class CommandlineOptions {
Player_Previous = 5,
Player_Next = 6,
Player_RestartOrPrevious = 7,
+ Player_StopAfterCurrent = 8,
};
bool Parse();
diff --git a/src/dbus/org.mpris.MediaPlayer2.Player.xml b/src/dbus/org.mpris.MediaPlayer2.Player.xml
index 711a74e47..2c5d8c768 100644
--- a/src/dbus/org.mpris.MediaPlayer2.Player.xml
+++ b/src/dbus/org.mpris.MediaPlayer2.Player.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/src/dbus/org.mpris.MediaPlayer2.Playlists.xml b/src/dbus/org.mpris.MediaPlayer2.Playlists.xml
index ef4c28a3c..4656a4d3c 100644
--- a/src/dbus/org.mpris.MediaPlayer2.Playlists.xml
+++ b/src/dbus/org.mpris.MediaPlayer2.Playlists.xml
@@ -6,7 +6,7 @@
-
+
@@ -17,12 +17,12 @@
-
+
-
+
-
+
diff --git a/src/dbus/org.mpris.MediaPlayer2.TrackList.xml b/src/dbus/org.mpris.MediaPlayer2.TrackList.xml
index a08888cb8..3cbc15fc4 100644
--- a/src/dbus/org.mpris.MediaPlayer2.TrackList.xml
+++ b/src/dbus/org.mpris.MediaPlayer2.TrackList.xml
@@ -5,8 +5,8 @@
-
-
+
+
@@ -24,17 +24,17 @@
-
+
+
-
-
-
+
+
diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp
index 6400fa3aa..213d7877e 100644
--- a/src/playlist/playlistcontainer.cpp
+++ b/src/playlist/playlistcontainer.cpp
@@ -397,10 +397,18 @@ void PlaylistContainer::resizeEvent(QResizeEvent* e) {
void PlaylistContainer::FocusOnFilter(QKeyEvent* event) {
ui_->filter->setFocus();
- if (event->key() == Qt::Key_Escape) {
- ui_->filter->clear();
- } else {
- ui_->filter->setText(ui_->filter->text() + event->text());
+
+ switch (event->key()) {
+ case Qt::Key_Backspace:
+ break;
+
+ case Qt::Key_Escape:
+ ui_->filter->clear();
+ break;
+
+ default:
+ ui_->filter->setText(ui_->filter->text() + event->text());
+ break;
}
}
diff --git a/src/translations/ca.po b/src/translations/ca.po
index 234795275..e1ee8777d 100644
--- a/src/translations/ca.po
+++ b/src/translations/ca.po
@@ -15,7 +15,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Clementine Music Player\n"
-"PO-Revision-Date: 2016-02-28 19:01+0000\n"
+"PO-Revision-Date: 2016-03-02 22:38+0000\n"
"Last-Translator: Juanjo\n"
"Language-Team: Catalan (http://www.transifex.com/davidsansome/clementine/language/ca/)\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -135,7 +135,7 @@ msgstr "%1 cançons trobades (mostrant %2)"
#: playlist/playlistmanager.cpp:409
#, qt-format
msgid "%1 tracks"
-msgstr "%1 temes"
+msgstr "%1 peces"
#: ui/albumcovermanager.cpp:469
#, qt-format
@@ -337,7 +337,7 @@ msgid ""
"artists that contain the word Bode.
Available fields: %1 .