summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/today.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 2e7e1a8..139c91b 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -1,473 +1,478 @@
1/* 1/*
2 * today.cpp 2 * today.cpp
3 * 3 *
4 * copyright : (c) 2002,2003 by Maximilian Reiß 4 * copyright : (c) 2002,2003 by Maximilian Reiß
5 * email : harlekin@handhelds.org 5 * email : harlekin@handhelds.org
6 * 6 *
7 */ 7 */
8/*************************************************************************** 8/***************************************************************************
9 * * 9 * *
10 * This program is free software; you can redistribute it and/or modify * 10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by * 11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or * 12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. * 13 * (at your option) any later version. *
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17 17
18 18
19#define QTOPIA_INTERNAL_LANGLIST 19#define QTOPIA_INTERNAL_LANGLIST
20 20
21#include "today.h" 21#include "today.h"
22 22
23#include <qpe/config.h> 23#include <qpe/config.h>
24#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
25#include <qpe/resource.h> 25#include <qpe/resource.h>
26#include <qpe/global.h> 26#include <qpe/global.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qpe/contact.h> 28#include <qpe/contact.h>
29 29
30#include <qdir.h> 30#include <qdir.h>
31#include <qtimer.h> 31#include <qtimer.h>
32#include <qwhatsthis.h> 32#include <qwhatsthis.h>
33 33
34struct TodayPlugin { 34struct TodayPlugin {
35 TodayPlugin() : library( 0 ), iface( 0 ), guiPart( 0 ), guiBox( 0 ) {} 35 TodayPlugin() : library( 0 ), iface( 0 ), guiPart( 0 ), guiBox( 0 ) {}
36 QLibrary *library; 36 QLibrary *library;
37 QInterfacePtr<TodayPluginInterface> iface; 37 QInterfacePtr<TodayPluginInterface> iface;
38 TodayPluginObject *guiPart; 38 TodayPluginObject *guiPart;
39 QWidget *guiBox; 39 QWidget *guiBox;
40 QString name; 40 QString name;
41 bool active; 41 bool active;
42 bool excludeRefresh; 42 bool excludeRefresh;
43 int pos; 43 int pos;
44}; 44};
45 45
46static QValueList<TodayPlugin> pluginList; 46static QValueList<TodayPlugin> pluginList;
47 47
48static QMap<QString, TodayPlugin> tempList; 48static QMap<QString, TodayPlugin> tempList;
49 49
50Today::Today( QWidget* parent, const char* name, WFlags fl ) 50Today::Today( QWidget* parent, const char* name, WFlags fl )
51 : TodayBase( parent, name, fl ) { 51 : TodayBase( parent, name, fl ) {
52 52
53 QObject::connect( (QObject*)ConfigButton, SIGNAL( clicked() ), this, SLOT( startConfig() ) ); 53 QObject::connect( (QObject*)ConfigButton, SIGNAL( clicked() ), this, SLOT( startConfig() ) );
54 QObject::connect( (QObject*)OwnerField, SIGNAL( clicked() ), this, SLOT( editCard() ) ); 54 QObject::connect( (QObject*)OwnerField, SIGNAL( clicked() ), this, SLOT( editCard() ) );
55 55
56#if defined(Q_WS_QWS) 56#if defined(Q_WS_QWS)
57#if !defined(QT_NO_COP) 57#if !defined(QT_NO_COP)
58 QCopChannel *todayChannel = new QCopChannel( "QPE/Today" , this ); 58 QCopChannel *todayChannel = new QCopChannel( "QPE/Today" , this );
59 connect ( todayChannel, SIGNAL( received( const QCString &, const QByteArray &) ), 59 connect ( todayChannel, SIGNAL( received( const QCString &, const QByteArray &) ),
60 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) ); 60 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) );
61#endif 61#endif
62#endif 62#endif
63 63
64 setOwnerField(); 64 setOwnerField();
65 m_refreshTimer = new QTimer( this ); 65 m_refreshTimer = new QTimer( this );
66 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 66 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
67 m_refreshTimer->start( 15000 ); 67 m_refreshTimer->start( 15000 );
68 m_big_box = 0L; 68 m_big_box = 0L;
69 69
70 70
71 layout = new QVBoxLayout( this ); 71 layout = new QVBoxLayout( this );
72 layout->addWidget( Frame ); 72 layout->addWidget( Frame );
73 layout->addWidget( OwnerField ); 73 layout->addWidget( OwnerField );
74 74
75 m_sv = new QScrollView( this ); 75 m_sv = new QScrollView( this );
76 m_sv->setResizePolicy( QScrollView::AutoOneFit ); 76 m_sv->setResizePolicy( QScrollView::AutoOneFit );
77 m_sv->setHScrollBarMode( QScrollView::AlwaysOff ); 77 m_sv->setHScrollBarMode( QScrollView::AlwaysOff );
78 m_sv->setFrameShape( QFrame::NoFrame ); 78 m_sv->setFrameShape( QFrame::NoFrame );
79 79
80 layout->addWidget( m_sv ); 80 layout->addWidget( m_sv );
81 layout->setStretchFactor( m_sv,4 ); 81 layout->setStretchFactor( m_sv,4 );
82 82
83 qApp->processEvents(); 83 qApp->processEvents();
84 loadPlugins(); 84 loadPlugins();
85 showMaximized(); 85 showMaximized();
86} 86}
87 87
88/** 88/**
89 * Qcop receive method. 89 * Qcop receive method.
90 */ 90 */
91void Today::channelReceived( const QCString &msg, const QByteArray & data ) { 91void Today::channelReceived( const QCString &msg, const QByteArray & data ) {
92 QDataStream stream( data, IO_ReadOnly ); 92 QDataStream stream( data, IO_ReadOnly );
93 if ( msg == "message(QString)" ) { 93 if ( msg == "message(QString)" ) {
94 QString message; 94 QString message;
95 stream >> message; 95 stream >> message;
96 setOwnerField( message ); 96 setOwnerField( message );
97 } 97 }
98} 98}
99 99
100void Today::setRefreshTimer( int interval ) { 100void Today::setRefreshTimer( int interval ) {
101 101
102 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 102 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
103 103
104 // 0 is "never" case 104 // 0 is "never" case
105 if ( !interval == 0 ) { 105 if ( !interval == 0 ) {
106 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 106 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
107 m_refreshTimer->changeInterval( interval ); 107 m_refreshTimer->changeInterval( interval );
108 } 108 }
109} 109}
110 110
111 111
112/** 112/**
113 * Initialises the owner field with the default value, the username 113 * Initialises the owner field with the default value, the username
114 */ 114 */
115void Today::setOwnerField() { 115void Today::setOwnerField() {
116 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" ); 116 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" );
117 if ( QFile::exists( file ) ) { 117 if ( QFile::exists( file ) ) {
118 Contact cont = Contact::readVCard( file )[0]; 118 Contact cont = Contact::readVCard( file )[0];
119 QString returnString = cont.fullName(); 119 QString returnString = cont.fullName();
120 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" ); 120 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" );
121 } else { 121 } else {
122 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" ); 122 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" );
123 } 123 }
124} 124}
125 125
126/** 126/**
127 * Set the owner field with a given QString, for example per qcop. 127 * Set the owner field with a given QString, for example per qcop.
128 */ 128 */
129void Today::setOwnerField( QString &message ) { 129void Today::setOwnerField( QString &message ) {
130 if ( !message.isEmpty() ) { 130 if ( !message.isEmpty() ) {
131 OwnerField->setText( "<b>" + message + "</b>" ); 131 OwnerField->setText( "<b>" + message + "</b>" );
132 } 132 }
133} 133}
134 134
135/** 135/**
136 * Init stuff needed for today. Reads the config file. 136 * Init stuff needed for today. Reads the config file.
137 */ 137 */
138void Today::init() { 138void Today::init() {
139 // read config 139 // read config
140 Config cfg( "today" ); 140 Config cfg( "today" );
141 141
142 cfg.setGroup( "Plugins" ); 142 cfg.setGroup( "Plugins" );
143 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' ); 143 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' );
144 m_allApplets = cfg.readListEntry( "AllApplets", ',' ); 144 m_allApplets = cfg.readListEntry( "AllApplets", ',' );
145 145
146 cfg.setGroup( "General" ); 146 cfg.setGroup( "General" );
147 m_iconSize = cfg.readNumEntry( "IconSize", 18 ); 147 m_iconSize = cfg.readNumEntry( "IconSize", 18 );
148 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 ); 148 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 );
149 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) ); 149 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) );
150 150
151 // set the date in top label 151 // set the date in top label
152 QDate date = QDate::currentDate(); 152 QDate date = QDate::currentDate();
153 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) ); 153 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) );
154 154
155 if ( m_hideBanner ) { 155 if ( m_hideBanner ) {
156 Opiezilla->hide(); 156 Opiezilla->hide();
157 TodayLabel->hide(); 157 TodayLabel->hide();
158 } else { 158 } else {
159 Opiezilla->show(); 159 Opiezilla->show();
160 TodayLabel->show(); 160 TodayLabel->show();
161 } 161 }
162 162
163 if ( m_big_box ) { 163 if ( m_big_box ) {
164 delete m_big_box; 164 delete m_big_box;
165 } 165 }
166 166
167 m_big_box = new QWidget( m_sv->viewport() ); 167 m_big_box = new QWidget( m_sv->viewport() );
168 m_sv->addChild( m_big_box ); 168 m_sv->addChild( m_big_box );
169 m_bblayout = new QVBoxLayout ( m_big_box ); 169 m_bblayout = new QVBoxLayout ( m_big_box );
170} 170}
171 171
172/** 172/**
173 * Load the plugins 173 * Load the plugins
174 */ 174 */
175void Today::loadPlugins() { 175void Today::loadPlugins() {
176 176
177 init(); 177 init();
178 178
179 QValueList<TodayPlugin>::Iterator tit; 179 QValueList<TodayPlugin>::Iterator tit;
180 if ( !pluginList.isEmpty() ) { 180 if ( !pluginList.isEmpty() ) {
181 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) { 181 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) {
182 (*tit).guiBox->hide(); 182 (*tit).guiBox->hide();
183 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) ); 183 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) );
184 delete (*tit).guiBox; 184 delete (*tit).guiBox;
185 (*tit).library->unload(); 185 (*tit).library->unload();
186 delete (*tit).library; 186 delete (*tit).library;
187 } 187 }
188 pluginList.clear(); 188 pluginList.clear();
189 } 189 }
190 190
191 QString path = QPEApplication::qpeDir() + "/plugins/today"; 191 QString path = QPEApplication::qpeDir() + "/plugins/today";
192#ifdef Q_OS_MACX
193 qWarning("Searching for Plugins in: %s", path.latin1());
194 QDir dir( path, "lib*.dylib" );
195#else
192 QDir dir( path, "lib*.so" ); 196 QDir dir( path, "lib*.so" );
197#endif
193 198
194 QStringList list = dir.entryList(); 199 QStringList list = dir.entryList();
195 QStringList::Iterator it; 200 QStringList::Iterator it;
196 201
197 // QMap<QString, TodayPlugin> tempList; 202 // QMap<QString, TodayPlugin> tempList;
198 203
199 for ( it = list.begin(); it != list.end(); ++it ) { 204 for ( it = list.begin(); it != list.end(); ++it ) {
200 QInterfacePtr<TodayPluginInterface> iface; 205 QInterfacePtr<TodayPluginInterface> iface;
201 QLibrary *lib = new QLibrary( path + "/" + *it ); 206 QLibrary *lib = new QLibrary( path + "/" + *it );
202 207
203 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() ); 208 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() );
204 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) { 209 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) {
205 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() ); 210 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() );
206 qDebug( QString(*it) ); 211 qDebug( QString(*it) );
207 212
208 TodayPlugin plugin; 213 TodayPlugin plugin;
209 plugin.library = lib; 214 plugin.library = lib;
210 plugin.iface = iface; 215 plugin.iface = iface;
211 plugin.name = QString(*it); 216 plugin.name = QString(*it);
212 217
213 QString type = (*it).left( (*it).find(".") ); 218 QString type = (*it).left( (*it).find(".") );
214 219
215 QString lang; 220 QString lang;
216 Config config("locale"); 221 Config config("locale");
217 config.setGroup("Language"); 222 config.setGroup("Language");
218 lang = config.readEntry( "Language", "en" ); 223 lang = config.readEntry( "Language", "en" );
219 224
220 qDebug( "Languages: " + lang ); 225 qDebug( "Languages: " + lang );
221 QTranslator * trans = new QTranslator( qApp ); 226 QTranslator * trans = new QTranslator( qApp );
222 QString tfn = QPEApplication::qpeDir()+"/i18n/" + lang + "/" + type + ".qm"; 227 QString tfn = QPEApplication::qpeDir()+"/i18n/" + lang + "/" + type + ".qm";
223 if ( trans->load( tfn ) ) { 228 if ( trans->load( tfn ) ) {
224 qApp->installTranslator( trans ); 229 qApp->installTranslator( trans );
225 } else { 230 } else {
226 delete trans; 231 delete trans;
227 } 232 }
228 233
229 234
230 // find out if plugins should be shown 235 // find out if plugins should be shown
231 if ( m_excludeApplets.grep( *it ).isEmpty() ) { 236 if ( m_excludeApplets.grep( *it ).isEmpty() ) {
232 plugin.active = true; 237 plugin.active = true;
233 } else { 238 } else {
234 plugin.active = false; 239 plugin.active = false;
235 } 240 }
236 241
237 plugin.guiPart = plugin.iface->guiPart(); 242 plugin.guiPart = plugin.iface->guiPart();
238 plugin.excludeRefresh = plugin.guiPart->excludeFromRefresh(); 243 plugin.excludeRefresh = plugin.guiPart->excludeFromRefresh();
239 244
240 // package the whole thing into a qwidget so it can be shown and hidden 245 // package the whole thing into a qwidget so it can be shown and hidden
241 plugin.guiBox = new QWidget( m_big_box ); 246 plugin.guiBox = new QWidget( m_big_box );
242 QHBoxLayout *boxLayout = new QHBoxLayout( plugin.guiBox ); 247 QHBoxLayout *boxLayout = new QHBoxLayout( plugin.guiBox );
243 QPixmap plugPix; 248 QPixmap plugPix;
244 plugPix.convertFromImage( Resource::loadImage( plugin.guiPart->pixmapNameWidget() ).smoothScale( m_iconSize, m_iconSize ), 0 ); 249 plugPix.convertFromImage( Resource::loadImage( plugin.guiPart->pixmapNameWidget() ).smoothScale( m_iconSize, m_iconSize ), 0 );
245 OClickableLabel* plugIcon = new OClickableLabel( plugin.guiBox ); 250 OClickableLabel* plugIcon = new OClickableLabel( plugin.guiBox );
246 plugIcon->setPixmap( plugPix ); 251 plugIcon->setPixmap( plugPix );
247 QWhatsThis::add( plugIcon, tr("Click here to launch the associated app") ); 252 QWhatsThis::add( plugIcon, tr("Click here to launch the associated app") );
248 plugIcon->setName( plugin.guiPart->appName() ); 253 plugIcon->setName( plugin.guiPart->appName() );
249 connect( plugIcon, SIGNAL( clicked() ), this, SLOT( startApplication() ) ); 254 connect( plugIcon, SIGNAL( clicked() ), this, SLOT( startApplication() ) );
250 255
251 QWidget *plugWidget = plugin.guiPart->widget( plugin.guiBox ); 256 QWidget *plugWidget = plugin.guiPart->widget( plugin.guiBox );
252 boxLayout->addWidget( plugIcon, 0, AlignTop ); 257 boxLayout->addWidget( plugIcon, 0, AlignTop );
253 boxLayout->addWidget( plugWidget, 0, AlignTop ); 258 boxLayout->addWidget( plugWidget, 0, AlignTop );
254 boxLayout->setStretchFactor( plugIcon, 1 ); 259 boxLayout->setStretchFactor( plugIcon, 1 );
255 boxLayout->setStretchFactor( plugWidget, 9 ); 260 boxLayout->setStretchFactor( plugWidget, 9 );
256 261
257 // "prebuffer" it in one more list, to get the sorting done 262 // "prebuffer" it in one more list, to get the sorting done
258 tempList.insert( plugin.name, plugin ); 263 tempList.insert( plugin.name, plugin );
259 264
260 // on first start the list is off course empty 265 // on first start the list is off course empty
261 if ( m_allApplets.isEmpty() ) { 266 if ( m_allApplets.isEmpty() ) {
262 pluginList.append( plugin ); 267 pluginList.append( plugin );
263 m_bblayout->addWidget( plugin.guiBox ); 268 m_bblayout->addWidget( plugin.guiBox );
264 } 269 }
265 270
266 // if plugin is not yet in the list, add it to the layout too 271 // if plugin is not yet in the list, add it to the layout too
267 else if ( !m_allApplets.contains( plugin.name ) ) { 272 else if ( !m_allApplets.contains( plugin.name ) ) {
268 pluginList.append( plugin ); 273 pluginList.append( plugin );
269 } 274 }
270 } else { 275 } else {
271 qDebug( "could not recognize %s", QString( path + "/" + *it ).latin1() ); 276 qDebug( "could not recognize %s", QString( path + "/" + *it ).latin1() );
272 delete lib; 277 delete lib;
273 } 278 }
274 279
275 } 280 }
276 281
277 282
278 if ( !m_allApplets.isEmpty() ) { 283 if ( !m_allApplets.isEmpty() ) {
279 TodayPlugin tempPlugin; 284 TodayPlugin tempPlugin;
280 QStringList::Iterator stringit; 285 QStringList::Iterator stringit;
281 286
282 for( stringit = m_allApplets.begin(); stringit != m_allApplets.end(); ++stringit ) { 287 for( stringit = m_allApplets.begin(); stringit != m_allApplets.end(); ++stringit ) {
283 tempPlugin = ( tempList.find( *stringit ) ).data(); 288 tempPlugin = ( tempList.find( *stringit ) ).data();
284 if ( !( (tempPlugin.name).isEmpty() ) ) { 289 if ( !( (tempPlugin.name).isEmpty() ) ) {
285 pluginList.append( tempPlugin ); 290 pluginList.append( tempPlugin );
286 m_bblayout->addWidget( tempPlugin.guiBox ); 291 m_bblayout->addWidget( tempPlugin.guiBox );
287 } 292 }
288 } 293 }
289 } 294 }
290 m_bblayout->addStretch( 2 ); 295 m_bblayout->addStretch( 2 );
291 draw(); 296 draw();
292} 297}
293 298
294 299
295 300
296 301
297/** 302/**
298 * Repaint method. Reread all fields. 303 * Repaint method. Reread all fields.
299 */ 304 */
300void Today::draw() { 305void Today::draw() {
301 306
302 if ( pluginList.count() == 0 ) { 307 if ( pluginList.count() == 0 ) {
303 QLabel *noPlugins = new QLabel( this ); 308 QLabel *noPlugins = new QLabel( this );
304 noPlugins->setText( tr( "No plugins found" ) ); 309 noPlugins->setText( tr( "No plugins found" ) );
305 layout->addWidget( noPlugins ); 310 layout->addWidget( noPlugins );
306 return; 311 return;
307 } 312 }
308 313
309 uint count = 0; 314 uint count = 0;
310 TodayPlugin plugin; 315 TodayPlugin plugin;
311 for ( uint i = 0; i < pluginList.count(); i++ ) { 316 for ( uint i = 0; i < pluginList.count(); i++ ) {
312 plugin = pluginList[i]; 317 plugin = pluginList[i];
313 318
314 if ( plugin.active ) { 319 if ( plugin.active ) {
315 // qDebug( plugin.name + " is ACTIVE " ); 320 // qDebug( plugin.name + " is ACTIVE " );
316 plugin.guiBox->show(); 321 plugin.guiBox->show();
317 } else { 322 } else {
318 // qDebug( plugin.name + " is INACTIVE" ); 323 // qDebug( plugin.name + " is INACTIVE" );
319 plugin.guiBox->hide(); 324 plugin.guiBox->hide();
320 } 325 }
321 count++; 326 count++;
322 } 327 }
323 328
324 if ( count == 0 ) { 329 if ( count == 0 ) {
325 QLabel *noPluginsActive = new QLabel( this ); 330 QLabel *noPluginsActive = new QLabel( this );
326 noPluginsActive->setText( tr( "No plugins activated" ) ); 331 noPluginsActive->setText( tr( "No plugins activated" ) );
327 layout->addWidget( noPluginsActive ); 332 layout->addWidget( noPluginsActive );
328 } 333 }
329 repaint(); 334 repaint();
330} 335}
331 336
332 337
333/** 338/**
334 * The method for the configuration dialog. 339 * The method for the configuration dialog.
335 */ 340 */
336void Today::startConfig() { 341void Today::startConfig() {
337 342
338 // disconnect timer to prevent problems while being on config dialog 343 // disconnect timer to prevent problems while being on config dialog
339 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 344 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
340 m_refreshTimer->stop( ); 345 m_refreshTimer->stop( );
341 346
342 TodayConfig conf( this, "dialog", true ); 347 TodayConfig conf( this, "dialog", true );
343 348
344 TodayPlugin plugin; 349 TodayPlugin plugin;
345 QList<TodayConfigWidget> configWidgetList; 350 QList<TodayConfigWidget> configWidgetList;
346 351
347 for ( int i = pluginList.count() - 1; i >= 0; i-- ) { 352 for ( int i = pluginList.count() - 1; i >= 0; i-- ) {
348 plugin = pluginList[i]; 353 plugin = pluginList[i];
349 354
350 // load the config widgets in the tabs 355 // load the config widgets in the tabs
351 if ( plugin.guiPart->configWidget( this ) != 0l ) { 356 if ( plugin.guiPart->configWidget( this ) != 0l ) {
352 TodayConfigWidget* widget = plugin.guiPart->configWidget( conf.TabWidget3 ); 357 TodayConfigWidget* widget = plugin.guiPart->configWidget( conf.TabWidget3 );
353 configWidgetList.append( widget ); 358 configWidgetList.append( widget );
354 conf.TabWidget3->addTab( widget, plugin.guiPart->pixmapNameConfig() 359 conf.TabWidget3->addTab( widget, plugin.guiPart->pixmapNameConfig()
355 , plugin.guiPart->appName() ); 360 , plugin.guiPart->appName() );
356 } 361 }
357 // set the order/activate tab 362 // set the order/activate tab
358 conf.pluginManagement( plugin.name, plugin.guiPart->pluginName(), 363 conf.pluginManagement( plugin.name, plugin.guiPart->pluginName(),
359 Resource::loadPixmap( plugin.guiPart->pixmapNameWidget() ) ); 364 Resource::loadPixmap( plugin.guiPart->pixmapNameWidget() ) );
360 } 365 }
361 366
362 if ( conf.exec() == QDialog::Accepted ) { 367 if ( conf.exec() == QDialog::Accepted ) {
363 conf.writeConfig(); 368 conf.writeConfig();
364 TodayConfigWidget *confWidget; 369 TodayConfigWidget *confWidget;
365 for ( confWidget = configWidgetList.first(); confWidget != 0; 370 for ( confWidget = configWidgetList.first(); confWidget != 0;
366 confWidget = configWidgetList.next() ) { 371 confWidget = configWidgetList.next() ) {
367 confWidget->writeConfig(); 372 confWidget->writeConfig();
368 } 373 }
369 374
370 // make the plugins to reinitialize ( reread its configs ) 375 // make the plugins to reinitialize ( reread its configs )
371 reinitialize(); 376 reinitialize();
372 draw(); 377 draw();
373 378
374 } else { 379 } else {
375 // since refresh is not called in that case , reconnect the signal 380 // since refresh is not called in that case , reconnect the signal
376 m_refreshTimer->start( 15000 ); // get the config value in here later 381 m_refreshTimer->start( 15000 ); // get the config value in here later
377 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 382 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
378 } 383 }
379} 384}
380 385
381 386
382 387
383void Today::reinitialize() { 388void Today::reinitialize() {
384 389
385 Config cfg( "today" ); 390 Config cfg( "today" );
386 cfg.setGroup( "Plugins" ); 391 cfg.setGroup( "Plugins" );
387 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' ); 392 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' );
388 m_allApplets = cfg.readListEntry( "AllApplets", ',' ); 393 m_allApplets = cfg.readListEntry( "AllApplets", ',' );
389 394
390 /* reinitialize all plugins */ 395 /* reinitialize all plugins */
391 QValueList<TodayPlugin>::Iterator it; 396 QValueList<TodayPlugin>::Iterator it;
392 for ( it = pluginList.begin(); it != pluginList.end(); ++it ) { 397 for ( it = pluginList.begin(); it != pluginList.end(); ++it ) {
393 if ( !(*it).excludeRefresh ) { 398 if ( !(*it).excludeRefresh ) {
394 (*it).guiPart->reinitialize(); 399 (*it).guiPart->reinitialize();
395 qDebug( "reinit" ); 400 qDebug( "reinit" );
396 } 401 }
397 402
398 /* check if plugins is still to be shown */ 403 /* check if plugins is still to be shown */
399 if ( m_excludeApplets.grep( (*it).name ).isEmpty() ) { 404 if ( m_excludeApplets.grep( (*it).name ).isEmpty() ) {
400 (*it).active = true; 405 (*it).active = true;
401 } else { 406 } else {
402 (*it).active = false; 407 (*it).active = false;
403 } 408 }
404 409
405 } 410 }
406 411
407 cfg.setGroup( "General" ); 412 cfg.setGroup( "General" );
408 m_iconSize = cfg.readNumEntry( "IconSize", 18 ); 413 m_iconSize = cfg.readNumEntry( "IconSize", 18 );
409 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 ); 414 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 );
410 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) ); 415 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) );
411 416
412 // set the date in top label 417 // set the date in top label
413 QDate date = QDate::currentDate(); 418 QDate date = QDate::currentDate();
414 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) ); 419 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) );
415 420
416 if ( m_hideBanner ) { 421 if ( m_hideBanner ) {
417 Opiezilla->hide(); 422 Opiezilla->hide();
418 TodayLabel->hide(); 423 TodayLabel->hide();
419 } else { 424 } else {
420 Opiezilla->show(); 425 Opiezilla->show();
421 TodayLabel->show(); 426 TodayLabel->show();
422 } 427 }
423 428
424 delete m_bblayout; 429 delete m_bblayout;
425 m_bblayout = new QVBoxLayout( m_big_box ); 430 m_bblayout = new QVBoxLayout( m_big_box );
426 TodayPlugin tempPlugin; 431 TodayPlugin tempPlugin;
427 QStringList::Iterator stringit; 432 QStringList::Iterator stringit;
428 433
429 for( stringit = m_allApplets.begin(); stringit != m_allApplets.end(); ++stringit ) { 434 for( stringit = m_allApplets.begin(); stringit != m_allApplets.end(); ++stringit ) {
430 tempPlugin = ( tempList.find( *stringit ) ).data(); 435 tempPlugin = ( tempList.find( *stringit ) ).data();
431 if ( !( (tempPlugin.name).isEmpty() ) ) { 436 if ( !( (tempPlugin.name).isEmpty() ) ) {
432 m_bblayout->addWidget( tempPlugin.guiBox ); 437 m_bblayout->addWidget( tempPlugin.guiBox );
433 } 438 }
434 } 439 }
435 m_bblayout->addStretch( 2 ); 440 m_bblayout->addStretch( 2 );
436 441
437} 442}
438 443
439/** 444/**
440 * Refresh for the view. Reload all applets 445 * Refresh for the view. Reload all applets
441 * 446 *
442 */ 447 */
443void Today::refresh() { 448void Today::refresh() {
444 449
445 QValueList<TodayPlugin>::Iterator it; 450 QValueList<TodayPlugin>::Iterator it;
446 for ( it = pluginList.begin(); it != pluginList.end(); ++it ) { 451 for ( it = pluginList.begin(); it != pluginList.end(); ++it ) {
447 if ( !(*it).excludeRefresh ) { 452 if ( !(*it).excludeRefresh ) {
448 (*it).guiPart->refresh(); 453 (*it).guiPart->refresh();
449 qDebug( "refresh" ); 454 qDebug( "refresh" );
450 } 455 }
451 } 456 }
452 457
453 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( QDate::currentDate() ) + "</font>" ) ); 458 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( QDate::currentDate() ) + "</font>" ) );
454 459
455 updateGeometry(); 460 updateGeometry();
456 repaint(); 461 repaint();
457} 462}
458 463
459void Today::startApplication() { 464void Today::startApplication() {
460 QCopEnvelope e( "QPE/System", "execute(QString)" ); 465 QCopEnvelope e( "QPE/System", "execute(QString)" );
461 e << QString( sender()->name() ); 466 e << QString( sender()->name() );
462} 467}
463 468
464/** 469/**
465 * launch addressbook (personal card) 470 * launch addressbook (personal card)
466 */ 471 */
467void Today::editCard() { 472void Today::editCard() {
468 QCopEnvelope env( "QPE/Application/addressbook", "editPersonalAndClose()" ); 473 QCopEnvelope env( "QPE/Application/addressbook", "editPersonalAndClose()" );
469} 474}
470 475
471Today::~Today() { 476Today::~Today() {
472} 477}
473 478