-rw-r--r-- | core/pim/datebook/datebook.cpp | 33 | ||||
-rw-r--r-- | core/pim/datebook/datebooktypes.h | 8 |
2 files changed, 39 insertions, 2 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp index 36c4bd7..a7f6691 100644 --- a/core/pim/datebook/datebook.cpp +++ b/core/pim/datebook/datebook.cpp @@ -29,12 +29,14 @@ #include "datebookweeklst.h" #include "dateentryimpl.h" #include <opie2/odebug.h> #include <opie2/oholidaypluginif.h> #include <opie2/oholidayplugin.h> +#include <opie2/opluginloader.h> +#include <opie2/todayplugininterface.h> #include <qpe/datebookmonth.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <qpe/finddialog.h> #include <qpe/ir.h> @@ -1082,37 +1084,67 @@ Event DateBookDBHack::eventByUID(int uid) { return ev; // return at least } DateBookHoliday::DateBookHoliday() { _pluginlist.clear(); + m_pluginLoader = new Opie::Core::OPluginLoader("holidays",false); + m_pluginLoader->setAutoDelete(true); init(); } DateBookHoliday::~DateBookHoliday() { deinit(); + delete m_pluginLoader; } void DateBookHoliday::deinit() { +/* QValueList<HPlugin*>::Iterator it; for (it=_pluginlist.begin();it!=_pluginlist.end();++it) { HPlugin*_pl = *it; // destructs itself? _pl->_if->release(); _pl->_lib->unload(); delete _pl->_lib; delete _pl; } _pluginlist.clear(); +*/ } +#if 0 +void debugLst( const Opie::Core::OPluginItem::List& lst ) { + for ( Opie::Core::OPluginItem::List::ConstIterator it = lst.begin(); it != lst.end(); ++it ) + odebug << "Name " << (*it).name() << " " << (*it).path() << " " << (*it).position() << oendl; +} +#endif + void DateBookHoliday::init() { +#if 0 deinit(); +#endif + Opie::Core::OPluginItem::List lst = m_pluginLoader->allAvailable( false ); +// debugLst( lst ); + for( Opie::Core::OPluginItem::List::Iterator it = lst.begin(); it != lst.end(); ++it ){ + Opie::Datebook::HolidayPluginIf*hif = m_pluginLoader->load<Opie::Datebook::HolidayPluginIf>(*it,IID_HOLIDAY_PLUGIN); + if (hif) { + Opie::Datebook::HolidayPlugin*pl = hif->plugin(); + if (pl) { + HPlugin*_pl=new HPlugin; + _pl->_plugin = pl; + odebug << "Found holiday " << pl->description()<<oendl; + _pluginlist.append(_pl); + //_pl->_if = hif; + } + } + } +#if 0 QString path = QPEApplication::qpeDir() + "plugins/datebook/holiday"; QDir dir( path, "lib*.so" ); QStringList list = dir.entryList(); QStringList::Iterator it; for (it=list.begin();it!=list.end();++it) { Opie::Datebook::HolidayPluginIf*hif = 0; @@ -1129,12 +1161,13 @@ void DateBookHoliday::init() } else { } } else { delete lib; } } +#endif } QStringList DateBookHoliday::holidaylist(const QDate&aDate) { QStringList ret; QValueList<HPlugin*>::Iterator it; diff --git a/core/pim/datebook/datebooktypes.h b/core/pim/datebook/datebooktypes.h index 9eb7e89..f944e84 100644 --- a/core/pim/datebook/datebooktypes.h +++ b/core/pim/datebook/datebooktypes.h @@ -8,12 +8,15 @@ namespace Opie {
namespace Datebook {
class HolidayPlugin;
class HolidayPluginIf;
}
+namespace Core {
+ class OPluginLoader;
+}
}
class QLibrary;
class DateBookDBHack : virtual public DateBookDB {
public:
@@ -35,16 +38,17 @@ public: protected:
void init();
void deinit();
struct HPlugin {
Opie::Datebook::HolidayPlugin*_plugin;
- QLibrary*_lib;
- Opie::Datebook::HolidayPluginIf*_if;
+ //QLibrary*_lib;
+ //Opie::Datebook::HolidayPluginIf*_if;
};
QValueList<HPlugin*>_pluginlist;
+ Opie::Core::OPluginLoader*m_pluginLoader;
};
class DateBookDBHoliday:virtual public DateBookDBHack {
public:
DateBookDBHoliday():DateBookDBHack(){db_holiday=0;}
virtual ~DateBookDBHoliday(){}
|