QtLingo 1
QtLingo is an Application to make Qt Computer Translations easier
MyDatatables.cpp
Go to the documentation of this file.
1#include "MyDatatables.h"
2
3
7MyDatatables::MyDatatables(MyLanguageModel *thisLanguageModel, MyConstants *thisConstant, QObject *parent) : QObject(parent), myLanguageModel(thisLanguageModel), myConstants(thisConstant)
8{
9 mySqlModel = new MySqlDbtModel(thisLanguageModel, thisConstant, this);
10 // Create Variable Trackers and Set to Empty
11 myProject = new MyProjectClass("", "", "", "", "", "", "", "", "");
12}
13
18{
19
20}
21
26{
27 isDebugMessage = thisState;
28 setMessage("setDebugMessage");
29}
30
35{
36 setMessage("getDebugMessage");
37 return isDebugMessage;
38}
39
43void MyDatatables::setProjectFolder(const QString &thisProjectFolder)
44{
45 setMessage("setProjectFolder");
46 myProjectFolder = thisProjectFolder;
47}
48
53{
54 setMessage("getProjectFolder");
55 return myProjectFolder;
56}
57
61void MyDatatables::setProjectName(const QString &thisProjectName)
62{
63 setMessage("setProjectName");
64 myProjectName = thisProjectName;
65}
66
71{
72 setMessage("getProjectName");
73 return myProjectName;
74}
75
79void MyDatatables::setProjectID(const QString &thisProjectID)
80{
81 setMessage("setProjectID");
82 myProjectID = thisProjectID;
83}
84
89{
90 setMessage("getProjectID");
91 return myProjectID;
92}
93
97void MyDatatables::setComboBoxSqlValue(const QString &thisComboBoxSqlValue)
98{
99 setMessage("setComboBoxSqlValue");
100 myComboBoxSqlValue = thisComboBoxSqlValue;
101}
102
107{
108 setMessage("getComboBoxSqlValue");
109 return myComboBoxSqlValue;
110}
111
116{
117 setMessage("checkDatabase");
118 #ifdef USE_SQL_FLAG
119 // Database
120 mySqlModel->setSqlDriver(myComboBoxSqlValue);
121 if (!mySqlModel->createDataBaseConnection()) { return false; }
122 //
123 // Configuration
124 //
125 if (!mySqlModel->isDbTable("Projects"))
126 {
127 /*
128 * Table Projects holds the name of the Qt Project
129 * id integer PRIMARY KEY autoincrement,
130 * id, QtProjectName, QtProjectFolder, SourceFolder, DoxyfileFolder, HelpFolder, SourceLanguage, LanguageIDs, Make
131 */
132 if (mySqlModel->runQuery(QLatin1String(R"(CREATE TABLE Projects(id integer PRIMARY KEY autoincrement, QtProjectName, QtProjectFolder, SourceFolder, DoxyfileFolder, HelpFolder, SourceLanguage, LanguageIDs, Make))")))
133 {
134 QString theQtProjectName = myConstants->MY_QT_PROJECT_NAME;
135 QString theQtProjectFolder = myConstants->MY_QT_PROJECT_FOLDER;
136 QString theSource = myConstants->MY_SOURCE_FOLDER;
137 QString theDoxyfile = myConstants->MY_DOXYFILE_FOLDER;
138 QString theHelpFolder = myConstants->MY_HELP_FOLDER;
139 QString theSourceLanguage = myConstants->MY_SOURCE_LANGUAGE;
140 QString theMake = myConstants->MY_MAKE;
141 QString theLanguageIDs = myConstants->MY_LANGUAGE_IDs;
142 setProject(theQtProjectName, theQtProjectFolder, theSource, theDoxyfile, theHelpFolder, theSourceLanguage, theLanguageIDs, theMake);
143 if (insertQtProjects())
144 {
145 myProjectID = mySqlModel->getRecordID();
147 }
148 else
149 {
150 qCritical() << mySqlModel->getSqlDriver() << " INSERT TABLE Projects error:";
151 }
152 }
153 //
154 } // end if (!isDbTable("Projects"))
155 //
156 #endif
157 return true;
158}
159
164{
165 setMessage("insertProjects");
166 // QtProjectName, QtProjectFolder, SourceFolder, DoxyfileFolder, HelpFolder, LanguageIDs, Make
167 QString theQuery = QLatin1String(R"(INSERT INTO Projects (QtProjectName, QtProjectFolder, SourceFolder, DoxyfileFolder, HelpFolder, SourceLanguage, LanguageIDs, Make) values('%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8'))").arg(myProject->getQtProjectName(), myProject->getQtProjectFolder(), myProject->getSourceFolder(), myProject->getDoxyfileFolder(), myProject->getHelpFolder(), myProject->getSourceLanguage(), myProject->getLanguageIDs(), myProject->getMake());
168 setMessage("insertProjects: " + theQuery);
169 //
170 if (!mySqlModel->runQuery(theQuery))
171 {
172 qCritical() << "INSERT Projects error: " << theQuery;
173 return false;
174 }
176 return true;
177}
178
183{
184 setMessage("addQtProject");
185 #ifdef USE_SQL_FLAG
186 // SELECT id, QtProjectName FROM Projects WHERE QtProject =
188 {
189 myLanguageModel->mySetting->showMessageBox(QObject::tr("Record found!").toLocal8Bit(), QString("%1: %2").arg(tr("Not adding: Record found in database"), myProject->getQtProjectName()).toLocal8Bit(), myLanguageModel->mySetting->Warning);
190 return false;
191 }
192 return insertQtProjects();
193 #else
194 return true;
195 #endif
196}
197
201void MyDatatables::deleteQtProject(const QString &thisID)
202{
203 setMessage("deleteQtProject");
204 #ifdef USE_SQL_FLAG
205 QSqlQuery query;
206 QString theQuery = QString("DELETE FROM Projects WHERE id = ").append(thisID);
207 setMessage("thisQuery: " + theQuery);
208 if (!query.exec(theQuery))
209 {
210 qCritical() << "SqLite error:" << query.lastError().text() << ", SqLite error code:" << query.lastError();
211 }
212 #endif
213}
214
219{
220 setMessage("getQtProjectNameSelectQuery");
221 return QString("SELECT id, QtProjectName FROM Projects");
222}
223
227QString MyDatatables::getQtProjectNameByNameQuery(const QString &thisProject)
228{
229 setMessage("getQtProjectNameByNameQuery");
230 return QString("SELECT id, QtProjectName FROM Projects WHERE QtProjectName = '%1'").arg(thisProject);
231}
232
236bool MyDatatables::isQtProjectNameQuery(const QString &thisProjectName)
237{
238 setMessage("isQtProjectNameQuery");
239 #ifdef USE_SQL_FLAG
240 QSqlQuery theQuery;
241 QString theQueryCommand = getQtProjectNameByNameQuery(thisProjectName);
242 if (theQuery.exec(theQueryCommand))
243 {
244 if (theQuery.first()) { return true; }
245 else { return false; }
246 }
247 else
248 {
249 qCritical() << "SqLite error isProjectQuery:" << theQuery.lastError().text() << ", SqLite error code:" << theQuery.lastError();
250 }
251 #endif
252 return false;
253}
254
258QString MyDatatables::getQtProjectFullSelectQueryID(const QString &thisWhereID)
259{
260 setMessage("getProjectFolderFullSelectQueryID");
261 return QString("SELECT * FROM Projects WHERE id = ").append(thisWhereID);
262}
263
267QString MyDatatables::getQtProjectNameSelectQueryID(const QString &thisWhereID)
268{
269 setMessage("getQtProjectNameSelectQueryID");
270 return QString("SELECT id, QtProjectName FROM Projects WHERE id = ").append(thisWhereID);
271}
272
277{
278 setMessage("saveProject");
279 #ifdef USE_SQL_FLAG
280 QSqlQuery theQuery;
281 QString theQueryString = QString("UPDATE Projects set QtProjectName = '%1', QtProjectFolder = '%2', SourceFolder = '%3', DoxyfileFolder = '%4', HelpFolder = '%5', SourceLanguage = '%6', LanguageIDs = '%7', Make = '%8' WHERE id = %9").arg(myProject->getQtProjectName(), myProject->getQtProjectFolder(), myProject->getSourceFolder(), myProject->getDoxyfileFolder(), myProject->getHelpFolder(), myProject->getSourceLanguage(), myProject->getLanguageIDs(), myProject->getMake(), myProject->getID());
282 setMessage("thisQuery: |" + theQueryString + "| getQtProjectName = " + myProject->getQtProjectName() + "| getQtProjectFolder = " + myProject->getQtProjectFolder() + "| getSourceFolder=" + myProject->getSourceFolder() + "| getDoxyfileFolder=" + myProject->getDoxyfileFolder() + "| getHelpFolder=" + myProject->getHelpFolder() + "| getSourceLanguage=" + myProject->getSourceLanguage() + "| getLanguageIDs=" + myProject->getLanguageIDs() + "| getMake=" + myProject->getMake() + "| ID=" + myProject->getID() + "|");
283 if (!theQuery.exec(theQueryString))
284 {
285 qCritical() << "SqLite error saveProject:" << theQuery.lastError().text() << ", SqLite error code:" << theQuery.lastError();
286 }
287 isSaveSettings = false;
288 #endif
289}
290
295void MyDatatables::setProject(const QString &thisQtProjectName, const QString &thisQtProjectFolder, const QString &thisSourceFolder, const QString &thisDoxyfileFolder, const QString &thisHelpFolder, const QString &thisSourceLanguage, const QString &thisLanguageIDs, const QString &thisMake)
296{
297 setMessage("setProject");
298 myProject->setQtProjectName(thisQtProjectName);
299 myProject->setQtProjectFolder(thisQtProjectFolder);
300 myProject->setSourceFolder(thisSourceFolder);
301 myProject->setDoxyfileFolder(thisDoxyfileFolder);
302 myProject->setHelpFolder(thisHelpFolder);
303 myProject->setSourceLanguage(thisSourceLanguage);
304 myProject->setLanguageIDs(thisLanguageIDs);
305 myProject->setMake(thisMake);
306}
307
311void MyDatatables::setMessage(const QString &thisMessage)
312{
313 if (isDebugMessage)
314 {
315 qDebug() << thisMessage;
316 //std::cout << thisMessage.toStdString() << std::endl;
317 }
318}
319
Constants are defined as const QString, starting with MY_ all capps.
Definition: MyConstants.h:12
const QString MY_SOURCE_FOLDER
MY_SOURCE_FOLDER
Definition: MyConstants.h:42
const QString MY_MAKE
MY_MAKE
Definition: MyConstants.h:46
const QString MY_HELP_FOLDER
MY_HELP_FOLDER
Definition: MyConstants.h:44
const QString MY_QT_PROJECT_NAME
MY_QT_PROJECT_NAME
Definition: MyConstants.h:40
const QString MY_QT_PROJECT_FOLDER
MY_QT_PROJECT_FOLDER
Definition: MyConstants.h:41
const QString MY_SOURCE_LANGUAGE
MY_SOURCE_LANGUAGE
Definition: MyConstants.h:45
const QString MY_LANGUAGE_IDs
MY_LANGUAGES_ID
Definition: MyConstants.h:48
const QString MY_DOXYFILE_FOLDER
MY_DOXYFILE_FOLDER
Definition: MyConstants.h:43
const QString MY_SQL_PROJECT_ID
SQL_PROJECT_ID
Definition: MyConstants.h:19
QString getProjectID()
get Project ID
QString getQtProjectNameSelectQueryID(const QString &thisWhereID)
get Qt Projects Name Select Query ID
void setProjectName(const QString &thisProjectName)
set Project Name
QString getQtProjectFullSelectQueryID(const QString &thisWhereID)
get Qt Projects Full Select Query ID
void setDebugMessage(bool thisState)
set Debug Message
QString getQtProjectNameByNameQuery(const QString &thisProject)
get Qt Projects Name By Name Query
MyProjectClass * myProject
myProject
Definition: MyDatatables.h:56
void setProject(const QString &thisQtProjectName, const QString &thisQtProject, const QString &thisSecret, const QString &thisEnvironment, const QString &thisHelpFolder, const QString &thisSourceLanguage, const QString &thisLanguageIDs, const QString &thisMake)
set Project Sets all Variables used in the Configuarion Database in one Place: QtProjectFolder,...
QString getComboBoxSqlValue()
get ComboBox SqlValue
QString getQtProjectNameSelectQuery()
get Qt Projects Name Select Query
bool insertQtProjects()
insert Qt Project
bool checkDatabase()
check Database
void setComboBoxSqlValue(const QString &thisComboBoxSqlValue)
set ComboBox SqlValue
QString getProjectFolder()
get Project Folder
MySqlDbtModel * mySqlModel
mySqlModel
Definition: MyDatatables.h:57
MyConstants * myConstants
myConstants
Definition: MyDatatables.h:59
void saveQtProject()
save Qt Project
QString getProjectName()
get Project Name
void setProjectFolder(const QString &thisProjectFolder)
set Project Folder
void setProjectID(const QString &thisProjectID)
set Project ID
void deleteQtProject(const QString &thisID)
delete Qt Project
MyLanguageModel * myLanguageModel
myLanguageModel
Definition: MyDatatables.h:58
void setMessage(const QString &thisMessage)
set Message
bool isQtProjectNameQuery(const QString &thisProjectName)
is Qt Project Name Query
MyDatatables(MyLanguageModel *thisLanguageModel=nullptr, MyConstants *thisConstant=nullptr, QObject *parent=nullptr)
My Datatables Constructor. MyDatatables.
Definition: MyDatatables.cpp:7
bool getDebugMessage()
get Debug Message
bool addQtProject()
add Qt Project
~MyDatatables()
My Datatables Deconstructor. MyDatatables.
Abstact Model used for ComboBox. /class MyLanguageModel.
MyOrgSettings * mySetting
mySetting
@ Warning
Warning
Definition: MyOrgSettings.h:74
QVariant showMessageBox(const QString &thisTitle, const QString &thisMessage, MyMessageTypes thisMessageType) const
show Message Box information, question, warning, critica
void writeSettings(const QString &thisSetting, const QString &thisValue)
write Settings
Project Class.
Definition: MyDatatables.h:15
QString getQtProjectName() const
Project Name of .pro file.
Definition: MyDatatables.h:21
QString getSourceLanguage() const
ComboBox of Languages.
Definition: MyDatatables.h:26
void setSourceLanguage(const QString &s)
Definition: MyDatatables.h:36
void setQtProjectName(const QString &s)
Definition: MyDatatables.h:31
QString getHelpFolder() const
Help Folder.
Definition: MyDatatables.h:25
QString getMake() const
qmake or cmake
Definition: MyDatatables.h:28
QString getLanguageIDs() const
Sum of Checkboxes.
Definition: MyDatatables.h:27
void setHelpFolder(const QString &s)
Definition: MyDatatables.h:35
QString getQtProjectFolder() const
Base Project Folder.
Definition: MyDatatables.h:22
void setMake(const QString &s)
Definition: MyDatatables.h:38
QString getSourceFolder() const
Source Folder.
Definition: MyDatatables.h:23
void setQtProjectFolder(const QString &s)
Definition: MyDatatables.h:32
QString getID() const
ID.
Definition: MyDatatables.h:20
void setSourceFolder(const QString &s)
Definition: MyDatatables.h:33
void setDoxyfileFolder(const QString &s)
Definition: MyDatatables.h:34
QString getDoxyfileFolder() const
Doxyfile Folder.
Definition: MyDatatables.h:24
void setLanguageIDs(const QString &s)
Definition: MyDatatables.h:37
SQL Database Table Model.
Definition: MySqlDbtModel.h:21
bool createDataBaseConnection()
create DataBase Connection
bool isDbTable(const QString &thisTable)
isDbTable
bool runQuery(const QString &thisQuery)
runQuery
QString getRecordID()
get RecordID
void setSqlDriver(const QString &thisDriver)
setSqlDriver
QString getSqlDriver()
getSqlDriver