Sophie

Sophie

distrib > Mageia > 9 > armv7hl > by-pkgid > 5df1446760b4cdf882d503227d829702 > files > 8

kdebase4-runtime-17.08.3-12.mga9.src.rpm

From 898f650815a80c2bb631ddfcf7d9940cb319a01d Mon Sep 17 00:00:00 2001
From: Luc Menut <lmenut@mageia.org>
Date: Mon, 6 Oct 2014 01:13:22 +0200
Subject: [PATCH 1/2] Save the default application into the group [Default
 Applications]

as per mime-apps spec

http://standards.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html#default
---
 keditfiletype/mimetypedata.cpp | 11 +++++++++++
 keditfiletype/mimetypedata.h   |  1 +
 2 files changed, 12 insertions(+)

diff --git a/keditfiletype/mimetypedata.cpp b/keditfiletype/mimetypedata.cpp
index 18e2c9f..9219762 100644
--- a/keditfiletype/mimetypedata.cpp
+++ b/keditfiletype/mimetypedata.cpp
@@ -324,6 +324,9 @@ void MimeTypeData::syncServices()
 
     const QStringList oldAppServices = getAppOffers();
     if (oldAppServices != m_appServices) {
+        // Save the default application according to mime-apps-spec 1.0
+        KConfigGroup defaultApp(profile, "Default Applications");
+        saveDefaultApplication(defaultApp, m_appServices);
         // Save preferred services
         KConfigGroup addedApps(profile, "Added Associations");
         saveServices(addedApps, m_appServices);
@@ -389,6 +392,14 @@ void MimeTypeData::saveServices(KConfigGroup & config, const QStringList& servic
         config.writeXdgListEntry(name(), collectStorageIds(services));
 }
 
+void MimeTypeData::saveDefaultApplication(KConfigGroup & config, const QStringList& services)
+{
+    if (services.isEmpty())
+        config.deleteEntry(name());
+    else
+        config.writeXdgListEntry(name(), QStringList(collectStorageIds(services).first()));
+}
+
 void MimeTypeData::refresh()
 {
     if (m_isGroup)
diff --git a/keditfiletype/mimetypedata.h b/keditfiletype/mimetypedata.h
index 042b043..0c1bcf2 100644
--- a/keditfiletype/mimetypedata.h
+++ b/keditfiletype/mimetypedata.h
@@ -114,6 +114,7 @@ private:
     void getMyServiceOffers() const;
     void syncServices();
     void saveServices(KConfigGroup & config, const QStringList& services);
+    void saveDefaultApplication(KConfigGroup & config, const QStringList& services);
     void saveRemovedServices(KConfigGroup & config, const QStringList& services, const QStringList& oldServices);
 
     KMimeType::Ptr m_mimetype; // 0 if this is data for a mimetype group (m_isGroup==true)
-- 
2.1.2