[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/apps
From:       David Faure <faure () kde ! org>
Date:       2009-03-20 19:00:29
Message-ID: 1237575629.138697.19024.nullmailer () svn ! kde ! org
[Download RAW message or body]

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 <kmimetype.h>
 
 #include <kdebug.h>
+#include <kdeversion.h>
 #include <kprocess.h>
 #include <kstandarddirs.h>
 
 #include <QXmlStreamWriter>
 #include <QFile>
 
+/// 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 <kdebug.h>
-#include <kprocess.h>
+#include <kmimetype.h>
+#include <kdeversion.h>
 
-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



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic