summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-11-21 16:25:44 (UTC)
committer harlekin <harlekin>2002-11-21 16:25:44 (UTC)
commit7edc36774d1deec4806ee9273e25a059f9ac1f9e (patch) (unidiff)
treeb672261ed87ae17b33e4ed47a70d4a82fccb8406
parent10cd03eb7108ef66614790ba2b5482a9bc9a87fd (diff)
downloadopie-7edc36774d1deec4806ee9273e25a059f9ac1f9e.zip
opie-7edc36774d1deec4806ee9273e25a059f9ac1f9e.tar.gz
opie-7edc36774d1deec4806ee9273e25a059f9ac1f9e.tar.bz2
using now QInterfacePtr as Simon suggested, and another leak fix in datebook plugin
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/plugins/datebook/datebookpluginimpl.cpp1
-rw-r--r--core/pim/today/today.cpp12
2 files changed, 7 insertions, 6 deletions
diff --git a/core/pim/today/plugins/datebook/datebookpluginimpl.cpp b/core/pim/today/plugins/datebook/datebookpluginimpl.cpp
index 4159b49..45736bb 100644
--- a/core/pim/today/plugins/datebook/datebookpluginimpl.cpp
+++ b/core/pim/today/plugins/datebook/datebookpluginimpl.cpp
@@ -21,8 +21,9 @@ DatebookPluginImpl::DatebookPluginImpl() {
21 datebookPlugin = new DatebookPlugin(); 21 datebookPlugin = new DatebookPlugin();
22} 22}
23 23
24DatebookPluginImpl::~DatebookPluginImpl() { 24DatebookPluginImpl::~DatebookPluginImpl() {
25 delete datebookPlugin;
25} 26}
26 27
27TodayPluginObject* DatebookPluginImpl::guiPart() { 28TodayPluginObject* DatebookPluginImpl::guiPart() {
28 return datebookPlugin; 29 return datebookPlugin;
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 01ef02d..1b31cfd 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -38,10 +38,11 @@
38#include <qwhatsthis.h> 38#include <qwhatsthis.h>
39 39
40 40
41struct TodayPlugin { 41struct TodayPlugin {
42 TodayPlugin() : library( 0 ), iface( 0 ), guiPart( 0 ), guiBox( 0 ) {}
42 QLibrary *library; 43 QLibrary *library;
43 TodayPluginInterface *iface; 44 QInterfacePtr<TodayPluginInterface> iface;
44 TodayPluginObject *guiPart; 45 TodayPluginObject *guiPart;
45 QWidget *guiBox; 46 QWidget *guiBox;
46 QString name; 47 QString name;
47 bool active; 48 bool active;
@@ -160,9 +161,8 @@ void Today::loadPlugins() {
160 } 161 }
161 pluginList.clear(); 162 pluginList.clear();
162 } 163 }
163 164
164
165 QString path = QPEApplication::qpeDir() + "/plugins/today"; 165 QString path = QPEApplication::qpeDir() + "/plugins/today";
166 QDir dir( path, "lib*.so" ); 166 QDir dir( path, "lib*.so" );
167 167
168 QStringList list = dir.entryList(); 168 QStringList list = dir.entryList();
@@ -170,10 +170,11 @@ void Today::loadPlugins() {
170 170
171 QMap<QString, TodayPlugin> tempList; 171 QMap<QString, TodayPlugin> tempList;
172 172
173 for ( it = list.begin(); it != list.end(); ++it ) { 173 for ( it = list.begin(); it != list.end(); ++it ) {
174 TodayPluginInterface *iface = 0; 174 //TodayPluginInterface *iface = 0;
175 QLibrary *lib = new QLibrary( path + "/" + *it ); 175 QInterfacePtr<TodayPluginInterface> iface;
176 QLibrary *lib = new QLibrary( path + "/" + *it );
176 177
177 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() ); 178 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() );
178 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) { 179 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) {
179 qDebug( "loading: %s", QString( path + "/" + *it ).latin1() ); 180 qDebug( "loading: %s", QString( path + "/" + *it ).latin1() );
@@ -181,9 +182,8 @@ void Today::loadPlugins() {
181 182
182 // If plugin is exludes from refresh, get it in the list again here. 183 // If plugin is exludes from refresh, get it in the list again here.
183 184
184 if ( pluginListRefreshExclude.contains( (*it) ) ) { 185 if ( pluginListRefreshExclude.contains( (*it) ) ) {
185
186 // if its not in allApplets list, add it to a layout 186 // if its not in allApplets list, add it to a layout
187 if ( !m_allApplets.contains( pluginListRefreshExclude[(*it)].name ) ) { 187 if ( !m_allApplets.contains( pluginListRefreshExclude[(*it)].name ) ) {
188 qDebug( "NUGASDA" ); 188 qDebug( "NUGASDA" );
189 layout->addWidget( pluginListRefreshExclude[(*it)].guiBox ); 189 layout->addWidget( pluginListRefreshExclude[(*it)].guiBox );
@@ -242,9 +242,9 @@ void Today::loadPlugins() {
242 pluginList.append( plugin ); 242 pluginList.append( plugin );
243 } 243 }
244 244
245 // if plugin is not yet in the list, add it to the layout too 245 // if plugin is not yet in the list, add it to the layout too
246 if ( !m_allApplets.contains( plugin.name ) ) { 246 else if ( !m_allApplets.contains( plugin.name ) ) {
247 layout->addWidget( plugin.guiBox ); 247 layout->addWidget( plugin.guiBox );
248 pluginList.append( plugin ); 248 pluginList.append( plugin );
249 } 249 }
250 } 250 }