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

List:       kdevelop-devel
Subject:    Re: KDE4 Patch to allow testing/execution of uninstalled kparts/XMLGUI applications
From:       Adam Treat <manyoso () yahoo ! com>
Date:       2005-08-08 16:24:22
Message-ID: 200508081224.22511.manyoso () yahoo ! com
[Download RAW message or body]

Oops, I forgot an include file trying to clean up my tabs/spaces for the 
patch.

BTW, I don't see how this is contributing any 'bloat'.  If the .krcdirs file 
doesn't exist then everything goes on in its merry way...

On Monday 08 August 2005 12:15 pm, Adam Treat wrote:
> Hello,
>
> I have a simple patch to KStandardDirs that will allow developers to test
> and run KParts/XMLGUI applications without having to install them first.
>
> What I've done is to simply look for a '.krcdirs' file in the same
> directory where the application is currently being executed.  This file is
> a simple INI file like so:
>
> [KStandardDirs]
> module = .libs
> data = .
>
> The file is read and each key is added to KStandardDirs by using the
> addResourceDir( const char* type, const QString &absDir ) method.  When the
> application is loaded the KDE defaults for KStandardDirs are set and this
> all takes place before the KParts/XMLGUI machinery jumps in.  It is also
> done before the configuration system kicks in, so I had to use QSettings
> for the INI file reader.
>
> Advantages include:
>
> 1.  It is simple.
> 2.  It is build system independent.
> 3.  It can be used to find icons/wallpapers and other resources without
> them having to be installed.
> 4.  KDevelop can automatically create this file and integrate it into the
> various application templates without any hassle.
>
> So, whaddya think?  Should I commit?
>
> Adam

-- 
I'm running a Marathon in December!
HELP ME SAVE LIVES and Donate Today!
http://helpmesavelives.blogspot.com/

["kstandarddirs_patch_for_noinstallparts.patch" (text/x-diff)]

Index: kstandarddirs.cpp
===================================================================
--- kstandarddirs.cpp	(revision 444071)
+++ kstandarddirs.cpp	(working copy)
@@ -43,6 +43,7 @@
 #include <q3dict.h>
 #include <qdir.h>
 #include <qfileinfo.h>
+#include <qsettings.h>
 #include <qstring.h>
 #include <qstringlist.h>
 
@@ -1265,8 +1266,29 @@
   return s->defaultbindir;
 }
 
+void KStandardDirs::addResourcesFrom_krcdirs()
+{
+    QString localFile = QDir::currentPath() + QDir::separator() + ".krcdirs";
+    if (!QFile::exists(localFile))
+        return;
+
+    QSettings iniFile(localFile, QSettings::IniFormat);
+    iniFile.beginGroup("KStandardDirs");
+    QStringList resources = iniFile.allKeys();
+    foreach(QString key, resources)
+    {
+        QDir path(iniFile.value(key).toString());
+        if (!path.exists())
+            continue;
+
+        if(path.makeAbsolute())
+            addResourceDir(key.ascii(), path.path());
+    }
+}
+
 void KStandardDirs::addKDEDefaults()
 {
+    addResourcesFrom_krcdirs();
     QStringList kdedirList;
 
     // begin KDEDIRS
Index: kstandarddirs.h
===================================================================
--- kstandarddirs.h	(revision 444071)
+++ kstandarddirs.h	(working copy)
@@ -636,6 +636,8 @@
 	void addXdgConfigPrefix( const QString& dir, bool priority );
 	void addXdgDataPrefix( const QString& dir, bool priority );
 
+	void addResourcesFrom_krcdirs();
+
 	// If priority is true, the directory is added before any other,
 	// otherwise after
 	bool addResourceType( const char *type,

_______________________________________________
KDevelop-devel mailing list
KDevelop-devel@barney.cs.uni-potsdam.de
http://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel

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

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