Hello community,

here is the log from the commit of package kid3 for openSUSE:Factory checked in 
at 2018-08-27 13:00:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kid3 (Old)
 and      /work/SRC/openSUSE:Factory/.kid3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kid3"

Mon Aug 27 13:00:08 2018 rev:21 rq:631642 version:3.6.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/kid3/kid3.changes        2018-04-24 
15:34:40.702859640 +0200
+++ /work/SRC/openSUSE:Factory/.kid3.new/kid3.changes   2018-08-27 
13:00:11.132870934 +0200
@@ -1,0 +2,19 @@
+Sun Aug 26 17:31:09 UTC 2018 - [email protected]
+
+- update to version 3.6.2
+  * Improved:
+    + Format from tags with custom strings prepended/appended when
+      replaced format code is not empty %{"t1"code"t2"}.
+  * Fixed:
+    + MP4 free form names longer than 4 characters with TagLib.
+    + Support DOS line endings with "Import CSV".
+    + Set CTOC and CHAP element ID from values in the frame table.
+    + Correctly add frame when "Edit" is clicked on non existing
+      frame.
+    + Show correct icon in Wayland session.
+    + Improve editing of ISO date/time values with validation
+      enabled.
+    + Bundle OpenSSL libraries with self-contained Linux package.
+- Some cleanings in spec file.
+
+-------------------------------------------------------------------

Old:
----
  kid3-3.6.1.tar.gz
  kid3-3.6.1.tar.gz.asc

New:
----
  kid3-3.6.2.tar.gz
  kid3-3.6.2.tar.gz.asc

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

Other differences:
------------------
++++++ kid3.spec ++++++
--- /var/tmp/diff_new_pack.hSy305/_old  2018-08-27 13:00:11.976871855 +0200
+++ /var/tmp/diff_new_pack.hSy305/_new  2018-08-27 13:00:11.976871855 +0200
@@ -16,16 +16,8 @@
 #
 
 
-%if 0%{?suse_version} > 1320 || 0%{?sle_version}
-%bcond_without  build_qt5
-%endif
-
-%if ! ( 0%{?suse_version} == 1315 && ! 0%{?is_opensuse} )
-%bcond_without  build_kde
-%endif
-
 Name:           kid3
-Version:        3.6.1
+Version:        3.6.2
 Release:        0
 Summary:        Efficient ID3 Tag Editor
 License:        GPL-2.0+
@@ -52,12 +44,9 @@
 BuildRequires:  pkgconfig(libavutil)
 BuildRequires:  pkgconfig(libchromaprint)
 BuildRequires:  pkgconfig(libswresample)
-%if %{with build_qt5}
-%if %{with build_kde}
 BuildRequires:  kf5-filesystem
 BuildRequires:  cmake(KF5DocTools)
 BuildRequires:  cmake(KF5KIO)
-%endif
 BuildRequires:  pkgconfig(Qt5Core)
 BuildRequires:  pkgconfig(Qt5DBus)
 BuildRequires:  pkgconfig(Qt5Gui)
@@ -68,28 +57,11 @@
 BuildRequires:  pkgconfig(Qt5UiTools)
 BuildRequires:  pkgconfig(Qt5Widgets)
 BuildRequires:  pkgconfig(Qt5Xml)
-%else
-BuildRequires:  libkde4-devel
-BuildRequires:  libqt4-devel >= 4.7
-%endif
-%if 0%{?suse_version} > 1210
 BuildRequires:  libxslt-tools
-%endif
-%if 0%{?suse_version} > 1310
 BuildRequires:  pkgconfig(gstreamer-1.0)
-%else
-BuildRequires:  pkgconfig(gstreamer-0.10)
-%endif
-%if 0%{?suse_version}
 BuildRequires:  hicolor-icon-theme
 BuildRequires:  update-desktop-files
-%endif
-%if 0%{?suse_version} > 1210
 Requires:       libxslt-tools
-%endif
-%if %{without build_qt5}
-%{?kde4_runtime_requires}
-%endif
 
 %description
 f you want to easily tag multiple MP3, Ogg/Vorbis, Opus, DSF, FLAC,
@@ -179,7 +151,6 @@
 This package contains a command line interface for Kid3, for a GUI you can
 use kid3-qt or kid3.
 
-%if %{with build_kde}
 %package doc
 Summary:        Documentation for %{name}
 Group:          Productivity/Multimedia/Sound/Utilities
@@ -188,8 +159,6 @@
 %description doc
 This package provides documentation and help files for %{name}.
 
-%endif
-
 %package qt-doc
 Summary:        Documentation for %{name}-qt
 Group:          Productivity/Multimedia/Sound/Utilities
@@ -215,40 +184,18 @@
 options+="-DWITH_LIBDIR=%{_lib}/kid3 -DWITH_PLUGINSDIR=%{_lib}/kid3/plugins "
 options+="-DWITH_CHROMAPRINT_FFMPEG=ON -DWITH_FFMPEG=ON -DWITH_GSTREAMER=ON "
 options+="-DWITH_DOCDIR=share/doc/packages/kid3-qt "
-%if %{with build_qt5}
 options+="-DCMAKE_SKIP_RPATH=ON -DWITH_QMLDIR=%{_lib}/qt5/qml/kid3 "
-%if %{without build_kde}
-%cmake -DWITH_APPS="Qt;CLI" $options
-%else
 %cmake_kf5 -d build -- $options
-%endif
-%else
-%cmake_kde4 -d build -- $options
-%endif
 
 %make_jobs
 
 %install
-%if %{with build_qt5}
-%if %{without build_kde}
-%cmake_install
-%else
 %kf5_makeinstall -C build
-%endif
-%else
-%kde4_makeinstall -C build
-%endif
 
-%if %{with build_kde}
 pushd %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
 gzip -dS .svgz kid3.svgz
 mv kid3 kid3.svg
 popd
-%endif
-
-%if %{without build_qt5}
-%kde_post_install
-%endif
 
 %find_lang %{name} %{name}-core.lang --without-kde --with-qt --all-name 
--without-mo
 
@@ -259,7 +206,7 @@
 
 rm %{buildroot}%{_libdir}/kid3/libkid3-*.so
 
-%if %{with build_kde}
+%if 0%{?suse_version} < 1500
 %post
 %desktop_database_post
 %icon_theme_cache_post
@@ -267,7 +214,6 @@
 %postun
 %desktop_database_postun
 %icon_theme_cache_postun
-%endif
 
 %post qt
 %desktop_database_post
@@ -276,28 +222,20 @@
 %postun qt
 %desktop_database_postun
 %icon_theme_cache_postun
+%endif
 
 %post core -p /sbin/ldconfig
 
 %postun core -p /sbin/ldconfig
 
-%if %{with build_kde}
 %files
 %defattr(-,root,root,-)
 %dir %{_datadir}/metainfo
-%if %{with build_qt5}
 %{_kf5_bindir}/kid3
 %{_kf5_iconsdir}/hicolor/*/apps/kid3.*
 %{_kf5_kxmlguidir}/kid3/
-%{_kf5_applicationsdir}/kid3.desktop
-%else
-%{_kde4_applicationsdir}/kid3.desktop
-%{_kde4_appsdir}/kid3/
-%{_kde4_bindir}/kid3
-%{_kde4_iconsdir}/hicolor/*/apps/kid3.*
-%endif
+%{_kf5_applicationsdir}/net.sourceforge.kid3.desktop
 %{_datadir}/metainfo/kid3.appdata.xml
-%endif
 
 %files qt
 %defattr(-,root,root,-)
@@ -317,31 +255,19 @@
 
 %files core
 %defattr(-,root,root,-)
-%doc AUTHORS ChangeLog COPYING LICENSE README kid3.lsm
+%doc AUTHORS ChangeLog README kid3.lsm
+%license COPYING LICENSE
 %{_libdir}/kid3/
-%if %{with build_qt5}
 %{_libdir}/qt5/qml/kid3/
-%else
-%{_datadir}/kid3/qml/
-%endif
 %config %{_sysconfdir}/ld.so.conf.d/kid3.conf
-%if %{with build_kde}
 %{_datadir}/dbus-1/interfaces/net.sourceforge.Kid3.xml
-%endif
 %{_mandir}/man1/kid3.1%{ext_man}
 %{_mandir}/de/man1/kid3.1%{ext_man}
 
