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

List:       kde-commits
Subject:    koffice/kexi/core
From:       Jaroslaw Staniek <js () iidea ! pl>
Date:       2008-11-25 21:24:44
Message-ID: 1227648284.987020.24078.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 889049 by staniek:

Core
-xmlgui: check for existence ofthe .rc files early enough to avoid crash at kdelibs level



 M  +13 -3     kexipart.cpp  


--- trunk/koffice/kexi/core/kexipart.cpp #889048:889049
@@ -39,6 +39,7 @@
 #include <kdebug.h>
 #include <kmessagebox.h>
 #include <kxmlguifactory.h>
+#include <kstandarddirs.h>
 
 namespace KexiPart
 {
@@ -524,9 +525,18 @@
         part->info()->objectName()
         + (nameSuffix ? QString(":%1").arg(nameSuffix) : QString()));
 
-    if (!KexiMainWindowIface::global()->project()->data()->userMode())
-        setXMLFile(QString::fromLatin1("kexi") + part->info()->objectName()
-                   + "part" + (partInstanceClient ? "inst" : "") + "ui.rc");
+    if (!KexiMainWindowIface::global()->project()->data()->userMode()) {
+        const QString file( QString::fromLatin1("kexi") + part->info()->objectName()
+                     + "part" + (partInstanceClient ? "inst" : "") + "ui.rc" );
+        const QString filter = componentData().componentName() + '/' + file;
+        const QStringList allFiles = componentData().dirs()->findAllResources("data", filter) +
+                                     componentData().dirs()->findAllResources("data", file);
+        if (!allFiles.isEmpty()) {
+            QString doc;
+            if (!findMostRecentXMLFile(allFiles, doc).isEmpty())
+              setXMLFile(file);
+        }
+    }
 
 // new KAction(part->d->names["new"], part->info()->itemIcon(), 0, this,
 //  SLOT(create()), actionCollection(), (part->info()->objectName()+"part_create").toLatin1());
[prev in list] [next in list] [prev in thread] [next in thread] 

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