1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
/*
* datebookevent.cpp
*
* copyright : (c) 2002 by Maximilian Reiß
* email : harlekin@handhelds.org
*
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "datebookevent.h"
#include <qpe/config.h>
#include <qpe/timestring.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/qpeapplication.h>
#include <opie/odevice.h>
using namespace Opie;
DateBookEvent::DateBookEvent(const EffectiveEvent &ev,
QWidget* parent,
bool show_location,
bool show_notes,
int maxCharClip,
const char* name,
WFlags fl) :
OClickableLabel(parent,name,fl), event(ev) {
setAlignment( AlignTop );
QString msg;
Config config( "qpe" );
config.setGroup( "Time" );
// if 24 h format
ampm = config.readBoolEntry( "AMPM", TRUE );
msg += "<B>" + (ev).description() + "</B>";
if ( (ev).event().hasAlarm() ) {
msg += " <b>[with alarm]</b>";
}
// include location or not
if ( show_location ) {
msg += "<BR><i>" + (ev).location() + "</i>";
}
if ( ( TimeString::timeString( QTime( (ev).event().start().time() ) ) == "00:00" )
&& ( TimeString::timeString( QTime( (ev).event().end().time() ) ) == "23:59" ) ) {
msg += "<br>All day";
} else {
// start time of event
msg += "<br>" + ampmTime(QTime( (ev).event().start().time() ) )
// end time of event
+ "<b> - </b>" + ampmTime(QTime( (ev).event().end().time() ) );
}
// include possible note or not
if ( show_notes ) {
msg += "<br> <i>note</i>:" +( (ev).notes() ).mid( 0, maxCharClip );
}
setText( msg );
connect( this, SIGNAL( clicked() ), this, SLOT( editMe() ) );
}
/**
* AM/PM timestring conversion.
* @param tm the timestring
* @return formatted to am/pm is system is set to it
*/
QString DateBookEvent::ampmTime( QTime tm ) {
QString s;
if( ampm ) {
int hour = tm.hour();
if ( hour == 0 ) {
hour = 12;
}
if ( hour > 12 ) {
hour -= 12;
}
s.sprintf( "%2d:%02d %s", hour, tm.minute(),
(tm.hour() >= 12) ? "PM" : "AM" );
return s;
} else {
s.sprintf( "%2d:%02d", tm.hour(), tm.minute() );
return s;
}
}
/**
* starts the edit dialog as known from datebook
*/
void DateBookEvent::editEventSlot( const Event &e ) {
if ( ODevice::inst()->system() == System_Zaurus ) {
QCopEnvelope env( "QPE/Application/datebook", "raise()" );
} else {
QCopEnvelope env( "QPE/Datebook", "editEvent(int)" );
env << e.uid();
}
}
void DateBookEvent::editMe() {
emit editEvent( event.event() );
}
|