-%if %{with build_kde}
 %files doc
 %defattr(-,root,root,-)
-%if %{with build_qt5}
 %doc %{_kf5_htmldir}/de/kid3/
 %doc %{_kf5_htmldir}/en/kid3/
-%else
-%doc %{_kde4_htmldir}/de/kid3/
-%doc %{_kde4_htmldir}/en/kid3/
-%endif
-%endif
 
 %files qt-doc
 %defattr(-,root,root,-)
@@ -351,10 +277,5 @@
 %defattr(-,root,root,-)
 %dir %{_datadir}/kid3
 %dir %{_datadir}/kid3/translations
-%if 0%{?suse_version} < 1230
-%{_datadir}/kid3/translations/[email protected]
-%{_datadir}/kid3/translations/[email protected]
-%{_datadir}/kid3/translations/[email protected]
-%endif
 
 %changelog

++++++ kid3-3.6.1.tar.gz -> kid3-3.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/CMakeLists.txt 
new/kid3-3.6.2/CMakeLists.txt
--- old/kid3-3.6.1/CMakeLists.txt       2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/CMakeLists.txt       2018-08-23 19:28:00.000000000 +0200
@@ -115,7 +115,7 @@
 # Version information
 set(CPACK_PACKAGE_VERSION_MAJOR 3)
 set(CPACK_PACKAGE_VERSION_MINOR 6)
