summaryrefslogtreecommitdiff
path: root/core
Side-by-side diff
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/clickablelabel.cpp88
-rw-r--r--core/pim/datebook/clickablelabel.h30
-rw-r--r--core/pim/datebook/datebook.pro4
-rw-r--r--core/pim/datebook/datebookweeklst.cpp2
-rw-r--r--core/pim/datebook/datebookweeklst.h4
-rw-r--r--core/pim/datebook/datebookweeklstdayhdr.ui8
-rw-r--r--core/pim/datebook/dateentryimpl.cpp8
-rw-r--r--core/pim/datebook/opie-datebook.control2
-rw-r--r--core/pim/datebook/timepicker.cpp19
-rw-r--r--core/pim/datebook/timepicker.h6
10 files changed, 27 insertions, 144 deletions
diff --git a/core/pim/datebook/clickablelabel.cpp b/core/pim/datebook/clickablelabel.cpp
deleted file mode 100644
index 128bebb..0000000
--- a/core/pim/datebook/clickablelabel.cpp
+++ b/dev/null
@@ -1,88 +0,0 @@
-#include "clickablelabel.h"
-#include <stdio.h>
-
-ClickableLabel::ClickableLabel(QWidget* parent,
- const char* name,
- WFlags fl) :
- QLabel(parent,name,fl)
-{
- textInverted=false;
- isToggle=false;
- isDown=false;
- showState(false);
- setFrameShadow(Sunken);
-}
-
-void ClickableLabel::setToggleButton(bool t) {
- isToggle=t;
-}
-
-void ClickableLabel::mousePressEvent( QMouseEvent *e ) {
- if (isToggle && isDown) {
- showState(false);
- } else {
- showState(true);
- }
-}
-
-void ClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
- if (rect().contains(e->pos()) && isToggle) isDown=!isDown;
-
- if (isToggle && isDown) {
- showState(true);
- } else {
- showState(false);
- }
-
- if (rect().contains(e->pos())) {
- if (isToggle) {
- emit toggled(isDown);
- }
- emit clicked();
- }
-}
-
-void ClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
- if (rect().contains(e->pos())) {
- if (isToggle && isDown) {
- showState(false);
- } else {
- showState(true);
- }
- } else {
- if (isToggle && isDown) {
- showState(true);
- } else {
- showState(false);
- }
- }
-}
-
-void ClickableLabel::showState(bool on) {
- if (on) {
- //setFrameShape(Panel);
- setInverted(true);
- setBackgroundMode(PaletteHighlight);
- } else {
- //setFrameShape(NoFrame);
- setInverted(false);
- setBackgroundMode(PaletteBackground);
- }
- repaint();
-}
-
-void ClickableLabel::setInverted(bool on) {
- if ( (!textInverted && on) || (textInverted && !on) ) {
- QPalette pal=palette();
- QColor col=pal.color(QPalette::Normal, QColorGroup::Foreground);
- col.setRgb(255-col.red(),255-col.green(),255-col.blue());
- pal.setColor(QPalette::Normal, QColorGroup::Foreground, col);
- setPalette(pal);
- textInverted=!textInverted;
- }
-}
-
-void ClickableLabel::setOn(bool on) {
- isDown=on;
- showState(isDown);
-}
diff --git a/core/pim/datebook/clickablelabel.h b/core/pim/datebook/clickablelabel.h
deleted file mode 100644
index d00fee6..0000000
--- a/core/pim/datebook/clickablelabel.h
+++ b/dev/null
@@ -1,30 +0,0 @@
-#ifndef CLICKABLELABEL
-#define CLICKABLELABEL
-
-#include <qlabel.h>
-
-class ClickableLabel: public QLabel
-{
- Q_OBJECT
-public:
- ClickableLabel(QWidget* parent = 0, const char* name = 0,
- WFlags fl = 0);
- void setToggleButton(bool t);
- protected:
- void mousePressEvent( QMouseEvent *e );
- void mouseReleaseEvent( QMouseEvent *e );
- void mouseMoveEvent( QMouseEvent *e );
- public slots:
- void setOn(bool on);
- signals:
- void clicked();
- void toggled(bool on);
- private:
- bool isToggle;
- bool isDown;
- void showState(bool on);
- bool textInverted;
- void setInverted(bool on);
-};
-
-#endif
diff --git a/core/pim/datebook/datebook.pro b/core/pim/datebook/datebook.pro
index a8a9285..9383053 100644
--- a/core/pim/datebook/datebook.pro
+++ b/core/pim/datebook/datebook.pro
@@ -1,55 +1,53 @@
TEMPLATE = app
CONFIG += qt warn_on release
DESTDIR = $(OPIEDIR)/bin
HEADERS = datebookday.h \
datebook.h \
dateentryimpl.h \
datebookdayheaderimpl.h \
datebooksettings.h \
datebookweek.h \
datebookweeklst.h \
datebookweekheaderimpl.h \
repeatentry.h \
- clickablelabel.h \
timepicker.h
SOURCES = main.cpp \
datebookday.cpp \
datebook.cpp \
dateentryimpl.cpp \
datebookdayheaderimpl.cpp \
datebooksettings.cpp \
datebookweek.cpp \
datebookweeklst.cpp \
datebookweekheaderimpl.cpp \
repeatentry.cpp \
- clickablelabel.cpp \
timepicker.cpp
INTERFACES = dateentry.ui \
datebookdayheader.ui \
datebooksettingsbase.ui \
datebookweekheader.ui \
datebookweeklstheader.ui \
datebookweeklstdayhdr.ui \
repeatentrybase.ui
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
+LIBS += -lqpe -lopie
TARGET = datebook
TRANSLATIONS = ../i18n/pt_BR/datebook.ts
TRANSLATIONS += ../i18n/de/datebook.ts
TRANSLATIONS += ../i18n/en/datebook.ts
TRANSLATIONS += ../i18n/hu/datebook.ts
TRANSLATIONS += ../i18n/pl/datebook.ts
TRANSLATIONS += ../i18n/sl/datebook.ts
TRANSLATIONS += ../i18n/ja/datebook.ts
TRANSLATIONS += ../i18n/ko/datebook.ts
TRANSLATIONS += ../i18n/no/datebook.ts
TRANSLATIONS += ../i18n/zh_CN/datebook.ts
TRANSLATIONS += ../i18n/zh_TW/datebook.ts
TRANSLATIONS += ../i18n/fr/datebook.ts
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index 85c745a..8e88377 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -1,338 +1,338 @@
#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("W: " + 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";
char day=wdays[d.dayOfWeek()-1];
label->setText( 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) :
- ClickableLabel(parent,name,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 {
sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute());
}
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 &,
diff --git a/core/pim/datebook/datebookweeklst.h b/core/pim/datebook/datebookweeklst.h
index b0b0417..24f6c83 100644
--- a/core/pim/datebook/datebookweeklst.h
+++ b/core/pim/datebook/datebookweeklst.h
@@ -1,151 +1,151 @@
#ifndef DATEBOOKWEEKLST
#define DATEBOOKWEEKLST
#include <qwidget.h>
#include <qdatetime.h>
#include <qpe/event.h>
#include <qlabel.h>
#include <qscrollview.h>
#include "datebookweeklstheader.h"
#include "datebookweeklstdayhdr.h"
-#include "clickablelabel.h"
+#include <opie/oclickablelabel.h>
class QDateTime;
class DateBookDB;
class DateBookWeekLstHeader: public DateBookWeekLstHeaderBase
{
Q_OBJECT
public:
DateBookWeekLstHeader(bool onM, QWidget* parent = 0, const char* name = 0,
WFlags fl = 0 );
~DateBookWeekLstHeader();
void setDate(const QDate &d);
public slots:
void nextWeek();
void prevWeek();
void pickDate();
void setDate(int y, int m, int d);
signals:
void dateChanged(int y, int w);
void setDbl(bool on);
private:
QDate date;
bool onMonday;
};
class DateBookWeekLstDayHdr: public DateBookWeekLstDayHdrBase
{
Q_OBJECT
public:
DateBookWeekLstDayHdr(const QDate &d, bool onM,
QWidget* parent = 0, const char* name = 0,
WFlags fl = 0 );
public slots:
void showDay();
void newEvent();
signals:
void showDate(int y, int m, int d);
void addEvent(const QDateTime &start, const QDateTime &stop,
const QString &str);
private:
QDate date;
};
-class DateBookWeekLstEvent: public ClickableLabel
+class DateBookWeekLstEvent: public OClickableLabel
{
Q_OBJECT
public:
DateBookWeekLstEvent(const EffectiveEvent &ev,
QWidget* parent = 0, const char* name = 0,
WFlags fl = 0);
signals:
void editEvent(const Event &e);
private slots:
void editMe();
private:
const EffectiveEvent event;
};
class DateBookWeekLstView: public QWidget
{
Q_OBJECT
public:
DateBookWeekLstView(QValueList<EffectiveEvent> &ev, const QDate &d, bool onM,
QWidget* parent = 0, const char* name = 0,
WFlags fl = 0 );
~DateBookWeekLstView();
signals:
void editEvent(const Event &e);
void showDate(int y, int m, int d);
void addEvent(const QDateTime &start, const QDateTime &stop,
const QString &str);
private:
bool onMonday;
protected slots:
void keyPressEvent(QKeyEvent *);
};
class DateBookWeekLstDblView: public QWidget {
Q_OBJECT
public:
DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
QValueList<EffectiveEvent> &ev2,
QDate &d, bool onM,
QWidget* parent = 0, const char* name = 0,
WFlags fl = 0 );
signals:
void editEvent(const Event &e);
void showDate(int y, int m, int d);
void addEvent(const QDateTime &start, const QDateTime &stop,
const QString &str);
};
class DateBookWeekLst : public QWidget
{
Q_OBJECT
public:
DateBookWeekLst( bool ampm, bool onM, DateBookDB *newDB,
QWidget *parent = 0,
const char *name = 0 );
~DateBookWeekLst();
void setDate( int y, int w );
void setDate(const QDate &d );
int week() const { return _week; };
QDate date() const;
public slots:
void redraw();
void dateChanged(int y, int w);
protected slots:
void keyPressEvent(QKeyEvent *);
void setDbl(bool on);
signals:
void showDate(int y, int m, int d);
void addEvent(const QDateTime &start, const QDateTime &stop,
const QString &str);
void editEvent(const Event &e);
private:
DateBookDB *db;
int startTime;
bool ampm;
bool onMonday;
bool dbl;
int year, _week;
DateBookWeekLstHeader *header;
QWidget *view;
QVBoxLayout *layout;
QScrollView *scroll;
void getEvents();
};
#endif
diff --git a/core/pim/datebook/datebookweeklstdayhdr.ui b/core/pim/datebook/datebookweeklstdayhdr.ui
index 2b68754..9499726 100644
--- a/core/pim/datebook/datebookweeklstdayhdr.ui
+++ b/core/pim/datebook/datebookweeklstdayhdr.ui
@@ -1,145 +1,145 @@
<!DOCTYPE UI><UI>
<class>DateBookWeekLstDayHdrBase</class>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>DateBookWeekLstDayHdrBase</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>106</y>
<width>621</width>
<height>5</height>
</rect>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property>
<name>layoutMargin</name>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>Line</class>
<property stdset="1">
<name>name</name>
<cstring>Line1</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>32767</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
</widget>
<widget>
- <class>ClickableLabel</class>
+ <class>OClickableLabel</class>
<property stdset="1">
<name>name</name>
<cstring>label</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>font</name>
<font>
<bold>1</bold>
</font>
</property>
</widget>
<widget>
<class>Line</class>
<property stdset="1">
<name>name</name>
<cstring>Line1_2</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>32767</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
</widget>
<widget>
- <class>ClickableLabel</class>
+ <class>OClickableLabel</class>
<property stdset="1">
<name>name</name>
<cstring>add</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
</widget>
</hbox>
</widget>
<customwidgets>
<customwidget>
- <class>ClickableLabel</class>
- <header location="local">clickablelabel.h</header>
+ <class>OClickableLabel</class>
+ <header location="global">opie/oclickablelabel.h</header>
<sizehint>
<width>-1</width>
<height>-1</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>5</hordata>
<verdata>5</verdata>
</sizepolicy>
<pixmap>image0</pixmap>
</customwidget>
</customwidgets>
<images>
<image>
<name>image0</name>
<data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1ddec44f503c0ae2a154410f53d0ed20e2bf6bdb656dd6861dd23d9a66591b0587fd1654235ebded6f0edcd53e419d87ae7b1f4f9b8f906d0bfe012317426a70b07bdc2f3ec77f8ed6b89559061a0343d06a124cc105596482585094bc0ae599b04646c9018926491b2205e140c485cace25755c175d0a967b622ff900b8cc9c7d29af594ea722d589167f813aa852ba07d94b9dce296e883fe7bb163f23896753</data>
</image>
</images>
</UI>
diff --git a/core/pim/datebook/dateentryimpl.cpp b/core/pim/datebook/dateentryimpl.cpp
index e14e2f5..c4f6c68 100644
--- a/core/pim/datebook/dateentryimpl.cpp
+++ b/core/pim/datebook/dateentryimpl.cpp
@@ -1,308 +1,312 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "dateentryimpl.h"
#include "repeatentry.h"
#include <qpe/qpeapplication.h>
#include <qpe/categoryselect.h>
#include <qpe/datebookmonth.h>
#include <qpe/global.h>
#include <qpe/timeconversion.h>
#include <qpe/timestring.h>
#include <qpe/tzselect.h>
#include <qevent.h>
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qmultilineedit.h>
#include <qpopupmenu.h>
#include <qscrollview.h>
#include <qspinbox.h>
#include <qtoolbutton.h>
#include "timepicker.h"
#include <stdlib.h>
+#include <stdio.h>
/*
* Constructs a DateEntry which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
*
* The dialog will by default be modeless, unless you set 'modal' to
* TRUE to construct a modal dialog.
*/
DateEntry::DateEntry( bool startOnMonday, const QDateTime &start,
const QDateTime &end, bool whichClock, QWidget* parent,
const char* name )
: DateEntryBase( parent, name ),
ampm( whichClock ),
- startWeekOnMonday( startOnMonday )
+ startWeekOnMonday( startOnMonday ),
+ m_showStart(true)
{
init();
setDates(start,end);
setFocusProxy(comboDescription);
}
bool DateEntry::eventFilter(QObject *obj, QEvent *ev )
{
if( ev->type() == QEvent::FocusIn ){
if( obj == comboStart ){
timePickerStart->setHour(startTime.hour());
timePickerStart->setMinute(startTime.minute());
TimePickerLabel->setText( tr("Start Time" ) );
m_showStart= true;
}else if( obj == comboEnd ){
timePickerStart->setHour(endTime.hour());
timePickerStart->setMinute(endTime.minute());
TimePickerLabel->setText( tr("End Time") );
m_showStart = false;
}
} else if( ev->type() == QEvent::FocusOut ){
if( obj == comboEnd ){
QString s;
s.sprintf("%.2d:%.2d",endTime.hour(), endTime.minute());
comboEnd->setText(s);
}
else if( obj == comboStart ){
QString s;
s.sprintf("%.2d:%.2d",startTime.hour(), startTime.minute());
comboStart->setText(s);
}
}
return false;
}
static void addOrPick( QComboBox* combo, const QString& t )
{
// Pick an item if one excists
for (int i=0; i<combo->count(); i++) {
if ( combo->text(i) == t ) {
combo->setCurrentItem(i);
return;
}
}
// Else add one
combo->insertItem(t);
combo->setCurrentItem(combo->count()-1);
}
DateEntry::DateEntry( bool startOnMonday, const Event &event, bool whichClock,
QWidget* parent, const char* name )
: DateEntryBase( parent, name ),
ampm( whichClock ),
- startWeekOnMonday( startOnMonday )
+ startWeekOnMonday( startOnMonday ),
+ m_showStart(true)
+
{
init();
setDates(event.start(),event.end());
comboCategory->setCategories( event.categories(), "Calendar", tr("Calendar") );
if(!event.description().isEmpty())
addOrPick( comboDescription, event.description() );
if(!event.location().isEmpty())
addOrPick( comboLocation, event.location() );
checkAlarm->setChecked( event.hasAlarm() );
checkAllDay->setChecked( event.type() == Event::AllDay );
if(!event.notes().isEmpty())
editNote->setText(event.notes());
spinAlarm->setValue(event.alarmTime());
if ( event.alarmSound() != Event::Silent )
comboSound->setCurrentItem( 1 );
if ( event.hasRepeat() ) {
rp = event.repeatPattern();
cmdRepeat->setText( tr("Repeat...") );
}
setRepeatLabel();
}
void DateEntry::setDates( const QDateTime& s, const QDateTime& e )
{
startDate = s.date();
endDate = e.date();
startTime = s.time();
endTime = e.time();
startDateChanged( s.date().year(), s.date().month(), s.date().day() );
endDateChanged( e.date().year(), e.date().month(), e.date().day() );
updateTimeEdit(true,true);
}
void DateEntry::updateTimeEdit(bool s, bool e) {
// Comboboxes
QString strStart, strEnd;
int shour, ehour;
if ( ampm ) {
shour = startTime.hour();
ehour = endTime.hour();
if ( shour >= 12 ) {
if ( shour > 12 )
shour -= 12;
strStart.sprintf( "%d:%02d PM", shour, startTime.minute() );
} else {
if ( shour == 0 )
shour = 12;
strStart.sprintf( "%d:%02d AM", shour, startTime.minute() );
}
if ( ehour == 24 && endTime.minute() == 0 ) {
strEnd = "11:59 PM"; // or "midnight"
} else if ( ehour >= 12 ) {
if ( ehour > 12 )
ehour -= 12;
strEnd.sprintf( "%d:%02d PM", ehour, endTime.minute() );
} else {
if ( ehour == 0 )
ehour = 12;
strEnd.sprintf( "%d:%02d AM", ehour, endTime.minute() );
}
} else {
strStart.sprintf( "%02d:%02d", startTime.hour(), startTime.minute() );
strEnd.sprintf( "%02d:%02d", endTime.hour(), endTime.minute() );
}
if (s) comboStart->setText(strStart);
if (e) comboEnd->setText(strEnd);
}
void DateEntry::init()
{
comboDescription->setInsertionPolicy(QComboBox::AtCurrent);
comboLocation->setInsertionPolicy(QComboBox::AtCurrent);
initCombos();
QPopupMenu *m1 = new QPopupMenu( this );
startPicker = new DateBookMonth( m1, 0, TRUE );
m1->insertItem( startPicker );
buttonStart->setPopup( m1 );
connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( startDateChanged( int, int, int ) ) );
//Let start button change both start and end dates
connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( endDateChanged( int, int, int ) ) );
connect( qApp, SIGNAL( clockChanged( bool ) ),
this, SLOT( slotChangeClock( bool ) ) );
connect( qApp, SIGNAL(weekChanged(bool)),
this, SLOT(slotChangeStartOfWeek(bool)) );
QPopupMenu *m2 = new QPopupMenu( this );
endPicker = new DateBookMonth( m2, 0, TRUE );
m2->insertItem( endPicker );
buttonEnd->setPopup( m2 );
connect( endPicker, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( endDateChanged( int, int, int ) ) );
connect(timePickerStart, SIGNAL( timeChanged(const QTime &) ),
this, SLOT( startTimePicked(const QTime &) ));
editNote->setFixedVisibleLines(3);
// install eventFilters
comboEnd->installEventFilter( this );
comboStart->installEventFilter( this );
}
/*
* Destroys the object and frees any allocated resources
*/
DateEntry::~DateEntry()
{
// no need to delete child widgets, Qt does it all for us
//cout << "Del: " << comboStart->currentText() << endl;
}
/*
* public slot
*/
void DateEntry::endDateChanged( int y, int m, int d )
{
endDate.setYMD( y, m, d );
if ( endDate < startDate ) {
endDate = startDate;
}
buttonEnd->setText( TimeString::shortDate( endDate ) );
endPicker->setDate( endDate.year(), endDate.month(), endDate.day() );
}
static QTime parseTime( const QString& s, bool ampm )
{
QTime tmpTime;
QStringList l = QStringList::split( ':', s );
int hour = l[0].toInt();
if ( ampm ) {
int i=0;
while (i<int(l[1].length()) && l[1][i]>='0' && l[1][i]<='9')
i++;
QString digits = l[1].left(i);
if ( l[1].contains( "PM", FALSE ) ) {
if ( hour != 12 )
hour += 12;
} else {
if ( hour == 12 )
hour = 0;
}
l[1] = digits;
}
int minute = l[1].toInt();
if ( minute > 59 )
minute = 59;
else if ( minute < 0 )
minute = 0;
if ( hour > 23 ) {
hour = 23;
minute = 59;
} else if ( hour < 0 )
hour = 0;
tmpTime.setHMS( hour, minute, 0 );
return tmpTime;
}
/*
* public slot
*/
void DateEntry::endTimeChanged( const QString &s )
{
endTimeChanged( parseTime(s,ampm) );
}
void DateEntry::endTimeChanged( const QTime &t ) {
if ( endDate > startDate || t >= startTime ) {
endTime = t;
} else {
endTime = startTime;
//comboEnd->setCurrentItem( comboStart->currentItem() );
}
timePickerStart->setHour(endTime.hour());
timePickerStart->setMinute(endTime.minute());
}
/*
* public slot
*/
void DateEntry::startDateChanged( int y, int m, int d )
{
QDate prev = startDate;
startDate.setYMD( y, m, d );
if ( rp.type == Event::Weekly &&
diff --git a/core/pim/datebook/opie-datebook.control b/core/pim/datebook/opie-datebook.control
index 6566d50..9bef119 100644
--- a/core/pim/datebook/opie-datebook.control
+++ b/core/pim/datebook/opie-datebook.control
@@ -1,9 +1,9 @@
Files: bin/datebook apps/Applications/datebook.desktop
Priority: optional
Section: opie/applications
Maintainer: Warwick Allison <warwick@trolltech.com>
Architecture: arm
Version: $QPE_VERSION-$SUB_VERSION
-Depends: opie-base ($QPE_VERSION)
+Depends: opie-base ($QPE_VERSION), libopie ($QPE_VERSION)
Description: A datebook/appointment manager
A datebook/appointment manager for the Opie environment.
diff --git a/core/pim/datebook/timepicker.cpp b/core/pim/datebook/timepicker.cpp
index 43e05ad..f2cb71d 100644
--- a/core/pim/datebook/timepicker.cpp
+++ b/core/pim/datebook/timepicker.cpp
@@ -1,120 +1,119 @@
#include "timepicker.h"
#include <qbuttongroup.h>
#include <qtoolbutton.h>
#include <qlayout.h>
-#include "clickablelabel.h"
#include <qstring.h>
#include <stdio.h>
TimePicker::TimePicker(QWidget* parent, const char* name,
WFlags fl) :
QWidget(parent,name,fl)
{
QVBoxLayout *vbox=new QVBoxLayout(this);
- ClickableLabel *r;
+ OClickableLabel *r;
QString s;
// Hour Row
QWidget *row=new QWidget(this);
QHBoxLayout *l=new QHBoxLayout(row);
vbox->addWidget(row);
for (int i=0; i<24; i++) {
- r=new ClickableLabel(row);
+ r=new OClickableLabel(row);
hourLst.append(r);
s.sprintf("%.2d",i);
r->setText(s);
r->setToggleButton(true);
r->setAlignment(AlignHCenter | AlignVCenter);
l->addWidget(r);
connect(r, SIGNAL(toggled(bool)),
this, SLOT(slotHour(bool)));
if (i==11) { // Second row
row=new QWidget(this);
l=new QHBoxLayout(row);
vbox->addWidget(row);
}
}
// Minute Row
row=new QWidget(this);
l=new QHBoxLayout(row);
vbox->addWidget(row);
for (int i=0; i<60; i+=5) {
- r=new ClickableLabel(row);
+ r=new OClickableLabel(row);
minuteLst.append(r);
s.sprintf("%.2d",i);
r->setText(s);
r->setToggleButton(true);
r->setAlignment(AlignHCenter | AlignVCenter);
l->addWidget(r);
connect(r, SIGNAL(toggled(bool)),
this, SLOT(slotMinute(bool)));
}
}
void TimePicker::slotHour(bool b) {
- ClickableLabel *r = (ClickableLabel *) sender();
+ OClickableLabel *r = (OClickableLabel *) sender();
if (b) {
- QValueListIterator<ClickableLabel *> it;
+ QValueListIterator<OClickableLabel *> it;
for (it=hourLst.begin(); it!=hourLst.end(); it++) {
if (*it != r) (*it)->setOn(false);
else tm.setHMS((*it)->text().toInt(), tm.minute(), 0);
}
emit timeChanged(tm);
} else {
r->setOn(true);
}
}
void TimePicker::slotMinute(bool b) {
- ClickableLabel *r = (ClickableLabel *) sender();
+ OClickableLabel *r = (OClickableLabel *) sender();
if (b) {
- QValueListIterator<ClickableLabel *> it;
+ QValueListIterator<OClickableLabel *> it;
for (it=minuteLst.begin(); it!=minuteLst.end(); it++) {
if (*it != r) (*it)->setOn(false);
else tm.setHMS(tm.hour(),(*it)->text().toInt(), 0);
}
emit timeChanged(tm);
} else {
r->setOn(true);
}
}
void TimePicker::setMinute(int m) {
QString minute;
minute.sprintf("%.2d",m);
- QValueListIterator<ClickableLabel *> it;
+ QValueListIterator<OClickableLabel *> it;
for (it=minuteLst.begin(); it!=minuteLst.end(); it++) {
if ((*it)->text() == minute) (*it)->setOn(true);
else (*it)->setOn(false);
}
tm.setHMS(tm.hour(),m,0);
}
void TimePicker::setHour(int h) {
QString hour;
hour.sprintf("%.2d",h);
- QValueListIterator<ClickableLabel *> it;
+ QValueListIterator<OClickableLabel *> it;
for (it=hourLst.begin(); it!=hourLst.end(); it++) {
if ((*it)->text() == hour) (*it)->setOn(true);
else (*it)->setOn(false);
}
tm.setHMS(h,tm.minute(),0);
}
diff --git a/core/pim/datebook/timepicker.h b/core/pim/datebook/timepicker.h
index 0acadcb..1c35600 100644
--- a/core/pim/datebook/timepicker.h
+++ b/core/pim/datebook/timepicker.h
@@ -1,32 +1,32 @@
#ifndef TIMEPICKER_H
#define TIMEPICKER_H
#include <qwidget.h>
#include <qvaluelist.h>
-#include "clickablelabel.h"
+#include <opie/oclickablelabel.h>
#include <qdatetime.h>
class TimePicker: public QWidget {
Q_OBJECT
public:
TimePicker(QWidget* parent = 0, const char* name = 0,
WFlags fl = 0);
void setHour(int h);
void setMinute(int m);
private:
- QValueList<ClickableLabel *> hourLst;
- QValueList<ClickableLabel *> minuteLst;
+ QValueList<OClickableLabel *> hourLst;
+ QValueList<OClickableLabel *> minuteLst;
QTime tm;
private slots:
void slotHour(bool b);
void slotMinute(bool b);
signals:
void timeChanged(const QTime &);
};
#endif