Hello community, here is the log from the commit of package kfilemetadata5 for openSUSE:Factory checked in at 2018-01-22 16:09:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kfilemetadata5 (Old) and /work/SRC/openSUSE:Factory/.kfilemetadata5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kfilemetadata5" Mon Jan 22 16:09:15 2018 rev:54 rq:567245 version:5.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kfilemetadata5/kfilemetadata5.changes 2018-01-09 14:41:55.847487111 +0100 +++ /work/SRC/openSUSE:Factory/.kfilemetadata5.new/kfilemetadata5.changes 2018-01-22 16:09:17.707822750 +0100 @@ -1,0 +2,17 @@ +Tue Jan 16 22:50:17 CET 2018 - lbeltr...@kde.org + +- Update to 5.42.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.42.0.php +- Changes since 5.41.0: + * Use more explicit + * Use more nullptr + * Use nullptr, const'ify, port some Q_FOREACH to for(..:..) + * Fix build against TagLib < 1.11 + * remove extractor based on QtMultimedia + * Check for Linux instead of TagLib and avoid building the usermetadatawritertest on Windows. + * Restore # 6c9111a9 until a successful build and link without TagLib is possible. + * Remove the taglib dependency, caused by a left-over include. Also reverts commit # 6c9111a9 + +------------------------------------------------------------------- Old: ---- kfilemetadata-5.41.0.tar.xz New: ---- kfilemetadata-5.42.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kfilemetadata5.spec ++++++ --- /var/tmp/diff_new_pack.3N9DLu/_old 2018-01-22 16:09:18.295795241 +0100 +++ /var/tmp/diff_new_pack.3N9DLu/_new 2018-01-22 16:09:18.299795054 +0100 @@ -1,7 +1,7 @@ # # spec file for package kfilemetadata5 # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,13 +18,13 @@ %bcond_without ffmpeg %bcond_without lang -%define _tar_path 5.41 +%define _tar_path 5.42 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %global _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: kfilemetadata5 -Version: 5.41.0 +Version: 5.42.0 Release: 0 %define kf5_version %{version} Summary: Extract Metadata ++++++ kfilemetadata-5.41.0.tar.xz -> kfilemetadata-5.42.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/CMakeLists.txt new/kfilemetadata-5.42.0/CMakeLists.txt --- old/kfilemetadata-5.41.0/CMakeLists.txt 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/CMakeLists.txt 2018-01-07 17:18:02.000000000 +0100 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.0) -set(KF5_VERSION "5.41.0") # handled by release scripts -set(KF5_DEP_VERSION "5.41.0") # handled by release scripts +set(KF5_VERSION "5.42.0") # handled by release scripts +set(KF5_DEP_VERSION "5.42.0") # handled by release scripts project(KFileMetaData VERSION ${KF5_VERSION}) include(FeatureSummary) -find_package(ECM 5.41.0 NO_MODULE) +find_package(ECM 5.42.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -34,11 +34,6 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Xml) -find_package(Qt5Multimedia ${REQUIRED_QT_VERSION}) -set_package_properties(Qt5Multimedia PROPERTIES DESCRIPTION "Qt5 Multimedia Module" - URL "https://qt.io" TYPE OPTIONAL - PURPOSE "Qt5 Multimedia module is needed to build an extractor for audio files") - find_package(KF5 ${KF5_DEP_VERSION} COMPONENTS Archive) set_package_properties(KF5Archive PROPERTIES DESCRIPTION "KDE Frameworks 5: Archive Framework" URL "https://download.kde.org/stable/frameworks/" TYPE OPTIONAL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/autotests/CMakeLists.txt new/kfilemetadata-5.42.0/autotests/CMakeLists.txt --- old/kfilemetadata-5.41.0/autotests/CMakeLists.txt 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/autotests/CMakeLists.txt 2018-01-07 17:18:02.000000000 +0100 @@ -110,17 +110,6 @@ ) endif() -# -# QtMultimedia -# -if(NOT TAGLIB_FOUND AND Qt5Multimedia_FOUND) - kde_enable_exceptions() - ecm_add_test(qtmultimediaextractortest.cpp ../src/extractors/qtmultimediaextractor.cpp - TEST_NAME "qtmultimediaextractortest" - LINK_LIBRARIES Qt5::Test KF5::FileMetaData Qt5::Multimedia - ) -endif() - if(PYTHONINTERP_FOUND) configure_file(samplefiles/testexternalextractor/main.py samplefiles/testexternalextractor/main.py) @@ -151,10 +140,7 @@ # # UserMetaData # - -if(TAGLIB_FOUND) - include_directories(${TAGLIB_INCLUDES}) - +if(CMAKE_SYSTEM_NAME MATCHES "Linux") kde_enable_exceptions() ecm_add_test(usermetadatawritertest.cpp ../src/usermetadata.cpp TEST_NAME "usermetadatawritertest" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/autotests/indexerextractortests.h new/kfilemetadata-5.42.0/autotests/indexerextractortests.h --- old/kfilemetadata-5.41.0/autotests/indexerextractortests.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/autotests/indexerextractortests.h 2018-01-07 17:18:02.000000000 +0100 @@ -29,7 +29,7 @@ { Q_OBJECT public: - explicit IndexerExtractorTests(QObject* parent = 0); + explicit IndexerExtractorTests(QObject* parent = nullptr); private: QString testFilePath(const QString& fileName) const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/autotests/qtmultimediaextractortest.cpp new/kfilemetadata-5.42.0/autotests/qtmultimediaextractortest.cpp --- old/kfilemetadata-5.41.0/autotests/qtmultimediaextractortest.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/autotests/qtmultimediaextractortest.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,152 +0,0 @@ -/* - * QtMultimediaExtractor tests. - * - * Copyright (C) 2015 Juan Palacios <jpalacios...@gmail.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#include "qtmultimediaextractortest.h" -#include "simpleextractionresult.h" -#include "indexerextractortestsconfig.h" -#include "extractors/qtmultimediaextractor.h" - -#include <QDebug> -#include <QTest> -#include <QDir> -#include <QFile> - -using namespace KFileMetaData; - -QString QtMultimediaExtractorTest::testFilePath(const QString& fileName) const -{ - return QFile::decodeName(INDEXER_TESTS_SAMPLE_FILES_PATH) + "/" + fileName; -} - -void QtMultimediaExtractorTest::test() -{ - QScopedPointer<ExtractorPlugin> plugin(new QtMultimediaExtractor(this)); - - SimpleExtractionResult resultOpus(testFilePath("test.opus"), "audio/opus"); - plugin->extract(&resultOpus); - - QCOMPARE(resultOpus.types().size(), 1); - QCOMPARE(resultOpus.types().first(), Type::Audio); - - QCOMPARE(resultOpus.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultOpus.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultOpus.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultOpus.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultOpus.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - //QCOMPARE(resultOpus.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - //QCOMPARE(resultOpus.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultOpus.properties().value(Property::TrackNumber).toInt(), 1); - //QCOMPARE(resultOpus.properties().value(Property::ReleaseYear).toInt(), 2015); - //QCOMPARE(resultOpus.properties().value(Property::Channels).toInt(), 1); - //QCOMPARE(resultOpus.properties().value(Property::DiscNumber).toInt(), 1); - - SimpleExtractionResult resultFlac(testFilePath("test.flac"), "audio/flac"); - plugin->extract(&resultFlac); - - QCOMPARE(resultFlac.types().size(), 1); - QCOMPARE(resultFlac.types().first(), Type::Audio); - - QCOMPARE(resultFlac.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultFlac.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultFlac.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultFlac.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultFlac.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - //QCOMPARE(resultFlac.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - //QCOMPARE(resultFlac.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultFlac.properties().value(Property::TrackNumber).toInt(), 1); - //QCOMPARE(resultFlac.properties().value(Property::ReleaseYear).toInt(), 2015); - //QCOMPARE(resultFlac.properties().value(Property::Channels).toInt(), 1); - //QCOMPARE(resultFlac.properties().value(Property::DiscNumber).toInt(), 1); - - SimpleExtractionResult resultOgg(testFilePath("test.ogg"), "audio/ogg"); - plugin->extract(&resultOgg); - - QCOMPARE(resultOgg.types().size(), 1); - QCOMPARE(resultOgg.types().first(), Type::Audio); - - QCOMPARE(resultOgg.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultOgg.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultOgg.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultOgg.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultOgg.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - //QCOMPARE(resultOgg.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - //QCOMPARE(resultOgg.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultOgg.properties().value(Property::TrackNumber).toInt(), 1); - //QCOMPARE(resultOgg.properties().value(Property::ReleaseYear).toInt(), 2015); - //QCOMPARE(resultOgg.properties().value(Property::Channels).toInt(), 1); - //QCOMPARE(resultOgg.properties().value(Property::DiscNumber).toInt(), 1); - - SimpleExtractionResult resultMp3(testFilePath("test.mp3"), "audio/mpeg"); - plugin->extract(&resultMp3); - - QCOMPARE(resultMp3.types().size(), 1); - QCOMPARE(resultMp3.types().first(), Type::Audio); - - QCOMPARE(resultMp3.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultMp3.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultMp3.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultMp3.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultMp3.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - //QCOMPARE(resultMp3.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - //QCOMPARE(resultMp3.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultMp3.properties().value(Property::TrackNumber).toInt(), 1); - //QCOMPARE(resultMp3.properties().value(Property::ReleaseYear).toInt(), 2015); - //QCOMPARE(resultMp3.properties().value(Property::Channels).toInt(), 1); - //QCOMPARE(resultMp3.properties().value(Property::DiscNumber).toInt(), 1); - - /*SimpleExtractionResult resultMpc(testFilePath("test.mpc"), "audio/x-musepack"); - plugin->extract(&resultMpc); - - QCOMPARE(resultMpc.types().size(), 1); - QCOMPARE(resultMpc.types().first(), Type::Audio); - - QCOMPARE(resultMpc.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultMpc.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultMpc.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultMpc.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultMpc.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - QCOMPARE(resultMpc.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - QCOMPARE(resultMpc.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultMpc.properties().value(Property::TrackNumber).toInt(), 1); - QCOMPARE(resultMpc.properties().value(Property::ReleaseYear).toInt(), 2015); - QCOMPARE(resultMpc.properties().value(Property::Channels).toInt(), 1);*/ - //QCOMPARE(resultMpc.properties().value(Property::DiscNumber).isValid(), false); - - SimpleExtractionResult resultMp4(testFilePath("test.m4a"), "audio/mp4"); - plugin->extract(&resultMp4); - - QCOMPARE(resultMp4.types().size(), 1); - QCOMPARE(resultMp4.types().first(), Type::Audio); - - /*QCOMPARE(resultMp4.properties().value(Property::Title), QVariant(QStringLiteral("Title"))); - QCOMPARE(resultMp4.properties().value(Property::Artist), QVariant(QStringLiteral("Artist"))); - QCOMPARE(resultMp4.properties().value(Property::Album), QVariant(QStringLiteral("Test"))); - QCOMPARE(resultMp4.properties().value(Property::AlbumArtist), QVariant(QStringLiteral("Album Artist"))); - QCOMPARE(resultMp4.properties().value(Property::Genre), QVariant(QStringLiteral("Genre"))); - QCOMPARE(resultMp4.properties().value(Property::Comment), QVariant(QStringLiteral("Comment"))); - QCOMPARE(resultMp4.properties().value(Property::Composer), QVariant(QStringLiteral("Composer"))); - QCOMPARE(resultMp4.properties().value(Property::TrackNumber).toInt(), 1); - QCOMPARE(resultMp4.properties().value(Property::ReleaseYear).toInt(), 2015); - QCOMPARE(resultMp4.properties().value(Property::Channels).toInt(), 2);*/ - //QCOMPARE(resultMp4.properties().value(Property::DiscNumber).toInt(), 1); -} - -QTEST_MAIN(QtMultimediaExtractorTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/autotests/qtmultimediaextractortest.h new/kfilemetadata-5.42.0/autotests/qtmultimediaextractortest.h --- old/kfilemetadata-5.41.0/autotests/qtmultimediaextractortest.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/autotests/qtmultimediaextractortest.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,37 +0,0 @@ -/* - * QtMultimediaExtractor tests. - * - * Copyright (C) 2015 Juan Palacios <jpalacios...@gmail.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifndef QTMULTIMEDIAEXTRACTORTEST_H -#define QTMULTIMEDIAEXTRACTORTEST_H - -#include <QObject> - -class QtMultimediaExtractorTest : public QObject -{ - Q_OBJECT -private: - QString testFilePath(const QString& fileName) const; - -private Q_SLOTS: - void test(); -}; - -#endif // QTMULTIMEDIAEXTRACTORTEST_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/autotests/usermetadatawritertest.cpp new/kfilemetadata-5.42.0/autotests/usermetadatawritertest.cpp --- old/kfilemetadata-5.41.0/autotests/usermetadatawritertest.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/autotests/usermetadatawritertest.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -21,8 +21,6 @@ #include "indexerextractortestsconfig.h" #include "usermetadata.h" -#include "fileref.h" - #include <QDebug> #include <QTest> #include <QDir> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/ca/kfilemetadata5.po new/kfilemetadata-5.42.0/po/ca/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/ca/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/ca/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: kfilemetadata5\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2017-10-17 20:18+0100\n" +"PO-Revision-Date: 2017-12-10 22:43+0100\n" "Last-Translator: Josep Ma. Ferrer <txe...@gmail.com>\n" "Language-Team: Catalan <kde-i18n...@kde.org>\n" "Language: ca\n" @@ -103,7 +103,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "Document generated per" +msgstr "Document generat per" #: src/propertyinfo.cpp:141 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/ca@valencia/kfilemetadata5.po new/kfilemetadata-5.42.0/po/ca@valencia/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/ca@valencia/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/ca@valencia/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: kfilemetadata5\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2017-10-17 20:18+0100\n" +"PO-Revision-Date: 2017-12-10 22:43+0100\n" "Last-Translator: Josep Ma. Ferrer <txe...@gmail.com>\n" "Language-Team: Catalan <kde-i18n...@kde.org>\n" "Language: ca@valencia\n" @@ -103,7 +103,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "Document generated per" +msgstr "Document generat per" #: src/propertyinfo.cpp:141 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/fi/kfilemetadata5.po new/kfilemetadata-5.42.0/po/fi/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/fi/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/fi/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -1,6 +1,6 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. -# Lasse Liehu <lasse.li...@gmail.com>, 2014, 2015, 2016. +# Lasse Liehu <lasse.li...@gmail.com>, 2014, 2015, 2016, 2017. # Tommi Nieminen <transla...@legisign.org>, 2017. # msgid "" @@ -8,8 +8,8 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2017-05-29 19:01+0200\n" -"Last-Translator: Tommi Nieminen <transla...@legisign.org>\n" +"PO-Revision-Date: 2017-12-03 20:58+0900\n" +"Last-Translator: Lasse Liehu <lasse.li...@gmail.com>\n" "Language-Team: Finnish <kde-i18n-...@kde.org>\n" "Language: fi\n" "MIME-Version: 1.0\n" @@ -100,7 +100,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "" +msgstr "Asiakirjan loi" #: src/propertyinfo.cpp:141 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/ko/kfilemetadata5.po new/kfilemetadata-5.42.0/po/ko/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/ko/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/ko/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -1,13 +1,13 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. -# Shinjo Park <k...@peremen.name>, 2014, 2015, 2016. +# Shinjo Park <k...@peremen.name>, 2014, 2015, 2016, 2017. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2016-10-20 23:15+0100\n" +"PO-Revision-Date: 2017-12-02 20:44+0100\n" "Last-Translator: Shinjo Park <k...@peremen.name>\n" "Language-Team: Korean <k...@peremen.name>\n" "Language: ko\n" @@ -99,7 +99,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "" +msgstr "문서 생성자/도구" #: src/propertyinfo.cpp:141 #, kde-format @@ -312,12 +312,10 @@ msgstr "트랙 번호" #: src/propertyinfo.cpp:358 -#, fuzzy, kde-format -#| msgctxt "@label music track number" -#| msgid "Track Number" +#, kde-format msgctxt "@label music disc number" msgid "Disc Number" -msgstr "트랙 번호" +msgstr "디스크 번호" #: src/propertyinfo.cpp:364 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/pt_BR/kfilemetadata5.po new/kfilemetadata-5.42.0/po/pt_BR/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/pt_BR/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/pt_BR/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # André Marcelo Alvarenga <alvare...@kde.org>, 2014, 2015, 2016. +# Luiz Fernando Ranghetti <elchev...@opensuse.org>, 2017. msgid "" msgstr "" "Project-Id-Version: kfilemetadata\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2016-04-10 12:42-0300\n" -"Last-Translator: André Marcelo Alvarenga <alvare...@kde.org>\n" -"Language-Team: Brazilian Portuguese <kde-i18n-pt...@kde.org>\n" +"PO-Revision-Date: 2017-12-12 15:57-0300\n" +"Last-Translator: Luiz Fernando Ranghetti <elchev...@opensuse.org>\n" +"Language-Team: Portuguese <kde-i18n-pt...@kde.org>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -100,7 +101,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "" +msgstr "Documento gerador por" #: src/propertyinfo.cpp:141 #, kde-format @@ -313,12 +314,10 @@ msgstr "Número da faixa" #: src/propertyinfo.cpp:358 -#, fuzzy, kde-format -#| msgctxt "@label music track number" -#| msgid "Track Number" +#, kde-format msgctxt "@label music disc number" msgid "Disc Number" -msgstr "Número da faixa" +msgstr "Número do disco" #: src/propertyinfo.cpp:364 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/ru/kfilemetadata5.po new/kfilemetadata-5.42.0/po/ru/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/ru/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/ru/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -8,7 +8,7 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2017-03-11 16:57+0300\n" +"PO-Revision-Date: 2017-12-02 17:08+0300\n" "Last-Translator: Alexander Potashev <aspotas...@gmail.com>\n" "Language-Team: Russian <kde-russ...@lists.kde.ru>\n" "Language: ru\n" @@ -101,7 +101,7 @@ #, kde-format msgctxt "@label" msgid "Document Generated By" -msgstr "" +msgstr "Программа, создавшая документ" #: src/propertyinfo.cpp:141 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/po/zh_CN/kfilemetadata5.po new/kfilemetadata-5.42.0/po/zh_CN/kfilemetadata5.po --- old/kfilemetadata-5.41.0/po/zh_CN/kfilemetadata5.po 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/po/zh_CN/kfilemetadata5.po 2018-01-07 17:18:02.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-10-17 03:36+0200\n" -"PO-Revision-Date: 2017-11-09 08:33-0500\n" +"PO-Revision-Date: 2018-01-05 06:38-0500\n" "Last-Translator: guoyunhebrave <guoyunhebr...@gmail.com>\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/externalextractor.cpp new/kfilemetadata-5.42.0/src/externalextractor.cpp --- old/kfilemetadata-5.41.0/src/externalextractor.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/externalextractor.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -78,9 +78,11 @@ } QJsonObject rootObject = manifestDoc.object(); - QJsonArray mimetypesArray = rootObject.value(QStringLiteral("mimetypes")).toArray(); + const QJsonArray mimetypesArray = rootObject.value(QStringLiteral("mimetypes")).toArray(); QStringList mimetypes; - Q_FOREACH(const QVariant &mimetype, mimetypesArray) { + mimetypes.reserve(mimetypesArray.count()); + + for (const QVariant &mimetype : mimetypesArray) { mimetypes << mimetype.toString(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/externalextractor.h new/kfilemetadata-5.42.0/src/externalextractor.h --- old/kfilemetadata-5.41.0/src/externalextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/externalextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_OBJECT public: - explicit ExternalExtractor(QObject* parent = 0); + explicit ExternalExtractor(QObject* parent = nullptr); ExternalExtractor(const QString& pluginPath); virtual ~ExternalExtractor(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/externalwriter.h new/kfilemetadata-5.42.0/src/externalwriter.h --- old/kfilemetadata-5.41.0/src/externalwriter.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/externalwriter.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_OBJECT public: - explicit ExternalWriter(QObject* parent = 0); + explicit ExternalWriter(QObject* parent = nullptr); explicit ExternalWriter(const QString& pluginPath); virtual ~ExternalWriter(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractorcollection.cpp new/kfilemetadata-5.42.0/src/extractorcollection.cpp --- old/kfilemetadata-5.41.0/src/extractorcollection.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractorcollection.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -79,8 +79,8 @@ continue; } - QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); - Q_FOREACH (const QString& fileName, entryList) { + const QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); + for (const QString& fileName : entryList) { // Make sure the same plugin is not loaded twice, even if it is // installed in two different locations if (plugins.contains(fileName)) @@ -94,8 +94,8 @@ QDir externalPluginDir(QStringLiteral(LIBEXEC_INSTALL_DIR) + QStringLiteral("/kfilemetadata/externalextractors")); // For external plugins, we look into the directories - QStringList externalPluginEntryList = externalPluginDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - Q_FOREACH (const QString& externalPlugin, externalPluginEntryList) { + const QStringList externalPluginEntryList = externalPluginDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + for (const QString& externalPlugin : externalPluginEntryList) { if (externalPlugins.contains(externalPlugin)) continue; @@ -152,7 +152,7 @@ QMimeDatabase db; auto type = db.mimeTypeForName(mimetype); auto it = d->m_extractors.constBegin(); - for (; it != d->m_extractors.constEnd(); it++) { + for (; it != d->m_extractors.constEnd(); ++it) { if (plugins.contains(it.value())) { continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractorplugin.cpp new/kfilemetadata-5.42.0/src/extractorplugin.cpp --- old/kfilemetadata-5.41.0/src/extractorplugin.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractorplugin.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -136,6 +136,7 @@ contactStrings = string.split(QStringLiteral(" feat "), QString::SkipEmptyParts); QStringList list; + list.reserve(contactStrings.count()); foreach(const QString& contactName, contactStrings) { list << contactName.trimmed(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractorplugin.h new/kfilemetadata-5.42.0/src/extractorplugin.h --- old/kfilemetadata-5.41.0/src/extractorplugin.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractorplugin.h 2018-01-07 17:18:02.000000000 +0100 @@ -47,7 +47,7 @@ { Q_OBJECT public: - ExtractorPlugin(QObject* parent); + explicit ExtractorPlugin(QObject* parent); virtual ~ExtractorPlugin(); /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/CMakeLists.txt new/kfilemetadata-5.42.0/src/extractors/CMakeLists.txt --- old/kfilemetadata-5.41.0/src/extractors/CMakeLists.txt 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/CMakeLists.txt 2018-01-07 17:18:02.000000000 +0100 @@ -32,21 +32,6 @@ endif() -if(NOT TAGLIB_FOUND AND Qt5Multimedia_FOUND) - add_library(kfilemetadata_qtmultimediaextractor MODULE qtmultimediaextractor.cpp ) - - target_link_libraries( kfilemetadata_qtmultimediaextractor - KF5::FileMetaData - Qt5::Multimedia - ) - - set_target_properties(kfilemetadata_qtmultimediaextractor PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/kfilemetadata") - install( - TARGETS kfilemetadata_qtmultimediaextractor - DESTINATION ${PLUGIN_INSTALL_DIR}/kf5/kfilemetadata) - -endif() - if(EXIV2_FOUND) include_directories( ${EXIV2_INCLUDE_DIR} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/epubextractor.h new/kfilemetadata-5.42.0/src/extractors/epubextractor.h --- old/kfilemetadata-5.41.0/src/extractors/epubextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/epubextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -32,7 +32,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - EPubExtractor(QObject* parent = 0); + explicit EPubExtractor(QObject* parent = nullptr); void extract(ExtractionResult* result) Q_DECL_OVERRIDE; QStringList mimetypes() const Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/exiv2extractor.h new/kfilemetadata-5.42.0/src/extractors/exiv2extractor.h --- old/kfilemetadata-5.41.0/src/extractors/exiv2extractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/exiv2extractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -34,7 +34,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - Exiv2Extractor(QObject* parent = 0); + explicit Exiv2Extractor(QObject* parent = nullptr); void extract(ExtractionResult* result) Q_DECL_OVERRIDE; QStringList mimetypes() const Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/ffmpegextractor.h new/kfilemetadata-5.42.0/src/extractors/ffmpegextractor.h --- old/kfilemetadata-5.41.0/src/extractors/ffmpegextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/ffmpegextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -32,7 +32,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - FFmpegExtractor(QObject* parent = 0); + explicit FFmpegExtractor(QObject* parent = nullptr); void extract(ExtractionResult* result) Q_DECL_OVERRIDE; QStringList mimetypes() const Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/mobiextractor.h new/kfilemetadata-5.42.0/src/extractors/mobiextractor.h --- old/kfilemetadata-5.41.0/src/extractors/mobiextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/mobiextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - MobiExtractor(QObject* parent = 0); + explicit MobiExtractor(QObject* parent = nullptr); void extract(ExtractionResult* result) Q_DECL_OVERRIDE; QStringList mimetypes() const Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/odfextractor.h new/kfilemetadata-5.42.0/src/extractors/odfextractor.h --- old/kfilemetadata-5.41.0/src/extractors/odfextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/odfextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - OdfExtractor(QObject* parent = 0); + explicit OdfExtractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/office2007extractor.h new/kfilemetadata-5.42.0/src/extractors/office2007extractor.h --- old/kfilemetadata-5.41.0/src/extractors/office2007extractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/office2007extractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -37,7 +37,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - Office2007Extractor(QObject* parent = 0); + explicit Office2007Extractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/officeextractor.h new/kfilemetadata-5.42.0/src/extractors/officeextractor.h --- old/kfilemetadata-5.41.0/src/extractors/officeextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/officeextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - OfficeExtractor(QObject* parent = 0); + explicit OfficeExtractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/plaintextextractor.cpp new/kfilemetadata-5.42.0/src/extractors/plaintextextractor.cpp --- old/kfilemetadata-5.41.0/src/extractors/plaintextextractor.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/plaintextextractor.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -73,7 +73,7 @@ QTextCodec* codec = QTextCodec::codecForLocale(); - char* line = 0; + char* line = nullptr; size_t len = 0; int lines = 0; int r = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/plaintextextractor.h new/kfilemetadata-5.42.0/src/extractors/plaintextextractor.h --- old/kfilemetadata-5.41.0/src/extractors/plaintextextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/plaintextextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - PlainTextExtractor(QObject* parent = 0); + explicit PlainTextExtractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/poextractor.h new/kfilemetadata-5.42.0/src/extractors/poextractor.h --- old/kfilemetadata-5.41.0/src/extractors/poextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/poextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -36,7 +36,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - POExtractor(QObject* parent = 0); + explicit POExtractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/popplerextractor.h new/kfilemetadata-5.42.0/src/extractors/popplerextractor.h --- old/kfilemetadata-5.41.0/src/extractors/popplerextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/popplerextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -34,7 +34,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - PopplerExtractor(QObject* parent = 0); + explicit PopplerExtractor(QObject* parent = nullptr); QStringList mimetypes() const Q_DECL_OVERRIDE; void extract(ExtractionResult* result) Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/qtmultimediaextractor.cpp new/kfilemetadata-5.42.0/src/extractors/qtmultimediaextractor.cpp --- old/kfilemetadata-5.41.0/src/extractors/qtmultimediaextractor.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/qtmultimediaextractor.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,261 +0,0 @@ -/* - This file is part of the KFileMetaData project that extract metadata from files - Copyright (C) 2012 Vishesh Handa <m...@vhanda.in> - Copyright 2017 Matthieu Gallien <matthieu_gall...@yahoo.fr> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - - -#include "qtmultimediaextractor.h" - -#include <QMediaPlayer> -#include <QMediaMetaData> -#include <QMutexLocker> - -using namespace KFileMetaData; - -namespace KFileMetaData -{ - -class ExecutionHelper: public QObject -{ - - Q_OBJECT - -public: - - ExecutionHelper(QSemaphore &synchronizeSemaphore, QMutex &synchronizeMutex, QObject *parent = nullptr) - : QObject(parent), mSynchronizeSemaphore(synchronizeSemaphore), mSynchronizeMutex(synchronizeMutex) - { - } - - virtual ~ExecutionHelper() - { - delete mMetadataExtractor; - } - -public Q_SLOTS: - - void setMediaSource(const QUrl &mediaSource) - { - album = {}; - title = {}; - artist = {}; - albumArtist = {}; - genre = {}; - comment = {}; - composer = {}; - trackNumber = {}; - releaseYear = {}; - channels = {}; - duration = {}; - - mMetadataExtractor->setMedia(mediaSource); - } - - void init() - { - mMetadataExtractor = new QMediaPlayer; - connect(mMetadataExtractor, SIGNAL(metaDataAvailableChanged(bool)), this, SLOT(metaDataAvailableChanged(bool)), Qt::DirectConnection); - connect(mMetadataExtractor, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(playerError())); - } - - void metaDataAvailableChanged(bool available) - { - if (available && mMetadataExtractor->isMetaDataAvailable()) { - QMutexLocker locker(&mSynchronizeMutex); - - album = mMetadataExtractor->metaData(QMediaMetaData::AlbumTitle); - title = mMetadataExtractor->metaData(QMediaMetaData::Title); - artist = mMetadataExtractor->metaData(QMediaMetaData::ContributingArtist).toStringList().join(QStringLiteral(", ")); - albumArtist = mMetadataExtractor->metaData(QMediaMetaData::AlbumArtist); - genre = mMetadataExtractor->metaData(QMediaMetaData::Genre); - comment = mMetadataExtractor->metaData(QMediaMetaData::Comment); - composer = mMetadataExtractor->metaData(QMediaMetaData::Composer); - trackNumber = mMetadataExtractor->metaData(QMediaMetaData::TrackNumber); - releaseYear = mMetadataExtractor->metaData(QMediaMetaData::Year); - channels = mMetadataExtractor->metaData(QMediaMetaData::ChannelCount); - duration = mMetadataExtractor->metaData(QMediaMetaData::Duration).toLongLong() / 1000.0; - - mSynchronizeSemaphore.release(1); - } - } - - void playerError() - { - album = {}; - title = {}; - artist = {}; - albumArtist = {}; - genre = {}; - comment = {}; - composer = {}; - trackNumber = {}; - releaseYear = {}; - channels = {}; - duration = {}; - mSynchronizeSemaphore.release(1); - } - -private: - - QSemaphore &mSynchronizeSemaphore; - - QMutex &mSynchronizeMutex; - -public: - - QMediaPlayer *mMetadataExtractor = nullptr; - - QVariant album; - - QVariant title; - - QVariant artist; - - QVariant albumArtist; - - QVariant genre; - - QVariant comment; - - QVariant composer; - - QVariant trackNumber; - - QVariant releaseYear; - - QVariant channels; - - QVariant duration; - -}; - -} - -QtMultimediaExtractor::QtMultimediaExtractor(QObject* parent) - : ExtractorPlugin(parent) -{ - mHelper = new ExecutionHelper(mSynchronizeSemaphore, mSynchronizeMutex); - - mHelper->moveToThread(&mRunnerThread); - - mRunnerThread.start(); - - QMetaObject::invokeMethod(mHelper, "init", Qt::BlockingQueuedConnection); -} - -QtMultimediaExtractor::~QtMultimediaExtractor() -{ - mRunnerThread.quit(); - mRunnerThread.wait(); - - delete mHelper; -} - -QStringList QtMultimediaExtractor::mimetypes() const -{ - QStringList types; - // MP3, FLAC, Vorbis, Opus, MPC, Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files. - // MP3 - types << QStringLiteral("audio/mpeg"); - types << QStringLiteral("audio/mpeg3"); types << QStringLiteral("audio/x-mpeg"); - - // M4A - types << QStringLiteral("audio/mp4"); - - // FLAC - types << QStringLiteral("audio/flac"); - - // MPC - types << QStringLiteral("audio/x-musepack"); - - // Vorbis - types << QStringLiteral("audio/ogg"); types << QStringLiteral("audio/x-vorbis+ogg"); - - // Opus - types << QStringLiteral("audio/opus"); types << QStringLiteral("audio/x-opus+ogg"); - - // WAV - types << QStringLiteral("audio/wav"); - - // AIFF - types << QStringLiteral("audio/x-aiff"); - - // APE - types << QStringLiteral("audio/x-ape"); - - // WV - types << QStringLiteral("audio/x-wavpack"); - - return types; -} - -void QtMultimediaExtractor::extract(ExtractionResult* result) -{ - const QString fileUrl = result->inputUrl(); - - QMetaObject::invokeMethod(mHelper, "setMediaSource", Qt::BlockingQueuedConnection, Q_ARG(QUrl, QUrl::fromLocalFile(fileUrl))); - - mSynchronizeSemaphore.acquire(1); - QMutexLocker locker(&mSynchronizeMutex); - - if (mHelper->mMetadataExtractor->isMetaDataAvailable()) { - result->addType(Type::Audio); - - result->add(Property::Album, mHelper->album); - result->add(Property::Title, mHelper->title); - result->add(Property::Artist, mHelper->artist); - result->add(Property::AlbumArtist, mHelper->albumArtist); - result->add(Property::Genre, mHelper->genre); - result->add(Property::Comment, mHelper->comment); - result->add(Property::Composer, mHelper->composer); - result->add(Property::TrackNumber, mHelper->trackNumber); - result->add(Property::ReleaseYear, mHelper->releaseYear); - result->add(Property::Channels, mHelper->channels); - result->add(Property::Duration, mHelper->duration); - } - - // TODO: Get more properties based on the file type - // - Codec - // - Album Artist - // - Publisher - - // TAG information (incomplete). - // A good reference: http://qoobar.sourceforge.net/en/documentation.htm - // -- FLAC/OGG -- - // Artist: ARTIST, PERFORMER - // Album artist: ALBUMARTIST - // Composer: COMPOSER - // Lyricist: LYRICIST - // Conductor: CONDUCTOR - // Disc number: DISCNUMBER - // Total discs: TOTALDISCS, DISCTOTAL - // Track number: TRACKNUMBER - // Total tracks: TOTALTRACKS, TRACKTOTAL - // Genre: GENRE - // -- ID3v2 -- - // Artist: TPE1 - // Album artist: TPE2 - // Composer: TCOM - // Lyricist: TEXT - // Conductor: TPE3 - // Disc number[/total dics]: TPOS - // Track number[/total tracks]: TRCK - // Genre: TCON -} - -#include "qtmultimediaextractor.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/qtmultimediaextractor.h new/kfilemetadata-5.42.0/src/extractors/qtmultimediaextractor.h --- old/kfilemetadata-5.41.0/src/extractors/qtmultimediaextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/qtmultimediaextractor.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,64 +0,0 @@ -/* - This file is part of the KFileMetaData project that extract metadata from files - Copyright (C) 2012 Vishesh Handa <m...@vhanda.in> - Copyright 2017 Matthieu Gallien <matthieu_gall...@yahoo.fr> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - - -#ifndef QTMULTIMEDIAEXTRACTOR_H -#define QTMULTIMEDIAEXTRACTOR_H - -#include "extractorplugin.h" - -#include <QThread> -#include <QSemaphore> -#include <QMutex> - -namespace KFileMetaData -{ - -class ExecutionHelper; - -class QtMultimediaExtractor : public ExtractorPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.kde.kf5.kfilemetadata.ExtractorPlugin") - Q_INTERFACES(KFileMetaData::ExtractorPlugin) - -public: - QtMultimediaExtractor(QObject* parent = 0); - - ~QtMultimediaExtractor(); - - void extract(ExtractionResult* result) Q_DECL_OVERRIDE; - QStringList mimetypes() const Q_DECL_OVERRIDE; - -private: - - QThread mRunnerThread; - - QMutex mSynchronizeMutex; - - QSemaphore mSynchronizeSemaphore; - - ExecutionHelper *mHelper; - -}; - -} - -#endif // QTMULTIMEDIAEXTRACTOR_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/taglibextractor.cpp new/kfilemetadata-5.42.0/src/extractors/taglibextractor.cpp --- old/kfilemetadata-5.41.0/src/extractors/taglibextractor.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/taglibextractor.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -103,7 +103,11 @@ return; } +#if (TAGLIB_MAJOR_VERSION > 1) || (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION >= 11) TagLib::FileRef file(&stream, true); +#else + TagLib::FileRef file(stream.name()); +#endif if (file.isNull()) { qWarning() << "Unable to open file: " << fileUrl; return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/extractors/taglibextractor.h new/kfilemetadata-5.42.0/src/extractors/taglibextractor.h --- old/kfilemetadata-5.41.0/src/extractors/taglibextractor.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/extractors/taglibextractor.h 2018-01-07 17:18:02.000000000 +0100 @@ -33,7 +33,7 @@ Q_INTERFACES(KFileMetaData::ExtractorPlugin) public: - TagLibExtractor(QObject* parent = 0); + explicit TagLibExtractor(QObject* parent = nullptr); void extract(ExtractionResult* result) Q_DECL_OVERRIDE; QStringList mimetypes() const Q_DECL_OVERRIDE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/writer_p.h new/kfilemetadata-5.42.0/src/writer_p.h --- old/kfilemetadata-5.41.0/src/writer_p.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/writer_p.h 2018-01-07 17:18:02.000000000 +0100 @@ -31,7 +31,7 @@ class Q_DECL_HIDDEN Writer::WriterPrivate { public: - WriterPlugin *m_plugin; + WriterPlugin *m_plugin = nullptr; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/writercollection.cpp new/kfilemetadata-5.42.0/src/writercollection.cpp --- old/kfilemetadata-5.41.0/src/writercollection.cpp 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/writercollection.cpp 2018-01-07 17:18:02.000000000 +0100 @@ -51,7 +51,7 @@ : d_ptr(new WriterCollectionPrivate) { Q_D(WriterCollection); - QList<Writer*> all = d->allWriters(); + const QList<Writer*> all = d->allWriters(); foreach (Writer* writer, all) { foreach (const QString& type, writer->mimetypes()) { @@ -75,7 +75,7 @@ QStringList externalPlugins; QStringList externalPluginPaths; - QStringList paths = QCoreApplication::libraryPaths(); + const QStringList paths = QCoreApplication::libraryPaths(); Q_FOREACH (const QString& libraryPath, paths) { QString path(libraryPath + QStringLiteral("/kf5/kfilemetadata/writers")); QDir dir(path); @@ -84,7 +84,7 @@ continue; } - QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); + const QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); Q_FOREACH (const QString& fileName, entryList) { // Make sure the same plugin is not loaded twice, even if it // installed in two different locations @@ -99,8 +99,8 @@ QDir externalPluginDir(QStringLiteral(LIBEXEC_INSTALL_DIR) + QStringLiteral("/kfilemetadata/writers/externalwriters")); // For external plugins, we look into the directories - QStringList externalPluginEntryList = externalPluginDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - Q_FOREACH (const QString& externalPlugin, externalPluginEntryList) { + const QStringList externalPluginEntryList = externalPluginDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + for (const QString& externalPlugin : externalPluginEntryList) { if (externalPlugins.contains(externalPlugin)) continue; @@ -154,7 +154,7 @@ QList<Writer*> plugins = d->m_writers.values(mimetype); if (plugins.isEmpty()) { auto it = d->m_writers.constBegin(); - for (; it != d->m_writers.constEnd(); it++) { + for (; it != d->m_writers.constEnd(); ++it) { if (mimetype.startsWith(it.key())) plugins << it.value(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfilemetadata-5.41.0/src/writers/taglibwriter.h new/kfilemetadata-5.42.0/src/writers/taglibwriter.h --- old/kfilemetadata-5.41.0/src/writers/taglibwriter.h 2017-12-02 21:04:38.000000000 +0100 +++ new/kfilemetadata-5.42.0/src/writers/taglibwriter.h 2018-01-07 17:18:02.000000000 +0100 @@ -13,7 +13,7 @@ Q_INTERFACES(KFileMetaData::WriterPlugin) public: - TagLibWriter(QObject* parent = 0); + TagLibWriter(QObject* parent = nullptr); void write(const WriteData& data) Q_DECL_OVERRIDE; QStringList writeMimetypes() const Q_DECL_OVERRIDE;