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 ) {
*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.
/**
*@short Constructor for UI files (contains only a parent widget argument)
*/
- ExtDateTimeEdit( QWidget *p );
+ explicit ExtDateTimeEdit( QWidget *parent );
/**
*@short Default Destructor. Empty.
*@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.
*@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.
*@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.
*@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