kdeui
kdatetimewidget.cpp
Go to the documentation of this file.00001 #include <qlayout.h>
00002
00003 #include "kdatewidget.h"
00004 #include "kdebug.h"
00005 #include "kdialog.h"
00006 #include "ktimewidget.h"
00007
00008 #include "kdatetimewidget.h"
00009
00010 class KDateTimeWidget::KDateTimeWidgetPrivate
00011 {
00012 public:
00013 KDateWidget * dateWidget;
00014 KTimeWidget * timeWidget;
00015 };
00016
00017 KDateTimeWidget::KDateTimeWidget(QWidget * parent, const char * name)
00018 : QWidget(parent, name)
00019 {
00020 init();
00021 }
00022
00023 KDateTimeWidget::KDateTimeWidget(const QDateTime & datetime,
00024 QWidget * parent, const char * name)
00025 : QWidget(parent, name)
00026 {
00027 init();
00028
00029 setDateTime(datetime);
00030 }
00031
00032 KDateTimeWidget::~KDateTimeWidget()
00033 {
00034 delete d;
00035 }
00036
00037 void KDateTimeWidget::init()
00038 {
00039 d = new KDateTimeWidgetPrivate;
00040
00041 QHBoxLayout *layout = new QHBoxLayout(this, 0, KDialog::spacingHint());
00042 layout->setAutoAdd(true);
00043
00044 d->dateWidget = new KDateWidget(this);
00045 d->timeWidget = new KTimeWidget(this);
00046
00047 connect(d->dateWidget, SIGNAL(changed(QDate)),
00048 SLOT(slotValueChanged()));
00049 connect(d->timeWidget, SIGNAL(valueChanged(const QTime &)),
00050 SLOT(slotValueChanged()));
00051 }
00052
00053 void KDateTimeWidget::setDateTime(const QDateTime & datetime)
00054 {
00055 d->dateWidget->setDate(datetime.date());
00056 d->timeWidget->setTime(datetime.time());
00057 }
00058
00059 QDateTime KDateTimeWidget::dateTime() const
00060 {
00061 return QDateTime(d->dateWidget->date(), d->timeWidget->time());
00062 }
00063
00064 void KDateTimeWidget::slotValueChanged()
00065 {
00066 QDateTime datetime(d->dateWidget->date(),
00067 d->timeWidget->time());
00068
00069 kdDebug() << "slotValueChanged(): " << datetime << "\n";
00070
00071 emit valueChanged(datetime);
00072 }
00073
00074 #include "kdatetimewidget.moc"