summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginconfig.cpp60
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginconfig.h9
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginwidget.cpp37
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginwidget.h3
4 files changed, 95 insertions, 14 deletions
diff --git a/core/pim/today/plugins/addressbook/addresspluginconfig.cpp b/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
index f00cffe..45d9a3e 100644
--- a/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
+++ b/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
@@ -1,109 +1,153 @@
/*
* addresspluginconfig.cpp
*
* copyright : (c) 2003 by Stefan Eilers
* email : eilers.stefan@epost.de
*
* This implementation was derived from the todolist plugin implementation
*
*/
/***************************************************************************
* *
* 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 "addresspluginconfig.h"
#include <qpe/config.h>
#include <qlayout.h>
#include <qhbox.h>
#include <qtoolbutton.h>
#include <qlabel.h>
#include <qwhatsthis.h>
AddressBookPluginConfig::AddressBookPluginConfig( QWidget *parent, const char* name)
: TodayConfigWidget(parent, name ) {
QVBoxLayout * layout = new QVBoxLayout( this );
layout->setMargin( 20 );
QHBox *box1 = new QHBox( this );
QLabel* TextLabel6 = new QLabel( box1, "TextLabel6" );
- TextLabel6->setText( tr( "Max Lines " ) );
+ TextLabel6->setText( tr( "Max Lines: " ) );
SpinBox2 = new QSpinBox( box1, "SpinBox2" );
SpinBox2->setMaxValue( 40 );
QWhatsThis::add( SpinBox2 , tr( "Set the maximum number of lines that should be shown for each" ) );
QHBox *box2 = new QHBox( this );
QLabel* clipLabel = new QLabel( box2, "" );
- clipLabel->setText( tr( "Clip line after X chars" ) );
+ clipLabel->setText( tr( "Clip line after X chars: " ) );
SpinBoxClip = new QSpinBox( box2, "SpinClip" );
SpinBoxClip->setMaxValue( 200 );
QWhatsThis::add( SpinBoxClip , tr( "After how many chars should be the info about the task be cut off" ) );
QHBox *box3 = new QHBox( this );
QLabel* daysLabel = new QLabel( box3, "" );
- daysLabel->setText( tr( "Days look ahead" ) );
-
+ daysLabel->setText( tr( "Days look ahead: " ) );
SpinDaysClip = new QSpinBox( box3, "SpinDays" );
SpinDaysClip->setMaxValue( 200 );
QWhatsThis::add( SpinDaysClip , tr( "How many days we should search forward" ) );
QHBox *box4 = new QHBox( this );
QLabel* colorLabel = new QLabel( box4, "" );
- colorLabel->setText( tr( "Set Entry Color \n(restart Today \nafter change!)" ) );
+ colorLabel->setText( tr( "To activate color settings:\nRestart application !" ) );
+
+ QHBox *box5 = new QHBox( this );
+
+ QLabel* colorLabel2 = new QLabel( box5, "" );
+ colorLabel2->setText( tr( "Set Headline Color: " ) );
+ headlineColor = new OColorButton( box5, black , "headlineColor" );
+ QWhatsThis::add( headlineColor , tr( "Colors for the headlines !" ) );
+
+ QHBox *box6 = new QHBox( this );
+
+ QLabel* colorLabel3= new QLabel( box6, "" );
+ colorLabel3->setText( tr( "Set Entry Color: " ) );
+ entryColor = new OColorButton( box6, black , "entryColor" );
+ QWhatsThis::add( entryColor , tr( "This color will be used for shown birthdays/anniversaries !" ) );
+
+ QHBox *box7 = new QHBox( this );
+
+ QLabel* colorLabel5 = new QLabel( box7, "" );
+ colorLabel5->setText( tr( "Set Urgent\nColor if below " ) );
+ SpinUrgentClip = new QSpinBox( box7, "SpinDays" );
+ SpinUrgentClip->setMaxValue( 200 );
+ QLabel* colorLabel6 = new QLabel( box7, "" );
+ colorLabel6->setText( tr( "days: " ) );
+ urgentColor = new OColorButton( box7, red , "urgentColor" );
+ QWhatsThis::add( urgentColor , tr( "This color will be used if we are close to the event !" ) );
+ QWhatsThis::add( SpinUrgentClip , tr( "How many days we should search forward" ) );
- entryColor = new OColorButton( box4, red, "entryColor" );
- QWhatsThis::add( entryColor , tr( "What color should be used for shown birthdays/anniversaries?" ) );
layout->addWidget( box1 );
layout->addWidget( box2 );
layout->addWidget( box3 );
layout->addWidget( box4 );
+ layout->addWidget( box5 );
+ layout->addWidget( box6 );
+ layout->addWidget( box7 );
readConfig();
+
}
void AddressBookPluginConfig::readConfig() {
Config cfg( "todayaddressplugin" );
cfg.setGroup( "config" );
m_max_lines_task = cfg.readNumEntry( "maxlinestask", 5 );
SpinBox2->setValue( m_max_lines_task );
m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 );
SpinBoxClip->setValue( m_maxCharClip );
m_daysLookAhead = cfg.readNumEntry( "dayslookahead", 14 );
SpinDaysClip->setValue( m_daysLookAhead );
- m_entryColor = cfg.readEntry( "entrycolor", Qt::red.name() );
+ m_urgentDays = cfg.readNumEntry( "urgentdays", 7 );
+ SpinUrgentClip->setValue( m_urgentDays );
+
+ m_entryColor = cfg.readEntry( "entrycolor", Qt::black.name() );
+ entryColor->setColor( QColor( m_entryColor ) );
+ m_headlineColor = cfg.readEntry( "headlinecolor", Qt::black.name() );
+ headlineColor->setColor( QColor( m_headlineColor ) );
+ m_urgentColor = cfg.readEntry( "urgentcolor", Qt::red.name() );
+ urgentColor->setColor( QColor( m_urgentColor ) );
}
void AddressBookPluginConfig::writeConfig() {
Config cfg( "todayaddressplugin" );
cfg.setGroup( "config" );
m_max_lines_task = SpinBox2->value();
cfg.writeEntry( "maxlinestask", m_max_lines_task );
m_maxCharClip = SpinBoxClip->value();
cfg.writeEntry( "maxcharclip", m_maxCharClip );
m_daysLookAhead = SpinDaysClip->value();
cfg.writeEntry( "dayslookahead", m_daysLookAhead );
+ m_urgentDays = SpinUrgentClip->value();
+ if ( m_urgentDays > m_daysLookAhead )
+ m_urgentDays = m_daysLookAhead;
+ cfg.writeEntry( "urgentdays", m_urgentDays );
+
m_entryColor = entryColor->color().name();
cfg.writeEntry( "entrycolor", m_entryColor );
+ m_headlineColor = headlineColor->color().name();
+ cfg.writeEntry( "headlinecolor", m_headlineColor );
+ m_urgentColor = urgentColor->color().name();
+ cfg.writeEntry( "urgentcolor", m_urgentColor );
cfg.write();
}
AddressBookPluginConfig::~AddressBookPluginConfig() {
}
diff --git a/core/pim/today/plugins/addressbook/addresspluginconfig.h b/core/pim/today/plugins/addressbook/addresspluginconfig.h
index 54c8b4f..ea03368 100644
--- a/core/pim/today/plugins/addressbook/addresspluginconfig.h
+++ b/core/pim/today/plugins/addressbook/addresspluginconfig.h
@@ -1,63 +1,72 @@
/*
* addresspluginconfig.h
*
* copyright : (c) 2003 by Stefan Eilers
* email : eilers.stefan@epost.de
*
* This implementation was derived from the todolist plugin implementation
*
*/
/***************************************************************************
* *
* 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 ADDRESSBOOK_PLUGIN_CONFIG_H
#define ADDRESSBOOK_PLUGIN_CONFIG_H
#include <qwidget.h>
#include <qspinbox.h>
#include <opie/todayconfigwidget.h>
#include <opie/ocolorbutton.h>
class AddressBookPluginConfig : public TodayConfigWidget {
public:
AddressBookPluginConfig( QWidget *parent, const char *name );
~AddressBookPluginConfig();
private:
/**
* if changed then save
*/
bool changed();
void readConfig();
void writeConfig();
QSpinBox* SpinBox2;
QSpinBox* SpinBoxClip;
QSpinBox* SpinDaysClip;
+ QSpinBox* SpinUrgentClip;
OColorButton* entryColor;
+ OColorButton* headlineColor;
+ OColorButton* urgentColor;
// how many lines should be showed in the AddressBook section
int m_max_lines_task;
// clip the lines after X chars
int m_maxCharClip;
// How many days look ahead
int m_daysLookAhead;
+ // Days until urgent color is used
+ int m_urgentDays;
// Entry Color
QString m_entryColor;
+ // Headline Color
+ QString m_headlineColor;
+ // Urgent Color
+ QString m_urgentColor;
};
#endif
diff --git a/core/pim/today/plugins/addressbook/addresspluginwidget.cpp b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp
index c81beee..7d87fca 100644
--- a/core/pim/today/plugins/addressbook/addresspluginwidget.cpp
+++ b/core/pim/today/plugins/addressbook/addresspluginwidget.cpp
@@ -1,172 +1,197 @@
/*
* addresspluginwidget.cpp
*
* copyright : (c) 2003 by Stefan Eilers
* email : eilers.stefan@epost.de
*
* This implementation was derived from the todolist plugin implementation
*
*/
/***************************************************************************
* *
* 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 "addresspluginwidget.h"
#include <qvaluelist.h>
#include <qtl.h>
#include <qstring.h>
#include <qscrollview.h>
#include <qobject.h>
#include <qdatetime.h>
#include <qpe/config.h>
#include <qpe/timestring.h>
#include <qpe/qcopenvelope_qws.h>
#include <opie/ocontact.h>
AddressBookPluginWidget::AddressBookPluginWidget( QWidget *parent, const char* name )
: QWidget( parent, name ) {
addressLabel = 0l;
m_contactdb = 0l;
layoutTodo = 0l;
// Hä ? Nonsense ! (se)
if ( m_contactdb ) {
delete m_contactdb;
}
m_contactdb = new OContactAccess("addressplugin");
connect( m_contactdb, SIGNAL( signalChanged( const OContactAccess * ) ),
this, SLOT( refresh( const OContactAccess * ) ) );
readConfig();
getAddress();
}
AddressBookPluginWidget::~AddressBookPluginWidget() {
delete m_contactdb;
}
void AddressBookPluginWidget::refresh( const OContactAccess* )
{
qWarning(" AddressBookPluginWidget::Database was changed externally ! ");
m_contactdb->reload();
getAddress();
}
void AddressBookPluginWidget::readConfig() {
Config cfg( "todayaddressplugin" );
cfg.setGroup( "config" );
m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 );
m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 );
m_daysLookAhead = cfg.readNumEntry( "dayslookahead", 14 );
- m_entryColor = cfg.readEntry("entrycolor", Qt::red.name() );
+ m_urgentDays = cfg.readNumEntry( "urgentdays", 7 );
+ m_entryColor = cfg.readEntry("entrycolor", Qt::black.name() );
+ m_headlineColor = cfg.readEntry( "headlinecolor", Qt::black.name() );
+ m_urgentColor = cfg.readEntry( "urgentcolor", Qt::red.name() );
}
/**
* Get the addresss
*/
void AddressBookPluginWidget::getAddress() {
if ( ! layoutTodo ){
layoutTodo = new QVBoxLayout( this );
}
if ( ! addressLabel ) {
addressLabel = new OClickableLabel( this );
connect( addressLabel, SIGNAL( clicked() ), this, SLOT( startAddressBook() ) );
layoutTodo->addWidget( addressLabel );
}
QString output;
// Check whether the database provide the search option..
if ( ! m_contactdb->hasQuerySettings( OContactAccess::DateDiff ) ){
// Define the query for birthdays and start search..
QDate lookAheadDate = QDate::currentDate().addDays( m_daysLookAhead );
qWarning("Searching from now (%s) until %s ! ", QDate::currentDate().toString().latin1(),
lookAheadDate.toString().latin1() );
OContact querybirthdays;
querybirthdays.setBirthday( lookAheadDate );
int ammount = 0;
m_list = m_contactdb->queryByExample( querybirthdays, OContactAccess::DateDiff );
if ( m_list.count() > 0 ){
- output = QObject::tr( "Next birthdays in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead );
+ output = "<font color=" + m_headlineColor + ">"
+ + QObject::tr( "Next birthdays in <b> %1 </b> days:" ).arg( m_daysLookAhead )
+ + "</font> <br>";
for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) {
if ( ammount++ < m_maxLinesTask ){
// Now we want to calculate how many days until birthday. We have to set
// the correct year to calculate the day diff...
QDate destdate = (*m_it).birthday();
destdate.setYMD( QDate::currentDate().year(), destdate.month(), destdate.day() );
if ( QDate::currentDate().daysTo(destdate) < 0 )
destdate.setYMD( QDate::currentDate().year()+1, destdate.month(), destdate.day() );
+
+ if ( QDate::currentDate().daysTo(destdate) < m_urgentDays )
+ output += "<font color=" + m_urgentColor + "><b>-" + (*m_it).fullName()
+ + " ("
+ + QString::number(QDate::currentDate().daysTo(destdate))
+ + " Days) </b></font><br>";
+
+ else
output += "<font color=" + m_entryColor + "><b>-" + (*m_it).fullName()
+ " ("
+ QString::number(QDate::currentDate().daysTo(destdate))
+ " Days) </b></font><br>";
}
}
} else {
- output = QObject::tr( "No birthdays in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead );
+ output = "<font color=" + m_headlineColor + ">"
+ + QObject::tr( "No birthdays in <b> %1 </b> days!" ).arg( m_daysLookAhead )
+ + "</font> <br>";
}
// Define the query for anniversaries and start search..
OContact queryanniversaries;
queryanniversaries.setAnniversary( lookAheadDate );
m_list = m_contactdb->queryByExample( queryanniversaries, OContactAccess::DateDiff );
ammount = 0;
if ( m_list.count() > 0 ){
- output += QObject::tr( "Next anniversaries in <b> %1 </b> days: <br>" ).arg( m_daysLookAhead );
+ output += "<font color=" + m_headlineColor + ">"
+ + QObject::tr( "Next anniversaries in <b> %1 </b> days:" ).arg( m_daysLookAhead )
+ + "</font> <br>";
for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) {
if ( ammount++ < m_maxLinesTask ){
// Now we want to calculate how many days until anniversary. We have to set
// the correct year to calculate the day diff...
QDate destdate = (*m_it).anniversary();
destdate.setYMD( QDate::currentDate().year(), destdate.month(), destdate.day() );
if ( QDate::currentDate().daysTo(destdate) < 0 )
destdate.setYMD( QDate::currentDate().year()+1, destdate.month(), destdate.day() );
- output += "<font color=#e00000><b>-" + (*m_it).fullName()
+ if ( QDate::currentDate().daysTo(destdate) < m_urgentDays )
+ output += "<font color=" + m_urgentColor + "><b>-" + (*m_it).fullName()
+ + " ("
+ + QString::number(QDate::currentDate().daysTo( destdate ) )
+ + " Days) </b></font><br>";
+ else
+ output += "<font color=" + m_entryColor + "><b>-" + (*m_it).fullName()
+ " ("
+ QString::number(QDate::currentDate().daysTo( destdate ) )
+ " Days) </b></font><br>";
}
}
} else {
- output += QObject::tr( "No anniversaries in <b> %1 </b> days! <br>" ).arg( m_daysLookAhead );
+ output += "<font color=" + m_headlineColor + ">"
+ + QObject::tr( "No anniversaries in <b> %1 </b> days!" ).arg( m_daysLookAhead )
+ + "</font> <br>";
}
}else{
// Libopie seems to be old..
output = QObject::tr( "Database does not provide this search query ! Please upgrade libOpie !<br>" );
}
addressLabel->setText( output );
}
/**
* start the todolist
*/
void AddressBookPluginWidget::startAddressBook() {
QCopEnvelope e( "QPE/System", "execute(QString)" );
e << QString( "addressbook" );
}
diff --git a/core/pim/today/plugins/addressbook/addresspluginwidget.h b/core/pim/today/plugins/addressbook/addresspluginwidget.h
index fa464de..89ffe7f 100644
--- a/core/pim/today/plugins/addressbook/addresspluginwidget.h
+++ b/core/pim/today/plugins/addressbook/addresspluginwidget.h
@@ -1,58 +1,61 @@
/*
* addresspluginwidget.h
*
* copyright : (c) 2003 by Stefan Eilers
* email : eilers.stefan@epost.de
*
* This implementation was derived from the todolist plugin implementation
*
*/
/***************************************************************************
* *
* 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 ADDRESSBOOK_PLUGIN_WIDGET_H
#define ADDRESSBOOK_PLUGIN_WIDGET_H
#include <qstring.h>
#include <qwidget.h>
#include <qlayout.h>
#include <opie/ocontactaccess.h>
#include <opie/oclickablelabel.h>
class AddressBookPluginWidget : public QWidget {
Q_OBJECT
public:
AddressBookPluginWidget( QWidget *parent, const char *name );
~AddressBookPluginWidget();
protected slots:
void startAddressBook();
void refresh( const OContactAccess* db );
private:
OClickableLabel* addressLabel;
QVBoxLayout* layoutTodo;
OContactAccess * m_contactdb;
OContactAccess::List m_list;
OContactAccess::List::Iterator m_it;
void readConfig();
void getAddress();
int m_maxLinesTask;
int m_maxCharClip;
int m_daysLookAhead;
+ int m_urgentDays;
QString m_entryColor;
+ QString m_headlineColor;
+ QString m_urgentColor;
};
#endif