QtLingo 1
QtLingo is an Application to make Qt Computer Translations easier
MyLanguageModel.h
Go to the documentation of this file.
1#ifndef MyLanguageMODEL_H
2#define MyLanguageMODEL_H
3
4#include <QCoreApplication>
5#include <QtDebug>
6//#include <QDebug>
7#include <QStringList>
8#include <QListIterator>
9#include <QStandardItemModel>
10#include <QAbstractListModel>
11#include <QDir>
12#include <QFile>
13#include <QMap>
14#include <QObject>
15#include <QPointer>
16#include <QTimer>
17#include <QTranslator>
18#include <QVector>
19// Qml
20#ifdef MY_QML
21 #include <QQmlEngine>
22#else
23 #include <QAbstractItemView>
24 #include <QAbstractItemView>
25 #include <QHeaderView>
26 #include <QTableView>
27#endif
28//
29//#include "MainWindow.h"
30#include "ui_MainWindow.h"
31//
32#include "MyLanguageData.h"
33#include "MyOrgSettings.h"
34
38class MyLanguageModel : public QAbstractListModel
39{
40 Q_OBJECT
41 public:
43 {
44 NameRole = Qt::UserRole + 1,
46 };
47 //
48 #ifdef MY_QML
49 MyLanguageModel(QQmlEngine &thisQmlEngine, QObject *parent = nullptr);
50 #else
51 MyLanguageModel(QObject *parent = nullptr);
52 #endif
54 //
56 // add Item
57 Q_INVOKABLE void addItem(const QString &thisName, const QString &thisNameTranslated);
58 void addItem(const MyLanguageData &thisItem);
59 // remove Item
60 Q_INVOKABLE void removeItem(int thisRow);
61 // row Count
62 int rowCount(const QModelIndex & parent = QModelIndex()) const;
63 // data
64 QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
65 // Languages
66 Q_INVOKABLE void setLanguages();
67 Q_INVOKABLE void setLanguage(const QString &thisLanguageName);
68 // Get TS and QM Files
69 QStringList getTsFiles(const QString &thisFolder);
70 QStringList getQmFiles(const QString &thisFolder);
71 // Translation Source
72 void setTranslationSource(const QString &thisTranslationSource);
73 QString getTranslationSource();
74 // Translation File Prefix
75 void setTransFilePrefix(const QString &thisTransFilePrefix);
76 QString getTransFilePrefix();
77 // Help Source
78 void setHelpSource(const QString &thisHelpSource);
79 QString getHelpSource();
80 // Language Code
81 void setLanguageCode(const QString &thisLanguageCode);
82 QString getLanguageCode();
83 // Language Name
84 QString getLanguageName();
85 void setLanguageName(const QString &thisLanguageName);
86 // Default Language Name and Code
87 QString getDefaultLanguageName();
88 QString getDefaultLanguageCode();
89 // language Code To Name and Name to Code
90 QString languageCodeToName(const QString &thisLangageCode);
91 QString languageNameToCode(const QString &lang);
92 // Localize File Utilities
93 QString getLanguageFromFile(const QString &thisPrefix, const QString &thisQmLanguageFile);
94 QString getLocalizerCode(const QString &thisPrefix, const QString &thisQmFile);
95 QString getLocalizedCodeFromFile(const QString &thisPrefix, const QString &thisQmFile);
96 QString getLanguageFile(const QString &thisLanguageCode, const QString &thisPath, const QString &thisPrefix);
97 // languageMatch
98 bool languageMatch(const QString &thisPrefix, const QString &thisLang, const QString &thisQmFile);
99 // language
100 QString language(const QLocale &thisLocale);
101 QString languageName(const QLocale &thisLocale);
102 // Language List
103 Q_INVOKABLE void setLanguageList(const QStringList &thisLanguageList);
104 Q_INVOKABLE QStringList &getLanguageList();
105 // Is Debug Message
106 void setDebugMessage(bool thisState);
107 bool getDebugMessage();
108 // Main Loaded
109 bool getMainLoaded();
110 void setMainLoaded(bool thisMainLoaded);
111 // Language
112 void readLanguage();
113 void writeLanguage();
114 // translate This
115 QString translateThis(const QString &thisPhrase);
116 QString getLangCode(const QString &thisString);
117
118 signals:
120
121 protected:
122 QHash<int, QByteArray> roleNames() const;
123
124 private:
125 #ifdef MY_QML
126 QQmlEngine &myEngine;
127 #endif
128 QList<MyLanguageData> myItems;
129 static const QMap<QString, QString> s_genericLanguageCodeToName;
130 static const QMap<QString, QString> s_genericLanguageNameToCode;
131 QTranslator *myTranslator = nullptr;
132 QString myTranslationSource = "";
133 QString myHelpSource = "";
134 QString myTransFilePrefix = "";
135 QString myLanguageCode = "";
136 QString myLanguageName = "";
137 QMap<QString, QString> myCurrentQmFiles;
138 QStringList myLanguages;
139 bool isDebugMessage = false;
140 bool isMainLoaded = false;
141};
142#endif // MyLanguageMODEL_H
143
Language Data. /class MyLanguageData.
Abstact Model used for ComboBox. /class MyLanguageModel.
void setTransFilePrefix(const QString &thisTransFilePrefix)
set TransFile Prefix
Q_INVOKABLE void setLanguages()
set Languages
bool getDebugMessage()
get Debug Message
QString getLanguageCode()
get Language Code
QStringList getTsFiles(const QString &thisFolder)
get Ts Files
MyLanguageModel(QObject *parent=nullptr)
My Abstact Model Constructor.
~MyLanguageModel()
Deconstructor.
QString language(const QLocale &thisLocale)
language
QHash< int, QByteArray > roleNames() const
roleNames
Q_INVOKABLE void setLanguageList(const QStringList &thisLanguageList)
set Language List
QStringList getQmFiles(const QString &thisFolder)
get Qm Files
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
data
QString getDefaultLanguageCode()
get Default Language Code
QString getHelpSource()
get Help Source
QString languageName(const QLocale &thisLocale)
language Name used for tr to translate all names
void setTranslationSource(const QString &thisTranslationSource)
set Translation Source
bool getMainLoaded()
get Main Loaded
void setDebugMessage(bool thisState)
set Debug Message
QString getLangCode(const QString &thisString)
get Lang Code
QString getTranslationSource()
get Translation Source
Q_INVOKABLE void addItem(const QString &thisName, const QString &thisNameTranslated)
add Item
void setLanguageCode(const QString &thisLanguageCode)
set Language Code
int rowCount(const QModelIndex &parent=QModelIndex()) const
row Count
Q_INVOKABLE QStringList & getLanguageList()
get Language List
void setMainLoaded(bool thisMainLoaded)
set Main Loaded
QString getLanguageFromFile(const QString &thisPrefix, const QString &thisQmLanguageFile)
get Language From File
QString getLanguageName()
get Language Name
QString translateThis(const QString &thisPhrase)
translate This is required for Translation Files
void setHelpSource(const QString &thisHelpSource)
set Help Source
Q_INVOKABLE void setLanguage(const QString &thisLanguageName)
load Language
QString getLocalizedCodeFromFile(const QString &thisPrefix, const QString &thisQmFile)
get Localized Code From File
MyOrgSettings * mySetting
mySetting
void readLanguage()
read Language
QString getTransFilePrefix()
get TransFile Prefix
Q_INVOKABLE void removeItem(int thisRow)
remove Item
void writeLanguage()
write Language
QString getDefaultLanguageName()
get Default Lanuage Name
void setLanguageName(const QString &thisLanguageName)
set Language Name
QString getLocalizerCode(const QString &thisPrefix, const QString &thisQmFile)
get Localizer Code
QString languageCodeToName(const QString &thisLangageCode)
language Code To Name
QString languageNameToCode(const QString &lang)
language Name to Code Added by Light-Wizzard
@ NameTranslatedRole
Name Translated Role.
@ NameRole
Name Role.
QString getLanguageFile(const QString &thisLanguageCode, const QString &thisPath, const QString &thisPrefix)
get Language File
void languageChanged()
language Changed Event
bool languageMatch(const QString &thisPrefix, const QString &thisLang, const QString &thisQmFile)
language Match
My Org Settings.
Definition: MyOrgSettings.h:35