summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oapplicationfactory.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/libopie2/opiecore/oapplicationfactory.h b/libopie2/opiecore/oapplicationfactory.h
index 6e10552..4518174 100644
--- a/libopie2/opiecore/oapplicationfactory.h
+++ b/libopie2/opiecore/oapplicationfactory.h
@@ -46,24 +46,25 @@
And KGenericFactor et all from Simon Hausmann <tronical@kde.org>
*/
#include <qstring.h>
#include <qmetaobject.h>
#include <qtopia/qcom.h>
#include <qtopia/applicationinterface.h>
namespace Opie {
+namespace Core {
struct NullType;
template <class T, class U>
struct Typelist
{
typedef T Head;
typedef U Tail;
};
template<
typename T1 = NullType, typename T2 = NullType, typename T3 = NullType,
typename T4 = NullType, typename T5 = NullType, typename T6 = NullType,
typename T7 = NullType, typename T8 = NullType, typename T9 = NullType,
@@ -85,25 +86,24 @@ namespace Opie {
::Result TailResult;
public:
typedef Typelist<T1, TailResult> Result;
};
template<>
struct MakeTypelist<>
{
typedef NullType Result;
};
-}
/**
* To allow your application to be quick launched some one needs
* to create the QWidget.
* This is this factory. Make surce your widget has static QString Widget::appName()
* as one of its functions.
*
* This template takes one QWidget and initialized it in the form of
* MyWidget::MyWidget( QWidget* parent, const char* name, WFlags f );
*
* To use it on your app do that:
* typedef OApplicationFactory<MyWidget> MyFactory;
@@ -154,50 +154,50 @@ struct OPrivate {
else
return 0;
}
inline static QStringList multiString( const QStringList& _list ) {
QStringList list = _list;
list << Product::appName();
return list;
}
};
template <>
-struct OPrivate<Opie::NullType > {
+struct OPrivate<Opie::Core::NullType > {
inline static QWidget* multiFactory ( const QString& , QWidget* ,
const char* , Qt::WFlags ) {
return 0l;
}
inline static QStringList multiString( const QStringList& _list ) {
return _list;
}
};
/*
template <>
struct OPrivate <Opie::NullType, Opie::NullType > {
inline static QWidget* multiFactory( const QString& , QWidget* ,
const char* , Qt::WFlags ) {
return 0l;
}
inline static QStringList multiString( const QStringList& _list ) {
return _list;
}
};
*/
template <class Product, class ProductListTail>
-struct OPrivate< Opie::Typelist<Product, ProductListTail> > {
+struct OPrivate< Opie::Core::Typelist<Product, ProductListTail> > {
inline static QWidget* multiFactory( const QString& appName, QWidget* parent,
const char* name, Qt::WFlags fl) {
QWidget* wid = OPrivate<Product>::multiFactory( appName, parent, name, fl );
if (!wid )
wid = OPrivate<ProductListTail>::multiFactory( appName, parent, name, fl );
return wid;
}
inline static QStringList multiString( const QStringList& _list ) {
QStringList list = _list;
@@ -219,49 +219,51 @@ struct OPrivate< Opie::Typelist<Product, ProductListTail> > {
/* Internal END */
/*
* If you want to export more than one Widget use that function
* Make sure all your Widgets provide the appName() static method
* otherwise you'll get a compiler error
*
* typedef Opie::MakeTypeList<MyWidget, MyDialog, MyMediaPlayer >::Result MyTypes;
* OPIE_EXPORT_APP( OApplicationFactory<MyTypes> )
*/
template<class Product, class ProductListTail>
-struct OApplicationFactory< Opie::Typelist<Product, ProductListTail > >
+struct OApplicationFactory< Opie::Core::Typelist<Product, ProductListTail > >
: ApplicationInterface {
QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) {
*iface = 0;
if ( uuid == IID_QUnknown ) *iface = this;
else if ( uuid ==IID_QtopiaApplication ) *iface = this;
else return QS_FALSE;
(*iface)->addRef();
return QS_OK;
}
QWidget* createMainWindow ( const QString& appName, QWidget* parent,
const char* name, Qt::WFlags fl ) {
qWarning("StringList is %s", applications().join(":").latin1() );
- return OPrivate< Opie::Typelist<Product, ProductListTail > >::multiFactory( appName, parent, name, fl );
+ return OPrivate< Opie::Core::Typelist<Product, ProductListTail > >::multiFactory( appName, parent, name, fl );
}
QStringList applications()const {
QStringList _list;
- return OPrivate< Opie::Typelist<Product, ProductListTail> >::multiString( _list );
+ return OPrivate< Opie::Core::Typelist<Product, ProductListTail> >::multiString( _list );
}
Q_REFCOUNT
};
+}
+}
/* If the library version should be build */
#ifdef OPIE_APP_INTERFACE
#define OPIE_EXPORT_APP( factory ) Q_EXPORT_INTERFACE() { Q_CREATE_INSTANCE( factory ) }
#else
#include <qpe/qpeapplication.h>
#define OPIE_EXPORT_APP( Factory ) \
int main( int argc, char **argv ) { \
QPEApplication a(argc, argv ); \
QWidget *mw = 0;\