ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/CommonUtils/util.h
Revision: 1073
Committed: Thu Oct 5 17:48:32 2017 UTC (8 years ago) by s10k
Content type: text/x-chdr
File size: 5473 byte(s)
Log Message:
added XML Tools latest version (2.0d) and s10k's common libs

File Contents

# Content
1 /**
2 * Copyright (C) 2017 - Fábio Bento (random-guy)
3 *
4 * This library is distributed under the MIT License. See notice at the end
5 * of this file.
6 *
7 */
8
9 #ifndef UTIL_H
10 #define UTIL_H
11
12 #include <QtGlobal> // for debug macros
13 #ifdef QT_DEBUG
14 #include <QDebug>
15 #endif
16 #include <QRegularExpression>
17 #include <QString>
18 #include <QUrl>
19 #include <QCoreApplication>
20 #include <QSettings>
21 #include <QXmlStreamReader>
22 #include <memory>
23 #include <QDirIterator>
24 #include <QCryptographicHash>
25 #include <string.h>
26
27 #ifdef QT_GUI_LIB
28 #include <QMessageBox>
29 #include <QFileDialog>
30 #include <QListView>
31 #include <QTreeView>
32 #include <QDesktopServices>
33 #include <QDesktopWidget>
34 #include <QStatusBar>
35 #include <QTableWidget>
36 #include <QCheckBox>
37 #include <QHBoxLayout>
38 #endif
39
40 /**
41 Utilities functions (global)
42 **/
43 namespace Util{
44
45 namespace FileSystem {
46
47 QString normalizePath(QString path);
48
49 QString cutName(QString path);
50
51 QString cutNameWithoutBackSlash(QString path);
52
53 QString normalizeAndQuote(QString path);
54
55 bool copyDir(const QString &fromPath, QString toPath, const bool isRecursive = false);
56
57 bool rmDir(const QString &dirPath);
58
59 QStringList getFolderFilesByWildcard(const QString &entryFolder, const QString &wildcard, bool isRecursive = false);
60
61 QStringList filterFilesByWildcard(const QStringList &filePaths, const QString &wildcard);
62
63 QString fileHash(const QString &fileName, QCryptographicHash::Algorithm hashAlgorithm);
64
65 QString getAppPath();
66
67 bool backupFile(QString file);
68
69 }
70
71 namespace String {
72
73 // Not using a function because we need to have this as inline function (in both debug and release mods)
74 // QString(string).toUtf8().constData() -> since this creates a temporary it needs to be inline
75 #ifndef QSTR_TO_CSTR
76 # define QSTR_TO_CSTR qUtf8Printable
77 #endif
78
79 QString insertApostrophes(const QString &currString);
80
81 QString insertQuotes(const QString &currString);
82
83 QString fullTrim(QString str);
84
85 QStringList substring(QString myString, QString separator, Qt::CaseSensitivity cs = Qt::CaseSensitive);
86
87 QString normalizeDecimalSeparator(QString value);
88
89 // no problem here with "temporary" cstr
90 // https://stackoverflow.com/questions/1971183/when-does-c-allocate-deallocate-string-literals
91 const char* boolToCstr(bool currentBoolean);
92
93 }
94
95 #ifdef QT_GUI_LIB
96 namespace Dialogs {
97
98 void showInfo(const QString &message);
99
100 void showRichInfo(const QString &message);
101
102 void showWarning(const QString &message);
103
104 void showError(const QString &message);
105
106 void showRichError(const QString &message);
107
108 bool showQuestion(QWidget * parent, QString message, QMessageBox::StandardButton standardButton=QMessageBox::NoButton);
109
110 QMessageBox::StandardButton showQuestionWithCancel(QWidget * parent, QString message, QMessageBox::StandardButton standardButton=QMessageBox::NoButton);
111
112 QStringList multipleDirSelection(const QString &title);
113
114 }
115 #endif
116
117 namespace Validation {
118
119 bool checkEmptySpaces(QStringList toCheck);
120 bool checkIfIntegers(QStringList toCheck);
121 bool checkIfDoubles(QStringList toCheck);
122 bool isStringInteger(QString myString);
123 bool isStringDouble(QString myString);
124
125 }
126
127 #ifdef QT_GUI_LIB
128 namespace TableWidget {
129
130 void addRow(QTableWidget *myTable, QStringList &columns);
131 QModelIndexList getSelectedRows(QTableWidget *myTable);
132 QModelIndexList getCurrentRows(QTableWidget *myTable);
133 int getNumberSelectedRows(QTableWidget *myTable);
134 void clearContents(QTableWidget *myTable, const QString &nothingToClearMessage, const QString &questionToClear);
135 void clearContentsNoPrompt(QTableWidget *myTable);
136 void addCheckBox(QTableWidget *myTable, int row, int column, QCheckBox *checkbox = nullptr);
137 QCheckBox* getCheckBoxFromCell(QTableWidget *myTable, int row, int column);
138 void swapRows(QTableWidget *myTable, const int indexSourceRow, const int indexDestinationRow, bool selectSwappedRow);
139 void deleteSelectedRows(QTableWidget *myTable);
140
141 }
142 #endif
143
144 namespace System {
145 #ifdef QT_GUI_LIB
146 QRect getScreenResolution();
147 #endif
148 }
149
150 #ifdef QT_GUI_LIB
151 namespace StatusBar {
152
153 void showError(QStatusBar * const statusBar, const QString &message);
154 void showSuccess(QStatusBar * const statusBar,const QString &message);
155
156 }
157 #endif
158
159
160 }
161 #endif // UTIL_H
162
163 /**
164 * Copyright (c) 2017 - Fábio Bento (random-guy)
165 *
166 * Permission is hereby granted, free of charge, to any person
167 * obtaining a copy of this software and associated documentation
168 * files (the "Software"), to deal in the Software without
169 * restriction, including without limitation the rights to use,
170 * copy, modify, merge, publish, distribute, sublicense, and/or sell
171 * copies of the Software, and to permit persons to whom the
172 * Software is furnished to do so, subject to the following
173 * conditions:
174 *
175 * The above copyright notice and this permission notice shall be
176 * included in all copies or substantial portions of the Software.
177 *
178 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
179 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
180 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
181 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
182 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
183 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
184 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
185 * OTHER DEALINGS IN THE SOFTWARE.
186 */