Hello community,

here is the log from the commit of package qmmp for openSUSE:Factory checked in 
at 2016-07-05 09:52:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qmmp (Old)
 and      /work/SRC/openSUSE:Factory/.qmmp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qmmp"

Changes:
--------
--- /work/SRC/openSUSE:Factory/qmmp/qmmp.changes        2016-06-23 
13:37:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qmmp.new/qmmp.changes   2016-07-05 
09:53:09.000000000 +0200
@@ -1,0 +2,15 @@
+Mon Jul  4 19:30:15 UTC 2016 - [email protected]
+
+- Update to version 1.1.1:
+  * Add FFmpeg 3.1 support.
+  * Fix Qt 5.7 support.
+  * Fix Russian translation.
+  * Update Ukrainian, Portuguese translation.
+- Rebase qmmp-taglib-1.9.patch.
+
+-------------------------------------------------------------------
+Wed Jun 29 19:29:12 UTC 2016 - [email protected]
+
+- Add qmmp-taglib-1.9.patch: extend TagLib support to 1.9.
+
+-------------------------------------------------------------------

Old:
----
  qmmp-1.1.0.tar.bz2

New:
----
  qmmp-1.1.1.tar.bz2
  qmmp-taglib-1.9.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qmmp.spec ++++++
--- /var/tmp/diff_new_pack.6e8J3g/_old  2016-07-05 09:53:10.000000000 +0200
+++ /var/tmp/diff_new_pack.6e8J3g/_new  2016-07-05 09:53:10.000000000 +0200
@@ -19,7 +19,7 @@
 %define sover   1
 %bcond_with restricted
 Name:           qmmp
-Version:        1.1.0
+Version:        1.1.1
 Release:        0
 Summary:        Qt-based Multimedia Player
 License:        GPL-2.0+
@@ -31,6 +31,8 @@
 Patch0:         %{name}-fix_cdda_version.patch
 # PATCH-FEATURE-OPENSUSE qmmp-default_pulse.patch [email protected] -- Use 
PulseAudio instead of ALSA by default.
 Patch1:         %{name}-default-pulse.patch
+# PATCH-FIX-OPENSUSE qmmp-taglib-1.9.patch -- Extend TagLib support to 1.9.
+Patch2:         %{name}-taglib-1.9.patch
 BuildRequires:  cmake
 BuildRequires:  desktop-file-utils
 BuildRequires:  gcc-c++
@@ -69,7 +71,7 @@
 BuildRequires:  pkgconfig(opusfile) >= 0.2
 BuildRequires:  pkgconfig(sndfile)
 BuildRequires:  pkgconfig(soxr)
-BuildRequires:  pkgconfig(taglib)
+BuildRequires:  pkgconfig(taglib) >= 1.9
 BuildRequires:  pkgconfig(vorbisfile)
 BuildRequires:  pkgconfig(wavpack)
 Requires:       %{name}(%{sover})(Input)
@@ -137,6 +139,7 @@
 %setup -q
 %patch0
 %patch1 -p1
+%patch2 -p1
 
 %build
 %cmake \

++++++ qmmp-1.1.0.tar.bz2 -> qmmp-1.1.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/.tx/config new/qmmp-1.1.1/.tx/config
--- old/qmmp-1.1.0/.tx/config   2016-06-21 12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/.tx/config   2016-07-04 18:34:56.000000000 +0200
@@ -1,421 +1,421 @@
 [main]
 host = https://www.transifex.com
 
-[qmmp.qmmp]
+[qmmp-stable.qmmp]
 file_filter = src/app/translations/qmmp_<lang>.ts
 source_lang = en
 source_file = src/app/translations/qmmp_en.ts
 type = QT
 
-[qmmp.libqmmpui]
+[qmmp-stable.libqmmpui]
 file_filter = src/qmmpui/translations/libqmmpui_<lang>.ts
 source_lang = en
 source_file = src/qmmpui/translations/libqmmpui_en.ts
 type = QT
 
-[qmmp.qsui]
+[qmmp-stable.qsui]
 file_filter = src/plugins/Ui/qsui/translations/qsui_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Ui/qsui/translations/qsui_plugin_en.ts
 type = QT
 
-[qmmp.skinned]
+[qmmp-stable.skinned]
 file_filter = src/plugins/Ui/skinned/translations/skinned_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Ui/skinned/translations/skinned_plugin_en.ts
 type = QT
 
-[qmmp.bs2b]
+[qmmp-stable.bs2b]
 file_filter = src/plugins/Effect/bs2b/translations/bs2b_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Effect/bs2b/translations/bs2b_plugin_en.ts
 type = QT
 
-[qmmp.soxr]
+[qmmp-stable.soxr]
 file_filter = src/plugins/Effect/soxr/translations/soxr_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Effect/soxr/translations/soxr_plugin_en.ts
 type = QT
 
-[qmmp.crossfade]
+[qmmp-stable.crossfade]
 file_filter = 
src/plugins/Effect/crossfade/translations/crossfade_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Effect/crossfade/translations/crossfade_plugin_en.ts
 type = QT
 
-[qmmp.ladspa]
+[qmmp-stable.ladspa]
 file_filter = src/plugins/Effect/ladspa/translations/ladspa_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Effect/ladspa/translations/ladspa_plugin_en.ts
 type = QT
 
-[qmmp.stereo]
+[qmmp-stable.stereo]
 file_filter = src/plugins/Effect/stereo/translations/stereo_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Effect/stereo/translations/stereo_plugin_en.ts
 type = QT
 
-[qmmp.aac]
+[qmmp-stable.aac]
 file_filter = src/plugins/Input/aac/translations/aac_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/aac/translations/aac_plugin_en.ts
 type = QT
 
-[qmmp.cue]
+[qmmp-stable.cue]
 file_filter = src/plugins/Input/cue/translations/cue_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/cue/translations/cue_plugin_en.ts
 type = QT
 
-[qmmp.gme]
+[qmmp-stable.gme]
 file_filter = src/plugins/Input/gme/translations/gme_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/gme/translations/gme_plugin_en.ts
 type = QT
 
-[qmmp.mad]
+[qmmp-stable.mad]
 file_filter = src/plugins/Input/mad/translations/mad_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/mad/translations/mad_plugin_en.ts
 type = QT
 
-[qmmp.mpc]
+[qmmp-stable.mpc]
 file_filter = src/plugins/Input/mpc/translations/mpc_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/mpc/translations/mpc_plugin_en.ts
 type = QT
 
