From 34975323367e4a903886cd317b34192f1271a1f2 Mon Sep 17 00:00:00 2001 From: erik Date: Mon, 23 Apr 2007 20:46:34 +0000 Subject: Fix for bug 1844. The display of 12hour (AM/PM) time was broken. It was because the views never bother to check. This fix incorporates the patch submitted by harlekin. Thanks! --- diff --git a/core/pim/datebook/modules/weeklst/datebookweeklst.cpp b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp index b36bf6d..59f937f 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklst.cpp +++ b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -68,7 +69,9 @@ void DateBookWeekLst::setDbl(bool on) { } } -void DateBookWeekLst::redraw() {getEvents();} +void DateBookWeekLst::redraw() { + getEvents(); +} QDate DateBookWeekLst::date() { return bdate; @@ -106,9 +109,9 @@ void DateBookWeekLst::getEvents() { } if (!m_CurrentView) { if (dbl) { - m_CurrentView=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); + m_CurrentView=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,ampm,scroll); } else { - m_CurrentView=new DateBookWeekLstDblView(el,start,bStartOnMonday,scroll); + m_CurrentView=new DateBookWeekLstDblView(el,start,bStartOnMonday,ampm,scroll); } m_CurrentView->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); connect (m_CurrentView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); @@ -119,6 +122,7 @@ void DateBookWeekLst::getEvents() { connect (m_CurrentView, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); connect (m_CurrentView, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); + connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(slotClockChanged(bool))); scroll->addChild(m_CurrentView); } else { if (dbl) { @@ -130,6 +134,11 @@ void DateBookWeekLst::getEvents() { scroll->updateScrollBars(); } +void DateBookWeekLst::slotClockChanged( bool ap ) { + ampm = ap; + getEvents(); +} + void DateBookWeekLst::dateChanged(QDate &newdate) { dateset = true; bdate=newdate; diff --git a/core/pim/datebook/modules/weeklst/datebookweeklst.h b/core/pim/datebook/modules/weeklst/datebookweeklst.h index 505810b..53bed05 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklst.h +++ b/core/pim/datebook/modules/weeklst/datebookweeklst.h @@ -35,6 +35,7 @@ public slots: protected slots: void keyPressEvent(QKeyEvent *); + void slotClockChanged(bool); void setDbl(bool on); signals: diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp index 6389822..5182df1 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp +++ b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.cpp @@ -5,10 +5,10 @@ DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList &ev1, QValueList &ev2, - QDate &d, bool onM, + QDate &d, bool onM, bool showAmPm, QWidget* parent, const char* name, WFlags fl) - : QWidget( parent, name, fl ) + : QWidget( parent, name, fl ), ampm( showAmPm ) { m_MainLayout = new QHBoxLayout( this ); @@ -18,10 +18,10 @@ DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList &ev1, } DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList &ev1, - QDate &d, bool onM, + QDate &d, bool onM, bool showAmPm, QWidget* parent, const char* name, WFlags fl) - : QWidget( parent, name, fl ) + : QWidget( parent, name, fl ), ampm( showAmPm ) { m_MainLayout = new QHBoxLayout( this ); @@ -35,7 +35,7 @@ void DateBookWeekLstDblView::setEvents(QValueList &ev1,QValueLis { setUpdatesEnabled(false); if (!leftView) { - leftView=new DateBookWeekLstView(ev1,d,onM,this); + leftView=new DateBookWeekLstView(ev1, d, onM, ampm, this); m_MainLayout->addWidget(leftView); connect (leftView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); connect (leftView, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); @@ -52,7 +52,7 @@ void DateBookWeekLstDblView::setEvents(QValueList &ev1,QValueLis } if (!rightView) { - rightView=new DateBookWeekLstView(ev2,d.addDays(7),onM,this); + rightView=new DateBookWeekLstView(ev2, d.addDays(7), onM, ampm, this); m_MainLayout->addWidget(rightView); connect (rightView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); connect (rightView, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); @@ -75,7 +75,7 @@ void DateBookWeekLstDblView::setEvents(QValueList &ev1,QValueLis void DateBookWeekLstDblView::setEvents(QValueList &ev1,QDate &d, bool onM) { if (!leftView) { - leftView=new DateBookWeekLstView(ev1,d,onM,this); + leftView=new DateBookWeekLstView(ev1, d, onM, ampm, this); m_MainLayout->addWidget(leftView); connect (leftView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); connect (leftView, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); @@ -99,7 +99,7 @@ void DateBookWeekLstDblView::setEvents(QValueList &ev1,QDate &d, void DateBookWeekLstDblView::setRightEvents(QValueList &ev1,QDate &d, bool onM) { if (!rightView) { - rightView=new DateBookWeekLstView(ev1,d,onM,this); + rightView=new DateBookWeekLstView(ev1, d, onM, ampm, this); m_MainLayout->addWidget(rightView); connect (leftView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); connect (leftView, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h index 808556e..9eb17e0 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h +++ b/core/pim/datebook/modules/weeklst/datebookweeklstdblview.h @@ -16,11 +16,11 @@ class DateBookWeekLstDblView: public QWidget { public: DateBookWeekLstDblView(QValueList &ev1, QValueList &ev2, - QDate &d, bool onM, + QDate &d, bool onM, bool showAmPm, QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); DateBookWeekLstDblView(QValueList &ev1, - QDate &d, bool onM, + QDate &d, bool onM, bool showAmPm, QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); virtual ~DateBookWeekLstDblView(); @@ -43,6 +43,7 @@ signals: protected: QHBoxLayout*m_MainLayout; DateBookWeekLstView *leftView,*rightView; + bool ampm; }; #endif diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp index 797f766..881e8f1 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp +++ b/core/pim/datebook/modules/weeklst/datebookweeklstevent.cpp @@ -1,85 +1,98 @@ -#include "datebookweeklstevent.h" -#include "datebooktypes.h" - -#include - -#include - -#include -#include - -DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, - int weeklistviewconfig, - QWidget* parent, - const char* name, - WFlags fl ) : OClickableLabel(parent,name,fl), event(ev) -{ - // old values... lastday = "__|__", middle=" |---", Firstday="00:00", - QString s,start,middle,end,day; - - odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl; - if(weeklistviewconfig==NONE) { // No times displayed. -// start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); -// middle.sprintf("<--->"); -// end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); -// day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); - } else if(weeklistviewconfig==NORMAL) { // "Normal", only display start time. - start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); - middle.sprintf(" |---"); - end.sprintf("__|__"); - day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); - } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times. - start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); - middle.sprintf("<--->"); - end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); - day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); - } - - if(ev.event().type() == Event::Normal) { - if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event. - s=day; - } else if(ev.startDate()==ev.date()) { // start event. - s=start; - } else if(ev.endDate()==ev.date()) { // end event. - s=end; - } else { // middle day. - s=middle; - } - } else { - 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()); -} -void DateBookWeekLstEvent::duplicateMe() -{ - emit duplicateEvent(event.event()); -} -void DateBookWeekLstEvent::deleteMe() -{ - emit removeEvent(event.event()); - emit redraw(); -} -void DateBookWeekLstEvent::beamMe() -{ - emit beamEvent( event.event() ); -} -void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e ) -{ - if (!event.event().isValidUid()) { - // this is just such a holiday event. - return; - } - popmenue = new QPopupMenu; - - popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe())); - popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe())); - popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe())); - if(Ir::supported()) - popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe())); - popmenue->popup( mapToGlobal( e->pos() )); -} +#include "datebookweeklstevent.h" +#include "datebooktypes.h" + +#include + +#include + +#include +#include + +DateBookWeekLstEvent::DateBookWeekLstEvent(bool ap, const EffectiveEvent &ev, + int weeklistviewconfig, + QWidget* parent, + const char* name, + WFlags fl ) : OClickableLabel(parent,name,fl), event(ev), ampm(ap) +{ + // old values... lastday = "__|__", middle=" |---", Firstday="00:00", + QString s,start,middle,end,day; + + odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl; + if(weeklistviewconfig==NORMAL) { // "Normal", only display start time. + if ( ampm ) { + int shour = ev.start().hour(); + int smin = ev.start().minute(); + if ( shour >= 12 ) { + if ( shour > 12 ) { + shour -= 12; + } + start.sprintf( "%.2d:%.2d PM", shour, smin ); + day.sprintf("%.2d:%.2d PM",shour,smin); + } else { + if ( shour == 0 ) { + shour = 12; + } + start.sprintf( "%.2d:%.2d AM", shour, smin ); + day.sprintf("%.2d:%.2d AM",shour,smin); + } + } else { + start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); + day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); + } + middle.sprintf(" |---"); + end.sprintf("__|__"); + } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times. + start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); + middle.sprintf("<--->"); + end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); + day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); + } + + if(ev.event().type() == Event::Normal) { + if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event. + s=day; + } else if(ev.startDate()==ev.date()) { // start event. + s=start; + } else if(ev.endDate()==ev.date()) { // end event. + s=end; + } else { // middle day. + s=middle; + } + } else { + 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()); +} +void DateBookWeekLstEvent::duplicateMe() +{ + emit duplicateEvent(event.event()); +} +void DateBookWeekLstEvent::deleteMe() +{ + emit removeEvent(event.event()); + emit redraw(); +} +void DateBookWeekLstEvent::beamMe() +{ + emit beamEvent( event.event() ); +} +void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e ) +{ + if (!event.event().isValidUid()) { + // this is just such a holiday event. + return; + } + popmenue = new QPopupMenu; + + popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe())); + popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe())); + popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe())); + if(Ir::supported()) + popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe())); + popmenue->popup( mapToGlobal( e->pos() )); +} diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstevent.h b/core/pim/datebook/modules/weeklst/datebookweeklstevent.h index 77f6283..1e3cd5d 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstevent.h +++ b/core/pim/datebook/modules/weeklst/datebookweeklstevent.h @@ -9,7 +9,7 @@ class DateBookWeekLstEvent: public Opie::Ui::OClickableLabel { Q_OBJECT public: - DateBookWeekLstEvent(const EffectiveEvent &ev, int weeklistviewconfig =1, + DateBookWeekLstEvent(bool ampm, const EffectiveEvent &ev, int weeklistviewconfig =1, QWidget* parent = 0, const char* name = 0, WFlags fl = 0); signals: @@ -28,6 +28,7 @@ private: QPopupMenu* popmenue; protected: void mousePressEvent( QMouseEvent *e ); + bool ampm; }; diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp index 82b9c6d..469a60a 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp +++ b/core/pim/datebook/modules/weeklst/datebookweeklstview.cpp @@ -7,15 +7,16 @@ #include #include +#include #include #include DateBookWeekLstView::DateBookWeekLstView(QValueList &ev, - const QDate &d, bool onM, + const QDate &d, bool onM, bool showAmPm, QWidget* parent, const char* name, WFlags fl) - : QWidget( parent, name, fl ) + : QWidget( parent, name, fl ), ampm(showAmPm) { childs.clear(); m_MainLayout = new QVBoxLayout( this ); @@ -65,17 +66,18 @@ void DateBookWeekLstView::setEvents(QValueList &ev, const QDate w->setPalette(white); QVBoxLayout * tlayout = new QVBoxLayout(w); childs.append(w); - // Header + // Header DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i-dayoffset), bStartOnMonday,w); connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); connect(hdr, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); tlayout->addWidget(hdr); + connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(slotClockChanged(bool))); // Events while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { if(!(((*it).end().hour()==0) && ((*it).end().minute()==0) && ((*it).startDate()!=(*it).date()))) { // Skip events ending at 00:00 starting at another day. - DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,weeklistviewconfig,w); + DateBookWeekLstEvent *l=new DateBookWeekLstEvent(ampm,*it,weeklistviewconfig,w); tlayout->addWidget(l); connect (l, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); connect (l, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); @@ -87,14 +89,14 @@ void DateBookWeekLstView::setEvents(QValueList &ev, const QDate } tlayout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); m_MainLayout->addWidget(w); -/* - QSpacerItem * tmp = new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding); - m_MainLayout->addItem(tmp); -*/ } setUpdatesEnabled(true); } +void DateBookWeekLstView::slotClockChanged( bool ap ) { + ampm = ap; +} + DateBookWeekLstView::~DateBookWeekLstView() {} diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstview.h b/core/pim/datebook/modules/weeklst/datebookweeklstview.h index 3d47842..900101d 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklstview.h +++ b/core/pim/datebook/modules/weeklst/datebookweeklstview.h @@ -15,7 +15,9 @@ class DateBookWeekLstView: public QWidget { Q_OBJECT public: - DateBookWeekLstView(QValueList &ev, const QDate &d, bool onM, QWidget* parent = 0, const char* name = 0, + DateBookWeekLstView(QValueList &ev, const QDate &d, + bool onM, bool showAmPm, QWidget* parent = 0, + const char* name = 0, WFlags fl = 0 ); ~DateBookWeekLstView(); @@ -30,14 +32,17 @@ signals: void showDate(int y, int m, int d); void addEvent(const QDateTime &start, const QDateTime &stop, const QString &str, const QString &location); + protected: bool bStartOnMonday; + bool ampm; QValueList childs; QVBoxLayout*m_MainLayout; protected slots: void keyPressEvent(QKeyEvent *); + void slotClockChanged( bool ap ); }; #endif -- cgit v0.9.0.2