-set(CPACK_PACKAGE_VERSION_PATCH 1)
+set(CPACK_PACKAGE_VERSION_PATCH 2)
 set(KID3_VERSION 
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
 set(CPACK_PACKAGE_VERSION ${KID3_VERSION})
 #set(CPACK_PACKAGE_VERSION "git20170517")
@@ -147,7 +147,7 @@
   set(WITH_LIBDIR_DEFAULT ".")
   set(WITH_PLUGINSDIR_DEFAULT ".")
   set(QT_ANDROID_APP_VERSION ${KID3_VERSION})
-  set(QT_ANDROID_APP_VERSION_CODE 12)
+  set(QT_ANDROID_APP_VERSION_CODE 13)
 else (APPLE)
   set(WITH_DATAROOTDIR_DEFAULT "share")
   set(WITH_DOCDIR_DEFAULT "share/doc/kid3-qt")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/ChangeLog new/kid3-3.6.2/ChangeLog
--- old/kid3-3.6.1/ChangeLog    2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/ChangeLog    2018-08-23 19:28:00.000000000 +0200
@@ -1,3 +1,20 @@
+Fri Aug 24 12:15:09 CEST 2018  Urs Fleisch  <[email protected]>
+
+       * Release 3.6.2
+
+       * Improved:
+         + Format from tags with custom strings prepended/appended when
+           replaced format code is not empty %{"t1"code"t2"}.
+
+       * Fixed:
+         + MP4 free form names longer than 4 characters with TagLib.
+         + Support DOS line endings with "Import CSV".
+         + Set CTOC and CHAP element ID from values in the frame table.
+         + Correctly add frame when "Edit" is clicked on non existing frame.
+         + Show correct icon in Wayland session.
+         + Improve editing of ISO date/time values with validation enabled.
+         + Bundle OpenSSL libraries with self-contained Linux package.
+
 Mon Apr 23 11:26:19 CEST 2018  Urs Fleisch  <[email protected]>
 
        * Release 3.6.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/Doxyfile new/kid3-3.6.2/Doxyfile
--- old/kid3-3.6.1/Doxyfile     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/Doxyfile     2018-08-23 19:28:00.000000000 +0200
@@ -38,7 +38,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 3.6.1
+PROJECT_NUMBER         = 3.6.2
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/buildlibs.sh new/kid3-3.6.2/buildlibs.sh
--- old/kid3-3.6.1/buildlibs.sh 2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/buildlibs.sh 2018-08-23 19:28:00.000000000 +0200
@@ -164,7 +164,7 @@
 libvorbis_version=1.3.5
 libvorbis_patchlevel=4
 ffmpeg_version=3.4.2
-ffmpeg_patchlevel=1
+ffmpeg_patchlevel=2
 #libav_version=11.12
 #libav_patchlevel=1
 libflac_version=1.3.2
@@ -186,7 +186,7 @@
   elif test -f osxcross.cmake; then
     COMPILER=cross-macos
     QTPREFIX=$(sed -ne '1 s/set(QT_PREFIX \([^)]\+\))/\1/p' osxcross.cmake)
-  elif test -d openssl-${openssl_version}; then
+  elif test -f openssl-${openssl_version}/Setenv-android.sh; then
     COMPILER=cross-android
     test -f kid3/CMakeCache.txt &&
       QTPREFIX=$(sed -ne 
's/^QT_QMAKE_EXECUTABLE[^=]*=\(.*\)\/bin\/qmake$/\1/p' kid3/CMakeCache.txt)
@@ -416,7 +416,7 @@
 test -f mp4v2_${mp4v2_version}~dfsg0-${mp4v2_patchlevel}.debian.tar.xz ||
   $DOWNLOAD 
http://ftp.de.debian.org/debian/pool/main/m/mp4v2/mp4v2_${mp4v2_version}~dfsg0-${mp4v2_patchlevel}.debian.tar.xz
 
-if test "$compiler" = "cross-android"; then
+if test "$compiler" = "cross-android" || test "$compiler" = 
"gcc-self-contained"; then
   # See http://doc.qt.io/qt-5/opensslsupport.html
   test -f Setenv-android.sh ||
     $DOWNLOAD https://wiki.openssl.org/images/7/70/Setenv-android.sh
@@ -2558,6 +2558,13 @@
   cd ..
 fi
 
+elif test "$compiler" = "gcc-self-contained"; then
+
+if ! test -d openssl-${openssl_version}; then
+  echo "### Extracting openssl"
+  tar xzf source/openssl-${openssl_version}.tar.gz
+fi
+
 fi
 
 # Build from sources
@@ -2623,10 +2630,10 @@
 
   if ! test -d kid3; then
     echo "### Creating kid3 build directory"
-
     mkdir kid3
     cat >kid3/build.sh <<EOF
-_java_root=/usr/lib/jvm/java-7-openjdk-amd64
+#!/bin/bash
+_java_root=(/usr/lib/jvm/java-[78]-openjdk-amd64)
 _android_sdk_root=$_android_sdk_root
 _android_ndk_root=$_android_ndk_root
 _android_abi=$_android_abi
@@ -2721,6 +2728,22 @@
     done
   fi
 
+  if test "$compiler" = "gcc-self-contained" && test ! -d 
openssl-${openssl_version}/inst; then
+    echo "### Building OpenSSL"
+
+    cd openssl-${openssl_version}
+    ./Configure shared no-ssl3-method enable-ec_nistp_64_gcc_128 linux-x86_64 
-Wa,--noexecstack
+    make depend || true
+         make build_libs
+    mkdir -p inst/usr/local/ssl
+    cp --dereference libssl.so libcrypto.so inst/usr/local/ssl/
+    strip -s inst/usr/local/ssl/*.so
+    cd inst
+    tar czf ../../bin/openssl-${openssl_version}.tgz usr
+    cd ../..
+    tar xmzf bin/openssl-${openssl_version}.tgz -C $BUILDROOT
+  fi
+
   if test -n "$ZLIB_ROOT_PATH" && test ! -d zlib-${zlib_version}/inst; then
     echo "### Building zlib"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/deb/changelog new/kid3-3.6.2/deb/changelog
--- old/kid3-3.6.1/deb/changelog        2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/deb/changelog        2018-08-23 19:28:00.000000000 +0200
@@ -1,3 +1,9 @@
+kid3 (3.6.2-0) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Urs Fleisch <[email protected]>  Fri, 24 Aug 2018 12:15:09 
+0200
+
 kid3 (3.6.1-0) unstable; urgency=low
 
   * New upstream release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/deb/kid3.install 
new/kid3-3.6.2/deb/kid3.install
--- old/kid3-3.6.1/deb/kid3.install     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/deb/kid3.install     2018-08-23 19:28:00.000000000 +0200
@@ -2,7 +2,7 @@
 /usr/share/metainfo/kid3.appdata.xml
 /usr/share/icons/hicolor/*/apps/kid3.*
 # KDE 5 BEGIN
-/usr/share/applications/kid3.desktop
+/usr/share/applications/net.sourceforge.kid3.desktop
 /usr/share/doc/HTML/*/kid3/*
 /usr/share/kxmlgui5/kid3/kid3ui.rc
 # KDE 5 END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/doc/de/index.docbook 
new/kid3-3.6.2/doc/de/index.docbook
--- old/kid3-3.6.1/doc/de/index.docbook 2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/doc/de/index.docbook 2018-08-23 19:28:00.000000000 +0200
@@ -27,8 +27,8 @@
 </copyright>
 <legalnotice id="fdl-notice">&FDLNotice;</legalnotice>
 
-<date>2018-04-23</date>
-<releaseinfo>3.6.1</releaseinfo>
+<date>2018-08-24</date>
+<releaseinfo>3.6.2</releaseinfo>
 
 <abstract>
 <para>
@@ -463,6 +463,22 @@
 </para>
 
 <para>
+Es ist möglich, zusätzlichen Text vor und nach dem Wert, welcher für einen
+Formatcode ersetzt wird, einzufügen indem man diesen in Anführungszeichen
+innerhalb der geschwungenen Klammern hinzufügt. Dieser Text wird nur dann
+eingefügt, wenn der Wert für den Formatcode nicht leer ist. Als Beispiel
+könnte man für einen Dateinamen, welcher sowohl den Titel als auch den
+Untertitel enthalten soll, <userinput>%{title} [%{subtitle}]</userinput> als
+Format verwenden. Aber dies würde im Falle von nicht vorhandenem Untertitel
+dazu führen, dass der resultierende Dateinamen mit
+<computeroutput> []</computeroutput> endet. Um diese leeren Klammern am Ende
+zu verhindern, kann <userinput>%{title}%{" ["subtitle"]"}</userinput>
+verwendet werden. Dieses Format lässt die eckigen Klammern, das führende
+Leerzeichen und den Untertitel weg, wenn kein entsprechendes Element vorhanden
+ist.
+</para>
+
+<para>
 Ein zweites <guilabel>Format</guilabel> Auswahlfeld (mit Pfeil runter)
 wird verwendet, um die Tags aus dem Dateinamen zu
 generieren. Falls der Dateinamen nicht diesem Format entspricht, werden noch
@@ -2189,13 +2205,7 @@
 </para>
 <para>
 <guilabel>Version für neue Tags</guilabel> legt fest, ob neue ID3v2 Tags mit
-der Version 2.3.0 oder 2.4.0 erzeugt werden. Im ersteren Fall wird id3lib
-verwendet, TagLib kommt nur dann zum Einsatz, wenn ein ID3v2.4.0 Tag
-bearbeitet werden muss. Mit der Einstellung <guilabel>ID3v2.4.0
-(TagLib)</guilabel> wird für MP3-Dateien immer die TagLib verwendet;
-veränderte oder neu erstellte Tags werden dann als ID3v2.4.0 gespeichert.
-Mit <guilabel>ID3v2.3.0 (TagLib)</guilabel> wird TagLib auch für ID3v2.3.0
-Tags verwendet.
+der Version 2.3.0 oder 2.4.0 erzeugt werden.
 </para>
 <para>
 <guilabel>Anzahl der Stellen in Tracknummer</guilabel> bestimmt die Zahl der
@@ -2485,25 +2495,22 @@
 <listitem><para><guilabel>Id3libMetadata</guilabel>:
 Benutzt <ulink url="http://id3lib.sourceforge.net";>id3lib</ulink> für ID3v1.1
 und ID3v2.3 Tags in MP3, MP2 und AAC Dateien; unterstützt einige Frame-Typen
-mehr als TagLib. Ein weiterer Grund für die Verwendung ist, dass TagLib
-ID3v2.3 erst seit Version 1.8 unterstützt.</para></listitem>
+mehr als TagLib.</para></listitem>
 <listitem><para><guilabel>OggFlacMetadata</guilabel>:
 Benutzt <ulink url="http://xiph.org/ogg/";>libogg</ulink>,
 <ulink url="http://xiph.org/vorbis/";>libvorbis und libvorbisfile</ulink> für 
Ogg
 Dateien und zusätzlich <ulink url="http://flac.sourceforge.net";>libFLAC++
-und libFLAC</ulink> für FLAC Dateien. Gründe für die Benutzung sind Bilder in
-Ogg Dateien - solche werden von TagLib nicht unterstützt - und dass es die
-offiziellen Bibliotheken dieser Formate sind.</para></listitem>
+und libFLAC</ulink> für FLAC Dateien. Dies sind die offiziellen Bibliotheken
+dieser Formate.</para></listitem>
 <listitem><para><guilabel>TaglibMetadata</guilabel>:
 Benutzt <ulink url="http://taglib.github.io/";>TagLib</ulink>, welche viele
-Datei-Formate unterstützt, seit Version 1.8 auch ID3v2.3, so dass sie für
-alle Audio-Dateien verwendet werden kann, welche &kid3; unterstützt.
+Datei-Formate unterstützt und für alle Audio-Dateien verwendet werden kann,
+welche &kid3; unterstützt.
 </para></listitem>
 <listitem><para><guilabel>Mp4v2Metadata</guilabel>:
 <ulink url="http://code.google.com/p/mp4v2";>mp4v2</ulink> wurde ursprünglich
-von &kid3; für M4A-Dateien verwendet. Mittlerweile ist die Unterstützung von
-TagLib für dieses Format so gut, dass dieses Plugin nur erstellt wird, wenn
-dies explizit gefordert wird.
+von &kid3; für M4A-Dateien verwendet. Kann bei Problemen mit der
+M4A-Unterstützung von TagLib verwendet werden.
 </para></listitem>
 </itemizedlist>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/doc/en/index.docbook 
new/kid3-3.6.2/doc/en/index.docbook
--- old/kid3-3.6.1/doc/en/index.docbook 2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/doc/en/index.docbook 2018-08-23 19:28:00.000000000 +0200
@@ -27,8 +27,8 @@
 </copyright>
 <legalnotice id="fdl-notice">&FDLNotice;</legalnotice>
 
-<date>2018-04-23</date>
-<releaseinfo>3.6.1</releaseinfo>
+<date>2018-08-24</date>
+<releaseinfo>3.6.2</releaseinfo>
 
 <abstract>
 <para>
@@ -443,6 +443,20 @@
 </para>
 
 <para>
+It is possible to prepend and append strings to the replacement for a format
+code by adding them in double quotes inside the curly braces of a format
+code. These strings will only be put into the resulting string if the format
+code yields a nonempty value. For example, if the file name shall
+both contain the title and the subtitle, one could use
+<userinput>%{title} [%{subtitle}]</userinput> in the format string. But this
+would result in a string ending with <computeroutput> []</computeroutput> if
+no subtitle frame exists for a file. In order to omit the brackets if no
+subtitle is present, <userinput>%{title}%{" ["subtitle"]"}</userinput> shall
+be used instead. This will omit the brackets, the leading space and the
+subtitle if not subtitle exists.
+</para>
+
+<para>
 A second <guilabel>Format</guilabel> combo box (with arrow down) is used
 to generate the tags from the filename. If the format
 of the filename does not match this pattern, a few other commonly used formats
@@ -2060,13 +2074,7 @@
 </para>
 <para>
 <guilabel>Version used for new tags</guilabel> determines whether new ID3v2
-tags are created as version 2.3.0 or 2.4.0. In the first case, id3lib is used
-as it was in earlier versions of &kid3; and TagLib is only applied when an
-ID3v2.4.0 tag is encountered. In the second case, <guilabel>ID3v2.4.0
-(TagLib)</guilabel>, TagLib is generally used for MP3 files; changed or newly
-created tags will then be saved in version 2.4.0.
-When <guilabel>ID3v2.3.0 (TagLib)</guilabel> is selected, TagLib is also used
-for ID3v2.3.0 tags.
+tags are created as version 2.3.0 or 2.4.0.
 </para>
 <para>
 <guilabel>Track number digits</guilabel> is the number of digits in Track
@@ -2329,23 +2337,21 @@
 <listitem><para><guilabel>Id3libMetadata</guilabel>:
 Uses <ulink url="http://id3lib.sourceforge.net";>id3lib</ulink> for ID3v1.1
 and ID3v2.3 tags in MP3, MP2, AAC files. Supports a few more frame types
-than TagLib. Another reason to use it is that TagLib only supports
-ID3v2.3 since version 1.8.</para></listitem>
+than TagLib.</para></listitem>
 <listitem><para><guilabel>OggFlacMetadata</guilabel>:
 Uses <ulink url="http://xiph.org/ogg/";>libogg</ulink>,
 <ulink url="http://xiph.org/vorbis/";>libvorbis, libvorbisfile</ulink> for Ogg
 files, and additionally <ulink url="http://flac.sourceforge.net";>libFLAC++
-and libFLAC</ulink> for FLAC files. Reasons to use them are pictures in Ogg
-files, which are not supported by TagLib and that these are the official
+and libFLAC</ulink> for FLAC files. These are the official
 libraries for these formats.</para></listitem>
 <listitem><para><guilabel>TaglibMetadata</guilabel>:
 Uses <ulink url="http://taglib.github.io/";>TagLib</ulink> which supports a
-lot of audio file formats. Since version 1.8, it also supports ID3v2.3, so it
-can be used for all audio files supported by &kid3;.</para></listitem>
+lot of audio file formats. It can be used for all audio files supported by
+&kid3;.</para></listitem>
 <listitem><para><guilabel>Mp4v2Metadata</guilabel>:
 <ulink url="http://code.google.com/p/mp4v2";>mp4v2</ulink> was originally used
-by &kid3; to support M4A files. However, newer versions of TagLib provide good
-M4A support, so this plugin is not built by default.
+by &kid3; to support M4A files. Can be used in case of problems with the M4A
+support of TagLib.
 </para></listitem>
 </itemizedlist>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/kid3.lsm new/kid3-3.6.2/kid3.lsm
--- old/kid3-3.6.1/kid3.lsm     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/kid3.lsm     2018-08-23 19:28:00.000000000 +0200
@@ -1,7 +1,7 @@
 Begin4
 Title:          Kid3 -- Efficient Audio Tagger
-Version:        3.6.1
-Entered-date:   2018-04-23
+Version:        3.6.2
+Entered-date:   2018-08-24
 Description:    Audio tagger to edit ID3v1.1, ID3v2.3, ID3v2.4, Ogg/Vorbis, 
Opus, DSF
                 FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, 
WAV
                 and AIFF tags, multiple files, generate tags from file names
@@ -12,7 +12,7 @@
 Home-page:      http://kid3.sourceforge.net
 Alternate-site: http://www.kde-apps.org/content/show.php?content=10415
 Primary-site:   http://www.sourceforge.net/projects/kid3
-                
http://prdownloads.sourceforge.net/kid3/kid3-3.6.1.tar.gz?download
+                
http://prdownloads.sourceforge.net/kid3/kid3-3.6.2.tar.gz?download
 Platform:       Linux, Windows.
 Copying-policy: GPL
 End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/kid3.spec new/kid3-3.6.2/kid3.spec
--- old/kid3-3.6.1/kid3.spec    2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/kid3.spec    2018-08-23 19:28:00.000000000 +0200
@@ -6,7 +6,7 @@
 License:      GPL
 Group:        Applications/Multimedia
 Summary:      Efficient ID3 tag editor
-Version:      3.6.1
+Version:      3.6.2
 Release:      1%{?dist}
 URL:          http://kid3.sourceforge.net/
 Source0:      http://downloads.sourceforge.net/kid3/%{name}-%{version}.tar.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/cs.po new/kid3-3.6.2/po/cs.po
--- old/kid3-3.6.1/po/cs.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/cs.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,14 +1,13 @@
-# Czech translation of Kid3
+# Kid3 Czech Translation.
 # This file is put in the public domain.
 #
-# Pavel Fric <[email protected]>, 2009, 2011.
+# Pavel Fric <[email protected]>, 2009, 2010, 2011, 2012, 2013, 2014, 
2015, 2016.
 # Urs Fleisch <[email protected]>, 2010.
-# Pavel Fric <[email protected]>, 2010, 2011, 2012, 2013, 2014, 2015, 
2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2016-12-23 12:48+0100\n"
 "Last-Translator: Pavel Fric <[email protected]>\n"
 "Language-Team: Czech <[email protected]>\n"
@@ -1522,6 +1521,9 @@
 msgid "All Tags"
 msgstr "Všechny značky"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Přepojte t1/připojit t2, pokud není prázdný"
+
 msgid "Truncated"
 msgstr "Zkrácená"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/da.po new/kid3-3.6.2/po/da.po
--- old/kid3-3.6.1/po/da.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/da.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,16 +1,18 @@
 # Kid3 Danish Translation.
+# This file is put in the public domain.
 #
 # Martin Eilsøe <[email protected]>, 2017.
 msgid ""
 msgstr ""
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Language: da_DK\n"
-"X-Source-Language: en_GB\n"
+"X-Language: da\n"
+"X-Source-Language: en\n"
 "X-Qt-Contexts: \n"
 
 msgid "Timeout"
@@ -1512,6 +1514,9 @@
 msgid "All Tags"
 msgstr "Alle Tags"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Forord t1/tilføj t2 hvis ikke tom"
+
 msgid "Truncated"
 msgstr "Afbrudte"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/de.po new/kid3-3.6.2/po/de.po
--- old/kid3-3.6.1/po/de.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/de.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,15 +1,13 @@
-# translation of de.po to English
-# translation of de.po to
 # Kid3 German Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software 
Foundation, Inc.
+# This file is put in the public domain.
 #
 # Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010, 2011.
 # Frank Steinmetzger <[email protected]>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-04-26 23:41+0200\n"
 "Last-Translator: Frank Steinmetzger <[email protected]>\n"
 "Language-Team: German <[email protected]>\n"
@@ -1521,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Alle Tags"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "t1 voranstellen/t2 anhängen, wenn nicht leer"
+
 msgid "Truncated"
 msgstr "Abgeschnitten"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/es.po new/kid3-3.6.2/po/es.po
--- old/kid3-3.6.1/po/es.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/es.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,15 +1,13 @@
-# translation of es.po to English
-# translation of es.po to
 # Kid3 Spanish Translation.
-# Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, 
Inc.
+# This file is put in the public domain.
 #
 # Sergio Cambra García <[email protected]>, 2004.
 # Urs Fleisch <[email protected]>, 2005, 2006, 2007, 2008, 2009, 
2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:29+0100\n"
 "Last-Translator: \n"
 "Language-Team: Spanish <[email protected]>\n"
@@ -1521,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Todas las etiquetas"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Anteponer t1/anexar t2 si no está vacío"
+
 msgid "Truncated"
 msgstr "Truncado"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/et.po new/kid3-3.6.2/po/et.po
--- old/kid3-3.6.1/po/et.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/et.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,13 @@
-# Estonian translation of Kid3
+# Kid3 Estonian Translation.
 # This file is put in the public domain.
 #
 # Mihkel Tõnnov <[email protected]>, 2007–2010, 2014.
 # Urs Fleisch <[email protected]>, 2010.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2014-01-23 22:00+0200\n"
 "Last-Translator: Mihkel Tõnnov <[email protected]>\n"
 "Language-Team: Estonian <[email protected]>\n"
@@ -1520,6 +1520,9 @@
 msgid "All Tags"
 msgstr "Kõik sildid"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Sisestage t1/lisa t2, kui see pole tühi"
+
 msgid "Truncated"
 msgstr "Lühikeseks"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/fi.po new/kid3-3.6.2/po/fi.po
--- old/kid3-3.6.1/po/fi.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/fi.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,4 +1,4 @@
-# Finnish translation of Kid3
+# Kid3 Finnish Translation.
 # This file is put in the public domain.
 #
 # Tommi Nieminen <[email protected]>, 2009.
@@ -6,9 +6,9 @@
 # Ville Skyttä <[email protected]>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2014-01-25 00:31+0200\n"
 "Last-Translator: Tommi Nieminen <[email protected]>\n"
 "Language-Team: Finnish <[email protected]>\n"
@@ -1520,6 +1520,9 @@
 msgid "All Tags"
 msgstr "Kaikki tunnisteet"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Lähetä t1/lisää t2, jos se ei ole tyhjä"
+
 msgid "Truncated"
 msgstr "Lyhennetyt"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/fr.po new/kid3-3.6.2/po/fr.po
--- old/kid3-3.6.1/po/fr.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/fr.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,15 +1,13 @@
-# translation of fr.po to English
-# translation of fr.po to
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Kid3 French Translation.
+# This file is put in the public domain.
 #
 # pierre <[email protected]>, 2006.
 # Urs Fleisch <[email protected]>, 2006, 2007, 2008, 2009, 2010, 
2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:32+0100\n"
 "Last-Translator: \n"
 "Language-Team: French <[email protected]>\n"
@@ -1521,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Toutes les balises"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Préfixer t1/ajouter t2 si non vide"
+
 msgid "Truncated"
 msgstr "Tronqué"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/it.po new/kid3-3.6.2/po/it.po
--- old/kid3-3.6.1/po/it.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/it.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,13 @@
-# translation of it.po to English
+# Kid3 Italian Translation.
 # This file is put in the public domain.
 #
 # Valter Mura <[email protected]>, 2007.
 # Urs Fleisch <[email protected]>, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:33+0100\n"
 "Last-Translator: \n"
 "Language-Team: Italian <[email protected]>\n"
@@ -1520,6 +1520,9 @@
 msgid "All Tags"
 msgstr "Tutti i Tag"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Anteporre t1/aggiungi t2 se non vuoto"
+
 msgid "Truncated"
 msgstr "Troncato"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/kid3.pot new/kid3-3.6.2/po/kid3.pot
--- old/kid3-3.6.1/po/kid3.pot  2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/kid3.pot  2018-08-23 19:28:00.000000000 +0200
@@ -1,14 +1,13 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the Kid3 package.
+# Kid3 LANGUAGE Translation.
+# This file is put in the public domain.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -1516,6 +1515,9 @@
 msgid "All Tags"
 msgstr ""
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr ""
+
 msgid "Truncated"
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/nl.po new/kid3-3.6.2/po/nl.po
--- old/kid3-3.6.1/po/nl.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/nl.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,14 +1,13 @@
-# translation of nl.po to English
 # Kid3 Dutch Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software 
Foundation, Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010.
 # Kenny Verstraete <[email protected]>, 2008, 2011.
+# Toon van Gerwen <[email protected]>, 2012, 2013, 2014, 2017.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2017-01-25 21:40+0100\n"
 "Last-Translator: toon <[email protected]>\n"
 "Language-Team: Dutch <[email protected]>\n"
@@ -1520,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Alle tags"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "t1 doorvoegen/t2 toevoegen als deze niet leeg is"
+
 msgid "Truncated"
 msgstr "Afgebroken"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/pl.po new/kid3-3.6.2/po/pl.po
--- old/kid3-3.6.1/po/pl.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/pl.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,15 +1,14 @@
-# translation of pl.po to English
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Kid3 Polish Translation.
+# This file is put in the public domain.
 #
 # Tomasz Argasiński <[email protected]>, 2007.
 # Michał Smoczyk <[email protected]>, 2007.
 # Urs Fleisch <[email protected]>, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:37+0100\n"
 "Last-Translator: \n"
 "Language-Team: Polish <[email protected]>\n"
@@ -1522,6 +1521,9 @@
 msgid "All Tags"
 msgstr "Wszystkie znaczniki"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Dodaj t1/dołącz t2, jeśli nie jest pusty"
+
 msgid "Truncated"
 msgstr "Obcięte"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/ru.po new/kid3-3.6.2/po/ru.po
--- old/kid3-3.6.1/po/ru.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/ru.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,15 +1,13 @@
-# translation of ru.po to English
-# translation of ru.po to
 # Kid3 Russian Translation.
-# Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, 
Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010.
 # "Egor S. Orlov" <[email protected]>, 2003, 2011.
+# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:41+0100\n"
 "Last-Translator: \n"
 "Language-Team: Russian <[email protected]>\n"
@@ -1522,6 +1520,9 @@
 msgid "All Tags"
 msgstr "Все теги"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Подготовьте t1/добавьте t2, если не пусто"
+
 msgid "Truncated"
 msgstr "Обрезанные"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/sr.po new/kid3-3.6.2/po/sr.po
--- old/kid3-3.6.1/po/sr.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/sr.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,12 @@
 # Kid3 Serbian Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. 
Free Software Foundation, Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010, 2011, 2012.
 # Mladen Pejaković <[email protected]>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-04-26 23:41+0200\n"
 "Last-Translator: Mladen Pejaković <[email protected]>\n"
 "Language-Team: Serbian <[email protected]>\n"
@@ -18,7 +17,7 @@
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Language: sr\n"
-"X-Source-Language: C\n"
+"X-Source-Language: en\n"
 
 msgid "Timeout"
 msgstr "Прековреме"
@@ -1523,6 +1522,9 @@
 msgid "All Tags"
 msgstr "Сви ознаке"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Припремите t1/аппенд t2 ако није празно"
+
 msgid "Truncated"
 msgstr "Одсечена"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/[email protected] 
new/kid3-3.6.2/po/[email protected]
--- old/kid3-3.6.1/po/[email protected] 2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/[email protected] 2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,12 @@
 # Kid3 Serbian Ijekavian Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. 
Free Software Foundation, Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010, 2011, 2012.
 # Mladen Pejaković <[email protected]>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-04-26 23:41+0200\n"
 "Last-Translator: Mladen Pejaković <[email protected]>\n"
 "Language-Team: Serbian <[email protected]>\n"
@@ -18,7 +17,7 @@
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Language: sr\n"
-"X-Source-Language: C\n"
+"X-Source-Language: en\n"
 
 msgid "Timeout"
 msgstr "Прековријеме"
@@ -1520,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Сви ознаке"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Припремите t1/аппенд t2 ако није празно"
+
 msgid "Truncated"
 msgstr "Одсјечена"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/[email protected] 
new/kid3-3.6.2/po/[email protected]
--- old/kid3-3.6.1/po/[email protected]    2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/po/[email protected]    2018-08-23 19:28:00.000000000 
+0200
@@ -1,13 +1,12 @@
 # Kid3 Serbian Ijekavian Latin Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. 
Free Software Foundation, Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010, 2011, 2012.
 # Mladen Pejaković <[email protected]>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-04-26 23:41+0200\n"
 "Last-Translator: Mladen Pejaković <[email protected]>\n"
 "Language-Team: Serbian <[email protected]>\n"
@@ -18,7 +17,7 @@
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Language: sr\n"
-"X-Source-Language: C\n"
+"X-Source-Language: en\n"
 
 msgid "Timeout"
 msgstr "Prekovrijeme"
@@ -1520,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Svi oznake"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Prebrojite t1/dodajte t2 ako nisu prazni"
+
 msgid "Truncated"
 msgstr "Odsječena"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/[email protected] 
new/kid3-3.6.2/po/[email protected]
--- old/kid3-3.6.1/po/[email protected]     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/[email protected]     2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,12 @@
 # Kid3 Serbian Latin Translation.
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. 
Free Software Foundation, Inc.
+# This file is put in the public domain.
 #
-# Urs Fleisch <[email protected]>, 2003, 2004, 2005, 2006, 2007, 
2008, 2009, 2010, 2011, 2012.
 # Mladen Pejaković <[email protected]>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-04-26 23:41+0200\n"
 "Last-Translator: Mladen Pejaković <[email protected]>\n"
 "Language-Team: Serbian <[email protected]>\n"
@@ -18,7 +17,7 @@
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Language: sr\n"
-"X-Source-Language: C\n"
+"X-Source-Language: en\n"
 
 msgid "Timeout"
 msgstr "Prekovreme"
@@ -1520,6 +1519,9 @@
 msgid "All Tags"
 msgstr "Svi oznake"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "Prebrojite t1/dodajte t2 ako nisu prazni"
+
 msgid "Truncated"
 msgstr "Odsečena"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/tr.po new/kid3-3.6.2/po/tr.po
--- old/kid3-3.6.1/po/tr.po     2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/tr.po     2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,13 @@
-# translation of Kid3 to Türkçe
+# Kid3 Turkish Translation.
 # This file is put in the public domain.
 #
 # Mehmet Yilmaz SUSLU <[email protected]>, 2006.
 # Urs Fleisch <[email protected]>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:42+0100\n"
 "Last-Translator: \n"
 "Language-Team: Turkish <[email protected]>\n"
@@ -1520,6 +1520,9 @@
 msgid "All Tags"
 msgstr "Tüm etiketler"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "t1'i ekle/t2'yi ekle, boş değilse"
+
 msgid "Truncated"
 msgstr "Kirpildi"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/zh_CN.po new/kid3-3.6.2/po/zh_CN.po
--- old/kid3-3.6.1/po/zh_CN.po  2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/zh_CN.po  2018-08-23 19:28:00.000000000 +0200
@@ -1,12 +1,12 @@
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Kid3 Chinese Simplified Translation.
+# This file is put in the public domain.
 #
 # shlinux <[email protected]>, 2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.1\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2014-08-24 15:11+0800\n"
 "Last-Translator: shlinux <[email protected]>\n"
 "Language-Team: Chinese Simplified <[email protected]>\n"
@@ -17,7 +17,7 @@
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Lokalize 1.5\n"
 "X-Language: zh_CN\n"
-"X-Source-Language: C\n"
+"X-Source-Language: en\n"
 
 msgid "Timeout"
 msgstr "超时"
@@ -1519,6 +1519,9 @@
 msgid "All Tags"
 msgstr "所有标签"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "如果不為空,則前置t1/追加t2"
+
 msgid "Truncated"
 msgstr "截断"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/po/zh_TW.po new/kid3-3.6.2/po/zh_TW.po
--- old/kid3-3.6.1/po/zh_TW.po  2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/po/zh_TW.po  2018-08-23 19:28:00.000000000 +0200
@@ -1,13 +1,13 @@
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Kid3 Chinese (traditional) Translation.
+# This file is put in the public domain.
 #
 # ChungYu, Hsu <[email protected]>, 2010.
 # Urs Fleisch <[email protected]>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Kid3 3.6.0\n"
+"Project-Id-Version: Kid3 3.6.2\n"
 "Report-Msgid-Bugs-To: http://sourceforge.net/p/kid3/bugs/\n";
-"POT-Creation-Date: 2018-03-18 16:04+0100\n"
+"POT-Creation-Date: 2018-08-04 12:12+0200\n"
 "PO-Revision-Date: 2011-01-15 17:43+0100\n"
 "Last-Translator: \n"
 "Language-Team: Chinese (traditional) <[email protected]>\n"
@@ -1523,6 +1523,9 @@
 msgid "All Tags"
 msgstr "所有標籤"
 
+msgid "Prepend t1/append t2 if not empty"
+msgstr "如果不为空,则前置t1/追加t2"
+
 msgid "Truncated"
 msgstr "截斷"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/app/CMakeLists.txt 
new/kid3-3.6.2/src/app/CMakeLists.txt
--- old/kid3-3.6.1/src/app/CMakeLists.txt       2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/app/CMakeLists.txt       2018-08-23 19:28:00.000000000 
+0200
@@ -33,7 +33,7 @@
     include(KDECMakeSettings)
     include(FeatureSummary)
 
-    find_package(KF5 REQUIRED COMPONENTS KIO)
+    find_package(KF5 REQUIRED COMPONENTS Config ConfigWidgets CoreAddons 
WidgetsAddons XmlGui)
 
     if (BUILD_SHARED_LIBS)
       # KDECMakeSettings.cmake will overwrite our RPATH if LIB_INSTALL_DIR is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/app/kde/CMakeLists.txt 
new/kid3-3.6.2/src/app/kde/CMakeLists.txt
--- old/kid3-3.6.1/src/app/kde/CMakeLists.txt   2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/app/kde/CMakeLists.txt   2018-08-23 19:28:00.000000000 
+0200
@@ -13,10 +13,11 @@
 
   add_executable(kid3 ${kde_SRCS})
 
-  target_link_libraries(kid3 kid3-gui KF5::KIOFileWidgets -lstdc++)
+  target_link_libraries(kid3 kid3-gui KF5::ConfigCore KF5::ConfigGui 
KF5::ConfigWidgets KF5::CoreAddons KF5::WidgetsAddons KF5::XmlGui -lstdc++)
 
   install(TARGETS kid3 DESTINATION ${BIN_INSTALL_DIR})
-  install(FILES ../kid3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
+  install(FILES ../kid3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}
+                                RENAME net.sourceforge.kid3.desktop)
   install(FILES ../kid3.appdata.xml DESTINATION "${WITH_DATAROOTDIR}/metainfo")
   install(FILES kid3ui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/kid3)
 else (HAVE_QT5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/app/qt/CMakeLists.txt 
new/kid3-3.6.2/src/app/qt/CMakeLists.txt
--- old/kid3-3.6.1/src/app/qt/CMakeLists.txt    2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/app/qt/CMakeLists.txt    2018-08-23 19:28:00.000000000 
+0200
@@ -212,6 +212,27 @@
     ")
   endif (CMAKE_CROSSCOMPILING AND NOT APPLE)
 
+  if (LINUX_SELF_CONTAINED)
+    # CMake 3.11.1 gets the prerequisites type wrong if a plugin uses a
+    # library which is in a parent directory but still inside the bundle.
+    # Override the type from "other" to "local" in such cases.
+    install(CODE "
+    function(gp_resolved_file_type_override resolved_file type_var)
+      if(\${\${type_var}} STREQUAL other)
+        get_filename_component(bundle_app_path \"${bundle_app}\" PATH)
+        string(LENGTH \"\${bundle_app_path}/\" bundle_app_length)
+        string(LENGTH \"\${resolved_file}\" resolved_file_length)
+        if(\${resolved_file_length} GREATER \${bundle_app_length})
+          string(SUBSTRING \"\${resolved_file}\" 0 \${bundle_app_length} 
resolved_file_path)
+          if(resolved_file_path STREQUAL \"\${bundle_app_path}/\")
+            set(\${type_var} local PARENT_SCOPE)
+          endif()
+        endif()
+      endif()
+    endfunction()
+    ")
+  endif()
+
   # Install and fix up all dependencies of the executable and the plugins.
   # On Mac OS X only keep the i386 code in the Qt libraries and plugins.
   install(CODE "
@@ -276,4 +297,11 @@
   ")
   install(DIRECTORY "${_qtLibDir}/icu_reduced/"
           DESTINATION ${WITH_BINDIR} OPTIONAL)
+  if (Qt5Widgets_VERSION VERSION_LESS 5.7.0)
+    # Qt 5.6.3 searches for OpenSSL 1.0, which is not found on distributions
+    # as new as Ubuntu 18.04. Install them in the application directory.
+    install(FILES "${CMAKE_BINARY_DIR}/../buildroot/usr/local/ssl/libssl.so"
+                  "${CMAKE_BINARY_DIR}/../buildroot/usr/local/ssl/libcrypto.so"
+            DESTINATION ${WITH_BINDIR})
+  endif ()
 endif (LINUX_SELF_CONTAINED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/config/fileconfig.cpp 
new/kid3-3.6.2/src/core/config/fileconfig.cpp
--- old/kid3-3.6.1/src/core/config/fileconfig.cpp       2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/core/config/fileconfig.cpp       2018-08-23 
19:28:00.000000000 +0200
@@ -37,7 +37,7 @@
   "%{track}. %{artist} - %{title}",
   "%{artist} - %{track} - %{title}",
   "%{artist} - %{album} - %{track} - %{title}",
-  "%{artist} - [%{year}] %{album} - %{track} - %{title}",
+  "%{artist} - %{\"[\"year\"] \"}%{album} - %{track} - %{title}",
   "%{artist} - %{title}",
   "%{artist}-%{title}",
   "(%{artist}) %{title}",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/config/rendirconfig.cpp 
new/kid3-3.6.2/src/core/config/rendirconfig.cpp
--- old/kid3-3.6.1/src/core/config/rendirconfig.cpp     2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/core/config/rendirconfig.cpp     2018-08-23 
19:28:00.000000000 +0200
@@ -29,12 +29,12 @@
 /** Default directory format list */
 static const char* dirFmt[] = {
   "%{artist} - %{album}",
-  "%{artist} - [%{year}] %{album}",
-  "%{artist} - %{album} (%{year})",
+  "%{artist} - %{\"[\"year\"] \"}%{album}",
+  "%{artist} - %{album}%{\" (\"year\")\"}",
   "%{artist}/%{album}",
-  "%{artist}/[%{year}] %{album}",
+  "%{artist}/%{\"[\"year\"] \"}%{album}",
   "%{album}",
-  "[%{year}] %{album}",
+  "%{\"[\"year\"] \"}%{album}",
   0                  // end of StrList
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/export/playlistcreator.cpp 
new/kid3-3.6.2/src/core/export/playlistcreator.cpp
--- old/kid3-3.6.1/src/core/export/playlistcreator.cpp  2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/core/export/playlistcreator.cpp  2018-08-23 
19:28:00.000000000 +0200
@@ -219,6 +219,27 @@
       m_ctr.m_playlistFileName = QDir(m_ctr.m_playlistDirName).dirName();
     } else {
       m_ctr.m_playlistFileName = formatString(m_ctr.m_cfg.fileNameFormat());
+
+      // Replace illegal characters in the playlist file name.
+      // Use replacements from the file name format config if enabled,
+      // otherwise remove the characters.
+      const FormatConfig& fnCfg = FilenameFormatConfig::instance();
+      QMap<QString, QString> replaceMap;
+      if (fnCfg.strRepEnabled()) {
+        replaceMap = fnCfg.strRepMap();
+      }
+#ifdef Q_OS_WIN32
+      static const char illegalChars[] = "<>:\"|?*\\/";
+#else
+      static const char illegalChars[] = "/";
+#endif
+      for (int i = 0;
+           i < static_cast<int>(sizeof(illegalChars) / 
sizeof(illegalChars[0]));
+           ++i) {
+        QChar illegalChar = QLatin1Char(illegalChars[i]);
+        QString replacement = replaceMap.value(illegalChar);
+        m_ctr.m_playlistFileName.replace(illegalChar, replacement);
+      }
     }
     QString ext;
     switch (m_ctr.m_cfg.format()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/model/kid3application.cpp 
new/kid3-3.6.2/src/core/model/kid3application.cpp
--- old/kid3-3.6.1/src/core/model/kid3application.cpp   2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/core/model/kid3application.cpp   2018-08-23 
19:28:00.000000000 +0200
@@ -1878,6 +1878,9 @@
       if (selectedFrame->getIndex() != -1) {
         framelist->editFrame();
       } else {
+        // Edit a frame which does not exist, switch to add mode.
+        m_addFrameTaggedFile = m_editFrameTaggedFile;
+        m_editFrameTaggedFile = 0;
         framelist->addAndEditFrame();
       }
     } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/tags/formatreplacer.cpp 
new/kid3-3.6.2/src/core/tags/formatreplacer.cpp
--- old/kid3-3.6.1/src/core/tags/formatreplacer.cpp     2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/core/tags/formatreplacer.cpp     2018-08-23 
19:28:00.000000000 +0200
@@ -93,6 +93,7 @@
 
       int codePos = pos + 1;
       int codeLen = 0;
+      QString prefix, postfix;
       bool urlEncode = false;
       bool htmlEscape = false;
       QString repl;
@@ -109,6 +110,20 @@
         if (closingBracePos > codePos + 1) {
           QString longCode =
             m_str.mid(codePos + 1, closingBracePos - codePos - 1).toLower();
+          if (longCode.startsWith(QLatin1Char('"'))) {
+            int prefixEnd = longCode.indexOf(QLatin1Char('"'), 1);
+            if (prefixEnd != -1 && prefixEnd < longCode.length() - 2) {
+              prefix = longCode.mid(1, prefixEnd - 1);
+              longCode.remove(0, prefixEnd + 1);
+            }
+          }
+          if (longCode.endsWith(QLatin1Char('"'))) {
+            int postfixStart = longCode.lastIndexOf(QLatin1Char('"'), -2);
+            if (postfixStart != -1 && postfixStart > 1) {
+              postfix = longCode.mid(postfixStart + 1, longCode.length() - 
postfixStart - 2);
+              longCode.truncate(postfixStart);
+            }
+          }
           repl = getReplacement(longCode);
           codeLen = closingBracePos - pos + 1;
         }
@@ -129,6 +144,14 @@
         if (htmlEscape) {
           repl = escapeHtml(repl);
         }
+        if (!repl.isEmpty()) {
+          if (!prefix.isEmpty()) {
+            repl = prefix + repl;
+          }
+          if (!postfix.isEmpty()) {
+            repl += postfix;
+          }
+        }
         if (!repl.isNull() || codeLen > 2) {
           m_str.replace(pos, codeLen, repl);
           pos += repl.length();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/core/tags/frame.cpp 
new/kid3-3.6.2/src/core/tags/frame.cpp
--- old/kid3-3.6.1/src/core/tags/frame.cpp      2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/core/tags/frame.cpp      2018-08-23 19:28:00.000000000 
+0200
@@ -1696,6 +1696,12 @@
   str += QCoreApplication::translate("@default", "Genre");
   str += QLatin1String("</td></tr>\n");
 
+  str += QLatin1String("<tr><td></td><td>%{\"t1\"title\"t2\"}...</td><td>");
+  const char* const prependAppendStr =
+      QT_TRANSLATE_NOOP("@default", "Prepend t1/append t2 if not empty");
+  str += QCoreApplication::translate("@default", prependAppendStr);
+  str += QLatin1String("</td></tr>\n");
+
   if (!onlyRows) str += QLatin1String("</table>\n");
   return str;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/gui/dialogs/playlistdialog.cpp 
new/kid3-3.6.2/src/gui/dialogs/playlistdialog.cpp
--- old/kid3-3.6.1/src/gui/dialogs/playlistdialog.cpp   2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/gui/dialogs/playlistdialog.cpp   2018-08-23 
19:28:00.000000000 +0200
@@ -141,7 +141,7 @@
   m_fileNameFormatComboBox->setEnabled(false);
   m_fileNameFormatComboBox->addItems(
     QStringList() <<
-    QLatin1String("%{artist} - %{album}") << QLatin1String("%{artist} - 
[%{year}] %{album}") << QLatin1String("%{album}") <<
+    QLatin1String("%{artist} - %{album}") << QLatin1String("%{artist} - 
%{\"[\"year\"] \"}%{album}") << QLatin1String("%{album}") <<
     QLatin1String("playlist_%{artist}_-_%{album}") << 
QLatin1String("playlist"));
   connect(m_fileNameFormatButton, SIGNAL(toggled(bool)),
           m_fileNameFormatComboBox, SLOT(setEnabled(bool)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/gui/widgets/frameitemdelegate.cpp 
new/kid3-3.6.2/src/gui/widgets/frameitemdelegate.cpp
--- old/kid3-3.6.1/src/gui/widgets/frameitemdelegate.cpp        2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/gui/widgets/frameitemdelegate.cpp        2018-08-23 
19:28:00.000000000 +0200
@@ -79,6 +79,77 @@
 
 
 /**
+ * Validator for date/time values.
+ */
+class DateTimeValidator : public QValidator {
+public:
+  /**
+   * Constructor.
+   * @param parent parent object
+   */
+  explicit DateTimeValidator(QObject* parent = 0);
+
+  /**
+   * Destructor.
+   */
+  virtual ~DateTimeValidator();
+
+  /**
+   * Validate input string.
+   * @param input input string
+   * @param pos current position in input string
+   * @return validation state.
+   */
+  virtual State validate(QString& input, int& pos) const;
+
+  /**
+   * Attempt to change input string to be valid.
+   * @param input input string
+   */
+  virtual void fixup(QString& input) const;
+
+private:
+  const QRegExp m_re;
+  mutable QString m_lastValidInput;
+};
+
+DateTimeValidator::DateTimeValidator(QObject* parent)
+  : QValidator(parent), m_re(FrameNotice::isoDateTimeRexExp())
+{
+}
+
+DateTimeValidator::~DateTimeValidator()
+{
+}
+
+QValidator::State DateTimeValidator::validate(QString& input, int& pos) const
+{
+  QRegExp dateTimeRe = m_re;
+  if (dateTimeRe.exactMatch(input)) {
+    m_lastValidInput = input;
+    return Acceptable;
+  } else {
+    const int len = dateTimeRe.matchedLength();
+    if (len == input.size()) {
+      return Intermediate;
+    } else if (len > 0 && m_lastValidInput.endsWith(input.mid(len))) {
+      return Intermediate;
+    } else {
+      pos = input.size();
+      return Invalid;
+    }
+  }
+}
+
+void DateTimeValidator::fixup(QString& input) const
+{
+  if (!m_lastValidInput.isEmpty()) {
+    input = m_lastValidInput;
+  }
+}
+
+
+/**
  * Helper class providing methods to paint stars for a rating.
  */
 class StarPainter {
@@ -261,8 +332,7 @@
   QItemDelegate(parent),
   m_genreModel(genreModel),
   m_trackNumberValidator(new TrackNumberValidator(this)),
-  m_dateTimeValidator(new QRegExpValidator(FrameNotice::isoDateTimeRexExp(),
-                                           this)) {
+  m_dateTimeValidator(new DateTimeValidator(this)) {
   setObjectName(QLatin1String("FrameItemDelegate"));
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/plugins/CMakeLists.txt 
new/kid3-3.6.2/src/plugins/CMakeLists.txt
--- old/kid3-3.6.1/src/plugins/CMakeLists.txt   2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/plugins/CMakeLists.txt   2018-08-23 19:28:00.000000000 
+0200
@@ -19,6 +19,10 @@
     set(PLUGIN_LIBRARIES ${PLUGIN_LIBRARIES} ${_target} PARENT_SCOPE)
     set(PLUGIN_NAMES ${PLUGIN_NAMES} ${_name}Plugin PARENT_SCOPE)
   endif (BUILD_SHARED_LIBS)
+  if (LINUX_SELF_CONTAINED)
+    # Just to keep CMake quiet, not needed at run time.
+    set_target_properties(${_target} PROPERTIES INSTALL_RPATH "\$ORIGIN/..")
+  endif (LINUX_SELF_CONTAINED)
 endmacro (INSTALL_KID3_PLUGIN _target _name)
 
 add_definitions(-DKID3_BUILD_PLUGIN_LIB)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kid3-3.6.1/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp 
new/kid3-3.6.2/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp
--- old/kid3-3.6.1/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp      
2018-04-18 20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp      
2018-08-23 19:28:00.000000000 +0200
@@ -504,7 +504,9 @@
 FFmpegFingerprintDecoder::FFmpegFingerprintDecoder(QObject* parent) :
   AbstractFingerprintDecoder(parent)
 {
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100)
   ::av_register_all();
+#endif
   ::av_log_set_level(AV_LOG_ERROR);
 
   m_buffer1 = reinterpret_cast<qint16*>(::av_malloc(BUFFER_SIZE + 16));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/plugins/kid3qml/CMakeLists.txt 
new/kid3-3.6.2/src/plugins/kid3qml/CMakeLists.txt
--- old/kid3-3.6.1/src/plugins/kid3qml/CMakeLists.txt   2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/plugins/kid3qml/CMakeLists.txt   2018-08-23 
19:28:00.000000000 +0200
@@ -58,6 +58,11 @@
   string(REPLACE "<CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME>" ""
          CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")
 endif (ANDROID)
+if (LINUX_SELF_CONTAINED)
+  # Just to keep CMake quiet, not needed at run time.
+  set_target_properties(
+    ${plugin_TARGET} PROPERTIES INSTALL_RPATH "\$ORIGIN/../../..")
+endif (LINUX_SELF_CONTAINED)
 
 if (WIN32)
   set(_qmldirPluginName libkid3qml)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kid3-3.6.1/src/plugins/qmlcommand/qmlcommandplugin.cpp 
new/kid3-3.6.2/src/plugins/qmlcommand/qmlcommandplugin.cpp
--- old/kid3-3.6.1/src/plugins/qmlcommand/qmlcommandplugin.cpp  2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/plugins/qmlcommand/qmlcommandplugin.cpp  2018-08-23 
19:28:00.000000000 +0200
@@ -27,6 +27,9 @@
 #include "qmlcommandplugin.h"
 #include <QDir>
 #if QT_VERSION >= 0x050000
+#ifndef NDEBUG
+#define QT_QML_DEBUG
+#endif
 #include <QQuickView>
 #include <QQmlApplicationEngine>
 #include <QQmlContext>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/plugins/taglibmetadata/taglibfile.cpp 
new/kid3-3.6.2/src/plugins/taglibmetadata/taglibfile.cpp
--- old/kid3-3.6.1/src/plugins/taglibmetadata/taglibfile.cpp    2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/plugins/taglibmetadata/taglibfile.cpp    2018-08-23 
19:28:00.000000000 +0200
@@ -3549,6 +3549,18 @@
 }
 
 template <>
+void setValue(TagLib::ID3v2::ChapterFrame* f, const TagLib::String& text)
+{
+  f->setElementID(text.data(TagLib::String::Latin1));
+}
+
+template <>
+void setValue(TagLib::ID3v2::TableOfContentsFrame* f, const TagLib::String& 
text)
+{
+  f->setElementID(text.data(TagLib::String::Latin1));
+}
+
+template <>
 void setData(TagLib::ID3v2::ChapterFrame* f,
              const Frame::Field& fld)
 {
@@ -4336,7 +4348,8 @@
              it != items.end();
              ++it) {
           const TagLib::String& key = it->first;
-          if (key.substr(key.length() - nameLen, nameLen) == name) {
+          if (key.length() >= nameLen &&
+              key.substr(key.length() - nameLen, nameLen) == name) {
             freeFormName = key;
             break;
           }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/qml/script/ImportCsv.qml 
new/kid3-3.6.2/src/qml/script/ImportCsv.qml
--- old/kid3-3.6.1/src/qml/script/ImportCsv.qml 2018-04-18 20:01:00.000000000 
+0200
+++ new/kid3-3.6.2/src/qml/script/ImportCsv.qml 2018-08-23 19:28:00.000000000 
+0200
@@ -43,7 +43,7 @@
 
     function readCsvFile(filePath) {
       var filePathCol = -1
-      var lines = ("" + script.readFile(filePath)).split("\n")
+      var lines = ("" + script.readFile(filePath)).split(/[\r\n]+/)
       for (var i = 0; i < lines.length; ++i) {
         var line = lines[i]
         if (line.length > 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kid3-3.6.1/src/test/test_cli_functions.py 
new/kid3-3.6.2/src/test/test_cli_functions.py
--- old/kid3-3.6.1/src/test/test_cli_functions.py       2018-04-18 
20:01:00.000000000 +0200
+++ new/kid3-3.6.2/src/test/test_cli_functions.py       2018-08-23 
19:28:00.000000000 +0200
@@ -749,7 +749,7 @@
                 '  12- 06 Kingdom Come.ape\n'
                 '  -2- 08 Hail And Kill.wav\n'
                 '  -2- 09 The Warriors Prayer.opus\n'
-                '  -2- 10 Blood Of The Kings.aiff\n')
+                '  -2- 10 Blood Of The Kings.aif\n')
             self.assertEqual(call_kid3_cli(
                 ['-c', 'tag 2',
                  '-c', 'numbertracks 101',
@@ -781,7 +781,7 @@
                 ['- 01 Wheels Of Fire.m4a', '- 02 Kings Of Metal.flac',
                  '- 03 Heart Of Steel.spx', '+ 05 The Crown And The Ring 
(Lament Of The Kings).mp3',
                  '- 06 Kingdom Come.ape', '+ 08 Hail And Kill.wav', '- 09 The 
Warriors Prayer.opus',
-                 '- 10 Blood Of The Kings.aiff', 'Finished'])
+                 '- 10 Blood Of The Kings.aif', 'Finished'])
             call_kid3_cli(['-c', 'renamedir "%{artist} - [%{year}] %{album}" 
"create"', tmpdir])
             new_dirname = 'Manowar - [1988] Kings Of Metal'
             new_dirpath = os.path.join(tmpdir, new_dirname)
@@ -798,7 +798,7 @@
                 '06 Kingdom Come.ape\n'
                 '08 Hail And Kill.wav\n'
                 '09 The Warriors Prayer.opus\n'
-                '10 Blood Of The Kings.aiff\n')
+                '10 Blood Of The Kings.aif\n')
 
     def test_filename_tag_format(self):
         with tempfile.TemporaryDirectory() as tmpdir:


Reply via email to