summaryrefslogtreecommitdiff
path: root/core/pim/today
Unidiff
Diffstat (limited to 'core/pim/today') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/today.cpp44
-rw-r--r--core/pim/today/todayconfig.cpp18
-rw-r--r--core/pim/today/todayconfig.h1
3 files changed, 53 insertions, 10 deletions
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index eb8b50c..0f6e598 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -38,25 +38,25 @@
38#include <qtimer.h> 38#include <qtimer.h>
39 39
40//#include <iostream.h> 40//#include <iostream.h>
41//#include <unistd.h> 41//#include <unistd.h>
42#include <stdlib.h> 42#include <stdlib.h>
43 43
44int MAX_LINES_TASK; 44int MAX_LINES_TASK;
45int MAX_CHAR_CLIP; 45int MAX_CHAR_CLIP;
46int MAX_LINES_MEET; 46int MAX_LINES_MEET;
47int SHOW_LOCATION; 47int SHOW_LOCATION;
48int SHOW_NOTES; 48int SHOW_NOTES;
49// show only later dates 49// show only later dates
50int ONLY_LATER = 1; 50int ONLY_LATER;
51/* 51/*
52 * Constructs a Example which is a child of 'parent', with the 52 * Constructs a Example which is a child of 'parent', with the
53 * name 'name' and widget flags set to 'f' 53 * name 'name' and widget flags set to 'f'
54 */ 54 */
55Today::Today( QWidget* parent, const char* name, WFlags fl ) 55Today::Today( QWidget* parent, const char* name, WFlags fl )
56 : TodayBase( parent, name, fl ) 56 : TodayBase( parent, name, fl )
57{ 57{
58 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) ); 58 QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
59 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); 59 QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
60 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); 60 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
61 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); 61 QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
62 62
@@ -66,82 +66,89 @@ Today::Today( QWidget* parent, const char* name, WFlags fl )
66 db = new DateBookDB; 66 db = new DateBookDB;
67 67
68 draw(); 68 draw();
69} 69}
70 70
71 71
72void Today::draw() 72void Today::draw()
73{ 73{
74 init(); 74 init();
75 getDates(); 75 getDates();
76 getMail(); 76 getMail();
77 getTodo(); 77 getTodo();
78 QTimer::singleShot( 60*1000, this, SLOT(draw()) ); 78 // how often refresh
79 QTimer::singleShot( 30*1000, this, SLOT(draw()) );
79 80
80} 81}
81 82
82void Today::init() 83void Today::init()
83{ 84{
84 // read config 85 // read config
85 Config cfg("today"); 86 Config cfg("today");
86 cfg.setGroup("BaseConfig"); 87 cfg.setGroup("BaseConfig");
87 88
88 // how many lines should be showed in the task section 89 // how many lines should be showed in the task section
89 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5); 90 MAX_LINES_TASK = cfg.readNumEntry("maxlinestask",5);
90 // after how many chars should the be cut off on tasks and notes 91 // after how many chars should the be cut off on tasks and notes
91 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30); 92 MAX_CHAR_CLIP = cfg.readNumEntry("maxcharclip",30);
92 // how many lines should be showed in the datebook section 93 // how many lines should be showed in the datebook section
93 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5); 94 MAX_LINES_MEET = cfg.readNumEntry("maxlinesmeet",5);
94 // If location is to be showed too, 1 to activate it. 95 // If location is to be showed too, 1 to activate it.
95 SHOW_LOCATION = cfg.readNumEntry("showlocation",1); 96 SHOW_LOCATION = cfg.readNumEntry("showlocation",1);
96 // if notes should be shown 97 // if notes should be shown
97 SHOW_NOTES = cfg.readNumEntry("shownotes",0); 98 SHOW_NOTES = cfg.readNumEntry("shownotes",0);
99 ONLY_LATER = cfg.readNumEntry("onlylater",1);
100
98} 101}
99 102
100void Today::startConfig() 103void Today::startConfig()
101{ 104{
102 conf = new todayconfig ( this, "", true ); 105 conf = new todayconfig ( this, "", true );
103 106
104 107
105 //Config cfg = new Config("today"); 108 //Config cfg = new Config("today");
106 109
107 // read the config 110 // read the config
108 Config cfg("today"); 111 Config cfg("today");
109 cfg.setGroup("BaseConfig"); 112 cfg.setGroup("BaseConfig");
110 113
111 //init(); 114 //init();
112 115
113 conf->SpinBox1->setValue(MAX_LINES_MEET); 116 conf->SpinBox1->setValue(MAX_LINES_MEET);
114 // location show box 117 // location show box
115 conf->CheckBox1->setChecked(SHOW_LOCATION); 118 conf->CheckBox1->setChecked(SHOW_LOCATION);
116 // notes show box 119 // notes show box
117 conf->CheckBox2->setChecked(SHOW_NOTES); 120 conf->CheckBox2->setChecked(SHOW_NOTES);
118 // task lines 121 // task lines
119 conf->SpinBox2->setValue(MAX_LINES_TASK); 122 conf->SpinBox2->setValue(MAX_LINES_TASK);
120 // clip when? 123 // clip when?
121 conf->SpinBox7->setValue(MAX_CHAR_CLIP); 124 conf->SpinBox7->setValue(MAX_CHAR_CLIP);
122 125 // only later
126 conf->CheckBox3->setChecked(ONLY_LATER);
127
123 conf->exec(); 128 conf->exec();
124 129
125 int maxlinestask = conf->SpinBox2->value(); 130 int maxlinestask = conf->SpinBox2->value();
126 int maxmeet = conf->SpinBox1->value(); 131 int maxmeet = conf->SpinBox1->value();
127 int location = conf->CheckBox1->isChecked(); 132 int location = conf->CheckBox1->isChecked();
128 int notes = conf->CheckBox2->isChecked(); 133 int notes = conf->CheckBox2->isChecked();
129 int maxcharclip = conf->SpinBox7->value(); 134 int maxcharclip = conf->SpinBox7->value();
130 135 int onlylater = conf->CheckBox3->isChecked();
136
131 cfg.writeEntry("maxlinestask",maxlinestask); 137 cfg.writeEntry("maxlinestask",maxlinestask);
132 cfg.writeEntry("maxcharclip", maxcharclip); 138 cfg.writeEntry("maxcharclip", maxcharclip);
133 cfg.writeEntry("maxlinesmeet",maxmeet); 139 cfg.writeEntry("maxlinesmeet",maxmeet);
134 cfg.writeEntry("showlocation",location); 140 cfg.writeEntry("showlocation",location);
135 cfg.writeEntry("shownotes", notes); 141 cfg.writeEntry("shownotes", notes);
142 cfg.writeEntry("onlylater", onlylater);
136 // sync it to "disk" 143 // sync it to "disk"
137 cfg.write(); 144 cfg.write();
138 145
139 draw(); 146 draw();
140} 147}
141 148
142 149
143/* 150/*
144 * Get all events that are in the datebook xml file for today 151 * Get all events that are in the datebook xml file for today
145 */ 152 */
146void Today::getDates() 153void Today::getDates()
147{ 154{
@@ -160,45 +167,72 @@ void Today::getDates()
160 167
161 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); 168 for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin();
162 it!=list.end(); ++it ) { 169 it!=list.end(); ++it ) {
163 170
164 count++; 171 count++;
165 172
166 if ( count <= MAX_LINES_MEET ) 173 if ( count <= MAX_LINES_MEET )
167 { 174 {
168 //only get events past current time (start or end??) 175 //only get events past current time (start or end??)
169 //cout << time.toString() << endl; 176 //cout << time.toString() << endl;
170 //cout << TimeString::dateString((*it).event().end()) << endl; 177 //cout << TimeString::dateString((*it).event().end()) << endl;
171 // still some bug in here, 1 h off 178 // still some bug in here, 1 h off
172 if ((time.toString() <= TimeString::dateString((*it).event().end())) && ONLY_LATER ) 179
180 // decide if to get all day or only later appointments
181 if (!ONLY_LATER)
182 {
183 msg += "<B>" + (*it).description() + "</B>";
184 // include location or not
185 if (SHOW_LOCATION == 1)
186 {
187 msg+= "<BR>" + (*it).location();
188 }
189 msg += "<BR>"
190 // start time of event
191 + TimeString::timeString(QTime((*it).event().start().time()) )
192 // end time of event
193 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) )
194 + "<BR>";
195 // include possible note or not
196 if (SHOW_NOTES == 1)
197 {
198 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
199 }
200 }
201 else if ((time.toString() <= TimeString::dateString((*it).event().end())) && ONLY_LATER )
173 { 202 {
174 msg += "<B>" + (*it).description() + "</B>"; 203 msg += "<B>" + (*it).description() + "</B>";
175 // include location or not 204 // include location or not
176 if (SHOW_LOCATION == 1) 205 if (SHOW_LOCATION == 1)
177 { 206 {
178 msg+= "<BR>" + (*it).location(); 207 msg+= "<BR>" + (*it).location();
179 } 208 }
180 msg += "<BR>" 209 msg += "<BR>"
181 // start time of event 210 // start time of event
182 + TimeString::timeString(QTime((*it).event().start().time()) ) 211 + TimeString::timeString(QTime((*it).event().start().time()) )
183 // end time of event 212 // end time of event
184 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) ) 213 + "<b> - </b>" + TimeString::timeString(QTime((*it).event().end().time()) )
185 + "<BR>"; 214 + "<BR>";
186 // include possible note or not 215 // include possible note or not
187 if (SHOW_NOTES == 1) 216 if (SHOW_NOTES == 1)
188 { 217 {
189 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>"; 218 msg += " <i>note</i>:" +((*it).notes()).mid(0, MAX_CHAR_CLIP) + "<br>";
190 } 219 }
191 } 220 }
192 } 221 }
222
223 if (msg.isEmpty())
224 {
225 msg = "No more appointments today";
226 }
193 } 227 }
194 DatesField->setText(msg); 228 DatesField->setText(msg);
195 } 229 }
196} 230}
197 231
198/* 232/*
199 * Parse in the todolist.xml 233 * Parse in the todolist.xml
200 * 234 *
201 */ 235 */
202QList<TodoItem> Today::loadTodo(const char *filename) 236QList<TodoItem> Today::loadTodo(const char *filename)
203{ 237{
204 DOM *todo; 238 DOM *todo;
diff --git a/core/pim/today/todayconfig.cpp b/core/pim/today/todayconfig.cpp
index 0f00802..4f2633d 100644
--- a/core/pim/today/todayconfig.cpp
+++ b/core/pim/today/todayconfig.cpp
@@ -39,49 +39,57 @@ todayconfig::todayconfig( QWidget* parent, const char* name, bool modal, WFlags
39 TabWidget3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, TabWidget3->sizePolicy().hasHeightForWidth() ) ); 39 TabWidget3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, TabWidget3->sizePolicy().hasHeightForWidth() ) );
40 TabWidget3->setAutoMask( FALSE ); 40 TabWidget3->setAutoMask( FALSE );
41 TabWidget3->setTabShape( QTabWidget::Rounded ); 41 TabWidget3->setTabShape( QTabWidget::Rounded );
42 42
43 tab = new QWidget( TabWidget3, "tab" ); 43 tab = new QWidget( TabWidget3, "tab" );
44 44
45 Frame8 = new QFrame( tab, "Frame8" ); 45 Frame8 = new QFrame( tab, "Frame8" );
46 Frame8->setGeometry( QRect( -5, 0, 200, 300 ) ); 46 Frame8->setGeometry( QRect( -5, 0, 200, 300 ) );
47 Frame8->setFrameShape( QFrame::StyledPanel ); 47 Frame8->setFrameShape( QFrame::StyledPanel );
48 Frame8->setFrameShadow( QFrame::Raised ); 48 Frame8->setFrameShadow( QFrame::Raised );
49 49
50 TextLabel4 = new QLabel( Frame8, "TextLabel4" ); 50 TextLabel4 = new QLabel( Frame8, "TextLabel4" );
51 TextLabel4->setGeometry( QRect( 20, 89, 100, 60 ) ); 51 TextLabel4->setGeometry( QRect( 20, 65, 100, 60 ) );
52 TextLabel4->setText( tr( "Should the \n" 52 TextLabel4->setText( tr( "Should the \n"
53 "location \n" 53 "location \n"
54 "be shown?" ) ); 54 "be shown?" ) );
55 55
56 TextLabel5 = new QLabel( Frame8, "TextLabel5" ); 56 TextLabel5 = new QLabel( Frame8, "TextLabel5" );
57 TextLabel5->setGeometry( QRect( 20, 160, 120, 40 ) ); 57 TextLabel5->setGeometry( QRect( 20, 160, 120, 40 ) );
58 TextLabel5->setText( tr( "Should the notes \n" 58 TextLabel5->setText( tr( "Should the notes \n"
59 "be shown?" ) ); 59 "be shown?" ) );
60 60
61 CheckBox2 = new QCheckBox( Frame8, "CheckBox2" ); 61 CheckBox2 = new QCheckBox( Frame8, "CheckBox2" );
62 CheckBox2->setGeometry( QRect( 158, 170, 27, 21 ) ); 62 CheckBox2->setGeometry( QRect( 158, 170, 27, 21 ) );
63 CheckBox2->setText( tr( "" ) ); 63 //CheckBox2->setText( tr( "" ) );
64 64
65 CheckBox1 = new QCheckBox( Frame8, "CheckBox1" ); 65 CheckBox1 = new QCheckBox( Frame8, "CheckBox1" );
66 CheckBox1->setGeometry( QRect( 158, 90, 27, 50 ) ); 66 CheckBox1->setGeometry( QRect( 158, 65, 27, 50 ) );
67 CheckBox1->setText( tr( "" ) ); 67 //CheckBox1->setText( tr( "" ) );
68
69 CheckBox3 = new QCheckBox (Frame8, "CheckBox3" );
70 CheckBox3->setGeometry( QRect( 158, 125, 27, 21 ) );
71
72 TextLabel6 = new QLabel( Frame8, "All Day");
73 TextLabel6->setGeometry( QRect( 20, 120, 100, 30 ) );
74 TextLabel6->setText( tr( "Show only later\n"
75 "appointments") );
68 76
69 SpinBox1 = new QSpinBox( Frame8, "SpinBox1" ); 77 SpinBox1 = new QSpinBox( Frame8, "SpinBox1" );
70 SpinBox1->setGeometry( QRect( 115, 20, 58, 25 ) ); 78 SpinBox1->setGeometry( QRect( 115, 20, 58, 25 ) );
71 SpinBox1->setMaxValue( 10 ); 79 SpinBox1->setMaxValue( 10 );
72 SpinBox1->setValue( 5 ); 80 SpinBox1->setValue( 5 );
73 81
74 TextLabel3 = new QLabel( Frame8, "TextLabel3" ); 82 TextLabel3 = new QLabel( Frame8, "TextLabel3" );
75 TextLabel3->setGeometry( QRect( 20, 10, 90, 70 ) ); 83 TextLabel3->setGeometry( QRect( 20, 10, 90, 60 ) );
76 TextLabel3->setText( tr( "How many \n" 84 TextLabel3->setText( tr( "How many \n"
77 "appointment\n" 85 "appointment\n"
78 "should should \n" 86 "should should \n"
79 "be shown?" ) ); 87 "be shown?" ) );
80 TabWidget3->insertTab( tab, tr( "Calendar" ) ); 88 TabWidget3->insertTab( tab, tr( "Calendar" ) );
81 89
82 tab_2 = new QWidget( TabWidget3, "tab_2" ); 90 tab_2 = new QWidget( TabWidget3, "tab_2" );
83 91
84 Frame9 = new QFrame( tab_2, "Frame9" ); 92 Frame9 = new QFrame( tab_2, "Frame9" );
85 Frame9->setGeometry( QRect( -5, 0, 230, 310 ) ); 93 Frame9->setGeometry( QRect( -5, 0, 230, 310 ) );
86 Frame9->setFrameShape( QFrame::StyledPanel ); 94 Frame9->setFrameShape( QFrame::StyledPanel );
87 Frame9->setFrameShadow( QFrame::Raised ); 95 Frame9->setFrameShadow( QFrame::Raised );
diff --git a/core/pim/today/todayconfig.h b/core/pim/today/todayconfig.h
index 38e9beb..7facf85 100644
--- a/core/pim/today/todayconfig.h
+++ b/core/pim/today/todayconfig.h
@@ -25,24 +25,25 @@ class todayconfig : public QDialog
25{ 25{
26 Q_OBJECT 26 Q_OBJECT
27 27
28public: 28public:
29 todayconfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 29 todayconfig( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
30 ~todayconfig(); 30 ~todayconfig();
31 31
32 QTabWidget* TabWidget3; 32 QTabWidget* TabWidget3;
33 QWidget* tab; 33 QWidget* tab;
34 QFrame* Frame8; 34 QFrame* Frame8;
35 QLabel* TextLabel4; 35 QLabel* TextLabel4;
36 QLabel* TextLabel5; 36 QLabel* TextLabel5;
37 QCheckBox* CheckBox3;
37 QCheckBox* CheckBox2; 38 QCheckBox* CheckBox2;
38 QCheckBox* CheckBox1; 39 QCheckBox* CheckBox1;
39 QSpinBox* SpinBox1; 40 QSpinBox* SpinBox1;
40 QLabel* TextLabel3; 41 QLabel* TextLabel3;
41 QWidget* tab_2; 42 QWidget* tab_2;
42 QFrame* Frame9; 43 QFrame* Frame9;
43 QLabel* TextLabel6; 44 QLabel* TextLabel6;
44 QSpinBox* SpinBox2; 45 QSpinBox* SpinBox2;
45 QWidget* tab_3; 46 QWidget* tab_3;
46 QFrame* Frame14; 47 QFrame* Frame14;
47 QLabel* TextLabel1; 48 QLabel* TextLabel1;
48 QSpinBox* SpinBox7; 49 QSpinBox* SpinBox7;