author | harlekin <harlekin> | 2002-09-15 21:13:47 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-09-15 21:13:47 (UTC) |
commit | 87cd421d72df1d7706925285a48c008007471310 (patch) (unidiff) | |
tree | eb7805bd6702f2820aac159baa4a9c5592a52ee4 /core/pim/today/plugins/datebook | |
parent | 251fd5b1687994c30e8bea1091e893468086223f (diff) | |
download | opie-87cd421d72df1d7706925285a48c008007471310.zip opie-87cd421d72df1d7706925285a48c008007471310.tar.gz opie-87cd421d72df1d7706925285a48c008007471310.tar.bz2 |
plugins for the new today
Diffstat (limited to 'core/pim/today/plugins/datebook') (more/less context) (ignore whitespace changes)
12 files changed, 695 insertions, 0 deletions
diff --git a/core/pim/today/plugins/datebook/datebook.pro b/core/pim/today/plugins/datebook/datebook.pro new file mode 100644 index 0000000..615059a --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebook.pro | |||
@@ -0,0 +1,19 @@ | |||
1 | TEMPLATE = lib | ||
2 | CONFIG -= moc | ||
3 | CONFIG += qt debug | ||
4 | |||
5 | # Input | ||
6 | HEADERS = datebookplugin.h datebookpluginimpl.h datebookpluginconfig.h \ | ||
7 | datebookevent.h datebookpluginwidget.h | ||
8 | SOURCES = datebookplugin.cpp datebookpluginimpl.cpp datebookpluginconfig.cpp \ | ||
9 | datebookevent.cpp datebookpluginwidget.cpp | ||
10 | |||
11 | INCLUDEPATH += $(OPIEDIR)/include \ | ||
12 | ../ ../library | ||
13 | DEPENDPATH += $(OPIEDIR)/include \ | ||
14 | ../ ../library | ||
15 | |||
16 | LIBS+= -lqpe -lopie | ||
17 | |||
18 | DESTDIR = $(OPIEDIR)/plugins/today | ||
19 | TARGET = todaydatebookplugin \ No newline at end of file | ||
diff --git a/core/pim/today/plugins/datebook/datebookevent.cpp b/core/pim/today/plugins/datebook/datebookevent.cpp new file mode 100644 index 0000000..1caf061 --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookevent.cpp | |||
@@ -0,0 +1,118 @@ | |||
1 | /* | ||
2 | * datebookevent.cpp | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #include "datebookevent.h" | ||
18 | #include <qpe/config.h> | ||
19 | #include <qpe/timestring.h> | ||
20 | #include <qpe/qcopenvelope_qws.h> | ||
21 | #include <qpe/qpeapplication.h> | ||
22 | |||
23 | DateBookEvent::DateBookEvent(const EffectiveEvent &ev, | ||
24 | QWidget* parent, | ||
25 | int show_location, | ||
26 | int show_notes, | ||
27 | // int onlyLater, | ||
28 | int maxCharClip, | ||
29 | const char* name, | ||
30 | WFlags fl) : | ||
31 | OClickableLabel(parent,name,fl), event(ev) { | ||
32 | |||
33 | QString msg; | ||
34 | |||
35 | Config config( "qpe" ); | ||
36 | config.setGroup( "Time" ); | ||
37 | // if 24 h format | ||
38 | ampm = config.readBoolEntry( "AMPM", TRUE ); | ||
39 | |||
40 | msg += "<B>" + (ev).description() + "</B>"; | ||
41 | if ( (ev).event().hasAlarm() ) { | ||
42 | msg += " <b>[with alarm]</b>"; | ||
43 | } | ||
44 | |||
45 | // include location or not | ||
46 | if ( show_location == 1) { | ||
47 | msg += "<BR><i>" + (ev).location() + "</i>"; | ||
48 | } | ||
49 | |||
50 | if ( ( TimeString::timeString( QTime( (ev).event().start().time() ) ) == "00:00" ) | ||
51 | && ( TimeString::timeString( QTime( (ev).event().end().time() ) ) == "23:59") ) { | ||
52 | msg += "<br>All day"; | ||
53 | } else { | ||
54 | // start time of event | ||
55 | msg += "<br>" + ampmTime(QTime( (ev).event().start().time() ) ) | ||
56 | // end time of event | ||
57 | + "<b> - </b>" + ampmTime(QTime( (ev).event().end().time() ) ); | ||
58 | } | ||
59 | |||
60 | // include possible note or not | ||
61 | if ( show_notes == 1) { | ||
62 | msg += "<br> <i>note</i>:" +( (ev).notes() ).mid( 0, maxCharClip ); | ||
63 | } | ||
64 | |||
65 | setText( msg ); | ||
66 | connect( this, SIGNAL( clicked() ), this, SLOT( editMe() ) ); | ||
67 | setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); | ||
68 | } | ||
69 | |||
70 | |||
71 | QString DateBookEvent::ampmTime( QTime tm ) { | ||
72 | |||
73 | QString s; | ||
74 | if( ampm ) { | ||
75 | int hour = tm.hour(); | ||
76 | if ( hour == 0 ) { | ||
77 | hour = 12; | ||
78 | } | ||
79 | if ( hour > 12 ) { | ||
80 | hour -= 12; | ||
81 | } | ||
82 | s.sprintf( "%2d:%02d %s", hour, tm.minute(), | ||
83 | (tm.hour() >= 12) ? "PM" : "AM" ); | ||
84 | return s; | ||
85 | } else { | ||
86 | s.sprintf( "%2d:%02d", tm.hour(), tm.minute() ); | ||
87 | return s; | ||
88 | } | ||
89 | |||
90 | } | ||
91 | |||
92 | |||
93 | //extern QPEApplication *todayApp; | ||
94 | |||
95 | /* | ||
96 | * starts the edit dialog as known from datebook | ||
97 | */ | ||
98 | void DateBookEvent::editEventSlot( const Event &e ) { | ||
99 | startDatebook(); | ||
100 | |||
101 | while( !QCopChannel::isRegistered( "QPE/Datebook" ) ) qApp->processEvents(); | ||
102 | QCopEnvelope env( "QPE/Datebook", "editEvent(int)" ); | ||
103 | env << e.uid(); | ||
104 | } | ||
105 | |||
106 | |||
107 | /** | ||
108 | * launches datebook | ||
109 | */ | ||
110 | void DateBookEvent::startDatebook() { | ||
111 | QCopEnvelope e("QPE/System", "execute(QString)"); | ||
112 | e << QString("datebook"); | ||
113 | } | ||
114 | |||
115 | void DateBookEvent::editMe() { | ||
116 | emit editEvent(event.event()); | ||
117 | } | ||
118 | |||
diff --git a/core/pim/today/plugins/datebook/datebookevent.h b/core/pim/today/plugins/datebook/datebookevent.h new file mode 100644 index 0000000..1168f7c --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookevent.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * datebookplugin.h | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #ifndef DATEBOOKEVENT_PLUGIN_H | ||
18 | #define DATEBOOKEVENT_PLUGIN_H | ||
19 | |||
20 | #include <opie/oclickablelabel.h> | ||
21 | #include <qpe/datebookdb.h> | ||
22 | |||
23 | |||
24 | class DateBookEvent: public OClickableLabel { | ||
25 | |||
26 | Q_OBJECT | ||
27 | |||
28 | public: | ||
29 | DateBookEvent(const EffectiveEvent &ev, | ||
30 | QWidget* parent = 0, | ||
31 | int show_location = 0, | ||
32 | int show_notes = 0, | ||
33 | // int onlyLater = 0, | ||
34 | int maxCharClip = 0, | ||
35 | const char* name = 0, | ||
36 | WFlags fl = 0); | ||
37 | signals: | ||
38 | void editEvent(const Event &e); | ||
39 | private slots: | ||
40 | void editEventSlot(const Event &e); | ||
41 | void editMe(); | ||
42 | private: | ||
43 | void startDatebook(); | ||
44 | DateBookDB *db; | ||
45 | QString ampmTime(QTime); | ||
46 | const EffectiveEvent event; | ||
47 | bool ampm; | ||
48 | }; | ||
49 | |||
50 | #endif | ||
diff --git a/core/pim/today/plugins/datebook/datebookplugin.cpp b/core/pim/today/plugins/datebook/datebookplugin.cpp new file mode 100644 index 0000000..d2a73df --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookplugin.cpp | |||
@@ -0,0 +1,73 @@ | |||
1 | /* | ||
2 | * datebookplugin.cpp | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | |||
18 | |||
19 | #include "datebookevent.h" | ||
20 | #include "datebookplugin.h" | ||
21 | #include "datebookpluginwidget.h" | ||
22 | #include "datebookpluginconfig.h" | ||
23 | |||
24 | #include "../../configwidget.h" | ||
25 | |||
26 | #include <qpe/timestring.h> | ||
27 | #include <qpe/config.h> | ||
28 | |||
29 | |||
30 | DatebookPlugin::DatebookPlugin() { | ||
31 | } | ||
32 | |||
33 | DatebookPlugin::~DatebookPlugin() { | ||
34 | } | ||
35 | |||
36 | QString DatebookPlugin::pluginName() const { | ||
37 | return "Datebook plugin"; | ||
38 | } | ||
39 | |||
40 | double DatebookPlugin::versionNumber() const { | ||
41 | return 0.1; | ||
42 | } | ||
43 | |||
44 | QString DatebookPlugin::pixmapNameWidget() const { | ||
45 | return "DateBook"; | ||
46 | } | ||
47 | |||
48 | QWidget* DatebookPlugin::widget( QWidget* wid ) { | ||
49 | return new DatebookPluginWidget( wid, "Datebook" ); | ||
50 | } | ||
51 | |||
52 | QString DatebookPlugin::pixmapNameConfig() const { | ||
53 | return "DateBook"; | ||
54 | } | ||
55 | |||
56 | ConfigWidget* DatebookPlugin::configWidget( QWidget* wid ) { | ||
57 | return new DatebookPluginConfig( wid , "Datebook" ); | ||
58 | } | ||
59 | |||
60 | QString DatebookPlugin::appName() const { | ||
61 | return "datebook"; | ||
62 | } | ||
63 | |||
64 | int DatebookPlugin::minHeight() const { | ||
65 | return 10; | ||
66 | } | ||
67 | |||
68 | int DatebookPlugin::maxHeight() const { | ||
69 | return 100; | ||
70 | } | ||
71 | |||
72 | |||
73 | |||
diff --git a/core/pim/today/plugins/datebook/datebookplugin.h b/core/pim/today/plugins/datebook/datebookplugin.h new file mode 100644 index 0000000..f2c4446 --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookplugin.h | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * datebookplugin.h | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #ifndef DATEBOOK_PLUGIN_H | ||
18 | #define DATEBOOK_PLUGIN_H | ||
19 | |||
20 | #include <qstring.h> | ||
21 | #include <qwidget.h> | ||
22 | |||
23 | #include <qpe/datebookdb.h> | ||
24 | #include <opie/oclickablelabel.h> | ||
25 | |||
26 | #include "../../todayplugininterface.h" | ||
27 | |||
28 | class DatebookPlugin : public TodayPluginObject { | ||
29 | |||
30 | public: | ||
31 | DatebookPlugin(); | ||
32 | ~DatebookPlugin(); | ||
33 | |||
34 | QString pluginName() const; | ||
35 | double versionNumber() const; | ||
36 | QString pixmapNameWidget() const; | ||
37 | QWidget* widget( QWidget *); | ||
38 | QString pixmapNameConfig() const; | ||
39 | ConfigWidget* configWidget( QWidget *); | ||
40 | QString appName() const; | ||
41 | virtual int minHeight() const; | ||
42 | virtual int maxHeight() const; | ||
43 | |||
44 | }; | ||
45 | |||
46 | |||
47 | #endif | ||
diff --git a/core/pim/today/plugins/datebook/datebookpluginconfig.cpp b/core/pim/today/plugins/datebook/datebookpluginconfig.cpp new file mode 100644 index 0000000..7482f5e --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginconfig.cpp | |||
@@ -0,0 +1,82 @@ | |||
1 | |||
2 | |||
3 | #include "datebookpluginconfig.h" | ||
4 | |||
5 | |||
6 | #include <qpe/config.h> | ||
7 | |||
8 | #include <qlayout.h> | ||
9 | #include <qtoolbutton.h> | ||
10 | #include <qlabel.h> | ||
11 | #include <qhbox.h> | ||
12 | #include <qvbox.h> | ||
13 | |||
14 | DatebookPluginConfig::DatebookPluginConfig( QWidget* parent, const char* name) | ||
15 | : ConfigWidget( parent, name ) { | ||
16 | |||
17 | QVBoxLayout * layout = new QVBoxLayout( this ); | ||
18 | |||
19 | QHBox *box1 = new QHBox( this ); | ||
20 | QLabel* TextLabel4 = new QLabel( box1, "TextLabel4" ); | ||
21 | TextLabel4->setText( tr( "Show location" ) ); | ||
22 | CheckBox1 = new QCheckBox( box1, "CheckBox1" ); | ||
23 | |||
24 | QHBox *box2 = new QHBox( this ); | ||
25 | QLabel* TextLabel5 = new QLabel( box2 , "TextLabel5" ); | ||
26 | TextLabel5->setText( tr( "Show notes" ) ); | ||
27 | CheckBox2 = new QCheckBox( box2, "CheckBox2" ); | ||
28 | |||
29 | QHBox *box3 = new QHBox( this ); | ||
30 | QLabel* TextLabel6 = new QLabel( box3, "All Day"); | ||
31 | TextLabel6->setText( tr( "Show only later\n" | ||
32 | "appointments") ); | ||
33 | CheckBox3 = new QCheckBox ( box3, "CheckBox3" ); | ||
34 | |||
35 | QHBox *box4 = new QHBox( this ); | ||
36 | QLabel *TextLabel3 = new QLabel( box4, "TextLabel3" ); | ||
37 | TextLabel3->setText( tr( "How many \nappointment\n" | ||
38 | "should be \nshown?" ) ); | ||
39 | SpinBox1 = new QSpinBox( box4, "SpinBox1" ); | ||
40 | SpinBox1->setMaxValue( 10 ); | ||
41 | SpinBox1->setValue( 5 ); | ||
42 | |||
43 | layout->addWidget( box1 ); | ||
44 | layout->addWidget( box2 ); | ||
45 | layout->addWidget( box3 ); | ||
46 | layout->addWidget( box4 ); | ||
47 | |||
48 | readConfig(); | ||
49 | } | ||
50 | |||
51 | void DatebookPluginConfig::readConfig() { | ||
52 | Config cfg( "todaydatebookplugin" ); | ||
53 | cfg.setGroup( "config" ); | ||
54 | |||
55 | m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); | ||
56 | SpinBox1->setValue( m_max_lines_meet ); | ||
57 | m_show_location = cfg.readNumEntry( "showlocation", 1 ); | ||
58 | CheckBox1->setChecked( m_show_location ); | ||
59 | m_show_notes = cfg.readNumEntry( "shownotes", 0 ); | ||
60 | CheckBox2->setChecked( m_show_notes ); | ||
61 | m_only_later = cfg.readNumEntry( "onlylater", 1 ); | ||
62 | CheckBox3->setChecked( m_only_later ); | ||
63 | } | ||
64 | |||
65 | |||
66 | void DatebookPluginConfig::writeConfig() { | ||
67 | Config cfg( "todaydatebookplugin" ); | ||
68 | cfg.setGroup( "config" ); | ||
69 | |||
70 | m_max_lines_meet = SpinBox1->value(); | ||
71 | cfg.writeEntry( "maxlinesmeet", m_max_lines_meet); | ||
72 | m_show_location = CheckBox1->isChecked(); | ||
73 | cfg.writeEntry( "showlocation", m_show_location); | ||
74 | m_show_notes = CheckBox2->isChecked(); | ||
75 | cfg.writeEntry( "shownotes", m_show_notes ); | ||
76 | m_only_later = CheckBox3->isChecked(); | ||
77 | cfg.writeEntry( "onlylater", m_only_later ); | ||
78 | cfg.write(); | ||
79 | } | ||
80 | |||
81 | DatebookPluginConfig::~DatebookPluginConfig() { | ||
82 | } | ||
diff --git a/core/pim/today/plugins/datebook/datebookpluginconfig.h b/core/pim/today/plugins/datebook/datebookpluginconfig.h new file mode 100644 index 0000000..33d3c4e --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginconfig.h | |||
@@ -0,0 +1,48 @@ | |||
1 | |||
2 | #ifndef DATEBOOK_PLUGIN_CONFIG_H | ||
3 | #define DATEBOOK_PLUGIN_CONFIG_H | ||
4 | |||
5 | #include <qwidget.h> | ||
6 | #include <qcheckbox.h> | ||
7 | #include <qspinbox.h> | ||
8 | |||
9 | #include "../../configwidget.h" | ||
10 | |||
11 | class DatebookPluginConfig : public ConfigWidget { | ||
12 | |||
13 | Q_OBJECT | ||
14 | |||
15 | public: | ||
16 | DatebookPluginConfig( QWidget *parent, const char *name ); | ||
17 | ~DatebookPluginConfig(); | ||
18 | |||
19 | void writeConfig(); | ||
20 | private: | ||
21 | /** | ||
22 | * if changed then save | ||
23 | */ | ||
24 | bool changed(); | ||
25 | void readConfig(); | ||
26 | |||
27 | QCheckBox* CheckBox2; | ||
28 | QCheckBox* CheckBox1; | ||
29 | QCheckBox* CheckBox3; | ||
30 | QSpinBox* SpinBox1; | ||
31 | |||
32 | // how many lines should be showed in the datebook section | ||
33 | int m_max_lines_meet; | ||
34 | // If location is to be showed too, 1 to activate it. | ||
35 | int m_show_location; | ||
36 | // if notes should be shown | ||
37 | int m_show_notes; | ||
38 | // should only later appointments be shown or all for the current day. | ||
39 | int m_only_later; | ||
40 | |||
41 | |||
42 | }; | ||
43 | |||
44 | |||
45 | |||
46 | |||
47 | |||
48 | #endif | ||
diff --git a/core/pim/today/plugins/datebook/datebookpluginimpl.cpp b/core/pim/today/plugins/datebook/datebookpluginimpl.cpp new file mode 100644 index 0000000..4159b49 --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginimpl.cpp | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * datebookpluginimpl.cpp | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #include "datebookplugin.h" | ||
18 | #include "datebookpluginimpl.h" | ||
19 | |||
20 | DatebookPluginImpl::DatebookPluginImpl() { | ||
21 | datebookPlugin = new DatebookPlugin(); | ||
22 | } | ||
23 | |||
24 | DatebookPluginImpl::~DatebookPluginImpl() { | ||
25 | } | ||
26 | |||
27 | TodayPluginObject* DatebookPluginImpl::guiPart() { | ||
28 | return datebookPlugin; | ||
29 | } | ||
30 | |||
31 | QRESULT DatebookPluginImpl::queryInterface( const QUuid & uuid, QUnknownInterface **iface ) { | ||
32 | *iface = 0; | ||
33 | if ( ( uuid == IID_QUnknown ) || ( uuid == IID_TodayPluginInterface ) ) { | ||
34 | *iface = this, (*iface)->addRef(); | ||
35 | } | ||
36 | return QS_OK; | ||
37 | |||
38 | } | ||
39 | |||
40 | Q_EXPORT_INTERFACE() { | ||
41 | Q_CREATE_INSTANCE( DatebookPluginImpl ); | ||
42 | } | ||
diff --git a/core/pim/today/plugins/datebook/datebookpluginimpl.h b/core/pim/today/plugins/datebook/datebookpluginimpl.h new file mode 100644 index 0000000..037dff4 --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginimpl.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * datebookpluginimpl.h | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #ifndef DATEBOOK_PLUGIN_IMPL_H | ||
18 | #define DATEBOOK_PLUGIN_IMPL_H | ||
19 | |||
20 | #include "../../todayplugininterface.h" | ||
21 | |||
22 | class DatebookPlugin; | ||
23 | |||
24 | class DatebookPluginImpl : public TodayPluginInterface{ | ||
25 | |||
26 | public: | ||
27 | DatebookPluginImpl(); | ||
28 | virtual ~DatebookPluginImpl(); | ||
29 | |||
30 | QRESULT queryInterface( const QUuid &, QUnknownInterface** ); | ||
31 | Q_REFCOUNT | ||
32 | |||
33 | virtual TodayPluginObject *guiPart(); | ||
34 | |||
35 | private: | ||
36 | DatebookPlugin *datebookPlugin; | ||
37 | ulong ref; | ||
38 | |||
39 | |||
40 | }; | ||
41 | |||
42 | #endif | ||
diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp new file mode 100644 index 0000000..e4667ae --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp | |||
@@ -0,0 +1,114 @@ | |||
1 | /* | ||
2 | * datebookpluginwidget.cpp | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | |||
18 | #include "datebookpluginwidget.h" | ||
19 | #include "datebookevent.h" | ||
20 | |||
21 | #include <qpe/timestring.h> | ||
22 | #include <qpe/config.h> | ||
23 | |||
24 | #include <qdatetime.h> | ||
25 | #include <qlabel.h> | ||
26 | #include <qlayout.h> | ||
27 | #include <qtl.h> | ||
28 | #include <qscrollview.h> | ||
29 | #include <qtimer.h> | ||
30 | |||
31 | DatebookPluginWidget::DatebookPluginWidget( QWidget *parent, const char* name) | ||
32 | : QWidget(parent, name ) { | ||
33 | db = 0l; | ||
34 | readConfig(); | ||
35 | getDates(); | ||
36 | } | ||
37 | |||
38 | DatebookPluginWidget::~DatebookPluginWidget() { | ||
39 | delete db; | ||
40 | } | ||
41 | |||
42 | |||
43 | void DatebookPluginWidget::readConfig() { | ||
44 | Config cfg( "todaydatebookplugin" ); | ||
45 | cfg.setGroup( "config" ); | ||
46 | m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); | ||
47 | m_show_location = cfg.readNumEntry( "showlocation", 1 ); | ||
48 | m_show_notes = cfg.readNumEntry( "shownotes", 0 ); | ||
49 | m_onlyLater = cfg.readNumEntry( "onlylater", 1 ); | ||
50 | } | ||
51 | |||
52 | |||
53 | /** | ||
54 | * Get all events that are in the datebook xml file for today | ||
55 | */ | ||
56 | void DatebookPluginWidget::getDates() { | ||
57 | |||
58 | |||
59 | QDate date = QDate::currentDate(); | ||
60 | |||
61 | QVBoxLayout* layoutDates = new QVBoxLayout( this ); | ||
62 | |||
63 | if ( db ) { | ||
64 | delete db; | ||
65 | } | ||
66 | |||
67 | db = new DateBookDB; | ||
68 | |||
69 | QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date ); | ||
70 | |||
71 | qBubbleSort( list ); | ||
72 | |||
73 | Config config( "qpe" ); | ||
74 | |||
75 | int count=0; | ||
76 | |||
77 | if ( list.count() > 0 ) { | ||
78 | |||
79 | for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); it!=list.end(); ++it ) { | ||
80 | |||
81 | if ( count <= m_max_lines_meet ) { | ||
82 | QTime time = QTime::currentTime(); | ||
83 | |||
84 | if ( !m_onlyLater ) { | ||
85 | count++; | ||
86 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); | ||
87 | layoutDates->addWidget( l ); | ||
88 | QObject::connect ( l, SIGNAL( editEvent( const Event &) ), l, SLOT( editEventSlot( const Event &) ) ); | ||
89 | } else if ( ( time.toString() <= TimeString::dateString( (*it).event().end() ) ) ) { | ||
90 | count++; | ||
91 | // show only later appointments | ||
92 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); | ||
93 | layoutDates->addWidget( l ); | ||
94 | QObject::connect ( l, SIGNAL( editEvent( const Event &) ), l, SLOT( editEventSlot( const Event &) ) ); | ||
95 | } | ||
96 | } | ||
97 | } | ||
98 | if ( m_onlyLater && count == 0 ) { | ||
99 | QLabel* noMoreEvents = new QLabel( this ); | ||
100 | noMoreEvents->setText( QObject::tr( "No more appointments today" ) ); | ||
101 | layoutDates->addWidget( noMoreEvents ); | ||
102 | } | ||
103 | } else { | ||
104 | QLabel* noEvents = new QLabel( this ); | ||
105 | noEvents->setText( QObject::tr( "No appointments today" ) ); | ||
106 | layoutDates->addWidget( noEvents ); | ||
107 | } | ||
108 | |||
109 | layoutDates->addItem( new QSpacerItem( 1,1, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); | ||
110 | |||
111 | // how often refresh - later have qcop update calls in *db | ||
112 | //QTimer::singleShot( 20*1000, this , SLOT( getDates() ) ); | ||
113 | } | ||
114 | |||
diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.h b/core/pim/today/plugins/datebook/datebookpluginwidget.h new file mode 100644 index 0000000..e0213ec --- a/dev/null +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * datebookpluginwidget.h | ||
3 | * | ||
4 | * copyright : (c) 2002 by Maximilian Reiß | ||
5 | * email : harlekin@handhelds.org | ||
6 | * | ||
7 | */ | ||
8 | /*************************************************************************** | ||
9 | * * | ||
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 * | ||
12 | * the Free Software Foundation; either version 2 of the License, or * | ||
13 | * (at your option) any later version. * | ||
14 | * * | ||
15 | ***************************************************************************/ | ||
16 | |||
17 | #ifndef DATEBOOK_PLUGIN_WIDGET_H | ||
18 | #define DATEBOOK_PLUGIN_WIDGET_H | ||
19 | |||
20 | #include <qstring.h> | ||
21 | #include <qwidget.h> | ||
22 | |||
23 | #include <qpe/datebookdb.h> | ||
24 | #include <opie/oclickablelabel.h> | ||
25 | |||
26 | |||
27 | class DatebookPluginWidget : public QWidget { | ||
28 | |||
29 | Q_OBJECT | ||
30 | |||
31 | public: | ||
32 | DatebookPluginWidget( QWidget *parent, const char *name ); | ||
33 | ~DatebookPluginWidget(); | ||
34 | |||
35 | |||
36 | private: | ||
37 | DateBookDB* db; | ||
38 | void readConfig(); | ||
39 | void getDates(); | ||
40 | |||
41 | // how many lines should be showed in the datebook section | ||
42 | int m_max_lines_meet; | ||
43 | // If location is to be showed too, 1 to activate it. | ||
44 | int m_show_location; | ||
45 | // if notes should be shown | ||
46 | int m_show_notes; | ||
47 | // should only later appointments be shown or all for the current day. | ||
48 | int m_onlyLater; | ||
49 | |||
50 | }; | ||
51 | |||
52 | #endif | ||
diff --git a/core/pim/today/plugins/datebook/opie-today-datebookplugin.control b/core/pim/today/plugins/datebook/opie-today-datebookplugin.control new file mode 100644 index 0000000..3ee523b --- a/dev/null +++ b/core/pim/today/plugins/datebook/opie-today-datebookplugin.control | |||
@@ -0,0 +1,8 @@ | |||
1 | Files: $OPIEDIR/lib/today/libtodaydatebookplugin.so* | ||
2 | Priority: optional | ||
3 | Section: opie/applications | ||
4 | Maintainer: Maximilian Reiss <harlekin@handhelds.org> | ||
5 | Architecture: arm | ||
6 | Version: $QPE_VERSION-$SUB_VERSION | ||
7 | Depends: qt-embedded (>=$QTE_VERSION) | ||
8 | Description: Datebook plugin for today | ||