Hi all!
The QDS project, the Q Desktop Services library, is looking for developers especially on Mac OS X and Windows but of course Unix based developers are welcome as well
The goal of QDS is to wrap additional platform specific APIs into Qt code so that applications linking with QDS can just call this addon Qt API without getting any build-time or run-time dependencies on the target desktop environment.
Build-time dependency can be achieved by directly linking QDS into the application. QDS is by default built as a static library for exactly that reason.
Run-time dependency is a problem on Unix/X11, where there is no single desktop API but serveral ones.
To avoid depending on a specific one QDS on Unix can load plugins which then provide the functionality.
When no plugin can be loaded or when the loaded pluging failes to provide the requested services, QDS will try to fall back to some base functionality it can provide without desktop APIs
Currently there is only a KDE plugin available, any developer interested in a different target desktop is highly welcome.
QDS has been announced before here on QtForum, but the old API was offering to much flexibility, thus resulting in too much complexity.
The new goal is to require only little changes to Qt applications in order to use QDS's services:
For example, opening Trolltech's website in the default browser (remember on Unix/X11 this currently requires a plugin implementing the Launcher service)
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <qapplication.h>
#include <qurl.h>
#include "qds/qds.h"
int main(int argc, char** argv)
{
QApplication* app = QDS::createApplication(argc, argv);
QDS::launch(QUrl("http://www.trolltech.com/"));
int ret = app->exec();
delete app;
return ret;
}
|
QDS website:
http://www.sbox.tugraz.at/home/v/voyager/qds/
Current developer version attached (difference to release 0.4.1: adding simplified launcher functions to QDS namespace, see above example)