From 78211642003f70797a5faa1767a5ab2f5f83606f Mon Sep 17 00:00:00 2001 From: hakan Date: Tue, 26 Mar 2002 19:05:31 +0000 Subject: Added shortcut buttons to set the start time --- (limited to 'core/pim/datebook/timepicker.cpp') diff --git a/core/pim/datebook/timepicker.cpp b/core/pim/datebook/timepicker.cpp new file mode 100644 index 0000000..5f08a05 --- a/dev/null +++ b/core/pim/datebook/timepicker.cpp @@ -0,0 +1,119 @@ +#include "timepicker.h" + +#include +#include +#include +#include "clickablelabel.h" +#include + +TimePicker::TimePicker(QWidget* parent = 0, const char* name = 0, + WFlags fl = 0) : + QWidget(parent,name,fl) +{ + QVBoxLayout *vbox=new QVBoxLayout(this); + + ClickableLabel *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); + 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); + 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(); + + if (b) { + QValueListIterator 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(); + + if (b) { + QValueListIterator 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 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 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); +} -- cgit v0.9.0.2