-rw-r--r-- | core/pim/today/plugins/datebook/datebookpluginwidget.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp index 896d41d..781e3a4 100644 --- a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp | |||
@@ -24,92 +24,102 @@ | |||
24 | #include <qlabel.h> | 24 | #include <qlabel.h> |
25 | #include <qtl.h> | 25 | #include <qtl.h> |
26 | 26 | ||
27 | DatebookPluginWidget::DatebookPluginWidget( QWidget *parent, const char* name ) | 27 | DatebookPluginWidget::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 ) { | 33 | if ( db ) { |
34 | delete db; | 34 | delete db; |
35 | } | 35 | } |
36 | db = new DateBookDB; | 36 | db = new DateBookDB; |
37 | 37 | ||
38 | if ( m_layoutDates ) { | 38 | if ( m_layoutDates ) { |
39 | delete m_layoutDates; | 39 | delete m_layoutDates; |
40 | } | 40 | } |
41 | m_layoutDates = new QVBoxLayout( this ); | 41 | m_layoutDates = new QVBoxLayout( this ); |
42 | m_layoutDates->setAutoAdd( true ); | 42 | m_layoutDates->setAutoAdd( true ); |
43 | 43 | ||
44 | m_eventsList.setAutoDelete( true ); | 44 | m_eventsList.setAutoDelete( true ); |
45 | 45 | ||
46 | readConfig(); | 46 | readConfig(); |
47 | getDates(); | 47 | getDates(); |
48 | m_layoutDates->addStretch(5); | ||
48 | } | 49 | } |
49 | 50 | ||
50 | DatebookPluginWidget::~DatebookPluginWidget() { | 51 | DatebookPluginWidget::~DatebookPluginWidget() { |
51 | delete db; | 52 | delete db; |
52 | delete m_layoutDates; | 53 | delete m_layoutDates; |
53 | } | 54 | } |
54 | 55 | ||
55 | 56 | ||
56 | void DatebookPluginWidget::readConfig() { | 57 | void DatebookPluginWidget::readConfig() { |
57 | Config cfg( "todaydatebookplugin" ); | 58 | Config cfg( "todaydatebookplugin" ); |
58 | cfg.setGroup( "config" ); | 59 | cfg.setGroup( "config" ); |
59 | m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); | 60 | m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); |
60 | m_show_location = cfg.readNumEntry( "showlocation", 1 ); | 61 | m_show_location = cfg.readNumEntry( "showlocation", 1 ); |
61 | m_show_notes = cfg.readNumEntry( "shownotes", 0 ); | 62 | m_show_notes = cfg.readNumEntry( "shownotes", 0 ); |
62 | m_onlyLater = cfg.readNumEntry( "onlylater", 1 ); | 63 | m_onlyLater = cfg.readNumEntry( "onlylater", 1 ); |
63 | m_moreDays = cfg.readNumEntry( "moredays", 0 ); | 64 | m_moreDays = cfg.readNumEntry( "moredays", 0 ); |
64 | } | 65 | } |
65 | 66 | ||
66 | void DatebookPluginWidget::refresh() { | 67 | void DatebookPluginWidget::refresh() { |
67 | m_eventsList.clear(); | 68 | m_eventsList.clear(); |
69 | |||
70 | if ( m_layoutDates ) { | ||
71 | delete m_layoutDates; | ||
72 | } | ||
73 | m_layoutDates = new QVBoxLayout( this ); | ||
74 | m_layoutDates->setAutoAdd( true ); | ||
75 | |||
68 | getDates(); | 76 | getDates(); |
77 | m_layoutDates->addStretch(5); | ||
69 | } | 78 | } |
70 | 79 | ||
71 | /** | 80 | /** |
72 | * Get all events that are in the datebook xml file for today | 81 | * Get all events that are in the datebook xml file for today |
73 | */ | 82 | */ |
74 | void DatebookPluginWidget::getDates() { | 83 | void DatebookPluginWidget::getDates() { |
75 | 84 | ||
76 | QDate date = QDate::currentDate(); | 85 | QDate date = QDate::currentDate(); |
77 | QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date.addDays( m_moreDays ) ); | 86 | QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date.addDays( m_moreDays ) ); |
78 | qBubbleSort( list ); | 87 | qBubbleSort( list ); |
79 | int count = 0; | 88 | int count = 0; |
80 | 89 | ||
81 | if ( list.count() > 0 ) { | 90 | if ( list.count() > 0 ) { |
82 | 91 | ||
83 | for ( QValueList<EffectiveEvent>::ConstIterator it = list.begin(); it != list.end(); ++it ) { | 92 | for ( QValueList<EffectiveEvent>::ConstIterator it = list.begin(); it != list.end(); ++it ) { |
84 | 93 | ||
85 | if ( count <= m_max_lines_meet ) { | 94 | if ( count <= m_max_lines_meet ) { |
86 | if ( !m_onlyLater ) { | 95 | if ( !m_onlyLater ) { |
87 | count++; | 96 | count++; |
88 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); | 97 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); |
89 | m_eventsList.append( l ); | 98 | m_eventsList.append( l ); |
90 | l->show(); | 99 | l->show(); |
91 | QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) ); | 100 | QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) ); |
92 | } else if ( QDateTime::currentDateTime() <= (*it).event().end() ) { | 101 | } else if ( QDateTime::currentDateTime() <= (*it).event().end() || (*it).event().start().date() != date ) { |
93 | count++; | 102 | count++; |
94 | // show only later appointments | 103 | // show only later appointments |
95 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); | 104 | DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); |
96 | m_eventsList.append( l ); | 105 | m_eventsList.append( l ); |
97 | l->show(); | 106 | l->show(); |
98 | QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) ); | 107 | QObject::connect ( l, SIGNAL( editEvent( const Event & ) ), l, SLOT( editEventSlot( const Event & ) ) ); |
99 | } | 108 | } |
100 | } | 109 | } |
101 | } | 110 | } |
102 | if ( m_onlyLater && count == 0 ) { | 111 | if ( m_onlyLater && count == 0 ) { |
103 | QLabel* noMoreEvents = new QLabel( this ); | 112 | QLabel* noMoreEvents = new QLabel( this ); |
104 | m_eventsList.append( noMoreEvents ); | 113 | m_eventsList.append( noMoreEvents ); |
105 | noMoreEvents->show(); | 114 | noMoreEvents->show(); |
106 | noMoreEvents->setText( QObject::tr( "No more appointments today" ) ); | 115 | noMoreEvents->setText( QObject::tr( "No more appointments today" ) ); |
107 | } | 116 | } |
108 | } else { | 117 | } else { |
109 | QLabel* noEvents = new QLabel( this ); | 118 | QLabel* noEvents = new QLabel( this ); |
110 | m_eventsList.append( noEvents ); | 119 | m_eventsList.append( noEvents ); |
111 | noEvents->show(); | 120 | noEvents->show(); |
112 | noEvents->setText( QObject::tr( "No appointments today" ) ); | 121 | noEvents->setText( QObject::tr( "No appointments today" ) ); |
113 | } | 122 | } |
114 | } | 123 | } |
115 | 124 | ||
125 | |||