summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-06 12:34:17 (UTC)
committer alwin <alwin>2004-04-06 12:34:17 (UTC)
commit19a3f177cdf334259438a0f2266255886f3063bb (patch) (side-by-side diff)
tree6fb30c93072f0698e308e67678574cdee469b4e8
parent601c352dd956c9736fb4e3881cd7e60c504d007a (diff)
downloadopie-19a3f177cdf334259438a0f2266255886f3063bb.zip
opie-19a3f177cdf334259438a0f2266255886f3063bb.tar.gz
opie-19a3f177cdf334259438a0f2266255886f3063bb.tar.bz2
added OPIE_EXPORT_APP_V2( Factory,name ) macro.
Factory is the same as in OPIE_EXPORT_APP, name is the display name (third parameter of OApplication). In non-quicklaunch mode it will generate a Opie::Core::OApplication object instead of a QPEApplication object.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oapplicationfactory.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/libopie2/opiecore/oapplicationfactory.h b/libopie2/opiecore/oapplicationfactory.h
index 4518174..6247776 100644
--- a/libopie2/opiecore/oapplicationfactory.h
+++ b/libopie2/opiecore/oapplicationfactory.h
@@ -295 +295,39 @@ int main( int argc, char **argv ) { \
#endif
+
+#ifdef OPIE_APP_INTERFACE
+#define OPIE_EXPORT_APP_V2( factory,name ) Q_EXPORT_INTERFACE() { Q_CREATE_INSTANCE( factory ) }
+#else
+
+#include <opie2/oapplication.h>
+
+#define OPIE_EXPORT_APP_V2( Factory,name ) \
+int main( int argc, char **argv ) { \
+ Opie::Core::OApplication a(argc, argv, name ); \
+ QWidget *mw = 0;\
+\
+ /* method from TT */ \
+ QString executableName = QString::fromLatin1( argv[0] ); \
+ executableName = executableName.right(executableName.length() \
+ - executableName.findRev('/') - 1); \
+ \
+ Factory f; \
+ QStringList list = f.applications(); \
+ if (list.contains(executableName) ) \
+ mw = f.createMainWindow(executableName, 0, 0, 0 ); \
+ else \
+ mw = f.createMainWindow( list[0], 0, 0, 0 ); \
+\
+ if( mw ) { \
+ if ( mw->metaObject()->slotNames().contains("setDocument(const QString&)" ) ) \
+ a.showMainDocumentWidget( mw ); \
+ else \
+ a.showMainWidget( mw ); \
+\
+ int rv = a.exec(); \
+ delete mw; \
+ return rv; \
+ }else \
+ return -1; \
+}
+#endif
+