-rw-r--r-- | core/pim/today/changelog | 2 | ||||
-rw-r--r-- | core/pim/today/plugins/datebook/datebook.pro | 3 | ||||
-rw-r--r-- | core/pim/today/plugins/datebook/datebookevent.cpp | 22 | ||||
-rw-r--r-- | core/pim/today/plugins/datebook/datebookevent.h | 1 | ||||
-rw-r--r-- | core/pim/today/plugins/datebook/datebookpluginwidget.cpp | 5 |
5 files changed, 11 insertions, 22 deletions
diff --git a/core/pim/today/changelog b/core/pim/today/changelog index eb2496a..93abdcb 100644 --- a/core/pim/today/changelog +++ b/core/pim/today/changelog @@ -1,99 +1,101 @@ 0.5.2 * refresh settings +* only launch datebook config when clicked on a date ( opie only ) +* less qcop trouble on sharps retail rom 0.5.1 * icons scalable and clickable again 0.5 * now fully plugin based 0.3.4 * "fill our business card now a clickable label" * Several bugfixes regarding todo section. 0.3.3 * Changed the logo so it better scales to bigger display and also made the "Today" string translatable. * some am/pm fixes * clickable labels now in libopie 0.3.2 * Autostart is now more configurable. You can decide how long the ipaq has to has been suspended, before autostart is triggered.(Opie only) * am/pm time optinal (autodetect) 0.3.1 * fixed the wrong color of the buttons * better translation (thanks carsten and others) * fixes memory leaks * bugfixes in calendar part, now location and note are working again. 0.3.0 * today uses now tododb from libopie. So major changes in the todo part: - overdue items on top - then sorted by date, then by priority * some cleanups * speed optimisations 0.2.9 * Many bugfixes. * Today now apparently sorts the dates _allways_ right, i would assume it to be a qt bug 0.2.8 * Appointments are now clickable (connection to datebook still missing) * autostart support (opie only) 0.2.7 * check if todolist.xml was changed before parsing it * check only every 30 sec for changes. * some visual stuff * as usual many little improvements .-) 0.2.6 * added scrollbars to dates and todo * all day detection * some smaller bugfixes 0.2.5 * some other minor fixes regarding autoupdate * fixed segfault with todolist > 7 entries * fixed the "ugly grey border around buttons" issue * fixed the "empty calendar field" "bug" * shown only later appointments as option 0.2.4 * added support for email * autoupdates after 1 min * QCopEnvelope instead of system() * starting to use qvbox in gui 0.2.3 * the 4 am release * several bugfixes 0.2.2 * started working on calling other apps * and finished it 0.2.1 diff --git a/core/pim/today/plugins/datebook/datebook.pro b/core/pim/today/plugins/datebook/datebook.pro index 615059a..0bbdb77 100644 --- a/core/pim/today/plugins/datebook/datebook.pro +++ b/core/pim/today/plugins/datebook/datebook.pro @@ -1,19 +1,18 @@ TEMPLATE = lib CONFIG -= moc -CONFIG += qt debug - +CONFIG += qt release # Input HEADERS = datebookplugin.h datebookpluginimpl.h datebookpluginconfig.h \ datebookevent.h datebookpluginwidget.h SOURCES = datebookplugin.cpp datebookpluginimpl.cpp datebookpluginconfig.cpp \ datebookevent.cpp datebookpluginwidget.cpp INCLUDEPATH += $(OPIEDIR)/include \ ../ ../library DEPENDPATH += $(OPIEDIR)/include \ ../ ../library LIBS+= -lqpe -lopie DESTDIR = $(OPIEDIR)/plugins/today 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 index c37813b..0a0d186 100644 --- a/core/pim/today/plugins/datebook/datebookevent.cpp +++ b/core/pim/today/plugins/datebook/datebookevent.cpp @@ -1,122 +1,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() ) ); - // setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); } /** * 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 ) { - startDatebook(); - while( !QCopChannel::isRegistered( "QPE/Datebook" ) ) qApp->processEvents(); + if ( ODevice::inst()->system() == System_Zaurus ) { + QCopEnvelope env( "QPE/Application/datebook", "raise()" ); + } else { 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() ); } diff --git a/core/pim/today/plugins/datebook/datebookevent.h b/core/pim/today/plugins/datebook/datebookevent.h index 61c64f1..7b0371a 100644 --- a/core/pim/today/plugins/datebook/datebookevent.h +++ b/core/pim/today/plugins/datebook/datebookevent.h @@ -1,49 +1,48 @@ /* * datebookplugin.h * * 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. * * * ***************************************************************************/ #ifndef DATEBOOKEVENT_PLUGIN_H #define DATEBOOKEVENT_PLUGIN_H #include <opie/oclickablelabel.h> #include <qpe/datebookdb.h> class DateBookEvent: public OClickableLabel { Q_OBJECT public: DateBookEvent(const EffectiveEvent &ev, QWidget* parent = 0, bool show_location = 0, bool show_notes = 0, int maxCharClip = 0, const char* name = 0, WFlags fl = 0); signals: void editEvent(const Event &e); private slots: void editEventSlot(const Event &e); void editMe(); private: - void startDatebook(); DateBookDB *db; QString ampmTime(QTime); const EffectiveEvent event; bool ampm; }; #endif diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp index 7948656..a8ce059 100644 --- a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp @@ -14,103 +14,98 @@ * * ***************************************************************************/ #include "datebookpluginwidget.h" #include "datebookevent.h" #include <qpe/timestring.h> #include <qpe/config.h> #include <qdatetime.h> #include <qlabel.h> #include <qlayout.h> #include <qtl.h> #include <qscrollview.h> #include <qtimer.h> DatebookPluginWidget::DatebookPluginWidget( QWidget *parent, const char* name) : QWidget(parent, name ) { db = 0l; readConfig(); getDates(); } DatebookPluginWidget::~DatebookPluginWidget() { delete db; } void DatebookPluginWidget::readConfig() { Config cfg( "todaydatebookplugin" ); cfg.setGroup( "config" ); m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); m_show_location = cfg.readNumEntry( "showlocation", 1 ); m_show_notes = cfg.readNumEntry( "shownotes", 0 ); m_onlyLater = cfg.readNumEntry( "onlylater", 1 ); } /** * Get all events that are in the datebook xml file for today */ void DatebookPluginWidget::getDates() { QDate date = QDate::currentDate(); QVBoxLayout* layoutDates = new QVBoxLayout( this ); layoutDates->setSpacing( 1 ); layoutDates->setMargin( 1 ); if ( db ) { delete db; } db = new DateBookDB; QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date ); qBubbleSort( list ); Config config( "qpe" ); int count=0; if ( list.count() > 0 ) { for ( QValueList<EffectiveEvent>::ConstIterator it=list.begin(); it!=list.end(); ++it ) { if ( count <= m_max_lines_meet ) { QTime time = QTime::currentTime(); if ( !m_onlyLater ) { count++; DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); layoutDates->addWidget( l ); QObject::connect ( l, SIGNAL( editEvent( const Event &) ), l, SLOT( editEventSlot( const Event &) ) ); } else if ( ( time.toString() <= TimeString::dateString( (*it).event().end() ) ) ) { count++; // show only later appointments DateBookEvent *l = new DateBookEvent( *it, this, m_show_location, m_show_notes ); layoutDates->addWidget( l ); QObject::connect ( l, SIGNAL( editEvent( const Event &) ), l, SLOT( editEventSlot( const Event &) ) ); } } } if ( m_onlyLater && count == 0 ) { QLabel* noMoreEvents = new QLabel( this ); noMoreEvents->setText( QObject::tr( "No more appointments today" ) ); layoutDates->addWidget( noMoreEvents ); } } else { QLabel* noEvents = new QLabel( this ); noEvents->setText( QObject::tr( "No appointments today" ) ); layoutDates->addWidget( noEvents ); } - //layoutDates->addStretch(0); -// layoutDates->addItem( new QSpacerItem( 1,1, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); - - // how often refresh - later have qcop update calls in *db - //QTimer::singleShot( 20*1000, this , SLOT( getDates() ) ); } |