-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutilities.h
170 lines (147 loc) · 6.99 KB
/
utilities.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#ifndef UTILITIES_H
#define UTILITIES_H
/***************************************************************************
utilities.h - description
-------------------
begin : jun 2015
copyright : (C) 2015 by Jaime Robles
email : [email protected]
***************************************************************************/
/*****************************************************************************
* This file is part of KLog. *
* *
* KLog is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* KLog is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with KLog. If not, see <https://www.gnu.org/licenses/>. *
* *
*****************************************************************************/
/*
This class implements general use utilities that can be used from any other class
Anything that is not directly related with a class itself and could be used from different
classes should be here
*/
#include <QtGlobal>
#include <QString>
#include <QDir>
#include <QFile>
#include <QDateTime>
#include "locator.h"
#include <QtDebug>
#include "klogdefinitions.h"
class Utilities
{
public:
Utilities();
~Utilities();
void setDarkMode(const QString &_dm);
bool isDarkMode();
void setCallValidation(const bool _b);
int getProgresStepForDialog(int totalSteps);
bool trueOrFalse(const QString &_s); // reads a String and return true if s.upper()== TRUE :-)
QChar boolToCharToSQLite(const bool _b);
QString boolToQString(const bool _b);
QString checkAndFixASCIIinADIF(const QString &_data);
QString getAgent(const QString &_klogversion);
QString getGlobalAgent(const QString &_klogversion);
//QOperatingSystemVersion getOS();
//Devel or debug functions - Not adding any feature to the user
void printQString(const QStringList &_qs);
QString getKLogDBFile();
QString getKLogDBBackupFile();
//QString getKLogDatabaseFile(const QString &_file);
bool isDBFileExisting();
bool isDBFileExisting(const QString &_file);
QString getTQSLsFileName();
QString getTQSLsPath(); // Depending on the OS where are usually installed the executables
QString getHomeDir();
QString getCfgFile();
QString getCTYFile();
QString getDebugLogFile();
QString getSaveSpotsLogFile();
QString getBackupADIFile();
QString getClubLogFile();
QString getEQSLFile();
QString getLoTWAdifFile();
QString getClearSQLi(QString _s);
void setVersion(const QString &_v);
QString getVersion();
double getVersionDouble();
QDate getDefaultDate();
QString getDefaultRST(const QString &_m);
QStringList getDefaultLogFields();
int getNormalizedDXCCValue(const int _dxcc);
// Validations
bool isValidDate(const QDate _d);
bool isValidDateTime(const QString &_d);
bool isValidCall(const QString &_c);
bool isSameFreq(const double fr1, const double fr2);
bool isValidBandId(const int _b);
bool isValidModeId(const int _m);
bool isValidFreq(const QString &_b);
bool isValidGrid(const QString &_b);
bool isValidVUCCGrids(const QString &_b);
bool isValidRST(const QString &_b);
bool isValidPower(const QString &_b);
bool isValidComment(const QString &_b);
bool isValidName(const QString &_b);
bool isValidADIFField(const QString &_b);
bool isValidQSL_Rcvd(const QString &c, bool rcvd=true); // If receiving is true, If creating the ADIF is false
bool isValidQSL_Sent(const QString &c);
bool isValidUpload_Status(const QString &c);
bool isValidContinent(const QString &c);
bool isValidTimeFromString(const QString &_s);
bool isValidDateFromString(const QString &_s);
bool isValidDateTimeFromString(const QString &_s);
bool isValidDXCC(const int _d);
QStringList getValidADIFFieldAndData(const QString &_b);
QString getPrefixFromCall(const QString &_c);
//QString getPrefixFromFullCall(const QString &_c);
// Write DATE/TIME to DB
QString getDateTimeSQLiteStringFromDateTime(const QDateTime &_d);
QString getDateSQLiteStringFromDate(const QDate &_d);
// Read from DB
QDateTime getDateTimeFromSQLiteString(const QString &_s);
QTime getTimeFromSQLiteString(const QString &_s);
QDate getDateFromSQliteString(const QString &_s);
// Translate the LOG table fields into human readable
QString getLogColumnName(const QString &_column);
// Creates the ADIF DATE & TIME formats
QString getADIFDateFromQDateTime(const QDateTime &_d); // Will produce the ADIF DATE format: "YYYYMMDD"
QString getADIFDateFromQDate(const QDate &_d); // Will produce the ADIF DATE format: "YYYYMMDD"
QString getADIFTimeFromQDateTime(const QDateTime &_d); // Will produce the ADIF TIME format: "HHMMSS"
// Parse Date & Time from ADIF
QDate getDateFromADIFDateString(const QString &_s); // Expects an ADIF DATE format string: "YYYYMMDD"
QTime getTimeFromADIFTimeString(const QString &_s); // Expects and ADIF TIME format String "HHMMSS" or "HHMM"
// Parse date fromLoTW
QDate getDateFromLoTWQSLDateString(const QString &_s);
// Creates the Cabrillo DATE & TIME (http://wwrof.org/cabrillo/)
QString getCabrilloDateFromQDate(const QDate &_d); // Will produce the Cabrillo DATE format: "YYYY-MM-DD"
QString getCabrilloTimeFromQDateTime(const QDateTime &_d); // Will produce the Cabrillo TIME format: "HHMM"
QString getOnlineServiceName(OnLineProvider _service);
bool isValidCQ(const int _cq);
bool isValidITU(const int _itu);
bool isValidAge(const int _age);
QString getBandFromFreq(const int _f); // Freq in MHz
//QPalette getPalete(bool _ok);
private:
void init();
bool processConfigLine(const QString &_line);
QString getKLogDefaultDatabaseFile();
int isAPrefix(const QString &_c);
bool isValidSubCall(const QString &_c);
//QPair<QString, QString> getCallParts(const QString &_c);
bool darkMode, callValidation;
QString dbPath;
QString softwareVersion;
//QPalette palRed, palBlack;
};
#endif // UTILITIES_H