[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