summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookdayallday.cpp25
-rw-r--r--core/pim/datebook/datebookdayallday.h4
2 files changed, 19 insertions, 10 deletions
diff --git a/core/pim/datebook/datebookdayallday.cpp b/core/pim/datebook/datebookdayallday.cpp
index 985f31a..6014eca 100644
--- a/core/pim/datebook/datebookdayallday.cpp
+++ b/core/pim/datebook/datebookdayallday.cpp
@@ -1,119 +1,127 @@
1/**************************************************************************** 1/****************************************************************************
2** GPL by Rajko Albrecht 2** GPL by Rajko Albrecht
3** 3**
4** 4**
5** 5**
6** 6**
7** 7**
8****************************************************************************/ 8****************************************************************************/
9#include "datebookdayallday.h" 9#include "datebookdayallday.h"
10 10
11#include <qpushbutton.h> 11#include <qpushbutton.h>
12#include <qlayout.h> 12#include <qlayout.h>
13#include <qvariant.h> 13#include <qvariant.h>
14#include <qtooltip.h> 14#include <qtooltip.h>
15#include <qwhatsthis.h> 15#include <qwhatsthis.h>
16#include <qobjectlist.h> 16#include <qobjectlist.h>
17#include <qpe/event.h> 17#include <qpe/event.h>
18#include <qpe/ir.h> 18#include <qpe/ir.h>
19#include <qpe/datebookdb.h> 19#include <qpe/datebookdb.h>
20#include <qpe/resource.h> 20#include <qpe/resource.h>
21#include <qpopupmenu.h> 21#include <qpopupmenu.h>
22#include <qtimer.h> 22#include <qtimer.h>
23#include <qregexp.h> 23#include <qregexp.h>
24#include <qdatetime.h> 24#include <qdatetime.h>
25 25
26#include "datebookday.h" 26#include "datebookday.h"
27 27
28/* 28/*
29 * Constructs a DatebookdayAllday which is a child of 'parent', with the 29 * Constructs a DatebookdayAllday which is a child of 'parent', with the
30 * name 'name' and widget flags set to 'f' 30 * name 'name' and widget flags set to 'f'
31 */ 31 */
32DatebookdayAllday::DatebookdayAllday(DateBookDB* db, QWidget* parent, const char* name, WFlags fl ) 32DatebookdayAllday::DatebookdayAllday(DateBookDB* db, QWidget* parent, const char* name, WFlags )
33 : QWidget( parent, name,fl ),item_count(0),dateBook(db) 33 : QScrollView( parent, name ),item_count(0),dateBook(db)
34{ 34{
35 if ( !name ) 35 if ( !name )
36 setName( "DatebookdayAllday" ); 36 setName( "DatebookdayAllday" );
37 setMinimumSize( QSize( 0, 0 ) ); 37 setMinimumSize( QSize( 0, 0 ) );
38 setMaximumHeight(3* (QFontMetrics(font()).height()+4) );
38 39
39 datebookdayalldayLayout = new QVBoxLayout( this ); 40 m_MainFrame = new QFrame(viewport());
41 m_MainFrame->setFrameStyle(QFrame::NoFrame|QFrame::Plain);
42 setFrameStyle(QFrame::NoFrame|QFrame::Plain);
43 setResizePolicy( QScrollView::AutoOneFit );
44 addChild(m_MainFrame);
45
46 datebookdayalldayLayout = new QVBoxLayout( m_MainFrame );
40 datebookdayalldayLayout->setSpacing( 0 ); 47 datebookdayalldayLayout->setSpacing( 0 );
41 datebookdayalldayLayout->setMargin( 0 ); 48 datebookdayalldayLayout->setMargin( 0 );
42 49
43 lblDesc = new DatebookEventDesc(parent->parentWidget(),""); 50 lblDesc = new DatebookEventDesc(parent->parentWidget(),"");
44 lblDesc->setBackgroundColor(Qt::yellow); 51 lblDesc->setBackgroundColor(Qt::yellow);
45 lblDesc->hide(); 52 lblDesc->hide();
46 subWidgets.setAutoDelete(true); 53 subWidgets.setAutoDelete(true);
47} 54}
48 55
49/* 56/*
50 * Destroys the object and frees any allocated resources 57 * Destroys the object and frees any allocated resources
51 */ 58 */
52DatebookdayAllday::~DatebookdayAllday() 59DatebookdayAllday::~DatebookdayAllday()
53{ 60{
54 // no need to delete child widgets, Qt does it all for us 61 // no need to delete child widgets, Qt does it all for us
55} 62}
56 63
57DatebookAlldayDisp* DatebookdayAllday::addEvent(const EffectiveEvent&ev) 64DatebookAlldayDisp* DatebookdayAllday::addEvent(const EffectiveEvent&ev)
58{ 65{
59 DatebookAlldayDisp * lb; 66 DatebookAlldayDisp * lb;
60 lb = new DatebookAlldayDisp(dateBook,ev,this,NULL); 67 lb = new DatebookAlldayDisp(dateBook,ev,m_MainFrame,NULL);
61 datebookdayalldayLayout->addWidget(lb); 68 datebookdayalldayLayout->addWidget(lb);
62 subWidgets.append(lb); 69 subWidgets.append(lb);
63 70
64 connect(lb,SIGNAL(displayMe(const Event &)),lblDesc,SLOT(disp_event(const Event&))); 71 connect(lb,SIGNAL(displayMe(const Event &)),lblDesc,SLOT(disp_event(const Event&)));
65 ++item_count; 72 ++item_count;
66 73
67 return lb; 74 return lb;
68} 75}
69 76
70void DatebookdayAllday::removeAllEvents() 77void DatebookdayAllday::removeAllEvents()
71{ 78{
72 subWidgets.clear(); 79 subWidgets.clear();
73 item_count = 0; 80 item_count = 0;
74} 81}
75 82
76DatebookAlldayDisp::DatebookAlldayDisp(DateBookDB *db,const EffectiveEvent& ev, 83DatebookAlldayDisp::DatebookAlldayDisp(DateBookDB *db,const EffectiveEvent& ev,
77 QWidget* parent,const char* name,WFlags f) 84 QWidget* parent,const char* name,WFlags f)
78 : QLabel(parent,name,f),m_Ev(ev),dateBook(db) 85 : QLabel(parent,name,f),m_Ev(ev),dateBook(db)
79{ 86{
80 QString strDesc = m_Ev.description(); 87 QString strDesc = m_Ev.description();
81 strDesc = strDesc.replace(QRegExp("<"),"&#60;"); 88 strDesc = strDesc.replace(QRegExp("<"),"&#60;");
82 setBackgroundColor(yellow); 89 setBackgroundColor(yellow);
83 setText(strDesc); 90 setText(strDesc);
84 setFrameStyle(QFrame::Raised|QFrame::Panel); 91 setFrameStyle(QFrame::Raised|QFrame::Panel);
85 QSize s = sizeHint(); 92
86 setMaximumSize( QSize( 32767, s.height()-4 ) ); 93 int s = QFontMetrics(font()).height()+4;
87 setMinimumSize( QSize( 0, s.height()-4 ) ); 94 setMaximumHeight( s );
95 setMinimumSize( QSize( 0, s ) );
88} 96}
89 97
90DatebookAlldayDisp::~DatebookAlldayDisp() 98DatebookAlldayDisp::~DatebookAlldayDisp()
91{ 99{
92} 100}
93 101
94void DatebookAlldayDisp::beam_single_event() 102void DatebookAlldayDisp::beam_single_event()
95{ 103{
96 // create an Event and beam it... 104 // create an Event and beam it...
97 /* 105 /*
98 * Start with the easy stuff. If start and end date is the same we can just use 106 * Start with the easy stuff. If start and end date is the same we can just use
99 * the values of effective m_Events 107 * the values of effective m_Events
100 * If it is a multi day m_Event we need to find the real start and end date... 108 * If it is a multi day m_Event we need to find the real start and end date...
101 */ 109 */
102 if ( m_Ev.event().start().date() == m_Ev.event().end().date() ) { 110 if ( m_Ev.event().start().date() == m_Ev.event().end().date() ) {
103 Event m_Event( m_Ev.event() ); 111 Event m_Event( m_Ev.event() );
104 112
105 QDateTime dt( m_Ev.date(), m_Ev.start() ); 113 QDateTime dt( m_Ev.date(), m_Ev.start() );
106 m_Event.setStart( dt ); 114 m_Event.setStart( dt );
107 115
108 dt.setTime( m_Ev.end() ); 116 dt.setTime( m_Ev.end() );
109 m_Event.setEnd( dt ); 117 m_Event.setEnd( dt );
110 emit beamMe( m_Event ); 118 emit beamMe( m_Event );
111 }else { 119 }else {
112 /* 120 /*
113 * at least the the Times are right now 121 * at least the the Times are right now
114 */ 122 */
115 QDateTime start( m_Ev.event().start() ); 123 QDateTime start( m_Ev.event().start() );
116 QDateTime end ( m_Ev.event().end () ); 124 QDateTime end ( m_Ev.event().end () );
117 125
118 /* 126 /*
119 * ok we know the start date or we need to find it 127 * ok we know the start date or we need to find it
@@ -194,33 +202,32 @@ DatebookEventDesc::DatebookEventDesc(QWidget*parent,const char*name)
194 202
195DatebookEventDesc::~DatebookEventDesc() 203DatebookEventDesc::~DatebookEventDesc()
196{ 204{
197} 205}
198 206
199void DatebookEventDesc::mousePressEvent(QMouseEvent*) 207void DatebookEventDesc::mousePressEvent(QMouseEvent*)
200{ 208{
201 hide(); 209 hide();
202 if (m_Timer->isActive()) m_Timer->stop(); 210 if (m_Timer->isActive()) m_Timer->stop();
203} 211}
204 212
205void DatebookEventDesc::disp_event(const Event&e) 213void DatebookEventDesc::disp_event(const Event&e)
206{ 214{
207 if (m_Timer->isActive()) m_Timer->stop(); 215 if (m_Timer->isActive()) m_Timer->stop();
208 QString text; 216 QString text;
209 text = "<b><i>"+e.description()+"</i></b><br>"; 217 text = "<b><i>"+e.description()+"</i></b><br>";
210 if (e.notes().length()>0) { 218 if (e.notes().length()>0) {
211 text+="<b>"+e.notes()+"</b><br>"; 219 text+="<b>"+e.notes()+"</b><br>";
212 } 220 }
213 if (e.location().length()>0) { 221 if (e.location().length()>0) {
214 text+="<i>"+e.location()+"</i><br>"; 222 text+="<i>"+e.location()+"</i><br>";
215 } 223 }
216 text = text.replace(QRegExp("\n"),"<br>"); 224 text = text.replace(QRegExp("\n"),"<br>");
217 setText(text); 225 setText(text);
218 QSize s = sizeHint(); 226 QSize s = sizeHint();
219 s+=QSize(10,10); 227 s+=QSize(10,10);
220 resize(s); 228 resize(s);
221 move( QMAX(0,(parentWidget()->width()-width()) / 2), 229 move( QMAX(0,(parentWidget()->width()-width()) / 2),
222 (parentWidget()->height()-height())/2 ); 230 (parentWidget()->height()-height())/2 );
223 show(); 231 show();
224 m_Timer->start(2000,true); 232 m_Timer->start(2000,true);
225} 233}
226
diff --git a/core/pim/datebook/datebookdayallday.h b/core/pim/datebook/datebookdayallday.h
index c781785..f5867e5 100644
--- a/core/pim/datebook/datebookdayallday.h
+++ b/core/pim/datebook/datebookdayallday.h
@@ -1,63 +1,65 @@
1#ifndef DATEBOOKDAYALLDAYBASE_H 1#ifndef DATEBOOKDAYALLDAYBASE_H
2#define DATEBOOKDAYALLDAYBASE_H 2#define DATEBOOKDAYALLDAYBASE_H
3 3
4#include <qvariant.h> 4#include <qvariant.h>
5#include <qframe.h> 5#include <qframe.h>
6#include <qscrollview.h>
6#include <qlabel.h> 7#include <qlabel.h>
7#include <qlist.h> 8#include <qlist.h>
8#include <qpe/event.h> 9#include <qpe/event.h>
9 10
10class QVBoxLayout; 11class QVBoxLayout;
11class QHBoxLayout; 12class QHBoxLayout;
12class QGridLayout; 13class QGridLayout;
13class DatebookAlldayDisp; 14class DatebookAlldayDisp;
14class DatebookEventDesc; 15class DatebookEventDesc;
15class DateBookDB; 16class DateBookDB;
16 17
17class DatebookdayAllday : public QWidget 18class DatebookdayAllday : public QScrollView
18{ 19{
19 Q_OBJECT 20 Q_OBJECT
20 21
21public: 22public:
22 DatebookdayAllday(DateBookDB* db, 23 DatebookdayAllday(DateBookDB* db,
23 QWidget* parent = 0, const char* name = 0, WFlags fl = 0); 24 QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
24 ~DatebookdayAllday(); 25 ~DatebookdayAllday();
25 DatebookAlldayDisp* addEvent(const EffectiveEvent&e); 26 DatebookAlldayDisp* addEvent(const EffectiveEvent&e);
26 const unsigned int items()const{return item_count;} 27 const unsigned int items()const{return item_count;}
27 28
28public slots: 29public slots:
29 void removeAllEvents(); 30 void removeAllEvents();
30 31
31protected: 32protected:
33 QFrame * m_MainFrame;
32 QVBoxLayout* datebookdayalldayLayout; 34 QVBoxLayout* datebookdayalldayLayout;
33 DatebookEventDesc * lblDesc; 35 DatebookEventDesc * lblDesc;
34 unsigned int item_count; 36 unsigned int item_count;
35 QList<DatebookAlldayDisp> subWidgets; 37 QList<DatebookAlldayDisp> subWidgets;
36 DateBookDB *dateBook; 38 DateBookDB *dateBook;
37}; 39};
38 40
39class DatebookAlldayDisp : public QLabel 41class DatebookAlldayDisp : public QLabel
40{ 42{
41 Q_OBJECT 43 Q_OBJECT
42 44
43public: 45public:
44 DatebookAlldayDisp(DateBookDB* db,const EffectiveEvent& e, 46 DatebookAlldayDisp(DateBookDB* db,const EffectiveEvent& e,
45 QWidget* parent=0,const char* name = 0, WFlags fl=0); 47 QWidget* parent=0,const char* name = 0, WFlags fl=0);
46 virtual ~DatebookAlldayDisp(); 48 virtual ~DatebookAlldayDisp();
47 49
48signals: 50signals:
49 void deleteMe( const Event &e ); 51 void deleteMe( const Event &e );
50 void duplicateMe( const Event &e ); 52 void duplicateMe( const Event &e );
51 void editMe( const Event &e ); 53 void editMe( const Event &e );
52 void beamMe( const Event &e ); 54 void beamMe( const Event &e );
53 void displayMe(const Event &e); 55 void displayMe(const Event &e);
54 56
55public slots: 57public slots:
56 58
57protected: 59protected:
58 EffectiveEvent m_Ev; 60 EffectiveEvent m_Ev;
59 DateBookDB* dateBook; 61 DateBookDB* dateBook;
60 void mousePressEvent( QMouseEvent *e ); 62 void mousePressEvent( QMouseEvent *e );
61 void beam_single_event(); 63 void beam_single_event();
62}; 64};
63 65