00001 /****************************************************************************************************** 00002 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * 00003 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * 00004 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * 00005 ******************************************************************************************************/ 00006 00007 #ifndef FORMAT_DEGREES_MINUTES_SECONDS_BASE_H 00008 #define FORMAT_DEGREES_MINUTES_SECONDS_BASE_H 00009 00010 #include <QString> 00011 #include <QValidator> 00012 00014 class FormatDegreesMinutesSecondsBase { 00015 public: 00017 FormatDegreesMinutesSecondsBase(); 00018 ~FormatDegreesMinutesSecondsBase(); 00019 00023 QValidator::State parseInput (const QString &stringUntrimmed, 00024 double &value) const; 00025 00026 protected: 00027 00029 QString formatOutputDegreesMinutesSeconds (double value) const; 00030 00032 QString formatOutputDegreesMinutesSecondsNsew (double value, 00033 bool isNsHemisphere) const; 00034 00035 private: 00036 00037 void stripSymbols (QString &field0, 00038 QString &field1, 00039 QString &field2) const; 00040 }; 00041 00042 #endif // FORMAT_DEGREES_MINUTES_SECONDS_BASE_H