File indexing completed on 2024-04-21 14:55:51
0001 /* This file is part of the KDE libraries 0002 Copyright (C) 2002 Hans Petter bieker <bieker@kde.org> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU Library General Public 0006 License version 2 as published by the Free Software Foundation. 0007 0008 This library is distributed in the hope that it will be useful, 0009 but WITHOUT ANY WARRANTY; without even the implied warranty of 0010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0011 Library General Public License for more details. 0012 0013 You should have received a copy of the GNU Library General Public License 0014 along with this library; see the file COPYING.LIB. If not, write to 0015 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0016 Boston, MA 02110-1301, USA. 0017 */ 0018 0019 #include "kdatetimewidget.h" 0020 0021 #include <QDate> 0022 #include <QDebug> 0023 #include <QLayout> 0024 #include <QTimeEdit> 0025 0026 #include "kdatewidget.h" 0027 0028 class Q_DECL_HIDDEN KDateTimeWidget::KDateTimeWidgetPrivate 0029 { 0030 public: 0031 KDateWidget *dateWidget; 0032 QTimeEdit *timeWidget; 0033 }; 0034 0035 KDateTimeWidget::KDateTimeWidget(QWidget *parent) 0036 : QWidget(parent) 0037 , d(new KDateTimeWidgetPrivate) 0038 { 0039 initWidget(); 0040 } 0041 0042 KDateTimeWidget::KDateTimeWidget(const QDateTime &datetime, 0043 QWidget *parent) 0044 : QWidget(parent) 0045 , d(new KDateTimeWidgetPrivate) 0046 0047 { 0048 initWidget(); 0049 0050 setDateTime(datetime); 0051 } 0052 0053 KDateTimeWidget::~KDateTimeWidget() 0054 { 0055 delete d; 0056 } 0057 0058 void KDateTimeWidget::initWidget() 0059 { 0060 QHBoxLayout *layout = new QHBoxLayout(this); 0061 layout->setContentsMargins(0, 0, 0, 0); 0062 0063 d->dateWidget = new KDateWidget(this); 0064 d->timeWidget = new QTimeEdit(this); 0065 layout->addWidget(d->dateWidget); 0066 layout->addWidget(d->timeWidget); 0067 0068 connect(d->dateWidget, SIGNAL(changed(QDate)), 0069 SLOT(slotValueChanged())); 0070 connect(d->timeWidget, SIGNAL(timeChanged(QTime)), 0071 SLOT(slotValueChanged())); 0072 } 0073 0074 void KDateTimeWidget::setDateTime(const QDateTime &datetime) 0075 { 0076 d->dateWidget->setDate(datetime.date()); 0077 d->timeWidget->setTime(datetime.time()); 0078 } 0079 0080 QDateTime KDateTimeWidget::dateTime() const 0081 { 0082 return QDateTime(d->dateWidget->date(), d->timeWidget->time()); 0083 } 0084 0085 void KDateTimeWidget::slotValueChanged() 0086 { 0087 QDateTime datetime(d->dateWidget->date(), 0088 d->timeWidget->time()); 0089 0090 //qDebug() << "slotValueChanged(): " << datetime << "\n"; 0091 0092 emit valueChanged(datetime); 0093 } 0094 0095 #include "moc_kdatetimewidget.cpp"