summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookweeklst.cpp4
-rw-r--r--core/pim/today/plugins/addressbook/addressbook.pro19
-rw-r--r--core/pim/today/plugins/addressbook/addresspluginconfig.cpp1
3 files changed, 21 insertions, 3 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index 7451abc..9089fe9 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -1,361 +1,361 @@
#include "datebookweeklst.h"
#include "datebookweekheaderimpl.h"
#include <qpe/calendar.h>
#include <qpe/datebookdb.h>
#include <qpe/event.h>
#include <qpe/qpeapplication.h>
#include <qpe/timestring.h>
#include <qpe/datebookmonth.h>
#include <qpe/config.h>
#include <qdatetime.h>
#include <qheader.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qpainter.h>
#include <qpopupmenu.h>
#include <qtimer.h>
#include <qstyle.h>
#include <qtoolbutton.h>
#include <qvbox.h>
#include <qsizepolicy.h>
#include <qabstractlayout.h>
#include <qtl.h>
bool calcWeek(const QDate &d, int &week, int &year,
bool startOnMonday = false);
DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent,
const char* name, WFlags fl)
: DateBookWeekLstHeaderBase(parent, name, fl)
{
setBackgroundMode( PaletteButton );
labelDate->setBackgroundMode( PaletteButton );
labelWeek->setBackgroundMode( PaletteButton );
forward->setBackgroundMode( PaletteButton );
back->setBackgroundMode( PaletteButton );
DateBookWeekLstHeaderBaseLayout->setSpacing(0);
DateBookWeekLstHeaderBaseLayout->setMargin(0);
//setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding));
setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
connect(back, SIGNAL(clicked()), this, SLOT(prevWeek()));
connect(forward, SIGNAL(clicked()), this, SLOT(nextWeek()));
connect(labelWeek, SIGNAL(clicked()), this, SLOT(pickDate()));
connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool)));
onMonday=onM;
}
DateBookWeekLstHeader::~DateBookWeekLstHeader(){}
void DateBookWeekLstHeader::setDate(const QDate &d) {
date=d;
int year,week;
calcWeek(d,week,year,onMonday);
labelWeek->setText(tr( "W: %1" ).arg( ( QString::number(week)) ) );
QDate start=date;
QDate stop=start.addDays(6);
labelDate->setText( QString::number(start.day()) + " " +
start.monthName(start.month()) + " - " +
QString::number(stop.day()) + " " +
start.monthName(stop.month()) );
emit dateChanged(year,week);
}
void DateBookWeekLstHeader::pickDate() {
static QPopupMenu *m1 = 0;
static DateBookMonth *picker = 0;
if ( !m1 ) {
m1 = new QPopupMenu( this );
picker = new DateBookMonth( m1, 0, TRUE );
m1->insertItem( picker );
connect( picker, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( setDate( int, int, int ) ) );
//connect( m1, SIGNAL( aboutToHide() ),
//this, SLOT( gotHide() ) );
}
picker->setDate( date.year(), date.month(), date.day() );
m1->popup(mapToGlobal(labelWeek->pos()+QPoint(0,labelWeek->height())));
picker->setFocus();
}
void DateBookWeekLstHeader::setDate(int y, int m, int d) {
QDate new_date(y,m,d);
setDate(new_date);
}
void DateBookWeekLstHeader::nextWeek() {
setDate(date.addDays(7));
}
void DateBookWeekLstHeader::prevWeek() {
setDate(date.addDays(-7));
}
DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/,
QWidget* parent,
const char* name,
WFlags fl )
: DateBookWeekLstDayHdrBase(parent, name, fl) {
date=d;
- static const char *wdays="MTWTFSS";
+ static const char *wdays={"MTWTFSS"};
char day=wdays[d.dayOfWeek()-1];
- label->setText( QString(QChar(day)) + " " +
+ label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +
QString::number(d.day()) );
add->setText("+");
if (d == QDate::currentDate()) {
QPalette pal=label->palette();
pal.setColor(QColorGroup::Foreground, QColor(0,0,255));
label->setPalette(pal);
/*
QFont f=label->font();
f.setItalic(true);
label->setFont(f);
label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
*/
} else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
QPalette pal=label->palette();
pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
label->setPalette(pal);
}
connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
}
void DateBookWeekLstDayHdr::showDay() {
emit showDate(date.year(), date.month(), date.day());
}
void DateBookWeekLstDayHdr::newEvent() {
QDateTime start, stop;
start=stop=date;
start.setTime(QTime(10,0));
stop.setTime(QTime(12,0));
emit addEvent(start,stop,"");
}
DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
QWidget* parent,
const char* name,
WFlags fl) :
OClickableLabel(parent,name,fl),
event(ev)
{
char s[10];
if ( ev.startDate() != ev.date() ) { // multiday event (not first day)
if ( ev.endDate() == ev.date() ) { // last day
strcpy(s, "__|__");
} else {
strcpy(s, " |---");
}
} else {
if(ev.event().type() == Event::Normal )
sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute());
else
sprintf(s," ");
}
setText(QString(s) + " " + ev.description());
connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
}
void DateBookWeekLstEvent::editMe() {
emit editEvent(event.event());
}
DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
const QDate &d, bool onM,
QWidget* parent,
const char* name, WFlags fl)
: QWidget( parent, name, fl )
{
onMonday=onM;
setPalette(white);
setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
QVBoxLayout *layout = new QVBoxLayout( this );
qBubbleSort(ev);
QValueListIterator<EffectiveEvent> it;
it=ev.begin();
int dayOrder[7];
if (onMonday)
for (int d=0; d<7; d++) dayOrder[d]=d+1;
else {
for (int d=0; d<7; d++) dayOrder[d]=d;
dayOrder[0]=7;
}
for (int i=0; i<7; i++) {
// Header
DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i),
onMonday,this);
connect(hdr, SIGNAL(showDate(int,int,int)),
this, SIGNAL(showDate(int,int,int)));
connect(hdr, SIGNAL(addEvent(const QDateTime &,
const QDateTime &,
const QString &)),
this, SIGNAL(addEvent(const QDateTime &,
const QDateTime &,
const QString &)));
layout->addWidget(hdr);
// Events
while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) {
DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,this);
layout->addWidget(l);
connect (l, SIGNAL(editEvent(const Event &)),
this, SIGNAL(editEvent(const Event &)));
it++;
}
layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
}
}
DateBookWeekLstView::~DateBookWeekLstView(){}
void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();}
DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
QValueList<EffectiveEvent> &ev2,
QDate &d, bool onM,
QWidget* parent,
const char* name, WFlags fl)
: QWidget( parent, name, fl )
{
QHBoxLayout *layout = new QHBoxLayout( this );
DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this);
layout->addWidget(w);
connect (w, SIGNAL(editEvent(const Event &)),
this, SIGNAL(editEvent(const Event &)));
connect (w, SIGNAL(showDate(int,int,int)),
this, SIGNAL(showDate(int,int,int)));
connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)),
this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)));
w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this);
layout->addWidget(w);
connect (w, SIGNAL(editEvent(const Event &)),
this, SIGNAL(editEvent(const Event &)));
connect (w, SIGNAL(showDate(int,int,int)),
this, SIGNAL(showDate(int,int,int)));
connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)),
this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)));
}
DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB,
QWidget *parent,
const char *name )
: QWidget( parent, name ),
db( newDB ),
startTime( 0 ),
ampm( ap ),
onMonday(onM)
{
setFocusPolicy(StrongFocus);
layout = new QVBoxLayout( this );
layout->setMargin(0);
header=new DateBookWeekLstHeader(onM, this);
layout->addWidget( header );
connect(header, SIGNAL(dateChanged(int,int)),
this, SLOT(dateChanged(int,int)));
connect(header, SIGNAL(setDbl(bool)),
this, SLOT(setDbl(bool)));
scroll=new QScrollView(this);
//scroll->setVScrollBarMode(QScrollView::AlwaysOn);
//scroll->setHScrollBarMode(QScrollView::AlwaysOff);
scroll->setResizePolicy(QScrollView::AutoOneFit);
layout->addWidget(scroll);
view=NULL;
Config config("DateBook");
config.setGroup("Main");
dbl=config.readBoolEntry("weeklst_dbl", false);
header->dbl->setOn(dbl);
}
DateBookWeekLst::~DateBookWeekLst(){
Config config("DateBook");
config.setGroup("Main");
config.writeEntry("weeklst_dbl", dbl);
}
void DateBookWeekLst::setDate(const QDate &d) {
int w,y;
calcWeek(d,w,y,onMonday);
year=y;
_week=w;
header->setDate(date());
}
void DateBookWeekLst::setDbl(bool on) {
dbl=on;
redraw();
}
void DateBookWeekLst::redraw() {getEvents();}
QDate DateBookWeekLst::date() const {
QDate d;
d.setYMD(year,1,1);
int dow= d.dayOfWeek();
if (!onMonday)
if (dow==7) dow=1;
else dow++;
d=d.addDays( (_week-1)*7 - dow + 1 );
return d;
}
void DateBookWeekLst::getEvents() {
QDate start = date();
QDate stop = start.addDays(6);
QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop);
if (view) delete view;
if (dbl) {
QDate start2=start.addDays(7);
stop=start2.addDays(6);
QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop);
view=new DateBookWeekLstDblView(el,el2,start,onMonday,scroll);
} else {
view=new DateBookWeekLstView(el,start,onMonday,scroll);
}
connect (view, SIGNAL(editEvent(const Event &)),
this, SIGNAL(editEvent(const Event &)));
connect (view, SIGNAL(showDate(int,int,int)),
this, SIGNAL(showDate(int,int,int)));
connect (view, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)),
this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
const QString &)));
scroll->addChild(view);
view->show();
scroll->updateScrollBars();
}
void DateBookWeekLst::dateChanged(int y, int w) {
year=y;
_week=w;
getEvents();
}
void DateBookWeekLst::keyPressEvent(QKeyEvent *e)
{
switch(e->key()) {
case Key_Up:
scroll->scrollBy(0, -20);
diff --git a/core/pim/today/plugins/addressbook/addressbook.pro b/core/pim/today/plugins/addressbook/addressbook.pro
index fd7d786..3ee5bce 100644
--- a/core/pim/today/plugins/addressbook/addressbook.pro
+++ b/core/pim/today/plugins/addressbook/addressbook.pro
@@ -1,23 +1,42 @@
TEMPLATE = lib
CONFIG -= moc
CONFIG += qt release
# Input
HEADERS = addressplugin.h addresspluginimpl.h addresspluginconfig.h \
addresspluginwidget.h
SOURCES = addressplugin.cpp addresspluginimpl.cpp addresspluginconfig.cpp \
addresspluginwidget.cpp
INCLUDEPATH += $(OPIEDIR)/include \
../ ../library
DEPENDPATH += $(OPIEDIR)/include \
../ ../library
LIBS+= -lqpe -lopie
DESTDIR = $(OPIEDIR)/plugins/today
TARGET = todayaddressbookplugin
+TRANSLATIONS = ../../../../../i18n/de/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/xx/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/en/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/es/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/fr/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/hu/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/ja/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/ko/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/no/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/pl/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/pt/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/pt_BR/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/sl/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/zh_CN/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/zh_TW/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/it/libtodayaddressbookplugin.ts \
+ ../../../../../i18n/da/libtodayaddressbookplugin.ts
+
+
include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/today/plugins/addressbook/addresspluginconfig.cpp b/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
index 8d7bec6..a234236 100644
--- a/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
+++ b/core/pim/today/plugins/addressbook/addresspluginconfig.cpp
@@ -1,153 +1,152 @@
/*
* 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: " ) );
SpinBox2 = new QSpinBox( box1, "SpinBox2" );
SpinBox2->setMaxValue( 40 );
QWhatsThis::add( SpinBox2 , tr( "Set the maximum number of lines that should be shown for each anniversaries/birthdays" ) );
QHBox *box2 = new QHBox( this );
QLabel* clipLabel = new QLabel( box2, "" );
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: " ) );
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( "To activate settings: Restart 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 urgent color will be used if we are close to the event !" ) );
QWhatsThis::add( SpinUrgentClip , tr( "The urgent color will be used if the birthday/anniversary is closer than given days !" ) );
layout->addWidget( box4 );
layout->addWidget( box1 );
layout->addWidget( box2 );
layout->addWidget( box3 );
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_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() {
}