-[qmmp.sid]
+[qmmp-stable.sid]
 file_filter = src/plugins/Input/sid/translations/sid_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/sid/translations/sid_plugin_en.ts
 type = QT
 
-[qmmp.flac]
+[qmmp-stable.flac]
 file_filter = src/plugins/Input/flac/translations/flac_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/flac/translations/flac_plugin_en.ts
 type = QT
 
-[qmmp.opus]
+[qmmp-stable.opus]
 file_filter = src/plugins/Input/opus/translations/opus_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/opus/translations/opus_plugin_en.ts
 type = QT
 
-[qmmp.sndfile]
+[qmmp-stable.sndfile]
 file_filter = src/plugins/Input/sndfile/translations/sndfile_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/sndfile/translations/sndfile_plugin_en.ts
 type = QT
 
-[qmmp.modplug]
+[qmmp-stable.modplug]
 file_filter = src/plugins/Input/modplug/translations/modplug_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/modplug/translations/modplug_plugin_en.ts
 type = QT
 
-[qmmp.ffmpeg]
+[qmmp-stable.ffmpeg]
 file_filter = src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_en.ts
 type = QT
 
-[qmmp.wildmidi]
+[qmmp-stable.wildmidi]
 file_filter = src/plugins/Input/wildmidi/translations/wildmidi_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/wildmidi/translations/wildmidi_plugin_en.ts
 type = QT
 
-[qmmp.vorbis]
+[qmmp-stable.vorbis]
 file_filter = src/plugins/Input/vorbis/translations/vorbis_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/vorbis/translations/vorbis_plugin_en.ts
 type = QT
 
-[qmmp.wavpack]
+[qmmp-stable.wavpack]
 file_filter = src/plugins/Input/wavpack/translations/wavpack_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/wavpack/translations/wavpack_plugin_en.ts
 type = QT
 
-[qmmp.cdaudio]
+[qmmp-stable.cdaudio]
 file_filter = src/plugins/Input/cdaudio/translations/cdaudio_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Input/cdaudio/translations/cdaudio_plugin_en.ts
 type = QT
 
-[qmmp.oss]
+[qmmp-stable.oss]
 file_filter = src/plugins/Output/oss/translations/oss_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/oss/translations/oss_plugin_en.ts
 type = QT
 
-[qmmp.alsa]
+[qmmp-stable.alsa]
 file_filter = src/plugins/Output/alsa/translations/alsa_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/alsa/translations/alsa_plugin_en.ts
 type = QT
 
-[qmmp.jack]
+[qmmp-stable.jack]
 file_filter = src/plugins/Output/jack/translations/jack_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/jack/translations/jack_plugin_en.ts
 type = QT
 
-[qmmp.null]
+[qmmp-stable.null]
 file_filter = src/plugins/Output/null/translations/null_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/null/translations/null_plugin_en.ts
 type = QT
 
-[qmmp.oss4]
+[qmmp-stable.oss4]
 file_filter = src/plugins/Output/oss4/translations/oss4_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/oss4/translations/oss4_plugin_en.ts
 type = QT
 
-[qmmp.wasapi]
+[qmmp-stable.wasapi]
 file_filter = src/plugins/Output/wasapi/translations/wasapi_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/wasapi/translations/wasapi_plugin_en.ts
 type = QT
 
-[qmmp.waveout]
+[qmmp-stable.waveout]
 file_filter = src/plugins/Output/waveout/translations/waveout_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Output/waveout/translations/waveout_plugin_en.ts
 type = QT
 
-[qmmp.qtmultimedia]
+[qmmp-stable.qtmultimedia]
 file_filter = 
src/plugins/Output/qtmultimedia/translations/qtmultimedia_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/Output/qtmultimedia/translations/qtmultimedia_plugin_en.ts
 type = QT
 
-[qmmp.pulseaudio]
+[qmmp-stable.pulseaudio]
 file_filter = 
src/plugins/Output/pulseaudio/translations/pulseaudio_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/Output/pulseaudio/translations/pulseaudio_plugin_en.ts
 type = QT
 
-[qmmp.directsound]
+[qmmp-stable.directsound]
 file_filter = 
src/plugins/Output/directsound/translations/directsound_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/Output/directsound/translations/directsound_plugin_en.ts
 type = QT
 
-[qmmp.projectm]
+[qmmp-stable.projectm]
 file_filter = 
src/plugins/Visual/projectm/translations/projectm_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Visual/projectm/translations/projectm_plugin_en.ts
 type = QT
 
-[qmmp.analyzer]
+[qmmp-stable.analyzer]
 file_filter = 
src/plugins/Visual/analyzer/translations/analyzer_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Visual/analyzer/translations/analyzer_plugin_en.ts
 type = QT
 
-[qmmp.incdecvolume]
+[qmmp-stable.incdecvolume]
 file_filter = 
src/plugins/CommandLineOptions/IncDecVolumeOption/translations/incdecvolume_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/CommandLineOptions/IncDecVolumeOption/translations/incdecvolume_plugin_en.ts
 type = QT
 
-[qmmp.uninstall]
+[qmmp-stable.uninstall]
 file_filter = 
src/plugins/CommandLineOptions/UninstallOption/translations/uninstall_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/CommandLineOptions/UninstallOption/translations/uninstall_plugin_en.ts
 type = QT
 
-[qmmp.playlist]
+[qmmp-stable.playlist]
 file_filter = 
src/plugins/CommandLineOptions/PlayListOption/translations/playlist_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/CommandLineOptions/PlayListOption/translations/playlist_plugin_en.ts
 type = QT
 
-[qmmp.seek]
+[qmmp-stable.seek]
 file_filter = 
src/plugins/CommandLineOptions/SeekOption/translations/seek_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/CommandLineOptions/SeekOption/translations/seek_plugin_en.ts
 type = QT
 
-[qmmp.status]
+[qmmp-stable.status]
 file_filter = 
src/plugins/CommandLineOptions/StatusOption/translations/status_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/CommandLineOptions/StatusOption/translations/status_plugin_en.ts
 type = QT
 
-[qmmp.mplayer]
+[qmmp-stable.mplayer]
 file_filter = src/plugins/Engines/mplayer/translations/mplayer_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Engines/mplayer/translations/mplayer_plugin_en.ts
 type = QT
 
-[qmmp.hal]
+[qmmp-stable.hal]
 file_filter = src/plugins/General/hal/translations/hal_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/hal/translations/hal_plugin_en.ts
 type = QT
 
