From kde-commits Fri Mar 20 19:00:29 2009 From: David Faure Date: Fri, 20 Mar 2009 19:00:29 +0000 To: kde-commits Subject: KDE/kdebase/apps Message-Id: <1237575629.138697.19024.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=123757564311921 SVN commit 941945 by dfaure: Duplicate mimetypewriter in nsplugins and filetypes, so that the two become independent and I can move filetypes to runtime to fix #179355. To reduce duplication to the minimum, this code now uses KMimeType::sharedMimeInfoVersion() added on March 9 to kdelibs. M +12 -3 konqueror/settings/filetypes/mimetypewriter.cpp M +4 -1 konqueror/settings/filetypes/mimetypewriter.h M +3 -39 konqueror/settings/filetypes/sharedmimeinfoversion.cpp M +1 -3 nsplugins/CMakeLists.txt AM nsplugins/mimetypewriter.cpp konqueror/settings/filetypes/mimetypewriter.cpp#937280 [License: GPL (v2/3+eV)] AM nsplugins/mimetypewriter.h konqueror/settings/filetypes/mimetypewriter.h#937280 [License: GENERATED FILE] --- trunk/KDE/kdebase/apps/konqueror/settings/filetypes/mimetypewriter.cpp #941944:941945 @@ -19,15 +19,23 @@ */ #include "mimetypewriter.h" -#include "sharedmimeinfoversion.h" +#include #include +#include #include #include #include #include +/// WARNING: this code is duplicated between apps/nsplugins and runtime/filetypes + +static bool sharedMimeInfoSupportsIcon() +{ + return KMimeType::sharedMimeInfoVersion() >= KDE_MAKE_VERSION(0, 40, 0); +} + class MimeTypeWriterPrivate { public: @@ -101,7 +109,7 @@ if (!d->m_iconName.isEmpty()) { // User-specified icon name - if (SharedMimeInfoVersion::supportsIcon()) { + if (sharedMimeInfoSupportsIcon()) { writer.writeStartElement(nsUri, "icon"); writer.writeAttribute("name", d->m_iconName); writer.writeEndElement(); // icon @@ -165,6 +173,7 @@ QFile::remove(file); // We must also remove the generated XML file, update-mime-database doesn't do that, for unknown media types QString xmlFile = KGlobal::dirs()->findResource( "xdgdata-mime", mimeType + ".xml" ); - qDebug() << xmlFile; QFile::remove(xmlFile); } + +/// WARNING: this code is duplicated between apps/nsplugins and runtime/filetypes --- trunk/KDE/kdebase/apps/konqueror/settings/filetypes/mimetypewriter.h #941944:941945 @@ -25,6 +25,8 @@ class QString; class MimeTypeWriterPrivate; +/// WARNING: this code is duplicated between apps/nsplugins and runtime/filetypes + /** * MimeTypeWriter writes out the definition of a mimetype * in a XDG shared-mime-info compliant way. @@ -95,5 +97,6 @@ MimeTypeWriterPrivate* const d; }; +/// WARNING: this code is duplicated between apps/nsplugins and runtime/filetypes + #endif /* MIMETYPEWRITER_H */ - --- trunk/KDE/kdebase/apps/konqueror/settings/filetypes/sharedmimeinfoversion.cpp #941944:941945 @@ -19,46 +19,10 @@ */ #include "sharedmimeinfoversion.h" -#include -#include +#include +#include -static int version() -{ - static int s_version = 0; - if (s_version == 0) { - KProcess proc; - proc << "update-mime-database"; - proc << "-v"; - proc.setOutputChannelMode(KProcess::OnlyStderrChannel); - proc.setReadChannel(KProcess::StandardError); - const int exitCode = proc.execute(); - if (exitCode) { - kWarning() << proc.program() << "exited with error code" << exitCode; - } - QByteArray versionLine = proc.readLine(); - const QByteArray expectedStart = "update-mime-database (shared-mime-info) "; - if (versionLine.startsWith(expectedStart)) { - versionLine = versionLine.mid(expectedStart.length()); - versionLine.chop(1); // \n - const int dot = versionLine.indexOf('.'); - if (dot != -1) { - const int major = versionLine.left(dot).toInt(); - const int minor = versionLine.mid(dot+1).toInt(); - s_version = major * 100 + minor; // 1.04 -> 104 - } else { - kWarning() << "Unexpected version scheme from update-mime-database: got" << versionLine; - s_version = -1; - } - } else { - kWarning() << "Unexpected output from update-mime-database -v:" << versionLine; - kWarning() << "Expected that it would start with:" << expectedStart; - s_version = -1; - } - } - return s_version; -} - bool SharedMimeInfoVersion::supportsIcon() { - return version() >= 40; + return KMimeType::sharedMimeInfoVersion() >= KDE_MAKE_VERSION(0, 40, 0); } --- trunk/KDE/kdebase/apps/nsplugins/CMakeLists.txt #941944:941945 @@ -52,10 +52,8 @@ ########### nspluginscan ############### - set(nspluginscan_SRCS pluginscan.cpp plugin_paths.cpp ../konqueror/settings/filetypes/mimetypewriter.cpp ../konqueror/settings/filetypes/sharedmimeinfoversion.cpp) + set(nspluginscan_SRCS pluginscan.cpp plugin_paths.cpp mimetypewriter.cpp) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../konqueror/settings/filetypes/) - kde4_add_executable(nspluginscan ${nspluginscan_SRCS}) target_link_libraries(nspluginscan ${KDE4_KIO_LIBS} ${X11_Xt_LIB}) ** trunk/KDE/kdebase/apps/nsplugins/mimetypewriter.cpp #property svn:mergeinfo + /branches/KDE/4.0/kdebase/apps/konqueror/settings/filetypes/mimetypewriter.cpp:758600,758610 ** trunk/KDE/kdebase/apps/nsplugins/mimetypewriter.h #property svn:mergeinfo + /branches/KDE/4.0/kdebase/apps/konqueror/settings/filetypes/mimetypewriter.h:758600,758610