6 files changed, 46 insertions, 7 deletions
diff --git a/core/pim/today/plugins/datebook/datebookevent.cpp b/core/pim/today/plugins/datebook/datebookevent.cpp index 0a0d186..8277529 100644 --- a/core/pim/today/plugins/datebook/datebookevent.cpp +++ b/core/pim/today/plugins/datebook/datebookevent.cpp @@ -52,19 +52,22 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev, 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() ) ) + QDate tempDate = (ev).event().start().date(); + msg += "<br>" + + ampmTime( QTime( (ev).event().start().time() ) ) // end time of event - + "<b> - </b>" + ampmTime(QTime( (ev).event().end().time() ) ); + + "<b> - </b>" + ampmTime( QTime( (ev).event().end().time() ) ) + + differDate( tempDate ); } // 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() ) ); @@ -90,16 +93,33 @@ QString DateBookEvent::ampmTime( QTime tm ) { (tm.hour() >= 12) ? "PM" : "AM" ); return s; } else { s.sprintf( "%2d:%02d", tm.hour(), tm.minute() ); return s; } } +QString DateBookEvent::differDate( QDate date ) { + QDate currentDate = QDate::currentDate(); + QString returnText = "<font color = #407DD9><b> "; + int differDate = currentDate.daysTo( date ); + if ( currentDate.dayOfWeek() == date.dayOfWeek() ) { + returnText += "" ; + // not working right for recurring events + //} else if ( differDate == 1 ) { + //returnText += tr( "tomorrow" ); + } else { + //returnText += tr( "in %1 days" ).arg( differDate ); + returnText += " [ " + date.dayName( date.dayOfWeek() ) + " ] "; + } + returnText += "</b></font>"; + return returnText; +} + /** * 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()" ); diff --git a/core/pim/today/plugins/datebook/datebookevent.h b/core/pim/today/plugins/datebook/datebookevent.h index 7b0371a..f8a9c03 100644 --- a/core/pim/today/plugins/datebook/datebookevent.h +++ b/core/pim/today/plugins/datebook/datebookevent.h @@ -36,13 +36,14 @@ public: signals: void editEvent(const Event &e); private slots: void editEventSlot(const Event &e); void editMe(); private: DateBookDB *db; QString ampmTime(QTime); + QString differDate( QDate date ); const EffectiveEvent event; bool ampm; }; #endif diff --git a/core/pim/today/plugins/datebook/datebookpluginconfig.cpp b/core/pim/today/plugins/datebook/datebookpluginconfig.cpp index e93c82c..0fc38de 100644 --- a/core/pim/today/plugins/datebook/datebookpluginconfig.cpp +++ b/core/pim/today/plugins/datebook/datebookpluginconfig.cpp @@ -30,57 +30,74 @@ DatebookPluginConfig::DatebookPluginConfig( QWidget* parent, const char* name) QWhatsThis::add( CheckBox2 , tr( "Check this if the note attached to an appointment should be shown for each one" ) ); QHBox *box3 = new QHBox( this ); QLabel* TextLabel6 = new QLabel( box3, "All Day"); TextLabel6->setText( tr( "Show only later\n appointments") ); CheckBox3 = new QCheckBox ( box3, "CheckBox3" ); QWhatsThis::add( CheckBox3 , tr( "Check this if only appointments later then current time should be shown" ) ); + + QHBox *box4 = new QHBox( this ); QLabel *TextLabel3 = new QLabel( box4, "TextLabel3" ); TextLabel3->setText( tr( "How many \nappointment\n" "should be \nshown?" ) ); SpinBox1 = new QSpinBox( box4, "SpinBox1" ); QWhatsThis::add( SpinBox1 , tr( "How many appointments should be shown maximal. In chronical order" ) ); SpinBox1->setMaxValue( 10 ); SpinBox1->setValue( 5 ); + + QHBox *box5 = new QHBox( this ); + QLabel *TextLabelDays = new QLabel( box5 ); + TextLabelDays->setText( tr( "How many more days" ) ); + SpinBox2 = new QSpinBox( box5, "SpinBox2" ); + QWhatsThis::add( SpinBox2 , tr( "How many more days should be in the range" ) ); + SpinBox2->setMaxValue( 7 ); + SpinBox2->setSuffix( tr( " day(s)" ) ); + SpinBox2->setSpecialValueText ( tr("only today") ); + layout->addWidget( box1 ); layout->addWidget( box2 ); layout->addWidget( box3 ); layout->addWidget( box4 ); + layout->addWidget( box5 ); readConfig(); } void DatebookPluginConfig::readConfig() { Config cfg( "todaydatebookplugin" ); cfg.setGroup( "config" ); m_max_lines_meet = cfg.readNumEntry( "maxlinesmeet", 5 ); SpinBox1->setValue( m_max_lines_meet ); m_show_location = cfg.readNumEntry( "showlocation", 1 ); CheckBox1->setChecked( m_show_location ); m_show_notes = cfg.readNumEntry( "shownotes", 0 ); CheckBox2->setChecked( m_show_notes ); m_only_later = cfg.readNumEntry( "onlylater", 1 ); CheckBox3->setChecked( m_only_later ); + m_more_days = cfg.readNumEntry( "moredays", 0 ); + SpinBox2->setValue( m_more_days ); } void DatebookPluginConfig::writeConfig() { Config cfg( "todaydatebookplugin" ); cfg.setGroup( "config" ); m_max_lines_meet = SpinBox1->value(); cfg.writeEntry( "maxlinesmeet", m_max_lines_meet); m_show_location = CheckBox1->isChecked(); cfg.writeEntry( "showlocation", m_show_location); m_show_notes = CheckBox2->isChecked(); cfg.writeEntry( "shownotes", m_show_notes ); m_only_later = CheckBox3->isChecked(); cfg.writeEntry( "onlylater", m_only_later ); + m_more_days = SpinBox2->value(); + cfg.writeEntry( "moredays", m_more_days ); cfg.write(); } DatebookPluginConfig::~DatebookPluginConfig() { } diff --git a/core/pim/today/plugins/datebook/datebookpluginconfig.h b/core/pim/today/plugins/datebook/datebookpluginconfig.h index feba9ee..6c32ae9 100644 --- a/core/pim/today/plugins/datebook/datebookpluginconfig.h +++ b/core/pim/today/plugins/datebook/datebookpluginconfig.h @@ -23,26 +23,25 @@ private: */ bool changed(); void readConfig(); QCheckBox* CheckBox2; QCheckBox* CheckBox1; QCheckBox* CheckBox3; QSpinBox* SpinBox1; + QSpinBox* SpinBox2; + // how many lines should be showed in the datebook section int m_max_lines_meet; // If location is to be showed too, 1 to activate it. int m_show_location; // if notes should be shown int m_show_notes; // should only later appointments be shown or all for the current day. int m_only_later; - + int m_more_days; }; - - - #endif diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp index a8ce059..c6aa2a6 100644 --- a/core/pim/today/plugins/datebook/datebookpluginwidget.cpp +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.cpp @@ -42,16 +42,17 @@ DatebookPluginWidget::~DatebookPluginWidget() { 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 ); + m_moreDays = cfg.readNumEntry( "moredays", 0 ); } /** * Get all events that are in the datebook xml file for today */ void DatebookPluginWidget::getDates() { @@ -63,17 +64,17 @@ void DatebookPluginWidget::getDates() { layoutDates->setMargin( 1 ); if ( db ) { delete db; } db = new DateBookDB; - QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date ); + QValueList<EffectiveEvent> list = db->getEffectiveEvents( date, date.addDays( m_moreDays ) ); qBubbleSort( list ); Config config( "qpe" ); int count=0; if ( list.count() > 0 ) { diff --git a/core/pim/today/plugins/datebook/datebookpluginwidget.h b/core/pim/today/plugins/datebook/datebookpluginwidget.h index 1720bb2..3ebbc3d 100644 --- a/core/pim/today/plugins/datebook/datebookpluginwidget.h +++ b/core/pim/today/plugins/datebook/datebookpluginwidget.h @@ -41,12 +41,13 @@ private: // how many lines should be showed in the datebook section int m_max_lines_meet; // If location is to be showed too, 1 to activate it. bool m_show_location; // if notes should be shown bool m_show_notes; // should only later appointments be shown or all for the current day. bool m_onlyLater; + int m_moreDays; }; #endif |