-[qmmp.kdenotify]
+[qmmp-stable.kdenotify]
 file_filter = 
src/plugins/General/kdenotify/translations/kdenotify_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/kdenotify/translations/kdenotify_plugin_en.ts
 type = QT
 
-[qmmp.notifier]
+[qmmp-stable.notifier]
 file_filter = 
src/plugins/General/notifier/translations/notifier_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/notifier/translations/notifier_plugin_en.ts
 type = QT
 
-[qmmp.mpris]
+[qmmp-stable.mpris]
 file_filter = src/plugins/General/mpris/translations/mpris_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/mpris/translations/mpris_plugin_en.ts
 type = QT
 
-[qmmp.streambrowser]
+[qmmp-stable.streambrowser]
 file_filter = 
src/plugins/General/streambrowser/translations/streambrowser_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/General/streambrowser/translations/streambrowser_plugin_en.ts
 type = QT
 
-[qmmp.fileops]
+[qmmp-stable.fileops]
 file_filter = src/plugins/General/fileops/translations/fileops_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/fileops/translations/fileops_plugin_en.ts
 type = QT
 
-[qmmp.converter]
+[qmmp-stable.converter]
 file_filter = 
src/plugins/General/converter/translations/converter_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/converter/translations/converter_plugin_en.ts
 type = QT
 
-[qmmp.udisks2]
+[qmmp-stable.udisks2]
 file_filter = src/plugins/General/udisks2/translations/udisks2_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/udisks2/translations/udisks2_plugin_en.ts
 type = QT
 
-[qmmp.hotkey]
+[qmmp-stable.hotkey]
 file_filter = src/plugins/General/hotkey/translations/hotkey_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/hotkey/translations/hotkey_plugin_en.ts
 type = QT
 
-[qmmp.gnomehotkey]
+[qmmp-stable.gnomehotkey]
 file_filter = 
src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_en.ts
 type = QT
 
-[qmmp.lyrics]
+[qmmp-stable.lyrics]
 file_filter = src/plugins/General/lyrics/translations/lyrics_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/lyrics/translations/lyrics_plugin_en.ts
 type = QT
 
-[qmmp.rgscan]
+[qmmp-stable.rgscan]
 file_filter = src/plugins/General/rgscan/translations/rgscan_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/rgscan/translations/rgscan_plugin_en.ts
 type = QT
 
-[qmmp.copypaste]
+[qmmp-stable.copypaste]
 file_filter = 
src/plugins/General/copypaste/translations/copypaste_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/copypaste/translations/copypaste_plugin_en.ts
 type = QT
 
-[qmmp.statusicon]
+[qmmp-stable.statusicon]
 file_filter = 
src/plugins/General/statusicon/translations/statusicon_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/General/statusicon/translations/statusicon_plugin_en.ts
 type = QT
 
-[qmmp.covermanager]
+[qmmp-stable.covermanager]
 file_filter = 
src/plugins/General/covermanager/translations/covermanager_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/General/covermanager/translations/covermanager_plugin_en.ts
 type = QT
 
-[qmmp.trackchange]
+[qmmp-stable.trackchange]
 file_filter = 
src/plugins/General/trackchange/translations/trackchange_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/General/trackchange/translations/trackchange_plugin_en.ts
 type = QT
 
-[qmmp.scrobbler]
+[qmmp-stable.scrobbler]
 file_filter = 
src/plugins/General/scrobbler/translations/scrobbler_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/General/scrobbler/translations/scrobbler_plugin_en.ts
 type = QT
 
-[qmmp.qmmp_file_dialog]
+[qmmp-stable.qmmp_file_dialog]
 file_filter = 
src/plugins/FileDialogs/QmmpFileDialog/translations/qmmp_file_dialog_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/FileDialogs/QmmpFileDialog/translations/qmmp_file_dialog_plugin_en.ts
 type = QT
 
-[qmmp.TwoPanelFileDialog]
+[qmmp-stable.TwoPanelFileDialog]
 file_filter = 
src/plugins/FileDialogs/TwoPanelFileDialog/translations/TwoPanelFileDialog_plugin_<lang>.ts
 source_lang = en
 source_file = 
src/plugins/FileDialogs/TwoPanelFileDialog/translations/TwoPanelFileDialog_plugin_en.ts
 type = QT
 
-[qmmp.mms]
+[qmmp-stable.mms]
 file_filter = src/plugins/Transports/mms/translations/mms_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Transports/mms/translations/mms_plugin_en.ts
 type = QT
 
-[qmmp.http]
+[qmmp-stable.http]
 file_filter = src/plugins/Transports/http/translations/http_plugin_<lang>.ts
 source_lang = en
 source_file = src/plugins/Transports/http/translations/http_plugin_en.ts
 type = QT
 
-[qmmp.description]
+[qmmp-stable.description]
 file_filter = src/qmmpui/txt/description_<lang>.txt
 source_lang = en
 source_file = src/qmmpui/txt/description.txt
 type = TXT
 
-[qmmp.authors]
+[qmmp-stable.authors]
 file_filter = src/qmmpui/txt/authors_<lang>.txt
 source_lang = en
 source_file = src/qmmpui/txt/authors.txt
 type = TXT
 
-[qmmp.translators]
+[qmmp-stable.translators]
 file_filter = src/qmmpui/txt/translators_<lang>.txt
 source_lang = en
 source_file = src/qmmpui/txt/translators.txt
 type = TXT
 
-[qmmp.thanks]
+[qmmp-stable.thanks]
 file_filter = src/qmmpui/txt/thanks_<lang>.txt
 source_lang = en
 source_file = src/qmmpui/txt/thanks.txt
 type = TXT
 
-[qmmp.qmmp-desktop]
+[qmmp-stable.qmmp-desktop]
 file_filter = src/app/desktop-translations/qmmp_<lang>.desktop.in
 source_lang = en
 source_file = src/app/qmmp.desktop
 type = DESKTOP
 
-[qmmp.qmmp_dir-desktop]
+[qmmp-stable.qmmp_dir-desktop]
 file_filter = src/app/desktop-translations/qmmp_dir_<lang>.desktop.in
 source_lang = en
 source_file = src/app/qmmp_dir.desktop
 type = DESKTOP
 
