File 0006-Fixes-package-installation-of-files-in-non-latin-pat.patch of Package apper

From 216a03a19a295cb9b2889651212f60d5bf1ebd6d Mon Sep 17 00:00:00 2001
From: Daniel Nicoletti <dantti12@gmail.com>
Date: Wed, 9 Jan 2013 15:24:43 -0200
Subject: [PATCH 06/14] Fixes package installation of files in non-latin paths
 BUG:307258

---
 PkSession/FilesModel.cpp | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/PkSession/FilesModel.cpp b/PkSession/FilesModel.cpp
index e2e6e1a..cc1f37f 100644
--- a/PkSession/FilesModel.cpp
+++ b/PkSession/FilesModel.cpp
@@ -74,31 +74,32 @@ bool FilesModel::insertFiles(const QList<QUrl> &urls)
 {
     bool ret = false;
     foreach (const QUrl &url, urls) {
-        if (files().contains(url.path())) {
+        QString path = QUrl::fromPercentEncoding(url.path().toUtf8());
+        if (files().contains(path)) {
             continue;
         }
 
-        QFileInfo fileInfo(url.path());
+        QFileInfo fileInfo(path);
         QStandardItem *item = 0;
         if (fileInfo.isFile()) {
-            KMimeType::Ptr mime = KMimeType::findByFileContent(url.path());
+            KMimeType::Ptr mime = KMimeType::findByFileContent(path);
             kDebug() << url << mime->name();
             foreach (const QString &mimeType, m_mimes) {
                 if (mime->is(mimeType)) {
                     ret = true;
 /*                    kDebug() << "Found Supported Mime" << mimeType << mime->iconName();*/
                     item = new QStandardItem(fileInfo.fileName());
-                    item->setData(url.path());
-                    item->setToolTip(url.path());
+                    item->setData(path);
+                    item->setToolTip(path);
                     item->setIcon(KIconLoader::global()->loadMimeTypeIcon(mime->iconName(),
-                                                                        KIconLoader::Desktop));
+                                                                          KIconLoader::Desktop));
                     break;
                 }
             }
 
             if (ret == false && m_mimes.isEmpty()) {
                 if (mime->name() == "application/x-desktop") {
-                    KService *service = new KService(url.path());
+                    KService *service = new KService(path);
                     item = new QStandardItem(service->name());
                     item->setData(true, Qt::UserRole);
                     item->setIcon(KIconLoader::global()->loadMimeTypeIcon(service->icon(),
@@ -108,20 +109,20 @@ bool FilesModel::insertFiles(const QList<QUrl> &urls)
                     item->setIcon(KIconLoader::global()->loadMimeTypeIcon(mime->iconName(),
                                                                         KIconLoader::Desktop));
                 }
-                item->setData(url.path());
-                item->setToolTip(url.path());
+                item->setData(path);
+                item->setToolTip(path);
             } else if (ret == false && !m_mimes.isEmpty()) {
                 item = new QStandardItem(fileInfo.fileName());
-                item->setData(url.path());
-                item->setToolTip(url.path());
+                item->setData(path);
+                item->setToolTip(path);
                 item->setEnabled(false);
                 item->setIcon(KIconLoader::global()->loadIcon("dialog-cancel", KIconLoader::Desktop));
             }
         } else if (m_mimes.isEmpty()) {
             // It's not a file but we don't have a mime so it's ok
             item = new QStandardItem(fileInfo.fileName());
-            item->setData(url.path());
-            item->setToolTip(url.path());
+            item->setData(path);
+            item->setToolTip(path);
             item->setIcon(KIconLoader::global()->loadIcon("unknown", KIconLoader::Desktop));
         }
 
-- 
1.8.1

openSUSE Build Service is sponsored by