From 2b286a9f04268c56333d334af54beb8039992273 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Thu, 4 Mar 2010 16:24:20 +0000 Subject: Rename NfoTranslator to KNfoTranslator, so that KMetaDataWidget can be moved to kdelibs for KDE SC 4.5 (some interfaces of KMetaDataWidget need to be cleaned up first). KNfoTranslator is marked as private class, as it is not clear yet whether it should be used by other classes like KFileMetaInfo. svn path=/trunk/KDE/kdebase/apps/; revision=1098897 --- src/CMakeLists.txt | 6 +- src/panels/information/kloadmetadatathread.cpp | 5 +- .../information/kmetadataconfigurationdialog.cpp | 4 +- src/panels/information/knfotranslator.cpp | 115 +++++++++++++++++++++ src/panels/information/knfotranslator_p.h | 47 +++++++++ src/panels/information/nfotranslator.cpp | 115 --------------------- src/panels/information/nfotranslator.h | 47 --------- 7 files changed, 169 insertions(+), 170 deletions(-) create mode 100644 src/panels/information/knfotranslator.cpp create mode 100644 src/panels/information/knfotranslator_p.h delete mode 100644 src/panels/information/nfotranslator.cpp delete mode 100644 src/panels/information/nfotranslator.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 37e24da11..3b396e768 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,10 +57,10 @@ set(dolphinprivate_LIB_SRCS if(Nepomuk_FOUND) set(dolphinprivate_LIB_SRCS ${dolphinprivate_LIB_SRCS} - panels/information/nfotranslator.cpp panels/information/kcommentwidget.cpp panels/information/kedittagsdialog.cpp panels/information/kloadmetadatathread.cpp + panels/information/knfotranslator.cpp panels/information/nepomukmassupdatejob.cpp panels/information/ktaggingwidget.cpp ) @@ -169,10 +169,10 @@ kde4_add_kcfg_files(dolphin_SRCS if(Nepomuk_FOUND) set(dolphin_SRCS ${dolphin_SRCS} - panels/information/nfotranslator.cpp panels/information/kcommentwidget.cpp panels/information/kedittagsdialog.cpp panels/information/kloadmetadatathread.cpp + panels/information/knfotranslator.cpp panels/information/nepomukmassupdatejob.cpp panels/information/ktaggingwidget.cpp search/dolphinsearchoptionsconfigurator.cpp @@ -257,10 +257,10 @@ set(kcm_dolphingeneral_PART_SRCS if (Nepomuk_FOUND) set(kcm_dolphingeneral_PART_SRCS ${kcm_dolphingeneral_PART_SRCS} - panels/information/nfotranslator.cpp panels/information/kcommentwidget.cpp panels/information/kedittagsdialog.cpp panels/information/kloadmetadatathread.cpp + panels/information/knfotranslator.cpp panels/information/nepomukmassupdatejob.cpp panels/information/ktaggingwidget.cpp ) diff --git a/src/panels/information/kloadmetadatathread.cpp b/src/panels/information/kloadmetadatathread.cpp index fc353c493..edd3995e2 100644 --- a/src/panels/information/kloadmetadatathread.cpp +++ b/src/panels/information/kloadmetadatathread.cpp @@ -19,14 +19,13 @@ #include "kloadmetadatathread_p.h" -#include "nfotranslator.h" - #include #include #include #include #include #include +#include "knfotranslator_p.h" #include #include @@ -111,7 +110,7 @@ void KLoadMetaDataThread::run() m_tags = file.tags(); } - const NfoTranslator& nfo = NfoTranslator::instance(); + const KNfoTranslator& nfo = KNfoTranslator::instance(); if (first && (m_urls.count() == 1)) { // get cached meta data by checking the indexed files QHash variants = file.properties(); diff --git a/src/panels/information/kmetadataconfigurationdialog.cpp b/src/panels/information/kmetadataconfigurationdialog.cpp index 4b791af5a..6c1ee21d0 100644 --- a/src/panels/information/kmetadataconfigurationdialog.cpp +++ b/src/panels/information/kmetadataconfigurationdialog.cpp @@ -18,11 +18,11 @@ #include "kmetadataconfigurationdialog.h" -#include "nfotranslator.h" #include #include #include "kmetadatawidget.h" +#include "knfotranslator_p.h" #include #include @@ -222,7 +222,7 @@ void KMetaDataConfigurationDialog::Private::addItem(const QUrl& uri) KConfig config("kmetainformationrc", KConfig::NoGlobals); KConfigGroup settings = config.group("Show"); - const QString label = NfoTranslator::instance().translation(uri); + const QString label = KNfoTranslator::instance().translation(uri); QListWidgetItem* item = new QListWidgetItem(label, m_metaDataList); item->setData(Qt::UserRole, key); const bool show = settings.readEntry(key, true); diff --git a/src/panels/information/knfotranslator.cpp b/src/panels/information/knfotranslator.cpp new file mode 100644 index 000000000..b6c7c1f42 --- /dev/null +++ b/src/panels/information/knfotranslator.cpp @@ -0,0 +1,115 @@ +/***************************************************************************** + * Copyright (C) 2010 by Peter Penz * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License version 2 as published by the Free Software Foundation. * + * * + * 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 * + * Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public License * + * along with this library; see the file COPYING.LIB. If not, write to * + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * + * Boston, MA 02110-1301, USA. * + *****************************************************************************/ + +#include "knfotranslator_p.h" +#include +#include + +#include + +struct TranslationTuple { + const char* const key; + const char* const value; +}; + +// TODO: a lot of NFO's are missing yet +static const TranslationTuple g_translations[] = { + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#comment", I18N_NOOP2("@label", "Comment") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentCreated", I18N_NOOP2("@label creation date", "Created") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentSize", I18N_NOOP2("@label file content size", "Size") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#depends", I18N_NOOP2("@label file depends from", "Depends") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#isPartOf", I18N_NOOP2("@label parent directory", "Part of") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#lastModified", I18N_NOOP2("@label modified date of file", "Modified") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#mimeType", I18N_NOOP2("@label", "MIME Type") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent", I18N_NOOP2("@label", "Content") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title", I18N_NOOP2("@label music title", "Title") }, + { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#url", I18N_NOOP2("@label file URL", "Location") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#creator", I18N_NOOP2("@label", "Creator") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#averageBitrate", I18N_NOOP2("@label", "Average Bitrate") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#channels", I18N_NOOP2("@label", "Channels") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#characterCount", I18N_NOOP2("@label number of characters", "Characters") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#codec", I18N_NOOP2("@label", "Codec") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#colorDepth", I18N_NOOP2("@label", "Color Depth") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName", I18N_NOOP2("@label", "File Name") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#height", I18N_NOOP2("@label", "Height") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#interlaceMode", I18N_NOOP2("@label", "Interlace Mode") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#lineCount", I18N_NOOP2("@label number of lines", "Lines") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#programmingLanguage", I18N_NOOP2("@label", "Programming Language") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#sampleRate", I18N_NOOP2("@label", "Sample Rate") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#width", I18N_NOOP2("@label", "Width") }, + { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#wordCount", I18N_NOOP2("@label number of words", "Words") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#apertureValue", I18N_NOOP2("@label EXIF aperture value", "Aperture") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#exposureBiasValue", I18N_NOOP2("@label EXIF", "Exposure Bias Value") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#exposureTime", I18N_NOOP2("@label EXIF", "Exposure Time") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#flash", I18N_NOOP2("@label EXIF", "Flash") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#focalLength", I18N_NOOP2("@label EXIF", "Focal Length") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#focalLengthIn35mmFilm", I18N_NOOP2("@label EXIF", "Focal Length 35 mm") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#isoSpeedRatings", I18N_NOOP2("@label EXIF", "ISO Speed Ratings") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#make", I18N_NOOP2("@label EXIF", "Make") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#meteringMode", I18N_NOOP2("@label EXIF", "Metering Mode") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#model", I18N_NOOP2("@label EXIF", "Model") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#orientation", I18N_NOOP2("@label EXIF", "Orientation") }, + { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#whiteBalance", I18N_NOOP2("@label EXIF", "White Balance") }, + { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#genre", I18N_NOOP2("@label music genre", "Genre") }, + { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#musicAlbum", I18N_NOOP2("@label music album", "Album") }, + { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#trackNumber", I18N_NOOP2("@label music track number", "Track") }, + { "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", I18N_NOOP2("@label file type", "Type") }, + { 0, 0 } // mandatory last entry +}; + +class KNfoTranslatorSingleton +{ +public: + KNfoTranslator instance; +}; +K_GLOBAL_STATIC(KNfoTranslatorSingleton, s_nfoTranslator) + +KNfoTranslator& KNfoTranslator::instance() +{ + return s_nfoTranslator->instance; +} + +QString KNfoTranslator::translation(const QUrl& uri) const +{ + const QString key = uri.toString(); + if (m_hash.contains(key)) { + return m_hash.value(key); + } + + // fallback if the URI is not translated + QString translation; + const int index = key.indexOf(QChar('#')); + if (index >= 0) { + translation = key.right(key.size() - index - 1); + } + return translation; +} + +KNfoTranslator::KNfoTranslator() : + m_hash() +{ + const TranslationTuple* tuple = &g_translations[0]; + while (tuple->key != 0) { + m_hash.insert(tuple->key, i18n(tuple->value)); + ++tuple; + } +} + +KNfoTranslator::~KNfoTranslator() +{ +} diff --git a/src/panels/information/knfotranslator_p.h b/src/panels/information/knfotranslator_p.h new file mode 100644 index 000000000..293eda4c6 --- /dev/null +++ b/src/panels/information/knfotranslator_p.h @@ -0,0 +1,47 @@ +/***************************************************************************** + * Copyright (C) 2010 by Peter Penz * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License version 2 as published by the Free Software Foundation. * + * * + * 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 * + * Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public License * + * along with this library; see the file COPYING.LIB. If not, write to * + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * + * Boston, MA 02110-1301, USA. * + *****************************************************************************/ + +#ifndef KNFOTRANSLATOR_H +#define KNFOTRANSLATOR_H + +#include +#include + +class QUrl; + +/** + * @brief Returns translations for Nepomuk File Ontology URIs. + * + * See http://www.semanticdesktop.org/ontologies/nfo/. + */ +class KNfoTranslator +{ +public: + static KNfoTranslator& instance(); + QString translation(const QUrl& uri) const; + +protected: + KNfoTranslator(); + virtual ~KNfoTranslator(); + friend class KNfoTranslatorSingleton; + +private: + QHash m_hash; +}; + +#endif // KNFO_TRANSLATOR_H diff --git a/src/panels/information/nfotranslator.cpp b/src/panels/information/nfotranslator.cpp deleted file mode 100644 index 3910d80f0..000000000 --- a/src/panels/information/nfotranslator.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2010 by Peter Penz * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License version 2 as published by the Free Software Foundation. * - * * - * 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 * - * Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public License * - * along with this library; see the file COPYING.LIB. If not, write to * - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * - * Boston, MA 02110-1301, USA. * - *****************************************************************************/ - -#include "nfotranslator.h" -#include -#include - -#include - -struct TranslationTuple { - const char* const key; - const char* const value; -}; - -// TODO: a lot of NFO's are missing yet -static const TranslationTuple g_translations[] = { - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#comment", I18N_NOOP2("@label", "Comment") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentCreated", I18N_NOOP2("@label creation date", "Created") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentSize", I18N_NOOP2("@label file content size", "Size") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#depends", I18N_NOOP2("@label file depends from", "Depends") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#isPartOf", I18N_NOOP2("@label parent directory", "Part of") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#lastModified", I18N_NOOP2("@label modified date of file", "Modified") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#mimeType", I18N_NOOP2("@label", "MIME Type") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent", I18N_NOOP2("@label", "Content") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title", I18N_NOOP2("@label music title", "Title") }, - { "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#url", I18N_NOOP2("@label file URL", "Location") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#creator", I18N_NOOP2("@label", "Creator") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#averageBitrate", I18N_NOOP2("@label", "Average Bitrate") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#channels", I18N_NOOP2("@label", "Channels") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#characterCount", I18N_NOOP2("@label number of characters", "Characters") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#codec", I18N_NOOP2("@label", "Codec") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#colorDepth", I18N_NOOP2("@label", "Color Depth") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName", I18N_NOOP2("@label", "File Name") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#height", I18N_NOOP2("@label", "Height") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#interlaceMode", I18N_NOOP2("@label", "Interlace Mode") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#lineCount", I18N_NOOP2("@label number of lines", "Lines") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#programmingLanguage", I18N_NOOP2("@label", "Programming Language") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#sampleRate", I18N_NOOP2("@label", "Sample Rate") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#width", I18N_NOOP2("@label", "Width") }, - { "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#wordCount", I18N_NOOP2("@label number of words", "Words") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#apertureValue", I18N_NOOP2("@label EXIF aperture value", "Aperture") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#exposureBiasValue", I18N_NOOP2("@label EXIF", "Exposure Bias Value") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#exposureTime", I18N_NOOP2("@label EXIF", "Exposure Time") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#flash", I18N_NOOP2("@label EXIF", "Flash") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#focalLength", I18N_NOOP2("@label EXIF", "Focal Length") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#focalLengthIn35mmFilm", I18N_NOOP2("@label EXIF", "Focal Length 35 mm") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#isoSpeedRatings", I18N_NOOP2("@label EXIF", "ISO Speed Ratings") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#make", I18N_NOOP2("@label EXIF", "Make") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#meteringMode", I18N_NOOP2("@label EXIF", "Metering Mode") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#model", I18N_NOOP2("@label EXIF", "Model") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#orientation", I18N_NOOP2("@label EXIF", "Orientation") }, - { "http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#whiteBalance", I18N_NOOP2("@label EXIF", "White Balance") }, - { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#genre", I18N_NOOP2("@label music genre", "Genre") }, - { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#musicAlbum", I18N_NOOP2("@label music album", "Album") }, - { "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#trackNumber", I18N_NOOP2("@label music track number", "Track") }, - { "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", I18N_NOOP2("@label file type", "Type") }, - { 0, 0 } // mandatory last entry -}; - -class NfoTranslatorSingleton -{ -public: - NfoTranslator instance; -}; -K_GLOBAL_STATIC(NfoTranslatorSingleton, s_nfoTranslator) - -NfoTranslator& NfoTranslator::instance() -{ - return s_nfoTranslator->instance; -} - -QString NfoTranslator::translation(const QUrl& uri) const -{ - const QString key = uri.toString(); - if (m_hash.contains(key)) { - return m_hash.value(key); - } - - // fallback if the URI is not translated - QString translation; - const int index = key.indexOf(QChar('#')); - if (index >= 0) { - translation = key.right(key.size() - index - 1); - } - return translation; -} - -NfoTranslator::NfoTranslator() : - m_hash() -{ - const TranslationTuple* tuple = &g_translations[0]; - while (tuple->key != 0) { - m_hash.insert(tuple->key, i18n(tuple->value)); - ++tuple; - } -} - -NfoTranslator::~NfoTranslator() -{ -} diff --git a/src/panels/information/nfotranslator.h b/src/panels/information/nfotranslator.h deleted file mode 100644 index 4a51c60f3..000000000 --- a/src/panels/information/nfotranslator.h +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2010 by Peter Penz * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License version 2 as published by the Free Software Foundation. * - * * - * 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 * - * Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public License * - * along with this library; see the file COPYING.LIB. If not, write to * - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * - * Boston, MA 02110-1301, USA. * - *****************************************************************************/ - -#ifndef NFOTRANSLATOR_H -#define NFOTRANSLATOR_H - -#include -#include - -class QUrl; - -/** - * @brief Returns translations for Nepomuk File Ontology URIs. - * - * See http://www.semanticdesktop.org/ontologies/nfo/. - */ -class NfoTranslator -{ -public: - static NfoTranslator& instance(); - QString translation(const QUrl& uri) const; - -protected: - NfoTranslator(); - virtual ~NfoTranslator(); - friend class NfoTranslatorSingleton; - -private: - QHash m_hash; -}; - -#endif // NFO_TRANSLATOR_H -- cgit v1.3