From 87cd421d72df1d7706925285a48c008007471310 Mon Sep 17 00:00:00 2001 From: harlekin Date: Sun, 15 Sep 2002 21:13:47 +0000 Subject: plugins for the new today --- (limited to 'core/pim/today/plugins/datebook/datebookevent.cpp') 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 @@ +/* + * 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 +#include +#include +#include + +DateBookEvent::DateBookEvent(const EffectiveEvent &ev, + QWidget* parent, + int show_location, + int show_notes, + // int onlyLater, + int maxCharClip, + const char* name, + WFlags fl) : + OClickableLabel(parent,name,fl), event(ev) { + + QString msg; + + Config config( "qpe" ); + config.setGroup( "Time" ); + // if 24 h format + ampm = config.readBoolEntry( "AMPM", TRUE ); + + msg += "" + (ev).description() + ""; + if ( (ev).event().hasAlarm() ) { + msg += " [with alarm]"; + } + + // include location or not + if ( show_location == 1) { + msg += "
" + (ev).location() + ""; + } + + if ( ( TimeString::timeString( QTime( (ev).event().start().time() ) ) == "00:00" ) + && ( TimeString::timeString( QTime( (ev).event().end().time() ) ) == "23:59") ) { + msg += "
All day"; + } else { + // start time of event + msg += "
" + ampmTime(QTime( (ev).event().start().time() ) ) + // end time of event + + " - " + ampmTime(QTime( (ev).event().end().time() ) ); + } + + // include possible note or not + if ( show_notes == 1) { + msg += "
note:" +( (ev).notes() ).mid( 0, maxCharClip ); + } + + setText( msg ); + connect( this, SIGNAL( clicked() ), this, SLOT( editMe() ) ); + setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); +} + + +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; + } + +} + + +//extern QPEApplication *todayApp; + +/* + * starts the edit dialog as known from datebook + */ +void DateBookEvent::editEventSlot( const Event &e ) { + startDatebook(); + + while( !QCopChannel::isRegistered( "QPE/Datebook" ) ) qApp->processEvents(); + QCopEnvelope env( "QPE/Datebook", "editEvent(int)" ); + env << e.uid(); +} + + +/** + * launches datebook + */ +void DateBookEvent::startDatebook() { + QCopEnvelope e("QPE/System", "execute(QString)"); + e << QString("datebook"); +} + +void DateBookEvent::editMe() { + emit editEvent(event.event()); +} + -- cgit v0.9.0.2