17 #include <QDateTimeEdit> 30 , mQDateTimeEdit( NULL )
31 , mQgsDateTimeEdit( NULL )
38 widget->
setDateTime( QDateTime::currentDateTime() );
47 mQgsDateTimeEdit = qgsEditor;
52 QDateTimeEdit* qtEditor =
dynamic_cast<QDateTimeEdit*
>( editor );
55 mQDateTimeEdit = qtEditor;
58 if ( !mQDateTimeEdit )
60 QgsDebugMsg(
"Date/time edit widget could not be initialized because provided widget is not a QDateTimeEdit." );
66 mQDateTimeEdit->setDisplayFormat( displayFormat );
68 const bool calendar =
config(
"calendar_popup",
false ).toBool();
69 mQDateTimeEdit->setCalendarPopup( calendar );
71 const bool allowNull =
config(
"allow_null",
true ).toBool();
72 if ( mQgsDateTimeEdit )
79 "For that the QGIS custom widget QgsDateTimeEdit needs to be used." ),
83 if ( mQgsDateTimeEdit )
85 connect( mQgsDateTimeEdit, SIGNAL( dateTimeChanged( QDateTime ) ),
this, SLOT( dateTimeChanged( QDateTime ) ) );
89 connect( mQDateTimeEdit, SIGNAL( dateTimeChanged( QDateTime ) ),
this, SLOT( dateTimeChanged( QDateTime ) ) );
93 void QgsDateTimeEditWrapper::dateTimeChanged(
const QDateTime& dateTime )
101 if ( !mQDateTimeEdit )
102 return QVariant(
field().type() );
106 if ( mQgsDateTimeEdit )
108 return mQgsDateTimeEdit->
dateTime().toString( fieldFormat );
112 return mQDateTimeEdit->dateTime().toString( fieldFormat );
118 if ( !mQDateTimeEdit )
122 const QDateTime date = QDateTime::fromString( value.toString(), fieldFormat );
124 if ( mQgsDateTimeEdit )
130 mQDateTimeEdit->setDateTime( date );
136 if ( !mQDateTimeEdit )
139 mQDateTimeEdit->setEnabled( enabled );
QWidget * createWidget(QWidget *parent) override
This method should create a new widget with the provided parent.
QDateTime dateTime() const
dateTime returns the date time which can eventually be a null date/time
#define QGSDATETIMEEDIT_DATEFORMAT
QgsDateTimeEditWrapper(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent=0)
static void logMessage(QString message, QString tag=QString::null, MessageLevel level=WARNING)
add a message to the instance (and create it if necessary)
void setValue(const QVariant &value) override
void setEnabled(bool enabled) override
QVariant value() override
Will be used to access the widget's value.
void initWidget(QWidget *editor) override
This method should initialize the editor widget with runtime data.
static QgsMessageLog * instance()
void setAllowNull(bool allowNull)
determines if the widget allows setting null date/time.
void setDateTime(const QDateTime &dateTime)
setDateTime set the date time in the widget and handles null date times.
Represents a vector layer which manages a vector based data sets.
The QgsDateTimeEdit class is a QDateTimeEdit with the capability of setting/reading null date/times...