summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp33
-rw-r--r--core/pim/datebook/datebooktypes.h8
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
@@ -23,24 +23,26 @@
#define QTOPIA_INTERNAL_FD
#include "datebook.h"
#include "datebookday.h"
#include "datebooksettings.h"
#include "datebookweek.h"
#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>
#include <qpe/qpemessagebox.h>
#include <qpe/resource.h>
#include <qpe/sound.h>
#include <qpe/tzselect.h>
#include <qaction.h>
@@ -1076,71 +1078,102 @@ Event DateBookDBHack::eventByUID(int uid) {
}
for (it = myRepeatEvents.begin(); it != myRepeatEvents.end(); it++) {
if ((*it).uid() == uid) return *it;
}
Event ev;
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;
QLibrary*lib=new QLibrary(path+"/"+*it);
if ((lib->queryInterface(IID_HOLIDAY_PLUGIN,(QUnknownInterface**)&hif) == QS_OK) && hif) {
Opie::Datebook::HolidayPlugin*pl = hif->plugin();
if (pl) {
HPlugin*_pl=new HPlugin;
_pl->_plugin = pl;
odebug << "Found holiday " << pl->description()<<oendl;
_pl->_lib = lib;
_pl->_if = hif;
_pluginlist.append(_pl);
} else {
}
} else {
delete lib;
}
}
+#endif
}
QStringList DateBookHoliday::holidaylist(const QDate&aDate)
{
QStringList ret;
QValueList<HPlugin*>::Iterator it;
for (it=_pluginlist.begin();it!=_pluginlist.end();++it) {
HPlugin*_pl = *it;
ret+=_pl->_plugin->entries(aDate);
}
return ret;
}
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
@@ -2,24 +2,27 @@
#define _DATEBOOK_TYPES_H
#include <qpe/datebookdb.h>
#include <qvaluelist.h>
#include <qstringlist.h>
namespace Opie {
namespace Datebook {
class HolidayPlugin;
class HolidayPluginIf;
}
+namespace Core {
+ class OPluginLoader;
+}
}
class QLibrary;
class DateBookDBHack : virtual public DateBookDB {
public:
virtual ~DateBookDBHack(){}
Event eventByUID(int id);
};
class DateBookHoliday
{
@@ -29,28 +32,29 @@ public:
QStringList holidaylist(const QDate&);
QStringList holidaylist(unsigned year, unsigned month, unsigned day);
virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to );
virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start);
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(){}
virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDate &from,const QDate &to );
virtual QValueList<EffectiveEvent> getEffectiveEvents(const QDateTime &start);
virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDate &from,const QDate &to );
virtual QValueList<EffectiveEvent> getEffectiveEventsNoHoliday(const QDateTime &start);
DateBookHoliday*db_holiday;