-[qmmp.qmmp_enqueue-desktop]
+[qmmp-stable.qmmp_enqueue-desktop]
 file_filter = src/app/desktop-translations/qmmp_enqueue_<lang>.desktop.in
 source_lang = en
 source_file = src/app/qmmp_enqueue.desktop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/ChangeLog new/qmmp-1.1.1/ChangeLog
--- old/qmmp-1.1.0/ChangeLog    2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/ChangeLog    2016-07-04 18:34:56.000000000 +0200
@@ -1188,3 +1188,11 @@
 * updated Portuguese translation (Sérgio Marques)
 * updated Russian translation
 * updated Ukrainian translation (Gennadi Motsyo)
+
+Version 1.1.1
+* added ffmpeg 3.1 support
+* added portable mode for Windows
+* fixed qt5.7 support
+* fixed Russian translation
+* updated Ukrainian translation (Gennadi Motsyo)
+* updated Portuguese translation (Sérgio Marques)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/ChangeLog.rus new/qmmp-1.1.1/ChangeLog.rus
--- old/qmmp-1.1.0/ChangeLog.rus        2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/ChangeLog.rus        2016-07-04 18:34:56.000000000 +0200
@@ -1190,3 +1190,11 @@
 * обновлён португальский перевод (Sérgio Marques)
 * обновлён русский перевод
 * обновлён украинский перевод (Геннадий Моцьо)
+
+Версия 1.1.1
+* добавлена поддержка ffmpeg 3.1
+* добавлен переносимый режим для Windows
+* исправлена поддержка qt5.7
+* исправлен русский перевод
+* обновлён украинский перевод (Геннадий Моцьо)
+* обновлён португальский перевод (Sérgio Marques)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/ChangeLog.svn new/qmmp-1.1.1/ChangeLog.svn
--- old/qmmp-1.1.0/ChangeLog.svn        2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/ChangeLog.svn        2016-07-04 18:34:56.000000000 +0200
@@ -1,4 +1,65 @@
 ------------------------------------------------------------------------
+r6562 | trialuser02 | 2016-07-04 16:17:56 +0300 (Пн., 04 июля 2016) | 1 line
+
+updated changelogs
+------------------------------------------------------------------------
+r6560 | trialuser02 | 2016-07-04 16:15:16 +0300 (Пн., 04 июля 2016) | 1 line
+
+fixed Portuguese translation (Sérgio Marques)
+------------------------------------------------------------------------
+r6556 | trialuser02 | 2016-07-04 15:40:07 +0300 (Пн., 04 июля 2016) | 1 line
+
+updated changelog
+------------------------------------------------------------------------
+r6549 | trialuser02 | 2016-06-30 14:38:12 +0300 (Чт., 30 июня 2016) | 1 line
+
+added portable mode (for windows only)
+------------------------------------------------------------------------
+r6543 | trialuser02 | 2016-06-28 15:19:54 +0300 (Вт., 28 июня 2016) | 1 line
+
+updated changelogs
+------------------------------------------------------------------------
+r6541 | trialuser02 | 2016-06-28 11:43:23 +0300 (Вт., 28 июня 2016) | 1 line
+
+fixed typo
+------------------------------------------------------------------------
+r6537 | trialuser02 | 2016-06-27 14:04:29 +0300 (Пн., 27 июня 2016) | 1 line
+
+ffmpeg: fixed warning
+------------------------------------------------------------------------
+r6533 | trialuser02 | 2016-06-27 13:44:34 +0300 (Пн., 27 июня 2016) | 1 line
+
+added ffmpeg 3.1 support
+------------------------------------------------------------------------
+r6531 | trialuser02 | 2016-06-27 09:34:33 +0300 (Пн., 27 июня 2016) | 1 line
+
+replaced deprecated QStyleOptionViewItemV4
+------------------------------------------------------------------------
+r6528 | trialuser02 | 2016-06-26 18:09:15 +0300 (Вс., 26 июня 2016) | 1 line
+
+hide symbols for all plugins
+------------------------------------------------------------------------
+r6522 | trialuser02 | 2016-06-26 15:21:36 +0300 (Вс., 26 июня 2016) | 2 lines
+
+disabled c++14 (due to problem with QStringLiteral)
+
+------------------------------------------------------------------------
+r6520 | motsyo | 2016-06-25 18:47:52 +0300 (Сб., 25 июня 2016) | 1 line
+
+update Ukrainian translation
+------------------------------------------------------------------------
+r6517 | trialuser02 | 2016-06-24 11:58:29 +0300 (Пт., 24 июня 2016) | 1 line
+
+fixed comment
+------------------------------------------------------------------------
+r6511 | trialuser02 | 2016-06-22 09:04:09 +0300 (Ср., 22 июня 2016) | 1 line
+
+updated transifex config
+------------------------------------------------------------------------
+r6505 | trialuser02 | 2016-06-21 13:29:28 +0300 (Вт., 21 июня 2016) | 1 line
+
+version bump
+------------------------------------------------------------------------
 r6493 | trialuser02 | 2016-06-21 12:00:17 +0300 (Вт., 21 июня 2016) | 1 line
 
 fixed typo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/README.UKR new/qmmp-1.1.1/README.UKR
--- old/qmmp-1.1.0/README.UKR   2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/README.UKR   2016-07-04 18:34:56.000000000 +0200
@@ -67,7 +67,7 @@
 - сканер ReplayGain
 
 Вимоги:
-- Qt >= 4.6
+- Qt >= 5.4 (qtbase, qtx11extras та qttools для компіляції)
 - tar, unzip, bzip2, gzip
 - libmad
 - libvorbis
@@ -117,17 +117,20 @@
 Доступні опції:
 - USE_CURL, USE_MMS (транспортні модулі);
 - USE_MAD, USE_FLAC, USE_VORBIS, USE_MPC, USE_MODPLUG, USE_SNDFILE, 
USE_WAVPACK, USE_FFMPEG, USE_AAC, USE_CUE,
-  USE_MPLAYER, USE_CDA, USE_MIDI, USE_GME, USE_FFMPEG_LEGACY, USE_OPUS 
(декодери);
-- USE_ALSA, USE_OSS, USE_JACK, USE_PULSE, USE_NULL, USE_OSS4, USE_WAVEOUT, 
USE_DSOUND (модулі виведення);
-- USE_SRC, USE_BS2B, USE_LADSPA, USE_CROSSFADE, USE_STEREO (ефекти);
+  USE_MPLAYER, USE_CDA, USE_MIDI, USE_GME, USE_OPUS (декодери);
+- USE_ALSA, USE_OSS, USE_JACK, USE_PULSE, USE_NULL, USE_OSS4, USE_WAVEOUT, 
USE_DSOUND, USE_QTMULTIMEDIA,
+  USE_WASAPI (модулі  виведення);
+- USE_SOXR, USE_BS2B, USE_LADSPA, USE_CROSSFADE, USE_STEREO (ефекти);
 - USE_ANALYZER, USE_PROJECTM (візуалізація);
 - USE_MPRIS, USE_SCROBBLER, USE_STATICON, USE_NOTIFIER, USE_LYRICS, USE_HAL, 
