QtLingo 1
QtLingo is an Application to make Qt Computer Translations easier
MainWindow.h
Go to the documentation of this file.
1#ifndef MAINWINDOW_H
2#define MAINWINDOW_H
3
4#include <QCloseEvent>
5#include <QDir>
6#include <QFile>
7#include <QMainWindow>
8#include <QMap>
9#include <QObject>
10#include <QPointer>
11#include <QTimer>
12#include <QTranslator>
13#include <QVector>
14#include <QtGlobal>
15//
16#include "MyConstants.h"
17#include "MyDatatables.h"
18#include "MyLanguageModel.h"
19// QOnlineTranslator
23//
24#include "MyTranlatorParser.h"
25//
26namespace Ui { class MainWindow; }
27//
28#if Q_OS_MSDOS || defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
29 #define VERSION "1.0.0"
30#else
31 #define VERSION "1.0"
32#endif
33
46{
47 public:
48 MyLingoJobs(const QString &thisLanguageName, const QString &thisLangName, const QString &thisTsFile, const QString &thisDoxyFile, const QString &thisReadMe, QOnlineTranslator::Language thisLang, QOnlineTranslator::Language thisSourceLang)
49 : myLanguageName{thisLanguageName}, myLangName{thisLangName}, myTsFile{thisTsFile}, myDoxyFile{thisDoxyFile}, myReadMe{thisReadMe}, myLang{thisLang}, mySourceLang{thisSourceLang} {}
50 // Getters
51 QString getLanguageName() const { return myLanguageName; }
52 QString getLangName() const { return myLangName; }
53 QString getTsFile() const { return myTsFile; }
54 QString getDoxyFile() const { return myDoxyFile; }
55 QString getReadMe() const { return myReadMe; }
56 QOnlineTranslator::Language getLang() const { return myLang; }
57 QOnlineTranslator::Language getSourceLang() const { return mySourceLang; }
58 // Setters
59 void setLanguageName(const QString &s) { myLanguageName = s; }
60 void setLangName(const QString &s) { myLangName = s; }
61 void setTsFile(const QString &s) { myTsFile = s; }
62 void setDoxyFile(const QString &s) { myDoxyFile = s; }
63 void setReadMe(const QString &s) { myReadMe = s; }
64 void setSourceLang(QOnlineTranslator::Language s) { mySourceLang = s; }
65 void setLang(QOnlineTranslator::Language s) { myLang = s; }
66
67 private:
68 QString myLanguageName, myLangName, myTsFile, myDoxyFile, myReadMe;
69 QOnlineTranslator::Language myLang, mySourceLang;
70};
71
76class MainWindow : public QMainWindow
77{
78 Q_OBJECT
79
80 public:
81 explicit MainWindow(QWidget *parent = nullptr);
88 {
90 TabSql = 1,
94 TabAll = 9
95 }; // end enum MainTabs
96 Q_ENUM(MainTabs)
102 {
103 NoError = 100,
105 ErrorTransferring = 102
106 }; // end enum TranslationsErrors
107 Q_ENUM(TranslationsErrors)
113 {
115 Warning = 101,
116 Critical = 102,
117 Debug = 103
118 }; // end enum MyMessageTypes
119 // Makes Messaging easier
120 Q_ENUM(MyMessageTypes)
126 {
129 TranslationReadMe = 102
130 }; // end enum ActionStatesManager
131 Q_ENUM(ActionStatesManager)
132 //
134 //
135 void onRunFirstOnStartup();
136 //
137 void loadQtProjectCombo();
138 // Read
139 void readAllSettings();
140 void readStatesChanges();
141 void readSqlDatabaseInfo();
142 // Write
143 void writeAllSettings();
144 void writeStateChanges();
145 void writeSqlDatabaseInfo();
146 //
147 void setSqlBrowseButton();
148 //
149 bool fillForms(const QString &thisProjectID);
150 //
151 void clearForms(int tabNumber);
152 void clearTabSettings();
153 void clearTabHelp();
154 void clearTabTranslations();
155 void clearTabProject();
156 void checkLanguage(const QString &thisName, const QString &thisLanguage, bool thisChecked);
157 QString languageChecked();
158 void setProjectClass(int tabNumber);
159 void createTranslationJob(const QString &thisTranslate, const QString &thisLangCode, const QString &thisSourceLanguage, bool thisChecked);
160 void setPrograms();
161 // Is Debug Message
162 void setDebugMessage(bool thisState);
163 bool getDebugMessage();
164 void retranslate();
165 void loadLanguageComboBox();
167 void readSettingsFirst();
168 void setMessagingStates(bool thisMessageState);
169 // Set Tabs
170 void setTabSettings();
171 void setTabTranslations();
172 void setTabAll();
173 //
174 QString translateWithReturn(const QString &text, QOnlineTranslator::Engine engine, QOnlineTranslator::Language translationLang, QOnlineTranslator::Language sourceLang, QOnlineTranslator::Language uiLang);
175 QString checkTranslationErrors(const QString &thisTranslations, const QString &thisText, QOnlineTranslator::Engine thisEngine, QOnlineTranslator::Language thisTranslationLang, QOnlineTranslator::Language thisSourceLang, QOnlineTranslator::Language thisUiLang);
176 void setTranslationErrorType(const QString &thisTranslations);
177 void createHelpTranslationJob(const QString &thisLanguageName, const QString &thisLangCode, bool thisChecked);
178 void setLanguageCode();
179 void acceptTranslations();
180 void createReadMeTranslationJob(const QString &thisLanguageName, const QString &thisLangCode, bool thisChecked);
181 void closeTransHelp();
182 void setMessage(const QString &thisMessage, MainWindow::MyMessageTypes thisMessageType);
183 void setActionsDisabled(ActionStatesManager thisAction, bool thisState);
184 void setMainLoaded(bool thisState);
185 void setCheckMarksTranslation(const QString &thisDbValve);
186
187 QString getComboBoxProjectsID(int thisIndex);
188
189 void loadLanguage(const QString &thisLanguage);
190
191 void setLastLanguageName(const QString &thisLastLanguageName);
192 QString getLastLanguageName();
193 void setDatabaseModel();
194
195 void setLanguageModel(MyLanguageModel *thisLanguageModel);
196
197 bool getMainLoaded();
198 void removeArgs(const QString &thisString, const QString &thisTransFile);
199 void fileRemoveArgs();
200 void fixTranslationFile(const QString &thisFile);
201
202 public slots:
203 void onHelp();
204 void onAbout();
205 void onClipboard();
206 void onCompile();
207 void onAuthor();
208 void onSave();
209 void onInternetProgress();
210 // Translate Help
211 void onTranslateHelp();
212 void onTranslateReadMe();
213
214 private slots:
215 // ComboBoxes
216 void on_comboBoxTranslationsProjectNames_currentIndexChanged(int thisIndex);
217 void on_comboBoxLanguage_currentIndexChanged(const QString &thisLanguage);
218 void on_comboBoxSqlDatabaseType_currentIndexChanged(const QString &thisSqlType);
219 void on_comboBoxTranslationSourceLanguage_currentIndexChanged(const QString &arg1);
220 // Push Buttons Settings
221 void on_pushButtonSettingsLupdate_clicked();
222 void on_pushButtonSettingsLrelease_clicked();
223 // Push Buttons SQL
224 void on_pushButtonSqlDatabaseNameBrowse_clicked();
225 void on_pushButtonSqlPasswordShow_clicked();
226 void on_pushButtonSqlSave_clicked();
227 // Push Buttons Translations
228 void on_pushButtonTranslationsAdd_clicked();
229 void on_pushButtonTranslationsSave_clicked();
230 void on_pushButtonTranslationsDelete_clicked();
231 void on_pushButtonTranslationsProjectsBrowser_clicked();
232 void on_pushButtonTranslationsSourceBrowse_clicked();
233 void on_pushButtonTranslationsDoxyfileBrowse_clicked();
234 void on_pushButtonTranslationsProjectFolderBrowse_clicked();
235 void on_pushButtonTranslationsHelp_clicked();
236 void on_pushButtonTranslationsClear_clicked();
237 // Checkboxes Settings
238 void on_checkBoxSettingsGoogle_stateChanged(int thisArg);
239 void on_checkBoxSettingsBing_stateChanged(int thisArg);
240 void on_checkBoxSettingsYandex_stateChanged(int thisArg);
241 void on_checkBoxSettignsMessaging_stateChanged(int thisCheckState);
242 // Tab
243 void on_tabWidget_currentChanged(int index);
244
245
246 protected:
247 void closeEvent(QCloseEvent *event) override;
248
249 protected slots:
250 virtual void changeEvent(QEvent * event) override;
251
252 private:
253 Ui::MainWindow *ui;
254 MyDatatables *myDbModel;
255 MyLanguageModel *myLanguageModel;
256 MyTranlatorParser *myTranlatorParser;
257 QOnlineTranslator myQOnlineTranslator;
258 QClipboard *clipboard;
259 QString myLanguages = "";
260 QString myTranslationConf = "";
261 QString myTranslationQrc = "";
262 QString myLanguageName = "";
263 QString myCurrentLanguage = "";
264 QString myTranslation = "";
265 QString myTranslationError = "";
266 QString mySourceLanguage = "";
267 QString myLastLanguageName = "";
268 QString myUiLanguageName = "";
269 QString myRemoveTransArgs;
270 QList<MyLingoJobs> myLingoJob;
271 QStringList myHelpTranslationsFiles;
272 QStringList myHelpFileNames;
273 bool isDebugMessage = true;
274 bool isTranslationLog = false;
275 bool isMainLoaded = false;
276 bool isQtSettingsLoaded = false;
277 bool isSaveSettings = false;
278 bool isTranslationError = false;
279 int myLanguageCombBoxIndex = -1;
280 int myRecordID = -1;
281 int myTranslationErrorType = -1;
282 int myIncreameantValue = 60;
283 int myDelayValue = 60*6;
284};
285#endif // MAINWINDOW_H
286
Main Window Constructor. /class MainWindow.
Definition: MainWindow.h:77
MyConstants * myConstants
myConstants
Definition: MainWindow.h:133
void clearTabSettings()
clear Tab Settings
void closeEvent(QCloseEvent *event) override
close Event
Definition: MainWindow.cpp:82
void createTranslationJob(const QString &thisTranslate, const QString &thisLangCode, const QString &thisSourceLanguage, bool thisChecked)
get Translation String
void removeArgs(const QString &thisString, const QString &thisTransFile)
remove Args like "String %1" list. removeArgs
void writeAllSettings()
write Settings
Definition: MainWindow.cpp:440
void readAllSettings()
read Settings
Definition: MainWindow.cpp:423
void setLastLanguageName(const QString &thisLastLanguageName)
setLastLanguageName
Definition: MainWindow.cpp:155
void clearTabHelp()
clear Tab Help
ActionStatesManager
Action States Manager.
Definition: MainWindow.h:126
@ Translations
Translations
Definition: MainWindow.h:127
@ TranslationHelp
TranslationHelp
Definition: MainWindow.h:128
@ TranslationReadMe
TranslationReadMe
Definition: MainWindow.h:129
QString translateWithReturn(const QString &text, QOnlineTranslator::Engine engine, QOnlineTranslator::Language translationLang, QOnlineTranslator::Language sourceLang, QOnlineTranslator::Language uiLang)
translate With Return, note this is blocking
void onTranslateHelp()
translate Help Files
void clearForms(int tabNumber)
clear Forms
void setDebugMessage(bool thisState)
set Debug Message
void setLanguageModel(MyLanguageModel *thisLanguageModel)
set Language Model
Definition: MainWindow.cpp:111
void loadLanguageComboBox()
load Language ComboBox
Definition: MainWindow.cpp:256
void loadLanguageComboBoxSource()
load Language ComboBox Source
Definition: MainWindow.cpp:199
void setTabSettings()
set Tab Settings
void closeTransHelp()
close Trans Help
void onCompile()
on Compile
virtual void changeEvent(QEvent *event) override
change Event
Definition: MainWindow.cpp:94
QString checkTranslationErrors(const QString &thisTranslations, const QString &thisText, QOnlineTranslator::Engine thisEngine, QOnlineTranslator::Language thisTranslationLang, QOnlineTranslator::Language thisSourceLang, QOnlineTranslator::Language thisUiLang)
check Translation Errors
void readStatesChanges()
read States Changes
Definition: MainWindow.cpp:457
void writeStateChanges()
write State Changes
Definition: MainWindow.cpp:484
bool getMainLoaded()
get Main Loaded Set to prevent triggers. getMainLoaded
Definition: MainWindow.cpp:356
void createReadMeTranslationJob(const QString &thisLanguageName, const QString &thisLangCode, bool thisChecked)
create ReadMe Translation Job
TranslationsErrors
Translations Errors.
Definition: MainWindow.h:102
@ ErrorTransferring
ErrorTransferring
Definition: MainWindow.h:105
@ NoError
NoError
Definition: MainWindow.h:103
@ HostNotFound
HostNotFound
Definition: MainWindow.h:104
void fixTranslationFile(const QString &thisFile)
fix Translation File; mostly Arabic gets the value before the ID on some fields. fixTranslationFile
void setLanguageCode()
set Language Code Lable in UI
Definition: MainWindow.cpp:248
void fileRemoveArgs()
file Remove Args "String %1". fileRemoveArgs
void clearTabTranslations()
clear Tab Translations
MainTabs
Tabs must be forced to be int 0 based indexes that match the actual ui for widgetTab,...
Definition: MainWindow.h:88
@ TabTranslations
TabTranslations
Definition: MainWindow.h:91
@ TabSettings
TabSettings
Definition: MainWindow.h:89
@ TabAll
TabAll
Definition: MainWindow.h:94
@ TabTabHelp
TabHelp
Definition: MainWindow.h:93
@ TabProject
TabProject
Definition: MainWindow.h:92
@ TabSql
TabSql
Definition: MainWindow.h:90
QString getLastLanguageName()
getLastLanguageName
Definition: MainWindow.cpp:163
bool getDebugMessage()
get Debug Message
void acceptTranslations()
accept Translations
void setMainLoaded(bool thisState)
set Main Loaded
Definition: MainWindow.cpp:190
void readSettingsFirst()
read Settings First
Definition: MainWindow.cpp:403
void onSave()
on Save
Definition: MainWindow.cpp:771
MyMessageTypes
Message Types.
Definition: MainWindow.h:113
@ Warning
Warning
Definition: MainWindow.h:115
@ Information
Information
Definition: MainWindow.h:114
@ Debug
Debug
Definition: MainWindow.h:117
@ Critical
Critical
Definition: MainWindow.h:116
void setActionsDisabled(ActionStatesManager thisAction, bool thisState)
set Actions Disabled
void setCheckMarksTranslation(const QString &thisDbValve)
set Check Marks Translation
MainWindow(QWidget *parent=nullptr)
MainWindow Constructor. MainWindow.
Definition: MainWindow.cpp:20
void onInternetProgress()
on Internet Progress
Definition: MainWindow.cpp:171
void clearTabProject()
clear Tab Project
QString languageChecked()
language Checked
Definition: MainWindow.cpp:918
void setTabAll()
set Tab All
void setTranslationErrorType(const QString &thisTranslations)
set Translation Error Type
void onAuthor()
on Author
Definition: MainWindow.cpp:555
void readSqlDatabaseInfo()
read SQL Database Info
Definition: MainWindow.cpp:530
void setProjectClass(int tabNumber)
set Project Class
void createHelpTranslationJob(const QString &thisLanguageName, const QString &thisLangCode, bool thisChecked)
create Help Translation Job
QString getComboBoxProjectsID(int thisIndex)
get ComboBox Projects ID
Definition: MainWindow.cpp:743
void onClipboard()
on Clipboard
void setMessagingStates(bool thisMessageState)
set Messaging States
void loadQtProjectCombo()
set Qt Project Combo
Definition: MainWindow.cpp:312
void setDatabaseModel()
setDatabaseModel
Definition: MainWindow.cpp:121
void onAbout()
on About
Definition: MainWindow.cpp:570
bool fillForms(const QString &thisProjectID)
fill Forms
void setTabTranslations()
set Tab Translations
void checkLanguage(const QString &thisName, const QString &thisLanguage, bool thisChecked)
check Language
void onTranslateReadMe()
Translate ReadMe.
void loadLanguage(const QString &thisLanguage)
loadLanguage
Definition: MainWindow.cpp:143
void onHelp()
on Help
Definition: MainWindow.cpp:585
void onRunFirstOnStartup()
on Run First On Startup
Definition: MainWindow.cpp:364
void writeSqlDatabaseInfo()
write SQL Database Info
Definition: MainWindow.cpp:509
void retranslate()
retranslate none designer components
Definition: MainWindow.cpp:179
~MainWindow()
MainWindow Deconstructor. ~MainWindow.
Definition: MainWindow.cpp:72
void setMessage(const QString &thisMessage, MainWindow::MyMessageTypes thisMessageType)
set Message
void setSqlBrowseButton()
set SQL Browse Button
Definition: MainWindow.cpp:897
void setPrograms()
set Programs
Definition: MainWindow.cpp:839
Constants are defined as const QString, starting with MY_ all capps.
Definition: MyConstants.h:12
My Datatables.
Definition: MyDatatables.h:50
Abstact Model used for ComboBox. /class MyLanguageModel.
My Lingo Jobs.
Definition: MainWindow.h:46
QString getReadMe() const
Definition: MainWindow.h:55
void setSourceLang(QOnlineTranslator::Language s)
Definition: MainWindow.h:64
void setLang(QOnlineTranslator::Language s)
Definition: MainWindow.h:65
QOnlineTranslator::Language getSourceLang() const
Definition: MainWindow.h:57
void setTsFile(const QString &s)
Definition: MainWindow.h:61
void setLanguageName(const QString &s)
Definition: MainWindow.h:59
void setLangName(const QString &s)
Definition: MainWindow.h:60
QString getDoxyFile() const
Definition: MainWindow.h:54
QString getLangName() const
Definition: MainWindow.h:52
QString getLanguageName() const
Definition: MainWindow.h:51
void setDoxyFile(const QString &s)
Definition: MainWindow.h:62
QOnlineTranslator::Language getLang() const
Definition: MainWindow.h:56
void setReadMe(const QString &s)
Definition: MainWindow.h:63
MyLingoJobs(const QString &thisLanguageName, const QString &thisLangName, const QString &thisTsFile, const QString &thisDoxyFile, const QString &thisReadMe, QOnlineTranslator::Language thisLang, QOnlineTranslator::Language thisSourceLang)
Definition: MainWindow.h:48
QString getTsFile() const
Definition: MainWindow.h:53
Tranlator Parser.
QOnlineTranslator.
Definition: MainWindow.h:26