Diffstat (limited to 'core/pim/datebook/datebook.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/datebook/datebook.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp index a7f6691..8ae4f84 100644 --- a/core/pim/datebook/datebook.cpp +++ b/core/pim/datebook/datebook.cpp @@ -247,4 +247,5 @@ void DateBook::slotSettings() frmSettings.comboDefaultView->setCurrentItem(defaultView-1); frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig); + frmSettings.setPluginList(db_holiday->pluginManager(),db_holiday->pluginLoader()); bool found=false; @@ -263,4 +264,7 @@ void DateBook::slotSettings() if ( QPEApplication::execDialog( &frmSettings ) ) { + db_holiday->pluginManager()->save(); + db_holiday->reloadPlugins(); + aPreset = frmSettings.alarmPreset(); presetTime = frmSettings.presetTime(); @@ -1090,4 +1094,13 @@ DateBookHoliday::DateBookHoliday() m_pluginLoader = new Opie::Core::OPluginLoader("holidays",false); m_pluginLoader->setAutoDelete(true); + m_pluginManager = new Opie::Core::OPluginManager(m_pluginLoader); + m_pluginManager->load(); + + init(); +} + +void DateBookHoliday::reloadPlugins() +{ + deinit(); init(); } @@ -1097,20 +1110,16 @@ DateBookHoliday::~DateBookHoliday() deinit(); delete m_pluginLoader; + delete m_pluginManager; } 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; + *it = 0; delete _pl; } _pluginlist.clear(); -*/ } @@ -1124,8 +1133,7 @@ void debugLst( const Opie::Core::OPluginItem::List& lst ) { void DateBookHoliday::init() { -#if 0 deinit(); -#endif - Opie::Core::OPluginItem::List lst = m_pluginLoader->allAvailable( false ); + + Opie::Core::OPluginItem::List lst = m_pluginLoader->filtered(true); // debugLst( lst ); for( Opie::Core::OPluginItem::List::Iterator it = lst.begin(); it != lst.end(); ++it ){ @@ -1142,28 +1150,4 @@ void DateBookHoliday::init() } } -#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 } |