From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- .../multieditor/multieditordatetime.h | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.h (limited to 'SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.h') diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.h new file mode 100644 index 0000000..59bd111 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditordatetime.h @@ -0,0 +1,84 @@ +#ifndef MULTIEDITORDATETIME_H +#define MULTIEDITORDATETIME_H + +#include "multieditorwidget.h" +#include "multieditorwidgetplugin.h" +#include "plugins/builtinplugin.h" +#include +#include + +class QCalendarWidget; +class QDateTimeEdit; +class QLabel; + +class GUI_API_EXPORT MultiEditorDateTime : public MultiEditorWidget +{ + Q_OBJECT + public: + explicit MultiEditorDateTime(QWidget *parent = 0); + + static void staticInit(); + + void setValue(const QVariant& value); + QVariant getValue(); + bool needsValueUpdate(); + + QList getNoScrollWidgets(); + + bool getReadOnly() const; + void setReadOnly(bool value); + QString getTabLabel(); + void focusThisWidget(); + + protected: + void updateCalendarDisplay(); + void setDisplayFormat(const QString& format); + + virtual QStringList getParsingFormats(); + + QDateTimeEdit* dateTimeEdit = nullptr; + bool showCalendars = true; + + private: + enum FormatType + { + STRING, + JULIAN_DAY, + UNIXTIME, + OTHER + }; + + void updateReadOnlyDisplay(); + QDateTime fromString(const QString& value); + + static QStringList formats; + + QLabel* dateTimeLabel = nullptr; + QCalendarWidget* calendar = nullptr; + QString originalValueFormat; + FormatType formatType; + bool updatingCalendar = false; + bool readOnly = false; + + private slots: + void calendarDateChanged(); + void dateChanged(const QDate& date); + void timeChanged(const QTime& time); +}; + +class GUI_API_EXPORT MultiEditorDateTimePlugin : public BuiltInPlugin, public MultiEditorWidgetPlugin +{ + Q_OBJECT + + SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl") + SQLITESTUDIO_PLUGIN_DESC("Date and time data editor.") + SQLITESTUDIO_PLUGIN_TITLE("Date and time") + SQLITESTUDIO_PLUGIN_VERSION(10000) + + public: + MultiEditorWidget* getInstance(); + bool validFor(const DataType& dataType); + int getPriority(const DataType& dataType); +}; + +#endif // MULTIEDITORDATETIME_H -- cgit v1.2.3