USE_HOTKEY, USE_FILEOPS, USE_COVER,
-  USE_KDENOTIFY, USE_UDISKS2, USE_UDISKS, USE_CONVERTER, USE_RGSCAN, 
USE_TRACKCHANGE, USE_COPYPASTE,
+  USE_KDENOTIFY, USE_UDISKS2, USE_CONVERTER, USE_RGSCAN, USE_TRACKCHANGE, 
USE_COPYPASTE,
   USE_GNOMEHOTKEY (модулі загального призначення);
 - USE_QMMP_DIALOG (файловий діалог);
 - USE_ENCA (автоматичне визначення кодування);
 - USE_SKINNED (стандартний інтерфейс користувача);
+- USE_QSUI (простий інтерфейс);
 - USE_DIR_ASSOC (прив'язка до mime-типу inode/directory);
+- QMMP_DEFAULT_OUTPUT (модуль виведення за замовчанням, приклад використання: 
-DQMMP_DEFAULT_OUTPUT=pulse).
 
 Також ви можете використовувати ccmake для зміни конфігурації модулів.
 За замовчуванням програма буде встановлена в /usr/local. Ви можете змінити цей 
шлях командою:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/qmmp.pri new/qmmp-1.1.1/qmmp.pri
--- old/qmmp-1.1.0/qmmp.pri     2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/qmmp.pri     2016-07-04 18:34:56.000000000 +0200
@@ -13,7 +13,7 @@
 
 #Version
 
-QMMP_VERSION = 1.1.0
+QMMP_VERSION = 1.1.1
 
 #Comment/uncomment this if you want to change plugins list
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/app/qmmp.rc 
new/qmmp-1.1.1/src/app/qmmp.rc
--- old/qmmp-1.1.0/src/app/qmmp.rc      2016-06-21 12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/app/qmmp.rc      2016-07-04 18:34:56.000000000 +0200
@@ -1,7 +1,7 @@
 #include <winver.h>
 
-#define QMMP_FILEVERSION 1,1,0,0
-#define QMMP_PRODUCTVERSION "1.1.0.0"
+#define QMMP_FILEVERSION 1,1,1,0
+#define QMMP_PRODUCTVERSION "1.1.1.0"
 
 IDI_ICON1              ICON            DISCARDABLE     "images\\ico\\qmmp.ico"
 IDI_ICON2              ICON            DISCARDABLE     
"images\\ico\\qmmp_file.ico"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/plugins/CMakeLists.txt 
new/qmmp-1.1.1/src/plugins/CMakeLists.txt
--- old/qmmp-1.1.0/src/plugins/CMakeLists.txt   2016-06-21 12:11:56.000000000 
+0200
+++ new/qmmp-1.1.1/src/plugins/CMakeLists.txt   2016-07-04 18:34:56.000000000 
+0200
@@ -1,5 +1,6 @@
 SET(USE_ENCA TRUE CACHE BOOL "enable/disable libenca support")
 include(FindPkgConfig)
+set(CMAKE_CXX_VISIBILITY_PRESET hidden)
 pkg_search_module(ENCA enca>=1.9)
 pkg_search_module(TAGLIB taglib>=1.10)
 add_subdirectory(Input)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.0/src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_ru.ts
 
new/qmmp-1.1.1/src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_ru.ts
--- 
old/qmmp-1.1.0/src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_ru.ts
        2016-06-21 12:11:56.000000000 +0200
+++ 
new/qmmp-1.1.1/src/plugins/General/gnomehotkey/translations/gnomehotkey_plugin_ru.ts
        2016-07-04 18:34:56.000000000 +0200
@@ -21,7 +21,7 @@
     <message>
         <location filename="../gnomehotkeyfactory.cpp" line="53"/>
         <source>This plugin adds support of the GNOME/Cinnamon hotkeys</source>
-        <translation>Этот модуль добавляет поддершку горячих клавиш 
GNOME/Cinnamon</translation>
+        <translation>Этот модуль добавляет поддержку горячих клавиш 
GNOME/Cinnamon</translation>
     </message>
     <message>
         <location filename="../gnomehotkeyfactory.cpp" line="54"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.0/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp 
new/qmmp-1.1.1/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
--- old/qmmp-1.1.0/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp  2016-06-21 
12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp  2016-07-04 
18:34:56.000000000 +0200
@@ -79,6 +79,7 @@
     m_stream = 0;
     m_decoded_frame = 0;
     m_channels = 0;
+    c = 0;
     av_init_packet(&m_pkt);
     av_init_packet(&m_temp_pkt);
 }
