summaryrefslogtreecommitdiff
authorharlekin <harlekin>2003-12-05 11:20:37 (UTC)
committer harlekin <harlekin>2003-12-05 11:20:37 (UTC)
commit2b37759fc317b5efd9b371210b16117f7d346455 (patch) (unidiff)
treef99beb5ff1c886f9b41a2d3a34300f8f121cf738
parent1ef5137234e2b7cd0be2a220a86d848503196269 (diff)
downloadopie-2b37759fc317b5efd9b371210b16117f7d346455.zip
opie-2b37759fc317b5efd9b371210b16117f7d346455.tar.gz
opie-2b37759fc317b5efd9b371210b16117f7d346455.tar.bz2
today in HEAD up to date
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/.cvsignore2
-rw-r--r--core/pim/today/changelog6
-rw-r--r--core/pim/today/main.cpp16
-rw-r--r--core/pim/today/plugin.cpp17
-rw-r--r--core/pim/today/plugins/datebook/.cvsignore1
-rw-r--r--core/pim/today/plugins/datebook/config.in2
-rw-r--r--core/pim/today/plugins/datebook/datebook.pro19
-rw-r--r--core/pim/today/plugins/datebook/datebookevent.cpp48
-rw-r--r--core/pim/today/plugins/datebook/datebookevent.h5
-rw-r--r--core/pim/today/plugins/datebook/datebookplugin.cpp7
-rw-r--r--core/pim/today/plugins/datebook/datebookplugin.h1
-rw-r--r--core/pim/today/plugins/datebook/datebookpluginwidget.cpp50
-rw-r--r--core/pim/today/plugins/datebook/datebookpluginwidget.h4
-rw-r--r--core/pim/today/plugins/mail/config.in2
-rw-r--r--core/pim/today/plugins/mail/mail.pro20
-rw-r--r--core/pim/today/plugins/mail/mailplugin.cpp3
-rw-r--r--core/pim/today/plugins/mail/mailplugin.h1
-rw-r--r--core/pim/today/plugins/mail/mailpluginwidget.cpp2
-rw-r--r--core/pim/today/plugins/mail/opie-today-mailplugin.control9
-rw-r--r--core/pim/today/plugins/todolist/.cvsignore1
-rw-r--r--core/pim/today/plugins/todolist/config.in2
-rw-r--r--core/pim/today/plugins/todolist/todolist.pro19
-rw-r--r--core/pim/today/plugins/todolist/todoplugin.cpp8
-rw-r--r--core/pim/today/plugins/todolist/todoplugin.h1
-rw-r--r--core/pim/today/plugins/todolist/todopluginwidget.cpp15
-rw-r--r--core/pim/today/plugins/todolist/todopluginwidget.h1
-rw-r--r--core/pim/today/today.cpp33
-rw-r--r--core/pim/today/today.pro7
-rw-r--r--core/pim/today/todayconfig.cpp73
-rw-r--r--core/pim/today/todayconfig.h13
30 files changed, 214 insertions, 174 deletions
diff --git a/core/pim/today/.cvsignore b/core/pim/today/.cvsignore
index 1ee9a27..11e7045 100644
--- a/core/pim/today/.cvsignore
+++ b/core/pim/today/.cvsignore
@@ -1,3 +1,5 @@
1*.moc 1*.moc
2Makefile* 2Makefile*
3moc_* 3moc_*
4todayconfigmiscbase.cpp
5todayconfigmiscbase.h
diff --git a/core/pim/today/changelog b/core/pim/today/changelog
index a77e581..b492435 100644
--- a/core/pim/today/changelog
+++ b/core/pim/today/changelog
@@ -1,8 +1,14 @@
10.7
2
3* now all plugins in a big scrollview
4* config dialogs guis are ui files now
5* plugin interface has one new virtual method - reinitialize ( used when coming back from config dialog )
6
10.6.2 70.6.2
2 8
3* header can now be made smaller 9* header can now be made smaller
4* changed header to different layout mode to play nicer with life rotation 10* changed header to different layout mode to play nicer with life rotation
5 11
60.6.1 120.6.1
7 13
8* datebook plugin now can now also show following days 14* datebook plugin now can now also show following days
diff --git a/core/pim/today/main.cpp b/core/pim/today/main.cpp
index 72c0a2e..156cd0f 100644
--- a/core/pim/today/main.cpp
+++ b/core/pim/today/main.cpp
@@ -14,23 +14,11 @@
14 * it under the terms of the GNU General Public License as published by * 14 * it under the terms of the GNU General Public License as published by *
15 * the Free Software Foundation; either version 2 of the License, or * 15 * the Free Software Foundation; either version 2 of the License, or *
16 * (at your option) any later version. * 16 * (at your option) any later version. *
17 * * 17 * *
18 ***************************************************************************/ 18 ***************************************************************************/
19 19
20#include "today.h" 20#include "today.h"
21#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
22#include <opie/oapplicationfactory.h>
22 23
23QPEApplication *todayApp; 24OPIE_EXPORT_APP( OApplicationFactory<Today> )
24
25int main( int argc, char ** argv )
26{
27 QPEApplication a(argc, argv);
28 todayApp=&a;
29
30 Today t;
31
32 t.setCaption( Today::tr("Today") );
33 a.showMainWidget(&t);
34
35 return a.exec();
36}
diff --git a/core/pim/today/plugin.cpp b/core/pim/today/plugin.cpp
deleted file mode 100644
index 349413b..0000000
--- a/core/pim/today/plugin.cpp
+++ b/dev/null
@@ -1,17 +0,0 @@
1#include "today.h"
2#include <qwidget.h>
3#include <qcombobox.h>
4#include <oappplugin.h>
5
6#define Q_BASEINSTANCE( i ) \
7 QUnknownInterface* iface = 0; \
8 i->queryInterface( IID_QUnknown, &iface ); \
9 return iface
10
11Q_EXPORT_INTERFACE()
12{
13 Today *t = new Today;
14 t->setCaption( Today::tr("Today") );
15 OAppPlugin *comp = new OAppPlugin(t);
16 Q_BASEINSTANCE( comp );
17}
diff --git a/core/pim/today/plugins/datebook/.cvsignore b/core/pim/today/plugins/datebook/.cvsignore
index 2888d4a..10cf625 100644
--- a/core/pim/today/plugins/datebook/.cvsignore
+++ b/core/pim/today/plugins/datebook/.cvsignore
@@ -1,2 +1,3 @@
1Makefile* 1Makefile*
2datebookpluginconfigbase*
2moc* 3moc*
diff --git a/core/pim/today/plugins/datebook/config.in b/core/pim/today/plugins/datebook/config.in
index 621510f..7a14438 100644
--- a/core/pim/today/plugins/datebook/config.in
+++ b/core/pim/today/plugins/datebook/config.in
@@ -1,4 +1,4 @@
1 config TODAY_DATEBOOK 1 config TODAY_DATEBOOK
2 boolean "opie-today-datebookplugin (datebook plugin)" 2 boolean "datebook"
3 default "y" 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE
diff --git a/core/pim/today/plugins/datebook/datebook.pro b/core/pim/today/plugins/datebook/datebook.pro
index bd45f71..1f75964 100644
--- a/core/pim/today/plugins/datebook/datebook.pro
+++ b/core/pim/today/plugins/datebook/datebook.pro
@@ -13,9 +13,28 @@ INCLUDEPATH += $(OPIEDIR)/include \
13DEPENDPATH += $(OPIEDIR)/include \ 13DEPENDPATH += $(OPIEDIR)/include \
14 ../ ../library 14 ../ ../library
15 15
16LIBS+= -lqpe -lopie 16LIBS+= -lqpe -lopie
17 17
18DESTDIR = $(OPIEDIR)/plugins/today 18DESTDIR = $(OPIEDIR)/plugins/today
19TARGET = todaydatebookplugin 19TARGET = todaydatebookplugin
20 20
21TRANSLATIONS = ../../../../../i18n/de/libtodaydatebookplugin.ts \
22 ../../../../../i18n/nl/libtodaydatebookplugin.ts \
23 ../../../../../i18n/xx/libtodaydatebookplugin.ts \
24 ../../../../../i18n/en/libtodaydatebookplugin.ts \
25 ../../../../../i18n/es/libtodaydatebookplugin.ts \
26 ../../../../../i18n/fr/libtodaydatebookplugin.ts \
27 ../../../../../i18n/hu/libtodaydatebookplugin.ts \
28 ../../../../../i18n/ja/libtodaydatebookplugin.ts \
29 ../../../../../i18n/ko/libtodaydatebookplugin.ts \
30 ../../../../../i18n/no/libtodaydatebookplugin.ts \
31 ../../../../../i18n/pl/libtodaydatebookplugin.ts \
32 ../../../../../i18n/pt/libtodaydatebookplugin.ts \
33 ../../../../../i18n/pt_BR/libtodaydatebookplugin.ts \
34 ../../../../../i18n/sl/libtodaydatebookplugin.ts \
35 ../../../../../i18n/zh_CN/libtodaydatebookplugin.ts \
36 ../../../../../i18n/zh_TW/libtodaydatebookplugin.ts \
37 ../../../../../i18n/it/libtodaydatebookplugin.ts \
38 ../../../../../i18n/da/libtodaydatebookplugin.ts
39
21include ( $(OPIEDIR)/include.pro ) 40include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/today/plugins/datebook/datebookevent.cpp b/core/pim/today/plugins/datebook/datebookevent.cpp
index 3c1e97a..e595047 100644
--- a/core/pim/today/plugins/datebook/datebookevent.cpp
+++ b/core/pim/today/plugins/datebook/datebookevent.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * datebookevent.cpp 2 * datebookevent.cpp
3 * 3 *
4 * copyright : (c) 2002 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 *
@@ -14,25 +14,27 @@
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17#include "datebookevent.h" 17#include "datebookevent.h"
18#include <qpe/config.h> 18#include <qpe/config.h>
19#include <qpe/timestring.h> 19#include <qpe/timestring.h>
20#include <qpe/qcopenvelope_qws.h> 20#include <qpe/qcopenvelope_qws.h>
21#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
22#include <qpe/calendar.h>
22 23
23#include <opie/odevice.h> 24#include <opie/odevice.h>
24 25
25using namespace Opie; 26using namespace Opie;
26 27
27DateBookEvent::DateBookEvent(const EffectiveEvent &ev, 28DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
28 QWidget* parent, 29 QWidget* parent,
29 bool show_location, 30 bool show_location,
30 bool show_notes, 31 bool show_notes,
32 bool timeExtraLine,
31 int maxCharClip, 33 int maxCharClip,
32 const char* name, 34 const char* name,
33 WFlags fl) : 35 WFlags fl) :
34 OClickableLabel(parent,name,fl), event(ev) { 36 OClickableLabel(parent,name,fl), event(ev) {
35 37
36 // setAlignment( AlignTop ); 38 // setAlignment( AlignTop );
37 39
38 QString msg; 40 QString msg;
@@ -47,27 +49,35 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
47 msg += " <b>" + tr("[with alarm]") +"</b>"; 49 msg += " <b>" + tr("[with alarm]") +"</b>";
48 } 50 }
49 51
50 // include location or not 52 // include location or not
51 if ( show_location ) { 53 if ( show_location ) {
52 msg += "<BR><i>" + (ev).location() + "</i>"; 54 msg += "<BR><i>" + (ev).location() + "</i>";
53 } 55 }
54 56
57 QString timeSpacer = " ";
58 if ( timeExtraLine ) {
59 timeSpacer = "<br>";
60 }
61
55 if ( ( TimeString::timeString( QTime( (ev).event().start().time() ) ) == "00:00" ) 62 if ( ( TimeString::timeString( QTime( (ev).event().start().time() ) ) == "00:00" )
56 && ( TimeString::timeString( QTime( (ev).event().end().time() ) ) == "23:59" ) ) { 63 && ( TimeString::timeString( QTime( (ev).event().end().time() ) ) == "23:59" ) ) {
57 msg += "<br>All day"; 64 msg += tr ( "All day" );
58 } else { 65 } else {
59 // start time of event 66 // start time of event
60 QDate tempDate = (ev).event().start().date(); 67// QDate tempDate = (ev).event().start().date();
61 msg += "<br>" 68 msg += timeSpacer;
62 + ampmTime( QTime( (ev).event().start().time() ) ) 69 msg += ampmTime( QTime( (ev).event().start().time() ) )
63 // end time of event 70 // end time of event
64 + "<b> - </b>" + ampmTime( QTime( (ev).event().end().time() ) ) 71 + "<b> - </b>" + ampmTime( QTime( (ev).event().end().time() ) );
65 + differDate( tempDate ); 72 }
73
74 if ( (ev).date() != QDate::currentDate() ) {
75 msg += differDate( (ev).date() /* tempDate*/ );
66 } 76 }
67 77
68 // include possible note or not 78 // include possible note or not
69 if ( show_notes ) { 79 if ( show_notes ) {
70 msg += "<br> <i>" + tr("note") + "</i>:" +( (ev).notes() ).mid( 0, maxCharClip ); 80 msg += "<br> <i>" + tr("note") + "</i>:" +( (ev).notes() ).mid( 0, maxCharClip );
71 } 81 }
72 setText( msg ); 82 setText( msg );
73 connect( this, SIGNAL( clicked() ), this, SLOT( editMe() ) ); 83 connect( this, SIGNAL( clicked() ), this, SLOT( editMe() ) );
@@ -96,42 +106,42 @@ QString DateBookEvent::ampmTime( QTime tm ) {
96 return s; 106 return s;
97 } else { 107 } else {
98 s.sprintf( "%2d:%02d", tm.hour(), tm.minute() ); 108 s.sprintf( "%2d:%02d", tm.hour(), tm.minute() );
99 return s; 109 return s;
100 } 110 }
101} 111}
102 112
103QString DateBookEvent::differDate( QDate date ) { 113QString DateBookEvent::differDate( QDate date ) {
104 QDate currentDate = QDate::currentDate(); 114// QDate currentDate = QDate::currentDate();
105 QString returnText = "<font color = #407DD9><b> "; 115 QString returnText = "<font color = #407DD9><b> ";
106 int differDate = currentDate.daysTo( date ); 116// int differDate = currentDate.daysTo( date );
107 if ( currentDate.dayOfWeek() == date.dayOfWeek() ) { 117// if ( currentDate.dayOfWeek() == date.dayOfWeek() ) {
108 returnText += "" ; 118// returnText += "" ;
109 // not working right for recurring events 119// // not working right for recurring events
110 //} else if ( differDate == 1 ) { 120// //} else if ( differDate == 1 ) {
111 //returnText += tr( "tomorrow" ); 121// //returnText += tr( "tomorrow" );
112 } else { 122// } else {
113 //returnText += tr( "in %1 days" ).arg( differDate ); 123// returnText += " [ " + Calendar::nameOfDay( date.dayOfWeek() ) + " ] ";
114 returnText += " [ " + date.dayName( date.dayOfWeek() ) + " ] "; 124// }
115 } 125 returnText += " [ " + Calendar::nameOfDay( date.dayOfWeek() ) + " ] ";
116 returnText += "</b></font>"; 126 returnText += "</b></font>";
117 return returnText; 127 return returnText;
118} 128}
119 129
120 130
121/** 131/**
122 * starts the edit dialog as known from datebook 132 * starts the edit dialog as known from datebook
123 */ 133 */
124void DateBookEvent::editEventSlot( const Event &e ) { 134void DateBookEvent::editEventSlot( const Event &e ) {
125 135
126 if ( ODevice::inst()->system() == System_Zaurus ) { 136 if ( ODevice::inst()->system() == System_Zaurus ) {
127 QCopEnvelope env( "QPE/Application/datebook", "raise()" ); 137 QCopEnvelope env( "QPE/Application/datebook", "raise()" );
128 } else { 138 } else {
129 QCopEnvelope env( "QPE/Datebook", "editEvent(int)" ); 139 QCopEnvelope env( "QPE/Application/datebook", "editEvent(int)" );
130 env << e.uid(); 140 env << e.uid();
131 } 141 }
132} 142}
133 143
134 144
135void DateBookEvent::editMe() { 145void DateBookEvent::editMe() {
136 emit editEvent( event.event() ); 146 emit editEvent( event.event() );
137} 147}
diff --git a/core/pim/today/plugins/datebook/datebookevent.h b/core/pim/today/plugins/datebook/datebookevent.h
index 8027809..1a090e3 100644
--- a/core/pim/today/plugins/datebook/datebookevent.h
+++ b/core/pim/today/plugins/datebook/datebookevent.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * datebookplugin.h 2 * datebookplugin.h
3 * 3 *
4 * copyright : (c) 2002 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 *
@@ -25,26 +25,29 @@ class DateBookEvent: public OClickableLabel {
25 25
26 Q_OBJECT 26 Q_OBJECT
27 27
28public: 28public:
29 DateBookEvent( const EffectiveEvent &ev, 29 DateBookEvent( const EffectiveEvent &ev,
30 QWidget* parent = 0, 30 QWidget* parent = 0,
31 bool show_location = 0, 31 bool show_location = 0,
32 bool show_notes = 0, 32 bool show_notes = 0,
33 bool timeExtraLine = 0,
33 int maxCharClip = 0, 34 int maxCharClip = 0,
34 const char* name = 0, 35 const char* name = 0,
35 WFlags fl = 0 ); 36 WFlags fl = 0 );
36 ~DateBookEvent(); 37 ~DateBookEvent();
38
37 signals: 39 signals:
38 void editEvent( const Event &e ); 40 void editEvent( const Event &e );
39 41
40private slots: 42private slots:
41 void editEventSlot( const Event &e ); 43 void editEventSlot( const Event &e );
42 void editMe(); 44 void editMe();
45
43 private: 46 private:
44 47
45 QString ampmTime( QTime ); 48 QString ampmTime( QTime );
46 QString differDate( QDate date ); 49 QString differDate( QDate date );
47 const EffectiveEvent event; 50 const EffectiveEvent event;
48 bool ampm; 51 bool ampm;
49}; 52};
50 53
diff --git a/core/pim/today/plugins/datebook/datebookplugin.cpp b/core/pim/today/plugins/datebook/datebookplugin.cpp
index 4e650ee..f77e440 100644
--- a/core/pim/today/plugins/datebook/datebookplugin.cpp
+++ b/core/pim/today/plugins/datebook/datebookplugin.cpp
@@ -64,8 +64,15 @@ bool DatebookPlugin::excludeFromRefresh() const {
64 return false; 64 return false;
65} 65}
66 66
67void DatebookPlugin::refresh() { 67void DatebookPlugin::refresh() {
68 if ( m_widget ) { 68 if ( m_widget ) {
69 m_widget->refresh(); 69 m_widget->refresh();
70 } 70 }
71} 71}
72
73void DatebookPlugin::reinitialize() {
74 if ( m_widget ) {
75 m_widget->reinitialize();
76 }
77}
78
diff --git a/core/pim/today/plugins/datebook/datebookplugin.h b/core/pim/today/plugins/datebook/datebookplugin.h
index db899e8..890c59b 100644
--- a/core/pim/today/plugins/datebook/datebookplugin.h
+++ b/core/pim/today/plugins/datebook/datebookplugin.h
@@ -34,15 +34,16 @@ public:
34 double versionNumber() const; 34 double versionNumber() const;
35 QString pixmapNameWidget() const; 35 QString pixmapNameWidget() const;
36 QWidget* widget( QWidget *); 36 QWidget* widget( QWidget *);
37 QString pixmapNameConfig() const; 37 QString pixmapNameConfig() const;
38 TodayConfigWidget* configWidget( QWidget *); 38 TodayConfigWidget* configWidget( QWidget *);
39 QString appName() const; 39 QString appName() const;
40 bool excludeFromRefresh() const; 40 bool excludeFromRefresh() const;
41 void refresh(); 41 void refresh();
42 void reinitialize();
42 43
43 private: 44 private:
44 QGuardedPtr<DatebookPluginWidget> m_widget; 45 QGuardedPtr<DatebookPluginWidget> m_widget;
45}; 46};
46 47
47 48
48#endif 49#endif
diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp
index 1970654..9e95bcd 100644
--- a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp
+++ b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp
@@ -25,92 +25,110 @@
25#include <qtl.h> 25#include <qtl.h>
26 26
27DatebookPluginWidget::DatebookPluginWidget( QWidget *parent, const char* name ) 27DatebookPluginWidget::DatebookPluginWidget( QWidget *parent, const char* name )
28 : QWidget(parent, name ) { 28 : QWidget(parent, name ) {
29 29
30 db = 0l; 30 db = 0l;
31 m_layoutDates = 0l; 31 m_layoutDates = 0l;
32 32
33 if ( db ) {
34 delete db;
35 }
36 db = new DateBookDB;
37
38 if ( m_layoutDates ) { 33 if ( m_layoutDates ) {
39 delete m_layoutDates; 34 delete m_layoutDates;
40 } 35 }
41 m_layoutDates = new QVBoxLayout( this ); 36 m_layoutDates = new QVBoxLayout( this );
42 m_layoutDates->setAutoAdd( true ); 37 m_layoutDates->setAutoAdd( true );
43 38
44 m_eventsList.setAutoDelete( true ); 39 m_eventsList.setAutoDelete( true );
45 40
46 readConfig(); 41 readConfig();
47 getDates(); 42 getDates();
48 m_layoutDates->addStretch(5);
49} 43}
50 44
51DatebookPluginWidget::~DatebookPluginWidget() { 45DatebookPluginWidget::~DatebookPluginWidget() {
52 delete db; 46 delete db;
53 delete m_layoutDates; 47 delete m_layoutDates;
54} 48}
55 49
56 50
57void DatebookPluginWidget::readConfig() { 51void DatebookPluginWidget::readConfig() {
58 Config cfg( "todaydatebookplugin" ); 52 Config cfg( "todaydatebookplugin" );
59 cfg.setGroup( "config" ); 53 cfg.setGroup( "config" );
60 m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); 54 m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 );
61 m_show_location = cfg.readNumEntry( "showlocation", 1 ); 55 m_show_location = cfg.readNumEntry( "showlocation", 1 );
62 m_show_notes = cfg.readNumEntry( "shownotes", 0 ); 56 m_show_notes = cfg.readNumEntry( "shownotes", 0 );
63 m_onlyLater = cfg.readNumEntry( "onlylater", 1 ); 57 m_onlyLater = cfg.readNumEntry( "onlylater", 1 );
64 m_moreDays = cfg.readNumEntry( "moredays", 0 ); 58 m_moreDays = cfg.readNumEntry( "moredays", 0 );
59 m_timeExtraLine = cfg.readNumEntry( "timeextraline", 1 );
60}
61
62void DatebookPluginWidget::reinitialize() {
63 readConfig();
64 refresh();
65} 65}
66 66
67void DatebookPluginWidget::refresh() { 67void DatebookPluginWidget::refresh() {
68 m_eventsList.clear(); 68 m_eventsList.clear();
69 69
70 if ( m_layoutDates ) { 70 if ( m_layoutDates ) {
71 delete m_layoutDates; 71 delete m_layoutDates;
72 } 72 }
73 m_layoutDates = new QVBoxLayout( this ); 73 m_layoutDates = new QVBoxLayout( this );
74 m_layoutDates->setAutoAdd( true ); 74 m_layoutDates->setAutoAdd( true );
75 75
76 getDates(); 76 getDates();
77 m_layoutDates->addStretch(5);
78} 77}
79 78
80/** 79/**
81 * Get all events that are in the datebook xml file for today 80 * Get all events that are in the datebook xml file for today
82 */ 81 */
83void DatebookPluginWidget::getDates() { 82void DatebookPluginWidget::getDates() {
84 83
84
85 if ( db ) {
86 delete db;
87 }
88 db = new DateBookDB;
89
85 QDate date = QDate::currentDate(); 90 QDate date = QDate::currentDate();
86 QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date.addDays( m_moreDays ) ); 91 QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date.addDays( m_moreDays ) );
87 qBubbleSort( list ); 92 qBubbleSort( list );
88 int count = 0; 93 int count = 0;
89 94
90 if ( list.count() > 0 ) { 95 if ( list.count() > 0 ) {
91 96
92 for ( QValueList<EffectiveEvent>::ConstIterator it = list.begin(); it != list.end(); ++it ) { 97 for ( QValueList<EffectiveEvent>::ConstIterator it = list.begin(); it != list.end(); ++it ) {
93 98
94 if ( count < m_max_lines_meet ) { 99 if ( count < m_max_lines_meet ) {
95 if ( !m_onlyLater ) { 100 if ( !m_onlyLater ) {
96 count++; 101 count++;
97 DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); 102 DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes, m_timeExtraLine );
98 m_eventsList.append( l );
99 l->show();
100 QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) );
101 } else if ( QDateTime::currentDateTime() <= (*it).event().end() || (*it).event().start().date() != date ) {
102 count++;
103 // show only later appointments
104 DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes );
105 m_eventsList.append( l ); 103 m_eventsList.append( l );
106 l->show(); 104 l->show();
107 QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) ); 105 QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) );
108 } 106 } else {
107 if ( ( QDateTime::currentDateTime() <= (*it).event().end() )
108 // Show events which span over many days and are not elapsed.
109 || ( ( (*it).event().start().date() != date ) && ( QDateTime::currentDateTime() <= (*it).event().end() ) )
110 // Show repeated event for today that is not elapsed.
111 || ( ( (*it).event().repeatType() != Event::NoRepeat )
112 && ( ( date.dayOfWeek() == (*it).date().dayOfWeek() )
113 && ( QTime::currentTime() < (*it).event().start().time() ) ) )
114 // Show repeated event for next days.
115 || ( ( (*it).event().repeatType() != Event::NoRepeat )
116 && ( date.dayOfWeek() != (*it).date().dayOfWeek() ) )
117 )
118 {
119 count++;
120 // show only later appointments
121 DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes, m_timeExtraLine );
122 m_eventsList.append( l );
123 l->show();
124 QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) );
125 }
126 }
109 } 127 }
110 } 128 }
111 if ( m_onlyLater && count == 0 ) { 129 if ( m_onlyLater && count == 0 ) {
112 QLabel* noMoreEvents = new QLabel( this ); 130 QLabel* noMoreEvents = new QLabel( this );
113 m_eventsList.append( noMoreEvents ); 131 m_eventsList.append( noMoreEvents );
114 noMoreEvents->show(); 132 noMoreEvents->show();
115 noMoreEvents->setText( QObject::tr( "No more appointments today" ) ); 133 noMoreEvents->setText( QObject::tr( "No more appointments today" ) );
116 } 134 }
diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.h b/core/pim/today/plugins/datebook/datebookpluginwidget.h
index 35d43cd..8988073 100644
--- a/core/pim/today/plugins/datebook/datebookpluginwidget.h
+++ b/core/pim/today/plugins/datebook/datebookpluginwidget.h
@@ -29,16 +29,17 @@
29class DatebookPluginWidget : public QWidget { 29class DatebookPluginWidget : public QWidget {
30 30
31 Q_OBJECT 31 Q_OBJECT
32 32
33public: 33public:
34 DatebookPluginWidget( QWidget *parent, const char *name ); 34 DatebookPluginWidget( QWidget *parent, const char *name );
35 ~DatebookPluginWidget(); 35 ~DatebookPluginWidget();
36 void refresh(); 36 void refresh();
37 void reinitialize();
37 38
38private: 39private:
39 DateBookDB* db; 40 DateBookDB* db;
40 QGuardedPtr<QVBoxLayout> m_layoutDates; 41 QGuardedPtr<QVBoxLayout> m_layoutDates;
41 QList<QWidget> m_eventsList; 42 QList<QWidget> m_eventsList;
42 void readConfig(); 43 void readConfig();
43 void getDates(); 44 void getDates();
44 45
@@ -47,12 +48,13 @@ private:
47 int m_max_lines_meet; 48 int m_max_lines_meet;
48 // If location is to be showed too, 1 to activate it. 49 // If location is to be showed too, 1 to activate it.
49 bool m_show_location; 50 bool m_show_location;
50 // if notes should be shown 51 // if notes should be shown
51 bool m_show_notes; 52 bool m_show_notes;
52 // should only later appointments be shown or all for the current day. 53 // should only later appointments be shown or all for the current day.
53 bool m_onlyLater; 54 bool m_onlyLater;
54 int m_moreDays; 55 int m_moreDays;
55 56 // true if time of an appointment should be an extra line
57 bool m_timeExtraLine;
56}; 58};
57 59
58#endif 60#endif
diff --git a/core/pim/today/plugins/mail/config.in b/core/pim/today/plugins/mail/config.in
index 6f3e06d..6f4450f 100644
--- a/core/pim/today/plugins/mail/config.in
+++ b/core/pim/today/plugins/mail/config.in
@@ -1,4 +1,4 @@
1 config TODAY_MAIL 1 config TODAY_MAIL
2 boolean "opie-today-mailplugin (mail plugin)" 2 boolean "mail"
3 default "y" 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE
diff --git a/core/pim/today/plugins/mail/mail.pro b/core/pim/today/plugins/mail/mail.pro
index 60ed87d..70c484d 100644
--- a/core/pim/today/plugins/mail/mail.pro
+++ b/core/pim/today/plugins/mail/mail.pro
@@ -1,19 +1,37 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG -= moc 2CONFIG -= moc
3CONFIG += qt plugin release 3CONFIG += qt release
4 4
5# Input 5# Input
6HEADERS = mailplugin.h mailpluginimpl.h mailpluginwidget.h 6HEADERS = mailplugin.h mailpluginimpl.h mailpluginwidget.h
7SOURCES = mailplugin.cpp mailpluginimpl.cpp mailpluginwidget.cpp 7SOURCES = mailplugin.cpp mailpluginimpl.cpp mailpluginwidget.cpp
8 8
9INCLUDEPATH += $(OPIEDIR)/include \ 9INCLUDEPATH += $(OPIEDIR)/include \
10 ../ ../library 10 ../ ../library
11DEPENDPATH += $(OPIEDIR)/include \ 11DEPENDPATH += $(OPIEDIR)/include \
12 ../ ../library 12 ../ ../library
13 13
14LIBS+= -lqpe -lopie 14LIBS+= -lqpe -lopie
15 15
16DESTDIR = $(OPIEDIR)/plugins/today 16DESTDIR = $(OPIEDIR)/plugins/today
17TARGET = todaymailplugin 17TARGET = todaymailplugin
18 18
19TRANSLATIONS = ../../../../../i18n/de/libtodaymailplugin.ts \
20 ../../../../../i18n/nl/libtodaymailplugin.ts \
21 ../../../../../i18n/xx/libtodaymailplugin.ts \
22 ../../../../../i18n/en/libtodaymailplugin.ts \
23 ../../../../../i18n/es/libtodaymailplugin.ts \
24 ../../../../../i18n/fr/libtodaymailplugin.ts \
25 ../../../../../i18n/hu/libtodaymailplugin.ts \
26 ../../../../../i18n/ja/libtodaymailplugin.ts \
27 ../../../../../i18n/ko/libtodaymailplugin.ts \
28 ../../../../../i18n/no/libtodaymailplugin.ts \
29 ../../../../../i18n/pl/libtodaymailplugin.ts \
30 ../../../../../i18n/pt/libtodaymailplugin.ts \
31 ../../../../../i18n/pt_BR/libtodaymailplugin.ts \
32 ../../../../../i18n/sl/libtodaymailplugin.ts \
33 ../../../../../i18n/zh_CN/libtodaymailplugin.ts \
34 ../../../../../i18n/zh_TW/libtodaymailplugin.ts \
35 ../../../../../i18n/it/libtodaymailplugin.ts \
36 ../../../../../i18n/da/libtodaymailplugin.ts
19include ( $(OPIEDIR)/include.pro ) 37include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/today/plugins/mail/mailplugin.cpp b/core/pim/today/plugins/mail/mailplugin.cpp
index 9430c30..bf30538 100644
--- a/core/pim/today/plugins/mail/mailplugin.cpp
+++ b/core/pim/today/plugins/mail/mailplugin.cpp
@@ -62,8 +62,11 @@ bool MailPlugin::excludeFromRefresh() const {
62 return false; 62 return false;
63} 63}
64 64
65void MailPlugin::refresh() { 65void MailPlugin::refresh() {
66 if ( m_widget ) { 66 if ( m_widget ) {
67 m_widget->refresh(); 67 m_widget->refresh();
68 } 68 }
69} 69}
70
71void MailPlugin::reinitialize() {
72}
diff --git a/core/pim/today/plugins/mail/mailplugin.h b/core/pim/today/plugins/mail/mailplugin.h
index 295a88c..5b93314 100644
--- a/core/pim/today/plugins/mail/mailplugin.h
+++ b/core/pim/today/plugins/mail/mailplugin.h
@@ -36,14 +36,15 @@ public:
36 double versionNumber() const; 36 double versionNumber() const;
37 QString pixmapNameWidget() const; 37 QString pixmapNameWidget() const;
38 QWidget* widget(QWidget *); 38 QWidget* widget(QWidget *);
39 QString pixmapNameConfig() const; 39 QString pixmapNameConfig() const;
40 TodayConfigWidget* configWidget(QWidget *); 40 TodayConfigWidget* configWidget(QWidget *);
41 QString appName() const; 41 QString appName() const;
42 bool excludeFromRefresh() const; 42 bool excludeFromRefresh() const;
43 void refresh(); 43 void refresh();
44 void reinitialize();
44 45
45 private: 46 private:
46 QGuardedPtr<MailPluginWidget> m_widget; 47 QGuardedPtr<MailPluginWidget> m_widget;
47}; 48};
48 49
49#endif 50#endif
diff --git a/core/pim/today/plugins/mail/mailpluginwidget.cpp b/core/pim/today/plugins/mail/mailpluginwidget.cpp
index 3c1d908..646996a 100644
--- a/core/pim/today/plugins/mail/mailpluginwidget.cpp
+++ b/core/pim/today/plugins/mail/mailpluginwidget.cpp
@@ -24,17 +24,17 @@ MailPluginWidget::MailPluginWidget( QWidget *parent, const char* name)
24 24
25 m_mailLabel = 0l; 25 m_mailLabel = 0l;
26 m_layout = 0l; 26 m_layout = 0l;
27 27
28 if ( m_mailLabel ) { 28 if ( m_mailLabel ) {
29 delete m_mailLabel; 29 delete m_mailLabel;
30 } 30 }
31 m_mailLabel = new OClickableLabel( this ); 31 m_mailLabel = new OClickableLabel( this );
32 m_mailLabel->setMaximumHeight( 15 ); 32 //m_mailLabel->setMaximumHeight( 15 );
33 connect( m_mailLabel, SIGNAL( clicked() ), this, SLOT( startMail() ) ); 33 connect( m_mailLabel, SIGNAL( clicked() ), this, SLOT( startMail() ) );
34 34
35 if ( m_layout ) { 35 if ( m_layout ) {
36 delete m_layout; 36 delete m_layout;
37 } 37 }
38 m_layout = new QHBoxLayout( this ); 38 m_layout = new QHBoxLayout( this );
39 m_layout->setAutoAdd( true ); 39 m_layout->setAutoAdd( true );
40 40
diff --git a/core/pim/today/plugins/mail/opie-today-mailplugin.control b/core/pim/today/plugins/mail/opie-today-mailplugin.control
index 1419557..e69de29 100644
--- a/core/pim/today/plugins/mail/opie-today-mailplugin.control
+++ b/core/pim/today/plugins/mail/opie-today-mailplugin.control
@@ -1,9 +0,0 @@
1Package: opie-today-mailplugin
2Files: plugins/today/libtodaymailplugin.so*
3Priority: optional
4Section: opie/applications
5Maintainer: Maximilian Reiss <harlekin@handhelds.org>
6Architecture: arm
7Version: $QPE_VERSION-$SUB_VERSION
8Depends: libqte2, opie-today
9Description: Mail plugin for today
diff --git a/core/pim/today/plugins/todolist/.cvsignore b/core/pim/today/plugins/todolist/.cvsignore
index 2888d4a..b9284b8 100644
--- a/core/pim/today/plugins/todolist/.cvsignore
+++ b/core/pim/today/plugins/todolist/.cvsignore
@@ -1,2 +1,3 @@
1Makefile* 1Makefile*
2todopluginconfigbase*
2moc* 3moc*
diff --git a/core/pim/today/plugins/todolist/config.in b/core/pim/today/plugins/todolist/config.in
index c862f37..48ba226 100644
--- a/core/pim/today/plugins/todolist/config.in
+++ b/core/pim/today/plugins/todolist/config.in
@@ -1,4 +1,4 @@
1 config TODAY_TODOLIST 1 config TODAY_TODOLIST
2 boolean "opie-today-todolistplugin (shows the next todo entries)" 2 boolean "todolist"
3 default "y" 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE
diff --git a/core/pim/today/plugins/todolist/todolist.pro b/core/pim/today/plugins/todolist/todolist.pro
index 0343223..6a63f4e 100644
--- a/core/pim/today/plugins/todolist/todolist.pro
+++ b/core/pim/today/plugins/todolist/todolist.pro
@@ -14,9 +14,28 @@ INCLUDEPATH += $(OPIEDIR)/include \
14DEPENDPATH += $(OPIEDIR)/include \ 14DEPENDPATH += $(OPIEDIR)/include \
15 ../ ../library 15 ../ ../library
16 16
17LIBS+= -lqpe -lopie 17LIBS+= -lqpe -lopie
18 18
19DESTDIR = $(OPIEDIR)/plugins/today 19DESTDIR = $(OPIEDIR)/plugins/today
20TARGET = todaytodolistplugin 20TARGET = todaytodolistplugin
21 21
22TRANSLATIONS = ../../../../../i18n/de/libtodaytodolistplugin.ts \
23 ../../../../../i18n/nl/libtodaytodolistplugin.ts \
24 ../../../../../i18n/xx/libtodaytodolistplugin.ts \
25 ../../../../../i18n/en/libtodaytodolistplugin.ts \
26 ../../../../../i18n/es/libtodaytodolistplugin.ts \
27 ../../../../../i18n/fr/libtodaytodolistplugin.ts \
28 ../../../../../i18n/hu/libtodaytodolistplugin.ts \
29 ../../../../../i18n/ja/libtodaytodolistplugin.ts \
30 ../../../../../i18n/ko/libtodaytodolistplugin.ts \
31 ../../../../../i18n/no/libtodaytodolistplugin.ts \
32 ../../../../../i18n/pl/libtodaytodolistplugin.ts \
33 ../../../../../i18n/pt/libtodaytodolistplugin.ts \
34 ../../../../../i18n/pt_BR/libtodaytodolistplugin.ts \
35 ../../../../../i18n/sl/libtodaytodolistplugin.ts \
36 ../../../../../i18n/zh_CN/libtodaytodolistplugin.ts \
37 ../../../../../i18n/zh_TW/libtodaytodolistplugin.ts \
38 ../../../../../i18n/it/libtodaytodolistplugin.ts \
39 ../../../../../i18n/da/libtodaytodolistplugin.ts
40
22include ( $(OPIEDIR)/include.pro ) 41include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/today/plugins/todolist/todoplugin.cpp b/core/pim/today/plugins/todolist/todoplugin.cpp
index 7eeb8f1..801de9d 100644
--- a/core/pim/today/plugins/todolist/todoplugin.cpp
+++ b/core/pim/today/plugins/todolist/todoplugin.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * todoplugin.cpp 2 * todoplugin.cpp
3 * 3 *
4 * copyright : (c) 2002 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 *
@@ -63,8 +63,14 @@ bool TodolistPlugin::excludeFromRefresh() const {
63 return false; 63 return false;
64} 64}
65 65
66void TodolistPlugin::refresh() { 66void TodolistPlugin::refresh() {
67 if ( m_widget ) { 67 if ( m_widget ) {
68 m_widget->refresh(); 68 m_widget->refresh();
69 } 69 }
70} 70}
71
72void TodolistPlugin::reinitialize() {
73 if ( m_widget ) {
74 m_widget->reinitialize();
75 }
76}
diff --git a/core/pim/today/plugins/todolist/todoplugin.h b/core/pim/today/plugins/todolist/todoplugin.h
index d7b51b4..f68162f 100644
--- a/core/pim/today/plugins/todolist/todoplugin.h
+++ b/core/pim/today/plugins/todolist/todoplugin.h
@@ -36,14 +36,15 @@ public:
36 double versionNumber() const; 36 double versionNumber() const;
37 QString pixmapNameWidget() const; 37 QString pixmapNameWidget() const;
38 QWidget* widget(QWidget *); 38 QWidget* widget(QWidget *);
39 QString pixmapNameConfig() const; 39 QString pixmapNameConfig() const;
40 TodayConfigWidget* configWidget(QWidget *); 40 TodayConfigWidget* configWidget(QWidget *);
41 QString appName() const; 41 QString appName() const;
42 bool excludeFromRefresh() const; 42 bool excludeFromRefresh() const;
43 void refresh(); 43 void refresh();
44 void reinitialize();
44 45
45 private: 46 private:
46 QGuardedPtr<TodolistPluginWidget> m_widget; 47 QGuardedPtr<TodolistPluginWidget> m_widget;
47}; 48};
48 49
49#endif 50#endif
diff --git a/core/pim/today/plugins/todolist/todopluginwidget.cpp b/core/pim/today/plugins/todolist/todopluginwidget.cpp
index 15081ec..0364f94 100644
--- a/core/pim/today/plugins/todolist/todopluginwidget.cpp
+++ b/core/pim/today/plugins/todolist/todopluginwidget.cpp
@@ -58,58 +58,65 @@ TodolistPluginWidget::~TodolistPluginWidget() {
58 58
59void TodolistPluginWidget::readConfig() { 59void TodolistPluginWidget::readConfig() {
60 Config cfg( "todaytodoplugin" ); 60 Config cfg( "todaytodoplugin" );
61 cfg.setGroup( "config" ); 61 cfg.setGroup( "config" );
62 m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); 62 m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 );
63 m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); 63 m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 );
64} 64}
65 65
66void TodolistPluginWidget:: refresh() { 66void TodolistPluginWidget:: refresh() {
67 todo->reload();
68 getTodo();
69}
70
71void TodolistPluginWidget::reinitialize() {
72 readConfig();
73 todo->reload();
67 getTodo(); 74 getTodo();
68} 75}
69 76
70/** 77/**
71 * Get the todos 78 * Get the todos
72 */ 79 */
73void TodolistPluginWidget::getTodo() { 80void TodolistPluginWidget::getTodo() {
74 81
75 82
76 QString output; 83 QString output;
77 QString tmpout; 84 QString tmpout;
78 int count = 0; 85 int count = 0;
79 int ammount = 0; 86 int ammount = 0;
80 87
81 // get overdue todos first 88 // get overdue todos first
82 m_list = todo->overDue(); 89 m_list = todo->sorted( true, 3, 2, 1);
83 90
84 for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { 91 for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) {
85 if (!(*m_it).isCompleted() && ( ammount < m_maxLinesTask ) ) { 92 if (!(*m_it).isCompleted() && ( ammount < m_maxLinesTask ) ) {
86 QString desc = (*m_it).summary(); 93 QString desc = (*m_it).summary();
87 if( desc.isEmpty() ) { 94 if( desc.isEmpty() ) {
88 desc = (*m_it).description(); 95 desc = (*m_it).description();
89 } 96 }
90 tmpout += "<font color=#e00000><b>-" + desc.mid( 0, m_maxCharClip ) + "</b></font><br>"; 97 tmpout += "<font color=#e00000><b>[" + QString("%1").arg((*m_it).priority() ) + "]" + desc.mid( 0, m_maxCharClip ) + "</b></font><br>";
91 ammount++ ; 98 ammount++ ;
92 } 99 }
93 } 100 }
94 101
95 // get total number of still open todos 102 // get total number of still open todos
96 m_list = todo->sorted( true, 1, 4, 1); 103 m_list = todo->sorted( true, 1, 4, 1);
97 104
98 for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { 105 for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) {
99 count +=1; 106 count +=1;
100 // not the overdues, we allready got them, and not if we are 107 // not the overdues, we allready got them, and not if we are
101 // over the maxlines 108 // over the maxlines
102 if ( !(*m_it).isOverdue() && ( ammount < m_maxLinesTask ) ) { 109 if ( !(*m_it).isOverdue() && ( ammount < m_maxLinesTask ) ) {
103 QString desc = (*m_it).summary(); 110 QString desc = (*m_it).summary();
104 if( desc.isEmpty() ) { 111 if( desc.isEmpty() ) {
105 desc = (*m_it).description(); 112 desc = (*m_it).description();
106 } 113 }
107 tmpout += "<b>-</b>" + desc.mid( 0, m_maxCharClip ) + "<br>"; 114 tmpout += "<b> [" + QString("%1").arg((*m_it).priority() ) + "] </b>" + desc.mid( 0, m_maxCharClip ) + "<br>";
108 ammount++; 115 ammount++;
109 } 116 }
110 } 117 }
111 118
112 if ( count > 0 ) { 119 if ( count > 0 ) {
113 if( count == 1 ) { 120 if( count == 1 ) {
114 output += QObject::tr( "There is <b> 1</b> active task: <br>" ); 121 output += QObject::tr( "There is <b> 1</b> active task: <br>" );
115 } else { 122 } else {
diff --git a/core/pim/today/plugins/todolist/todopluginwidget.h b/core/pim/today/plugins/todolist/todopluginwidget.h
index 0db65c4..9cac43d 100644
--- a/core/pim/today/plugins/todolist/todopluginwidget.h
+++ b/core/pim/today/plugins/todolist/todopluginwidget.h
@@ -27,16 +27,17 @@ class TodolistPluginWidget : public QWidget {
27 27
28 Q_OBJECT 28 Q_OBJECT
29 29
30public: 30public:
31 TodolistPluginWidget( QWidget *parent, const char *name ); 31 TodolistPluginWidget( QWidget *parent, const char *name );
32 ~TodolistPluginWidget(); 32 ~TodolistPluginWidget();
33 33
34 void refresh(); 34 void refresh();
35 void reinitialize();
35 36
36protected slots: 37protected slots:
37 void startTodolist(); 38 void startTodolist();
38 39
39private: 40private:
40 OClickableLabel *todoLabel; 41 OClickableLabel *todoLabel;
41 QVBoxLayout* layoutTodo; 42 QVBoxLayout* layoutTodo;
42 43
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index dd8d59b..d4a0ae6 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -187,22 +187,17 @@ void Today::loadPlugins() {
187 delete (*tit).guiBox; 187 delete (*tit).guiBox;
188 (*tit).library->unload(); 188 (*tit).library->unload();
189 delete (*tit).library; 189 delete (*tit).library;
190 } 190 }
191 pluginList.clear(); 191 pluginList.clear();
192 } 192 }
193 193
194 QString path = QPEApplication::qpeDir() + "/plugins/today"; 194 QString path = QPEApplication::qpeDir() + "/plugins/today";
195 qWarning("Searching for Plugins in: %s", path.latin1());
196#ifdef Q_OS_MACX
197 QDir dir( path, "lib*.dylib" );
198#else
199 QDir dir( path, "lib*.so" ); 195 QDir dir( path, "lib*.so" );
200#endif
201 196
202 QStringList list = dir.entryList(); 197 QStringList list = dir.entryList();
203 QStringList::Iterator it; 198 QStringList::Iterator it;
204 199
205 // QMap<QString, TodayPlugin> tempList; 200 // QMap<QString, TodayPlugin> tempList;
206 201
207 for ( it = list.begin(); it != list.end(); ++it ) { 202 for ( it = list.begin(); it != list.end(); ++it ) {
208 QInterfacePtr<TodayPluginInterface> iface; 203 QInterfacePtr<TodayPluginInterface> iface;
@@ -215,32 +210,28 @@ void Today::loadPlugins() {
215 210
216 TodayPlugin plugin; 211 TodayPlugin plugin;
217 plugin.library = lib; 212 plugin.library = lib;
218 plugin.iface = iface; 213 plugin.iface = iface;
219 plugin.name = QString(*it); 214 plugin.name = QString(*it);
220 215
221 QString type = (*it).left( (*it).find(".") ); 216 QString type = (*it).left( (*it).find(".") );
222 217
223 // grr, sharp rom does not know Global::languageList(); 218 QString lang;
224 // QStringList langs = Global::languageList(); 219 Config config("locale");
225 QString tfn = QPEApplication::qpeDir() + "/i18n/"; 220 config.setGroup("Language");
226 QDir langDir = tfn; 221 lang = config.readEntry( "Language", "en" );
227 QStringList langs = langDir.entryList("*", QDir::Dirs ); 222
228 223 qDebug( "Languages: " + lang );
229 for (QStringList::ConstIterator lit = langs.begin(); lit!=langs.end(); ++lit) { 224 QTranslator * trans = new QTranslator( qApp );
230 QString lang = *lit; 225 QString tfn = QPEApplication::qpeDir()+"/i18n/" + lang + "/" + type + ".qm";
231 qDebug( "Languages: " + lang ); 226 if ( trans->load( tfn ) ) {
232 QTranslator * trans = new QTranslator( qApp ); 227 qApp->installTranslator( trans );
233 QString tfn = QPEApplication::qpeDir()+"/i18n/" + lang + "/" + type + ".qm"; 228 } else {
234 if ( trans->load( tfn ) ) { 229 delete trans;
235 qApp->installTranslator( trans );
236 } else {
237 delete trans;
238 }
239 } 230 }
240 231
241 232
242 // find out if plugins should be shown 233 // find out if plugins should be shown
243 if ( m_excludeApplets.grep( *it ).isEmpty() ) { 234 if ( m_excludeApplets.grep( *it ).isEmpty() ) {
244 plugin.active = true; 235 plugin.active = true;
245 } else { 236 } else {
246 plugin.active = false; 237 plugin.active = false;
diff --git a/core/pim/today/today.pro b/core/pim/today/today.pro
index 03ee795..2968e6a 100644
--- a/core/pim/today/today.pro
+++ b/core/pim/today/today.pro
@@ -1,11 +1,14 @@
1 CONFIG += qt warn on release quick-app 1 CONFIG += qt warn on release quick-app
2 2
3 HEADERS = today.h todaybase.h todayconfig.h 3 HEADERS = today.h todaybase.h todayconfig.h
4 SOURCES = today.cpp todaybase.cpp todayconfig.cpp 4 SOURCES = today.cpp todaybase.cpp todayconfig.cpp main.cpp
5INTERFACES = todayconfigmiscbase.ui
6
5 INCLUDEPATH+= $(OPIEDIR)/include 7 INCLUDEPATH+= $(OPIEDIR)/include
6 DEPENDPATH+= $(OPIEDIR)/include 8 DEPENDPATH+= $(OPIEDIR)/include
7LIBS += -lqpe -lopie 9LIBS += -lqpe -lopie
8 INTERFACES= 10
9 TARGET = today 11 TARGET = today
10 12
11include ( $(OPIEDIR)/include.pro ) 13include ( $(OPIEDIR)/include.pro )
14}
diff --git a/core/pim/today/todayconfig.cpp b/core/pim/today/todayconfig.cpp
index a60f1d2..bfb5ec6 100644
--- a/core/pim/today/todayconfig.cpp
+++ b/core/pim/today/todayconfig.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * todayconfig.cpp 2 * todayconfig.cpp
3 * 3 *
4 * copyright : (c) 2002 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 *
@@ -71,64 +71,23 @@ TodayConfig::TodayConfig( QWidget* parent, const char* name, bool modal )
71 m_appletListView->setSorting( -1 ); 71 m_appletListView->setSorting( -1 );
72 QWhatsThis::add( m_appletListView, tr( "Check a checkbox to activate/deactivate a plugin or use the arrow buttons on the right to change the appearance order" ) ); 72 QWhatsThis::add( m_appletListView, tr( "Check a checkbox to activate/deactivate a plugin or use the arrow buttons on the right to change the appearance order" ) );
73 QVBox *vbox1 = new QVBox( hbox1 ); 73 QVBox *vbox1 = new QVBox( hbox1 );
74 new ToolButton( vbox1, tr( "Move Up" ), "up", this , SLOT( moveSelectedUp() ) ); 74 new ToolButton( vbox1, tr( "Move Up" ), "up", this , SLOT( moveSelectedUp() ) );
75 new ToolButton( vbox1, tr( "Move Down" ), "down", this , SLOT( moveSelectedDown() ) ); 75 new ToolButton( vbox1, tr( "Move Down" ), "down", this , SLOT( moveSelectedDown() ) );
76 tab2Layout->addWidget( hbox1 ); 76 tab2Layout->addWidget( hbox1 );
77 TabWidget3->addTab( tab_2, "pass", tr( "active/order" ) ); 77 TabWidget3->addTab( tab_2, "pass", tr( "active/order" ) );
78 78
79 // Misc tab
79 tab_3 = new QWidget( TabWidget3, "tab_3" ); 80 tab_3 = new QWidget( TabWidget3, "tab_3" );
80 QVBoxLayout *tab3Layout = new QVBoxLayout( tab_3 ); 81 QVBoxLayout *tab3Layout = new QVBoxLayout( tab_3 );
81 tab3Layout->setMargin( 20 ); 82
82 QHBox *hbox_auto = new QHBox( tab_3 ); 83 m_guiMisc = new TodayConfigMiscBase( tab_3 );
83 TextLabel2 = new QLabel( hbox_auto, "AutoStart" ); 84
84 TextLabel2->setText( tr( "autostart on \nresume?\n (Opie only)" ) ); 85 tab3Layout->addWidget( m_guiMisc );
85 QWhatsThis::add( TextLabel2 , tr( "Check this if today should be autostarted on resume." ) );
86 CheckBoxAuto = new QCheckBox( hbox_auto, "CheckBoxAuto" );
87 QWhatsThis::add( CheckBoxAuto, tr( "Check this if today should be autostarted on resume." ) );
88
89 QHBox *hbox_hide = new QHBox( tab_3 );
90 TextLabel4 = new QLabel( hbox_hide, "HideBanner" );
91 TextLabel4->setText( tr( "Tiny Banner" ) );
92 //QWhatsThis::add( TextLabel2 , tr( "Check this if today should be autostarted on resume." ) );
93 CheckBoxHide = new QCheckBox( hbox_hide, "CheckBoxHide" );
94 // QWhatsThis::add( CheckBoxAuto, tr( "Check this if today should be autostarted on resume." ) );
95
96 QHBox *hbox_inactive = new QHBox( tab_3 );
97 TimeLabel = new QLabel( hbox_inactive, "TimeLabel" );
98 TimeLabel->setText( tr( "minutes inactive" ) );
99 QWhatsThis::add( TimeLabel , tr( "How many minutes has the PDA been suspended before the autostart feature kicks in on resume" ) );
100 SpinBoxTime = new QSpinBox( hbox_inactive, "TimeSpinner" );
101 SpinBoxTime->setMaxValue ( 1440 );
102 QWhatsThis::add( SpinBoxTime , tr( "How many minutes has the PDA been suspended before the autostart feature kicks in on resume" ) );
103 QHBox *hbox_iconSize = new QHBox( tab_3 );
104 QLabel *iconSizeLabel = new QLabel( hbox_iconSize, "iconSizeLabel" );
105 iconSizeLabel->setText( tr( "Icon size" ) );
106 QWhatsThis::add( iconSizeLabel, tr( "Set the icon size in pixel" ) );
107 SpinBoxIconSize = new QSpinBox( hbox_iconSize, "TimeSpinner" );
108 SpinBoxIconSize->setMaxValue( 32 );
109 QWhatsThis::add( SpinBoxIconSize, tr( "Set the icon size in pixel" ) );
110
111 QHBox *hbox_refresh = new QHBox( tab_3 );
112 QLabel *refreshLabel = new QLabel( hbox_refresh );
113 refreshLabel->setText( tr( "Refresh" ) );
114 QWhatsThis::add( refreshLabel, tr( "How often should Today refresh itself" ) );
115 SpinRefresh = new QSpinBox( hbox_refresh );
116 SpinRefresh->setMinValue( 0 );
117 SpinRefresh->setSuffix( tr( " sec" ) );
118 SpinRefresh->setMaxValue ( 7200 );
119 SpinRefresh->setSpecialValueText ( tr("never") );
120 QWhatsThis::add( SpinRefresh, tr( "How often should Today refresh itself" ) );
121
122 tab3Layout->addWidget( hbox_auto );
123 tab3Layout->addWidget( hbox_hide );
124 tab3Layout->addWidget( hbox_inactive );
125 tab3Layout->addWidget( hbox_iconSize );
126 tab3Layout->addWidget( hbox_refresh );
127 TabWidget3->addTab( tab_3, "SettingsIcon", tr( "Misc" ) ); 86 TabWidget3->addTab( tab_3, "SettingsIcon", tr( "Misc" ) );
128 87
129 m_applets_changed = false; 88 m_applets_changed = false;
130 89
131 connect ( m_appletListView , SIGNAL( clicked ( QListViewItem * ) ), this, SLOT( appletChanged ( ) ) ); 90 connect ( m_appletListView , SIGNAL( clicked ( QListViewItem * ) ), this, SLOT( appletChanged ( ) ) );
132 91
133 readConfig(); 92 readConfig();
134 showMaximized(); 93 showMaximized();
@@ -156,25 +115,25 @@ void TodayConfig::setAutoStart() {
156 115
157/** 116/**
158 * Read the config part 117 * Read the config part
159 */ 118 */
160void TodayConfig::readConfig() { 119void TodayConfig::readConfig() {
161 Config cfg( "today" ); 120 Config cfg( "today" );
162 cfg.setGroup( "Autostart" ); 121 cfg.setGroup( "Autostart" );
163 m_autoStart = cfg.readNumEntry( "autostart", 1 ); 122 m_autoStart = cfg.readNumEntry( "autostart", 1 );
164 CheckBoxAuto->setChecked( m_autoStart ); 123 m_guiMisc->CheckBoxAuto->setChecked( m_autoStart );
165 m_autoStartTimer = cfg.readNumEntry( "autostartdelay", 0 ); 124 m_autoStartTimer = cfg.readNumEntry( "autostartdelay", 0 );
166 SpinBoxTime->setValue( m_autoStartTimer ); 125 m_guiMisc->SpinBoxTime->setValue( m_autoStartTimer );
167 126
168 cfg.setGroup( "General" ); 127 cfg.setGroup( "General" );
169 m_iconSize = cfg.readNumEntry( "IconSize", 18 ); 128 m_iconSize = cfg.readNumEntry( "IconSize", 18 );
170 SpinBoxIconSize->setValue( m_iconSize ); 129 m_guiMisc->SpinBoxIconSize->setValue( m_iconSize );
171 SpinRefresh->setValue( cfg.readNumEntry( "checkinterval", 15000 ) / 1000 ); 130 m_guiMisc->SpinRefresh->setValue( cfg.readNumEntry( "checkinterval", 15000 ) / 1000 );
172 CheckBoxHide->setChecked( cfg.readNumEntry( "HideBanner", 0 ) ); 131 m_guiMisc->CheckBoxHide->setChecked( cfg.readNumEntry( "HideBanner", 0 ) );
173 132
174 133
175 cfg.setGroup( "Plugins" ); 134 cfg.setGroup( "Plugins" );
176 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' ); 135 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' );
177} 136}
178 137
179/** 138/**
180 * Write the config part 139 * Write the config part
@@ -204,26 +163,26 @@ void TodayConfig::writeConfig() {
204 } 163 }
205 } 164 }
206 cfg.writeEntry( "ExcludeApplets", exclude, ',' ); 165 cfg.writeEntry( "ExcludeApplets", exclude, ',' );
207 cfg.writeEntry( "IncludeApplets", include, ',' ); 166 cfg.writeEntry( "IncludeApplets", include, ',' );
208 cfg.writeEntry( "AllApplets", all_applets, ',' ); 167 cfg.writeEntry( "AllApplets", all_applets, ',' );
209 } 168 }
210 169
211 cfg.setGroup( "Autostart" ); 170 cfg.setGroup( "Autostart" );
212 m_autoStart = CheckBoxAuto->isChecked(); 171 m_autoStart = m_guiMisc->CheckBoxAuto->isChecked();
213 cfg.writeEntry( "autostart", m_autoStart ); 172 cfg.writeEntry( "autostart", m_autoStart );
214 m_autoStartTimer = SpinBoxTime->value(); 173 m_autoStartTimer = m_guiMisc->SpinBoxTime->value();
215 cfg.writeEntry( "autostartdelay", m_autoStartTimer ); 174 cfg.writeEntry( "autostartdelay", m_autoStartTimer );
216 m_iconSize = SpinBoxIconSize->value(); 175 m_iconSize = m_guiMisc->SpinBoxIconSize->value();
217 176
218 cfg.setGroup( "General" ); 177 cfg.setGroup( "General" );
219 cfg.writeEntry( "IconSize", m_iconSize ); 178 cfg.writeEntry( "IconSize", m_iconSize );
220 cfg.writeEntry( "HideBanner", CheckBoxHide->isChecked() ); 179 cfg.writeEntry( "HideBanner", m_guiMisc->CheckBoxHide->isChecked() );
221 cfg.writeEntry( "checkinterval", SpinRefresh->value()*1000 ); 180 cfg.writeEntry( "checkinterval", m_guiMisc->SpinRefresh->value()*1000 );
222 181
223 // set autostart settings 182 // set autostart settings
224 setAutoStart(); 183 setAutoStart();
225} 184}
226 185
227 186
228void TodayConfig::moveSelectedUp() { 187void TodayConfig::moveSelectedUp() {
229 QListViewItem *item = m_appletListView->selectedItem(); 188 QListViewItem *item = m_appletListView->selectedItem();
diff --git a/core/pim/today/todayconfig.h b/core/pim/today/todayconfig.h
index 41bd44b..0a7687c 100644
--- a/core/pim/today/todayconfig.h
+++ b/core/pim/today/todayconfig.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * todayconfig.h 2 * todayconfig.h
3 * 3 *
4 * copyright : (c) 2002 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 *
@@ -17,16 +17,19 @@
17#ifndef TODAYCONFIG_H 17#ifndef TODAYCONFIG_H
18#define TODAYCONFIG_H 18#define TODAYCONFIG_H
19 19
20#include <qvariant.h> 20#include <qvariant.h>
21#include <qdialog.h> 21#include <qdialog.h>
22#include <qlistview.h> 22#include <qlistview.h>
23#include <opie/otabwidget.h> 23#include <opie/otabwidget.h>
24 24
25
26#include "todayconfigmiscbase.h"
27
25class QCheckBox; 28class QCheckBox;
26class QLabel; 29class QLabel;
27class QSpinBox; 30class QSpinBox;
28class QTabWidget; 31class QTabWidget;
29 32
30class TodayConfig : public QDialog { 33class TodayConfig : public QDialog {
31 34
32 Q_OBJECT 35 Q_OBJECT
@@ -54,21 +57,17 @@ private:
54 QMap<QString,QCheckListItem*> m_applets; 57 QMap<QString,QCheckListItem*> m_applets;
55 58
56 int m_autoStart; 59 int m_autoStart;
57 int m_autoStartTimer; 60 int m_autoStartTimer;
58 int m_iconSize; 61 int m_iconSize;
59 QStringList m_excludeApplets; 62 QStringList m_excludeApplets;
60 bool m_applets_changed; 63 bool m_applets_changed;
61 64
62 QLabel* TextLabel2;
63 QCheckBox* CheckBoxAuto, *CheckBoxHide;
64 QWidget* tab_2; 65 QWidget* tab_2;
65 QWidget* tab_3; 66 QWidget* tab_3;
66 QLabel* TextLabel1, *TextLabel4; 67 QLabel* TextLabel1, *TextLabel4;
67 QSpinBox* SpinBox7; 68 QSpinBox* SpinBox7;
68 QLabel* TimeLabel; 69
69 QSpinBox* SpinBoxTime; 70 TodayConfigMiscBase *m_guiMisc;
70 QSpinBox* SpinRefresh;
71 QSpinBox* SpinBoxIconSize;
72}; 71};
73 72
74#endif 73#endif