Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
FormatDateTime.h
1 #ifndef FORMAT_DATE_TIME_H
2 #define FORMAT_DATE_TIME_H
3 
4 #include "CoordUnitsDate.h"
5 #include "CoordUnitsTime.h"
6 #include <QDateTime>
7 #include <QHash>
8 #include <QString>
9 #include <QStringList>
10 #include <QValidator>
11 
12 typedef QHash<CoordUnitsDate, QString> FormatDate;
13 typedef QHash<CoordUnitsTime, QString> FormatTime;
14 
15 typedef QHash<CoordUnitsDate, QStringList> FormatsDate;
16 typedef QHash<CoordUnitsTime, QStringList> FormatsTime;
17 
20  public:
23 
25  QString formatOutput (CoordUnitsDate coordUnitsDate,
26  CoordUnitsTime coordUnitsTime,
27  double value) const;
28 
31  QValidator::State parseInput (CoordUnitsDate coordUnitsDate,
32  CoordUnitsTime coordUnitsTime,
33  const QString &stringUntrimmed,
34  double &value) const;
35 
36  private:
37 
38  bool ambiguityBetweenDateAndTime (CoordUnitsDate coordUnitsDate,
39  CoordUnitsTime coordUnitsTime,
40  const QString &string) const;
41  void dateTimeLookup (const FormatsDate &formatsDate,
42  const FormatsTime &formatsTime,
43  CoordUnitsDate coordUnitsDate,
44  CoordUnitsTime coordUnitsTime,
45  const QString &string,
46  bool useQDateTimeElseQRegExp,
47  double &value, // Set only if useQDateTimeElseQRegExp=success=true
48  bool &success) const;
49  void loadFormatsFormat();
50  void loadFormatsParseAcceptable();
51  void loadFormatsParseIncomplete();
52 
53  // For formatting output
54  FormatDate m_formatsDateFormat;
55  FormatTime m_formatsTimeFormat;
56 
57  // For parsing input, using built in Qt date/time parsing according to QDateTime
58  FormatsDate m_formatsDateParseAcceptable;
59  FormatsTime m_formatsTimeParseAcceptable;
60 
61  // For parsing input, after input has been found to not be Acceptable. Regular expressions are used since Qt date/time
62  // parsing of Intermediate strings does not work. Example, 'J' and 'Ja' would be rejected although they are typed
63  // in the process of entering 'Jan' for the month
64  FormatsDate m_formatsDateParseIncomplete;
65  FormatsTime m_formatsTimeParseIncomplete;
66 };
67 
68 #endif // FORMAT_DATE_TIME_H
FormatDateTime()
Single constructor.
QValidator::State parseInput(CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, const QString &stringUntrimmed, double &value) const
Parse the input string into a time value.
QString formatOutput(CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, double value) const
Format the date/time value according to date/time format settings.
Input parsing and output formatting for date/time values.