From 34e0e7af48992314d461be1a5a573dc0967fe260 Mon Sep 17 00:00:00 2001 From: harlekin Date: Wed, 10 Apr 2002 16:51:46 +0000 Subject: am/pm support, ugly --- (limited to 'core') diff --git a/core/pim/today/TODO b/core/pim/today/TODO index 48e8d20..6acbf5a 100644 --- a/core/pim/today/TODO +++ b/core/pim/today/TODO @@ -2,8 +2,6 @@ TODO for today: * show alarm icons on alarm events (partly done) -* add am/pm mode instead of 24 h, take system default - * qcop integration for updating events? * make Opiezilla a clickable label wich is allway on the far right side of diff --git a/core/pim/today/changelog b/core/pim/today/changelog index b3da1fb..f04ff78 100644 --- a/core/pim/today/changelog +++ b/core/pim/today/changelog @@ -1,3 +1,5 @@ +* am/pm time optinal (autodetect) + 0.3.1 * fixed the wrong color of the buttons diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp index 7cef035..028947d 100644 --- a/core/pim/today/today.cpp +++ b/core/pim/today/today.cpp @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include #include @@ -30,7 +30,7 @@ #include #include -#include +#include #include #include #include @@ -56,9 +56,9 @@ int ONLY_LATER; int AUTOSTART; int NEW_START=1; -/* - * Constructs a Example which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' +/* + * Constructs a Example which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' */ Today::Today( QWidget* parent, const char* name, WFlags fl ) : TodayBase( parent, name, fl ), AllDateBookEvents(NULL) { @@ -66,15 +66,17 @@ Today::Today( QWidget* parent, const char* name, WFlags fl ) QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) ); QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) ); QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) ); - -#if defined(Q_WS_QWS) + +#if defined(Q_WS_QWS) #if !defined(QT_NO_COP) QCopChannel *todayChannel = new QCopChannel("QPE/Today" , this ); connect (todayChannel, SIGNAL( received(const QCString &, const QByteArray &)), this, SLOT ( channelReceived(const QCString &, const QByteArray &)) ); #endif #endif - + + + db = NULL; setOwnerField(); todo = new ToDoDB; @@ -98,7 +100,7 @@ void Today::channelReceived(const QCString &msg, const QByteArray & data) { /* * Initialises the owner field with the default value, the username - */ + */ void Today::setOwnerField() { QString file = Global::applicationFileName("addressbook", "businesscard.vcf"); if (QFile::exists(file)) { @@ -117,7 +119,7 @@ void Today::setOwnerField(QString &message) { if (!message.isEmpty()) { OwnerField->setText("" + message + ""); } -} +} /* * Autostart, uses the new (opie only) autostart method in the launcher code. @@ -125,7 +127,7 @@ void Today::setOwnerField(QString &message) { */ void Today::autoStart() { Config cfg("today"); - cfg.setGroup("Autostart"); + cfg.setGroup("Autostart"); AUTOSTART = cfg.readNumEntry("autostart",1); if (AUTOSTART) { QCopEnvelope e("QPE/System", "autoStart(QString,QString)"); @@ -145,7 +147,7 @@ void Today::draw() { init(); getDates(); getMail(); - + // if the todolist.xml file was not modified in between, do not parse it. if (checkIfModified()) { if (todo) delete todo; @@ -221,10 +223,10 @@ void Today::startConfig() { conf = new todayconfig ( this, "", true ); // read the config Config cfg("today"); - cfg.setGroup("BaseConfig"); - + cfg.setGroup("BaseConfig"); + //init(); - + conf->SpinBox1->setValue(MAX_LINES_MEET); // location show box conf->CheckBox1->setChecked(SHOW_LOCATION); @@ -240,7 +242,7 @@ void Today::startConfig() { conf->CheckBoxAuto->setChecked(AUTOSTART); conf->exec(); - + int maxlinestask = conf->SpinBox2->value(); int maxmeet = conf->SpinBox1->value(); int location = conf->CheckBox1->isChecked(); @@ -248,18 +250,18 @@ void Today::startConfig() { int maxcharclip = conf->SpinBox7->value(); int onlylater = conf->CheckBox3->isChecked(); int autostart =conf->CheckBoxAuto->isChecked(); - + cfg.writeEntry("maxlinestask",maxlinestask); - cfg.writeEntry("maxcharclip", maxcharclip); + cfg.writeEntry("maxcharclip", maxcharclip); cfg.writeEntry("maxlinesmeet",maxmeet); cfg.writeEntry("showlocation",location); cfg.writeEntry("shownotes", notes); cfg.writeEntry("onlylater", onlylater); cfg.setGroup("Autostart"); cfg.writeEntry("autostart", autostart); - + // sync it to "disk" - cfg.write(); + cfg.write(); NEW_START=1; draw(); autoStart(); @@ -279,7 +281,7 @@ void Today::getDates() { if (db) { delete db; } - db = new DateBookDB; + db = new DateBookDB; QValueList list = db->getEffectiveEvents(date, date); @@ -289,19 +291,19 @@ void Today::getDates() { Config config( "qpe" ); // if 24 h format //bool ampm = config.readBoolEntry( "AMPM", TRUE ); - + int count=0; - + if ( list.count() > 0 ) { - + for ( QValueList::ConstIterator it=list.begin(); it!=list.end(); ++it ) { - - + + if ( count <= MAX_LINES_MEET ) { QTime time = QTime::currentTime(); - + if (!ONLY_LATER) { count++; DateBookEvent *l=new DateBookEvent(*it, AllDateBookEvents, SHOW_LOCATION, SHOW_NOTES); @@ -310,42 +312,42 @@ void Today::getDates() { this, SLOT(editEvent(const Event &))); } else if ((time.toString() <= TimeString::dateString((*it).event().end())) ) { count++; - + // show only later appointments DateBookEventLater *l=new DateBookEventLater(*it, AllDateBookEvents, SHOW_LOCATION, SHOW_NOTES); layoutDates->addWidget(l); connect (l, SIGNAL(editEvent(const Event &)), this, SLOT(editEvent(const Event &))); - } + } } } if (ONLY_LATER && count==0) { QLabel* noMoreEvents = new QLabel(AllDateBookEvents); noMoreEvents->setText(tr("No more appointments today")); layoutDates->addWidget(noMoreEvents); - } + } } else { QLabel* noEvents = new QLabel(AllDateBookEvents); noEvents->setText(tr("No appointments today")); layoutDates->addWidget(noEvents); } - + layoutDates->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); sv1->addChild(AllDateBookEvents); AllDateBookEvents->show(); } - + void Today::getMail() { Config cfg("opiemail"); - cfg.setGroup("today"); - + cfg.setGroup("today"); + // how many lines should be showed in the task section int NEW_MAILS = cfg.readNumEntry("newmails",0); int OUTGOING = cfg.readNumEntry("outgoing",0); - + QString output = tr("%1 new mail(s), %2 outgoing").arg(NEW_MAILS).arg(OUTGOING); - + MailField->setText(output); } @@ -354,7 +356,7 @@ void Today::getMail() { * Get the todos */ void Today::getTodo() { - + QString output; QString tmpout; int count = 0; @@ -370,7 +372,7 @@ void Today::getTodo() { ammount++; } } - + // get total number of still open todos QValueList open = todo->rawToDos(); qBubbleSort(open); @@ -378,7 +380,7 @@ void Today::getTodo() { it!=open.end(); ++it ) { if (!(*it).isCompleted()){ count +=1; - // not the overdues, we allready got them, and not if we are + // not the overdues, we allready got them, and not if we are // over the maxlines if (!(*it).isOverdue() && ( ammount < MAX_LINES_TASK) ) { tmpout += "-" + ((*it).description()).mid(0, MAX_CHAR_CLIP) + "
"; @@ -386,8 +388,8 @@ void Today::getTodo() { } } } - - + + if (count > 0) { if( count == 1 ) { output = tr("There is 1 active task:
" ); @@ -398,27 +400,27 @@ void Today::getTodo() { } else { output = tr("No active tasks"); } - + TodoField->setText(tr(output)); } /* * launches datebook */ -void Today::startDatebook() { +void Today::startDatebook() { QCopEnvelope e("QPE/System", "execute(QString)"); e << QString("datebook"); } /* * starts the edit dialog as known from datebook - */ + */ extern QPEApplication *todayApp; void Today::editEvent(const Event &e) { startDatebook(); - + while(!QCopChannel::isRegistered("QPE/Datebook")) todayApp->processEvents(); QCopEnvelope env("QPE/Datebook", "editEvent(int)"); env << e.uid(); @@ -426,7 +428,7 @@ void Today::editEvent(const Event &e) { /* * launches todolist - */ + */ void Today::startTodo() { QCopEnvelope e("QPE/System", "execute(QString)"); e << QString("todolist"); @@ -444,22 +446,25 @@ void Today::startMail() { Today::~Today() { } - - /* - * Gets the events for the current day, if it should get all dates + * Gets the events for the current day, if it should get all dates */ -DateBookEvent::DateBookEvent(const EffectiveEvent &ev, - QWidget* parent = 0, +DateBookEvent::DateBookEvent(const EffectiveEvent &ev, + QWidget* parent = 0, int SHOW_LOCATION = 0, int SHOW_NOTES = 0, - const char* name = 0, + const char* name = 0, WFlags fl = 0) : ClickableLabel(parent,name,fl), event(ev) { - + QString msg; //QTime time = QTime::currentTime(); - + + Config config( "qpe" ); + // if 24 h format + ampm = config.readBoolEntry( "AMPM", TRUE ); + + if (!ONLY_LATER) { msg += "" + (ev).description() + ""; if ( (ev).event().hasAlarm() ) { @@ -469,16 +474,16 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev, if (SHOW_LOCATION == 1) { msg += "
" + (ev).location() + ""; } - + if ( (TimeString::timeString(QTime((ev).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((ev).event().end().time()) ) == "23:59") ) { msg += "
All day"; } else { // start time of event - msg += "
" + TimeString::timeString(QTime((ev).event().start().time()) ) + msg += "
" + ampmTime(QTime((ev).event().start().time()) ); // end time of event - + " - " + TimeString::timeString(QTime((ev).event().end().time()) ); + + " - " + ampmTime(QTime((ev).event().end().time()) ); } - + // include possible note or not if (SHOW_NOTES == 1) { msg += "
note:" +((ev).notes()).mid(0, MAX_CHAR_CLIP); @@ -490,17 +495,42 @@ DateBookEvent::DateBookEvent(const EffectiveEvent &ev, } -DateBookEventLater::DateBookEventLater(const EffectiveEvent &ev, - QWidget* parent = 0, +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; + } + +} + + +DateBookEventLater::DateBookEventLater(const EffectiveEvent &ev, + QWidget* parent = 0, int SHOW_LOCATION = 0, int SHOW_NOTES = 0, - const char* name = 0, + const char* name = 0, WFlags fl = 0) : ClickableLabel(parent,name,fl), event(ev) { - + QString msg; QTime time = QTime::currentTime(); - + + Config config( "qpe" ); + // if 24 h format + ampm = config.readBoolEntry( "AMPM", TRUE ); + + if ((time.toString() <= TimeString::dateString((ev).event().end())) ) { // show only later appointments msg += "" + (ev).description() + ""; @@ -511,27 +541,47 @@ DateBookEventLater::DateBookEventLater(const EffectiveEvent &ev, if (SHOW_LOCATION == 1) { msg += "
" + (ev).location() + ""; } - + if ( (TimeString::timeString(QTime((ev).event().start().time()) ) == "00:00") && (TimeString::timeString(QTime((ev).event().end().time()) ) == "23:59") ) { msg += "
All day"; } else { // start time of event - msg += "
" + TimeString::timeString(QTime((ev).event().start().time()) ) + msg += "
" + ampmTime(QTime((ev).event().start().time()) ) // end time of event - + " - " + TimeString::timeString(QTime((ev).event().end().time()) ); + + " - " + ampmTime(QTime((ev).event().end().time()) ); } // include possible note or not if (SHOW_NOTES == 1) { msg += "
note:" +((ev).notes()).mid(0, MAX_CHAR_CLIP); } - } - + } + setText(msg); connect(this, SIGNAL(clicked()), this, SLOT(editMe())); setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); } +QString DateBookEventLater::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; + } + +} + + void DateBookEvent::editMe() { emit editEvent(event.event()); } diff --git a/core/pim/today/today.h b/core/pim/today/today.h index 090e8f9..d265d67 100644 --- a/core/pim/today/today.h +++ b/core/pim/today/today.h @@ -27,7 +27,7 @@ #include #include -#include +#include #include "todayconfig.h" #include "todaybase.h" @@ -36,12 +36,12 @@ class QVBoxLayout; class Today : public TodayBase { - Q_OBJECT - - public: - Today( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~Today(); - + Q_OBJECT + + public: + Today( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~Today(); + private slots: void startConfig(); void startTodo(); @@ -58,9 +58,9 @@ class Today : public TodayBase { bool checkIfModified(); void setOwnerField(); void setOwnerField(QString &string); - private slots: - void channelReceived(const QCString &msg, const QByteArray & data); - + private slots: + void channelReceived(const QCString &msg, const QByteArray & data); + private: DateBookDB *db; ToDoDB *todo; @@ -70,42 +70,46 @@ class Today : public TodayBase { int MAX_LINES_TASK; int MAX_CHAR_CLIP; int MAX_LINES_MEET; - int SHOW_LOCATION; + int SHOW_LOCATION; int SHOW_NOTES; }; class DateBookEvent: public ClickableLabel { Q_OBJECT public: - DateBookEvent(const EffectiveEvent &ev, - QWidget* parent = 0, - int SHOW_LOCATION = 0, - int SHOW_NOTES = 0, - const char* name = 0, - WFlags fl = 0); + DateBookEvent(const EffectiveEvent &ev, + QWidget* parent = 0, + int SHOW_LOCATION = 0, + int SHOW_NOTES = 0, + const char* name = 0, + WFlags fl = 0); signals: void editEvent(const Event &e); private slots: void editMe(); private: + QString ampmTime(QTime); const EffectiveEvent event; + bool ampm; }; class DateBookEventLater: public ClickableLabel { Q_OBJECT public: - DateBookEventLater(const EffectiveEvent &ev, + DateBookEventLater(const EffectiveEvent &ev, QWidget* parent = 0, int SHOW_LOCATION = 0, int SHOW_NOTES = 0, - const char* name = 0, + const char* name = 0, WFlags fl = 0); signals: void editEvent(const Event &e); private slots: void editMe(); private: + QString ampmTime(QTime); const EffectiveEvent event; + bool ampm; }; #endif // TODAY_H diff --git a/core/pim/today/todaybase.cpp b/core/pim/today/todaybase.cpp index 755c860..ae8763b 100644 --- a/core/pim/today/todaybase.cpp +++ b/core/pim/today/todaybase.cpp @@ -45,13 +45,13 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) QPixmap config = Resource::loadPixmap( "today/config" ); // config icon QPixmap mail = Resource::loadPixmap( "today/mail" ); // mail icon - QPalette pal = this->palette(); - QColor col = pal.color(QPalette::Active, QColorGroup::Background); - pal.setColor(QPalette::Active, QColorGroup::Button, col); - pal.setColor(QPalette::Inactive, QColorGroup::Button, col); - pal.setColor(QPalette::Normal, QColorGroup::Button, col); - pal.setColor(QPalette::Disabled, QColorGroup::Button, col); - this->setPalette(pal); + //QPalette pal = this->palette(); + // QColor col = pal.color(QPalette::Active, QColorGroup::Background); + //pal.setColor(QPalette::Active, QColorGroup::Button, col); + //pal.setColor(QPalette::Inactive, QColorGroup::Button, col); + //pal.setColor(QPalette::Normal, QColorGroup::Button, col); + //pal.setColor(QPalette::Disabled, QColorGroup::Button, col); + //this->setPalette(pal); QWidget *d = QApplication::desktop(); @@ -95,7 +95,7 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) // --- dates section --- Frame4 = new QFrame( this, "Frame4" ); - Frame4->setPalette( pal ); +// Frame4->setPalette( pal ); Frame4->setFrameShape( QScrollView::StyledPanel ); Frame4->setFrameShadow( QScrollView::Sunken ); Frame4->setBackgroundOrigin( QScrollView::ParentOrigin ); @@ -112,7 +112,7 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) DatesButton = new QPushButton (Frame4, "DatesButton" ); DatesButton->setGeometry( QRect( 2, 4, 36, 32 ) ); DatesButton->setBackgroundOrigin( QPushButton::WidgetOrigin ); - DatesButton->setPalette( pal ); +// DatesButton->setPalette( pal ); DatesButton->setPixmap( datebook ); DatesButton->setFlat( TRUE ); @@ -128,7 +128,7 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) MailButton = new QPushButton (MailFrame, "MailButton" ); MailButton->setGeometry( QRect( 2, 3, 36, 19 ) ); - MailButton->setPalette( pal ); +// MailButton->setPalette( pal ); MailButton->setPixmap( mail ); MailButton->setFlat( TRUE ); @@ -150,7 +150,7 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) TodoButton = new QPushButton (Frame15, "TodoButton" ); TodoButton->setGeometry( QRect( 2, 4, 36, 32 ) ); - TodoButton->setPalette( pal ); +// TodoButton->setPalette( pal ); TodoButton->setPixmap( todo ); TodoButton->setFlat( TRUE ); @@ -169,7 +169,7 @@ TodayBase::TodayBase( QWidget* parent, const char* name, WFlags fl ) PushButton1 = new QPushButton (Frame15, "PushButton1" ); PushButton1->setGeometry( QRect( 2, 68, 25, 21 ) ); PushButton1->setPixmap( config ); - PushButton1->setPalette( pal ); +// PushButton1->setPalette( pal ); PushButton1->setAutoDefault( TRUE ); PushButton1->setFlat( TRUE ); -- cgit v0.9.0.2