@@ -88,6 +89,10 @@
 {
     m_bitrate = 0;
     m_temp_pkt.size = 0;
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+    if(c)
+        avcodec_free_context(&c);
+#endif
     if (ic)
         avformat_free_context(ic);
     if(m_pkt.data)
@@ -200,12 +205,19 @@
     ReplayGainReader rg(ic);
     setReplayGainInfo(rg.replayGainInfo());
 
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+    c = avcodec_alloc_context3(NULL);
+#endif
 
     ic->flags |= AVFMT_FLAG_GENPTS;
     av_read_play(ic);
     for (wma_idx = 0; wma_idx < (int)ic->nb_streams; wma_idx++)
     {
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+        avcodec_parameters_to_context(c, ic->streams[wma_idx]->codecpar);
+#else
         c = ic->streams[wma_idx]->codec;
+#endif
         if (c->codec_type == AVMEDIA_TYPE_AUDIO)
             break;
     }
@@ -357,7 +369,30 @@
         avcodec_get_frame_defaults(m_decoded_frame);
 #endif
 
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+        int err = 0;
+        if((err = avcodec_send_packet(c, &m_temp_pkt)) < 0)
+        {
+            if(err == EAGAIN) //try again
+                return 0;
+            else
+            {
+                qWarning("DecoderFFmpeg: avcodec_send_packet error: %d", err);
+                return -1;
+            }
+        }
+        if((err = avcodec_receive_frame(c, m_decoded_frame)) < 0)
+        {
+            if(err == EAGAIN) //try again
+                return 0;
+            qWarning("DecoderFFmpeg: avcodec_receive_frame error: %d", err);
+            return -1;
+        }
+        got_frame = av_frame_get_pkt_size(m_decoded_frame);
+        int l = m_temp_pkt.size;
+#else
         int l = avcodec_decode_audio4(c, m_decoded_frame, &got_frame, 
&m_temp_pkt);
+#endif
 
         if(got_frame)
             out_size = av_samples_get_buffer_size(0, c->channels, 
m_decoded_frame->nb_samples,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.0/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp 
new/qmmp-1.1.1/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp
--- old/qmmp-1.1.0/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp     
2016-06-21 12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp     
2016-07-04 18:34:56.000000000 +0200
@@ -51,11 +51,19 @@
     ap.insert(tr("File size"),  QString("%1 ").arg(avio_size(m_in->pb)) + " " 
+ tr("KB"));
     ap.insert(tr("Bitrate"), QString("%1 
"+tr("kbps")).arg(m_in->bit_rate/1000));
 
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+    AVCodecParameters *c = 0;
+#else
     AVCodecContext *c = 0;
+#endif
     uint idx;
     for (idx = 0; idx < m_in->nb_streams; idx++)
     {
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+        c = m_in->streams[idx]->codecpar;
+#else
         c = m_in->streams[idx]->codec;
+#endif
         if (c->codec_type == AVMEDIA_TYPE_AUDIO)
             break;
     }
@@ -69,10 +77,19 @@
 
 QPixmap FFmpegMetaDataModel::cover()
 {
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+    AVCodecParameters *c = 0;
+#else
     AVCodecContext *c = 0;
+#endif
+
     for (uint idx = 0; idx < m_in->nb_streams; idx++)
     {
+#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
+        c = m_in->streams[idx]->codecpar;
+#else
         c = m_in->streams[idx]->codec;
+#endif
         if (c->codec_type == AVMEDIA_TYPE_VIDEO && c->codec_id == 
AV_CODEC_ID_MJPEG)
             break;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/plugins/Output/jack/CMakeLists.txt 
new/qmmp-1.1.1/src/plugins/Output/jack/CMakeLists.txt
--- old/qmmp-1.1.0/src/plugins/Output/jack/CMakeLists.txt       2016-06-21 
12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/plugins/Output/jack/CMakeLists.txt       2016-07-04 
18:34:56.000000000 +0200
@@ -12,7 +12,7 @@
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
 link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
 
-# libjack and samplerate
+# libjack and libsoxr
 pkg_check_modules(JACK jack>=1.9.8 soxr)
 
 IF(NOT JACK_FOUND)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.0/src/plugins/Output/wasapi/translations/wasapi_plugin_uk_UA.ts 
new/qmmp-1.1.1/src/plugins/Output/wasapi/translations/wasapi_plugin_uk_UA.ts
--- 
old/qmmp-1.1.0/src/plugins/Output/wasapi/translations/wasapi_plugin_uk_UA.ts    
    2016-06-21 12:11:56.000000000 +0200
+++ 
new/qmmp-1.1.1/src/plugins/Output/wasapi/translations/wasapi_plugin_uk_UA.ts    
    2016-07-04 18:34:56.000000000 +0200
@@ -1,27 +1,27 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<TS version="2.0" language="uk_UA">
+<TS version="2.1" language="uk">
 <context>
     <name>OutputWASAPIFactory</name>
     <message>
         <location filename="../outputwasapifactory.cpp" line="29"/>
         <source>WASAPI Plugin</source>
-        <translation type="unfinished"></translation>
+        <translation>Модуль WASAPI</translation>
     </message>
     <message>
         <location filename="../outputwasapifactory.cpp" line="53"/>
         <source>About WASAPI Output Plugin</source>
-        <translation type="unfinished"></translation>
+        <translation>Про модуль виведення WASAPI</translation>
     </message>
     <message>
         <location filename="../outputwasapifactory.cpp" line="54"/>
         <source>Qmmp WASAPI Output Plugin</source>
-        <translation type="unfinished"></translation>
+        <translation>Модуль виведення WASAPI для Qmmp</translation>
     </message>
     <message>
         <location filename="../outputwasapifactory.cpp" line="55"/>
         <source>Written by: Ilya Kotov &lt;[email protected]&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>Розробник: Ілля Котов 
&lt;[email protected]&gt;</translation>
     </message>
 </context>
 </TS>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/plugins/Ui/qsui/equalizer.cpp 
new/qmmp-1.1.1/src/plugins/Ui/qsui/equalizer.cpp
--- old/qmmp-1.1.0/src/plugins/Ui/qsui/equalizer.cpp    2016-06-21 
12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/plugins/Ui/qsui/equalizer.cpp    2016-07-04 
18:34:56.000000000 +0200
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011-2015 by Ilya Kotov                                 *
+ *   Copyright (C) 2011-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -140,7 +140,7 @@
 {
     m_presetComboBox->clear();
     //equalizer presets
-    QString preset_path = QDir::homePath() +"/.qmmp/eq15.preset";
+    QString preset_path = Qmmp::configDir() + "q15.preset";
     if(!QFile::exists(preset_path))
         preset_path = ":/qsui/eq15.preset";
     QSettings eq_preset (preset_path, QSettings::IniFormat);
@@ -243,7 +243,7 @@
 
 void Equalizer::savePresets()
 {
-    QSettings eq_preset (QDir::homePath() +"/.qmmp/eq15.preset", 
QSettings::IniFormat);
+    QSettings eq_preset (Qmmp::configDir() + "eq15.preset", 
QSettings::IniFormat);
     eq_preset.clear ();
     for (int i = 0; i < m_presets.size(); ++i)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/plugins/plugins.pri 
new/qmmp-1.1.1/src/plugins/plugins.pri
--- old/qmmp-1.1.0/src/plugins/plugins.pri      2016-06-21 12:11:56.000000000 
+0200
+++ new/qmmp-1.1.1/src/plugins/plugins.pri      2016-07-04 18:34:56.000000000 
+0200
@@ -2,3 +2,4 @@
 unix:PLUGINS_PREFIX=../../../../lib/qmmp
 win32:PLUGINS_PREFIX=../../../../../bin/plugins
 INCLUDEPATH += ../../../qmmp
+CONFIG += hide_symbols
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/qmmp/qmmp.cpp 
new/qmmp-1.1.1/src/qmmp/qmmp.cpp
--- old/qmmp-1.1.0/src/qmmp/qmmp.cpp    2016-06-21 12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/qmmp/qmmp.cpp    2016-07-04 18:34:56.000000000 +0200
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2013 by Ilya Kotov                                 *
+ *   Copyright (C) 2008-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -19,9 +19,10 @@
  ***************************************************************************/
 
 #include <QDir>
-#include <QApplication>
+#include <QCoreApplication>
 #include <QSettings>
 #include <QLocale>
+#include <QFile>
 #include <QByteArray>
 
 #ifndef LIB_DIR
@@ -34,6 +35,9 @@
 
 QString Qmmp::m_configDir;
 QString Qmmp::m_langID;
+#ifdef Q_OS_WIN
+QString Qmmp::m_appDir;
+#endif
 
 const QString Qmmp::configFile()
 {
@@ -42,7 +46,19 @@
 
 const QString Qmmp::configDir()
 {
+#ifdef Q_OS_WIN
+    if(m_configDir.isEmpty())
+    {
+        if(isPortable())
+            return m_appDir + "/.qmmp/";
+        else
+            return  QDir::homePath() +"/.qmmp/";
+    }
+    else
+        return m_configDir;
+#else
     return m_configDir.isEmpty() ? QDir::homePath() +"/.qmmp/" : m_configDir;
+#endif
 }
 
 void Qmmp::setConfigDir(const QString &path)
@@ -123,3 +139,12 @@
     settings.setValue("General/locale", code);
     m_langID.clear();
 }
+
+#ifdef Q_OS_WIN
+bool Qmmp::isPortable()
+{
+    if(m_appDir.isEmpty())
+        m_appDir = QCoreApplication::applicationDirPath();
+    return QFile::exists(m_appDir + "/qmmp_portable.txt");
+}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/qmmp/qmmp.h 
new/qmmp-1.1.1/src/qmmp/qmmp.h
--- old/qmmp-1.1.0/src/qmmp/qmmp.h      2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/src/qmmp/qmmp.h      2016-07-04 18:34:56.000000000 +0200
@@ -24,7 +24,7 @@
 
 #define QMMP_VERSION_MAJOR 1
 #define QMMP_VERSION_MINOR 1
-#define QMMP_VERSION_PATCH 0
+#define QMMP_VERSION_PATCH 1
 #define QMMP_VERSION_STABLE 1
 
 #define QMMP_VERSION_INT (QMMP_VERSION_MAJOR<<16 | QMMP_VERSION_MINOR<<8 | 
QMMP_VERSION_PATCH)
@@ -158,10 +158,19 @@
      * @param code Language code; code "auto" means autodetection.
      */
     static void setUiLanguageID(const QString &code);
+#ifdef Q_OS_WIN
+    /*!
+     * Returns \b true if portable mode is enabled. Otherwise returns \b false.
+     */
+    static bool isPortable();
+#endif
 
 private:
     static QString m_configDir;
     static QString m_langID;
+#ifdef Q_OS_WIN
+    static QString m_appDir;
+#endif
 
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/qmmpui/configdialog.cpp 
new/qmmp-1.1.1/src/qmmpui/configdialog.cpp
--- old/qmmp-1.1.0/src/qmmpui/configdialog.cpp  2016-06-21 12:11:56.000000000 
+0200
+++ new/qmmp-1.1.1/src/qmmpui/configdialog.cpp  2016-07-04 18:34:56.000000000 
+0200
@@ -81,9 +81,12 @@
     m_ui->informationButton->setIcon(QIcon::fromTheme("dialog-information"));
     //file associations
 #ifdef Q_OS_WIN
-    m_ui->stackedWidget->addWidget(new WinFileAssocPage(this));
-    m_ui->contentsWidget->addItem(tr("File Types"));
-    m_ui->contentsWidget->item(m_ui->contentsWidget->count() - 
1)->setIcon(QIcon(":associations.png"));
+    if(!Qmmp::isPortable())
+    {
+        m_ui->stackedWidget->addWidget(new WinFileAssocPage(this));
+        m_ui->contentsWidget->addItem(tr("File Types"));
+        m_ui->contentsWidget->item(m_ui->contentsWidget->count() - 
1)->setIcon(QIcon(":associations.png"));
+    }
 #endif
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/qmmpui/radioitemdelegate.cpp 
new/qmmp-1.1.1/src/qmmpui/radioitemdelegate.cpp
--- old/qmmp-1.1.0/src/qmmpui/radioitemdelegate.cpp     2016-06-21 
12:11:56.000000000 +0200
+++ new/qmmp-1.1.1/src/qmmpui/radioitemdelegate.cpp     2016-07-04 
18:34:56.000000000 +0200
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012-2014 by Ilya Kotov                                 *
+ *   Copyright (C) 2012-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -32,7 +32,7 @@
 {
     if (hasRadioButton(index))
     {
-        QStyleOptionViewItemV4 opt = option;
+        QStyleOptionViewItem opt = option;
 
         initStyleOption(&opt, index);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/src/qmmpui/txt/thanks_pt.txt 
new/qmmp-1.1.1/src/qmmpui/txt/thanks_pt.txt
--- old/qmmp-1.1.0/src/qmmpui/txt/thanks_pt.txt 2016-06-21 12:11:56.000000000 
+0200
+++ new/qmmp-1.1.1/src/qmmpui/txt/thanks_pt.txt 2016-07-04 18:34:56.000000000 
+0200
@@ -8,7 +8,7 @@
     Cristian Rodríguez <[email protected]> - correções ao scrobbler
     Csaba Hruska <[email protected]> - correções ao suplemento FFmpeg
     Dmitry Kostin <[email protected]> - suporte iso.wv
-    Dmitry Misharov <[email protected]> - suporte à etiqueta artista 
do álbum
+    Dmitry Misharov <[email protected]> - suporte à etiqueta Artista 
do álbum
     Evgeny Gleyzerman <[email protected]> - melhorias no processamento de 
faixas cue
     Ferdinand Vesely <[email protected]> - melhorias ao scrobbler
     Gennadi Motsyo <[email protected]> - relatórios de erros
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.0/utils/update_tx.sh 
new/qmmp-1.1.1/utils/update_tx.sh
--- old/qmmp-1.1.0/utils/update_tx.sh   2016-06-21 12:11:58.000000000 +0200
+++ new/qmmp-1.1.1/utils/update_tx.sh   2016-07-04 18:34:56.000000000 +0200
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-PROJECT_NAME=qmmp
+PROJECT_NAME=qmmp-stable
 TX_CONFIG="../.tx/config"
 
 echo "[main]" > ${TX_CONFIG}

++++++ qmmp-taglib-1.9.patch ++++++
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -2,7 +2,7 @@ SET(USE_ENCA TRUE CACHE BOOL "enable/dis
 include(FindPkgConfig)
 set(CMAKE_CXX_VISIBILITY_PRESET hidden)
 pkg_search_module(ENCA enca>=1.9)
-pkg_search_module(TAGLIB taglib>=1.10)
+pkg_search_module(TAGLIB taglib>=1.9)
 add_subdirectory(Input)
 add_subdirectory(Output)
 add_subdirectory(Visual)
--- a/src/plugins/General/converter/converter.cpp
+++ b/src/plugins/General/converter/converter.cpp
@@ -33,6 +33,11 @@
 #include <taglib/mpegfile.h>
 #include "converter.h"
 
+#if ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
+#undef QStringToTString
+#define QStringToTString(s) TagLib::String(s.toUtf8().constData(), 
TagLib::String::UTF8)
+#endif
+
 Converter::Converter(QObject *parent) : QObject(parent), QRunnable()
 {
     m_user_stop = false;
--- a/src/plugins/General/rgscan/rgscandialog.cpp
+++ b/src/plugins/General/rgscan/rgscandialog.cpp
@@ -42,6 +42,11 @@
 
 #define FILE_SKIPPED (Qt::UserRole + 1)
 
+#if ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
+#undef QStringToTString
+#define QStringToTString(s) TagLib::String(s.toUtf8().constData(), 
TagLib::String::UTF8)
+#endif
+
 struct ReplayGainInfoItem
 {
     QMap<Qmmp::ReplayGainKey, double> info;
@@ -75,8 +80,12 @@ RGScanDialog::RGScanDialog(QList <PlayLi
                 ext == "flac" || //native flac
                 ext == "oga" || //ogg flac
                 ext == "ogg" ||  //ogg vorbis
+#if !((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
                 ext == "wv" || //wavpack
                 ext == "m4a") //aac (mp4 container)
+#else
+                ext == "wv") //wavpack
+#endif
         {
             paths.append(track->url());
             QString name = formatter.format(track);
@@ -368,6 +377,7 @@ void RGScanDialog::writeVorbisComment(Ta
     }
 }
 
+#if !((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
 void RGScanDialog::writeMP4Tag(TagLib::MP4::Tag *tag, ReplayGainInfoItem *item)
 {
     if(m_ui.trackCheckBox->isChecked())
@@ -385,6 +395,7 @@ void RGScanDialog::writeMP4Tag(TagLib::M
                      
gainToStringList(item->info[Qmmp::REPLAYGAIN_ALBUM_PEAK]));
     }
 }
+#endif
 
 void RGScanDialog::on_writeButton_clicked()
 {
@@ -428,11 +439,13 @@ void RGScanDialog::on_writeButton_clicke
             writeAPETag(file.APETag(true), item);
             file.save();
         }
+#if !((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
         else if(ext == "m4a") //MPEG-4 Part 14
         {
             TagLib::MP4::File file(qPrintable(item->url));
             writeMP4Tag(file.tag(), item);
             file.save();
         }
+#endif
     }
 }
--- a/src/plugins/General/rgscan/rgscandialog.h
+++ b/src/plugins/General/rgscan/rgscandialog.h
@@ -48,10 +48,12 @@ namespace TagLib
     {
         class XiphComment;
     }
+#if !((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
     namespace MP4
     {
         class Tag;
     }
+#endif
 }
 
 /**
@@ -81,7 +83,9 @@ private:
     void writeAPETag(TagLib::APE::Tag *tag, ReplayGainInfoItem *item);
     void writeID3v2Tag(TagLib::ID3v2::Tag *tag, ReplayGainInfoItem *item);
     void writeVorbisComment(TagLib::Ogg::XiphComment *tag, ReplayGainInfoItem 
*item);
+#if !((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
     void writeMP4Tag(TagLib::MP4::Tag *tag, ReplayGainInfoItem *item);
+#endif
     Ui::RGScanDialog m_ui;
     QList<RGScanner *> m_scanners;
     QList<ReplayGainInfoItem*> m_replayGainItemList;
--- a/src/plugins/Input/flac/flacmetadatamodel.cpp
+++ b/src/plugins/Input/flac/flacmetadatamodel.cpp
@@ -26,6 +26,11 @@
 #include <qmmp/metadatamanager.h>
 #include "flacmetadatamodel.h"
 
+#if ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
+#undef QStringToTString
+#define QStringToTString(s) TagLib::String(s.toUtf8().constData(), 
TagLib::String::UTF8)
+#endif
+
 FLACMetaDataModel::FLACMetaDataModel(const QString &path, QObject *parent) : 
MetaDataModel(parent)
 {
     m_file = 0;
--- a/src/plugins/Input/opus/opusmetadatamodel.cpp
+++ b/src/plugins/Input/opus/opusmetadatamodel.cpp
@@ -26,6 +26,11 @@
 #include <taglib/tmap.h>
 #include "opusmetadatamodel.h"
 
+#if ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
+#undef QStringToTString
+#define QStringToTString(s) TagLib::String(s.toUtf8().constData(), 
TagLib::String::UTF8)
+#endif
+
 OpusMetaDataModel::OpusMetaDataModel(const QString &path, QObject *parent) : 
MetaDataModel(parent)
 {
     m_path = path;
--- a/src/plugins/Input/vorbis/vorbismetadatamodel.cpp
+++ b/src/plugins/Input/vorbis/vorbismetadatamodel.cpp
@@ -26,6 +26,11 @@
 #include <taglib/tmap.h>
 #include "vorbismetadatamodel.h"
 
+#if ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION <= 9))
+#undef QStringToTString
+#define QStringToTString(s) TagLib::String(s.toUtf8().constData(), 
TagLib::String::UTF8)
+#endif
+
 VorbisMetaDataModel::VorbisMetaDataModel(const QString &path, QObject *parent) 
: MetaDataModel(parent)
 {
     m_path = path;

Reply via email to