From 6612f3ef0ee3c0e2202eda7eb9cc417b43eddaba Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 18 Feb 2007 13:09:42 +0000 Subject: [PATCH] API changes on ExtDateTimeEdit: - move all the private stuff (members, slots and methods) into a Private class - signals -> Q_SIGNALS - make a pair of constructors explicit svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=634826 --- extdate/extdatetimeedit.cpp | 78 ++++++++++++++++++++++++++++++------- extdate/extdatetimeedit.h | 37 +++++++----------- 2 files changed, 78 insertions(+), 37 deletions(-) diff --git a/extdate/extdatetimeedit.cpp b/extdate/extdatetimeedit.cpp index 337bd64..41947dc 100644 --- a/extdate/extdatetimeedit.cpp +++ b/extdate/extdatetimeedit.cpp @@ -253,39 +253,87 @@ void ExtDateEdit::focusInEvent( QFocusEvent *e ) { highlightActiveField(); } +class ExtDateTimeEdit::Private +{ +public: + Private(ExtDateTimeEdit *qq, const ExtDateTime& dt); + + // slots + void emitDateTimeChanged(); + + ExtDateTimeEdit *q; + QTimeEdit *m_TimeEdit; + ExtDateEdit *m_DateEdit; +}; + ExtDateTimeEdit::ExtDateTimeEdit( const ExtDateTime &dt, QWidget *parent ) -: QFrame( parent ) { - init( dt ); + : QFrame( parent ), d( new Private( this, dt ) ) +{ } ExtDateTimeEdit::ExtDateTimeEdit( const ExtDate &date, const QTime &time, QWidget *parent ) -: QFrame( parent ) { - init( ExtDateTime( date, time ) ); + : QFrame( parent ), d( new Private( this, ExtDateTime( date, time ) ) ) +{ } -ExtDateTimeEdit::ExtDateTimeEdit( QWidget *p ) -: QFrame( p ) { - init( ExtDateTime::currentDateTime() ); +ExtDateTimeEdit::ExtDateTimeEdit( QWidget *parent ) + : QFrame( parent ), d( new Private( this, ExtDateTime::currentDateTime() ) ) +{ } ExtDateTimeEdit::~ExtDateTimeEdit() { + delete d; } -void ExtDateTimeEdit::init( const ExtDateTime &dt ) { - QHBoxLayout *hlay = new QHBoxLayout( this ); +ExtDateTimeEdit::Private::Private( ExtDateTimeEdit *qq, const ExtDateTime &dt ) + : q( qq ) +{ + QHBoxLayout *hlay = new QHBoxLayout( q ); hlay->setMargin( 0 ); - m_DateEdit = new ExtDateEdit( dt.date(), this ); - m_TimeEdit = new QTimeEdit( dt.time(), this ); + m_DateEdit = new ExtDateEdit( dt.date(), q ); + m_TimeEdit = new QTimeEdit( dt.time(), q ); hlay->addWidget( m_DateEdit ); hlay->addWidget( m_TimeEdit ); - connect( m_DateEdit, SIGNAL( dateChanged( const ExtDate & ) ), this, SLOT( slotEmitDateTimeChanged() ) ); - connect( m_TimeEdit, SIGNAL( timeChanged( const QTime & ) ), this, SLOT( slotEmitDateTimeChanged() ) ); + connect( m_DateEdit, SIGNAL( dateChanged( const ExtDate & ) ), q, SLOT( emitDateTimeChanged() ) ); + connect( m_TimeEdit, SIGNAL( timeChanged( const QTime & ) ), q, SLOT( emitDateTimeChanged() ) ); } -void ExtDateTimeEdit::slotEmitDateTimeChanged() { - emit dateTimeChanged( dateTime() ); +ExtDate ExtDateTimeEdit::date() const +{ + return d->m_DateEdit->date(); +} + +void ExtDateTimeEdit::setDate( const ExtDate &date ) +{ + d->m_DateEdit->setDate( date ); +} + +QTime ExtDateTimeEdit::time() const +{ + return d->m_TimeEdit->time(); +} + +void ExtDateTimeEdit::setTime( const QTime &t ) +{ + d->m_TimeEdit->setTime( t ); +} + +ExtDateTime ExtDateTimeEdit::dateTime() const +{ + return ExtDateTime( date(), time() ); +} + +void ExtDateTimeEdit::setDateTime( const ExtDateTime &dt ) +{ + setDate( dt.date() ); + setTime( dt.time() ); +} + +void ExtDateTimeEdit::Private::emitDateTimeChanged() +{ + emit q->dateTimeChanged( q->dateTime() ); } edLineEdit::edLineEdit( ExtDateEdit *parent ) : QLineEdit( parent ) { diff --git a/extdate/extdatetimeedit.h b/extdate/extdatetimeedit.h index 2cfba7b..5946551 100644 --- a/extdate/extdatetimeedit.h +++ b/extdate/extdatetimeedit.h @@ -244,7 +244,7 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { *to be displayed (defaults to the system's current date and time) *@p p pointer to the parent widget (default: 0) */ - ExtDateTimeEdit( const ExtDateTime &dt = ExtDateTime::currentDateTime(), QWidget *p=0 ); + explicit ExtDateTimeEdit( const ExtDateTime &dt = ExtDateTime::currentDateTime(), QWidget *parent = 0 ); /** *@short Constructor. Displays the given Date and Time. @@ -260,7 +260,7 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { /** *@short Constructor for UI files (contains only a parent widget argument) */ - ExtDateTimeEdit( QWidget *p ); + explicit ExtDateTimeEdit( QWidget *parent ); /** *@short Default Destructor. Empty. @@ -271,7 +271,7 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { *@return the internal ExtDate value *@see setDate() */ - ExtDate date() const { return m_DateEdit->date(); } + ExtDate date() const; /** *@short set the internal ExtDate value, and display the new *date in the date spinbox. @@ -279,13 +279,13 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { *@p d reference to the new ExtDate *@see date() */ - void setDate( const ExtDate &date ) { m_DateEdit->setDate( date ); } + void setDate( const ExtDate &date ); /** *@return the internal QTime value *@see setTime() */ - QTime time() const { return m_TimeEdit->time(); } + QTime time() const; /** *@short set the internal QTime value, and display the new *time in the time spinbox. @@ -293,13 +293,13 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { *@p t reference to the new QTime *@see time() */ - void setTime( const QTime &t ) { m_TimeEdit->setTime( t ); } + void setTime( const QTime &t ); /** *@return the ExtDateTime value displayed in the date and time boxes *@see setDateTime() */ - ExtDateTime dateTime() const { return ExtDateTime( date(), time() ); } + ExtDateTime dateTime() const; /** *@short set the internal ExtDate and QTime values, and display the new *values in their respective spinboxes. @@ -307,25 +307,18 @@ class EXTDATE_EXPORT ExtDateTimeEdit : public QFrame { *@p dt reference to the new ExtDateTime *@see dateTime() */ - void setDateTime( const ExtDateTime &dt ) { setDate( dt.date() ); setTime( -dt.time() ); } + void setDateTime( const ExtDateTime &dt ); - signals: + Q_SIGNALS: void dateTimeChanged( const ExtDateTime &dt ); - private slots: - void slotEmitDateTimeChanged(); - private: - /** - *@short Initialize the ExtDate edit. - *@internal - *@note This function is called in each constructor. - */ - void init( const ExtDateTime &dt ); - - QTimeEdit *m_TimeEdit; - ExtDateEdit *m_DateEdit; + class Private; + Private *const d; + + Q_DISABLE_COPY( ExtDateTimeEdit ) + + Q_PRIVATE_SLOT( d, void emitDateTimeChanged() ) }; #endif //EXTDATETIMEEDIT_H -- 2.47.3