Command option for setting a locale.
--HG-- branch : develop
This commit is contained in:
parent
392548f444
commit
b5c6bf8260
5
dist/debian/valentina.1
vendored
5
dist/debian/valentina.1
vendored
|
@ -73,6 +73,11 @@ a unique pattern making tool.
|
||||||
Three groups: big, middle, small = 0
|
Three groups: big, middle, small = 0
|
||||||
Two groups: big, small = 1
|
Two groups: big, small = 1
|
||||||
Descending area = 2
|
Descending area = 2
|
||||||
|
-L, --locale <Locale> Sets language locale (export mode).
|
||||||
|
Default is system locale. Supported
|
||||||
|
locales: ru_RU, uk_UA, de_DE, cs_CZ,
|
||||||
|
he_IL, fr_FR, it_IT, nl_NL, id_ID,
|
||||||
|
es_ES, fi_FI, en_US
|
||||||
|
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
|
@ -88,7 +88,7 @@ void TapeConfigurationPage::Apply()
|
||||||
qApp->TapeSettings()->SetPMSystemCode(code);
|
qApp->TapeSettings()->SetPMSystemCode(code);
|
||||||
systemChanged = false;
|
systemChanged = false;
|
||||||
|
|
||||||
qApp->LoadTranslation();
|
qApp->LoadTranslation(locale);
|
||||||
|
|
||||||
// Part about measurments will not be updated automatically
|
// Part about measurments will not be updated automatically
|
||||||
qApp->RetranslateTables();
|
qApp->RetranslateTables();
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileOpenEvent>
|
#include <QFileOpenEvent>
|
||||||
#include <QLibraryInfo>
|
|
||||||
#include <QLocalSocket>
|
#include <QLocalSocket>
|
||||||
#include <QResource>
|
#include <QResource>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
|
@ -138,11 +137,7 @@ MApplication::MApplication(int &argc, char **argv)
|
||||||
mainWindows(),
|
mainWindows(),
|
||||||
localServer(nullptr),
|
localServer(nullptr),
|
||||||
trVars(nullptr),
|
trVars(nullptr),
|
||||||
dataBase(QPointer<DialogMDataBase>()),
|
dataBase(QPointer<DialogMDataBase>())
|
||||||
qtTranslator(nullptr),
|
|
||||||
qtxmlTranslator(nullptr),
|
|
||||||
appTranslator(nullptr),
|
|
||||||
pmsTranslator(nullptr)
|
|
||||||
{
|
{
|
||||||
setApplicationDisplayName(VER_PRODUCTNAME_STR);
|
setApplicationDisplayName(VER_PRODUCTNAME_STR);
|
||||||
setApplicationName(VER_INTERNALNAME_STR);
|
setApplicationName(VER_INTERNALNAME_STR);
|
||||||
|
@ -236,7 +231,7 @@ void MApplication::InitOptions()
|
||||||
qDebug()<<"Command-line arguments:"<<this->arguments();
|
qDebug()<<"Command-line arguments:"<<this->arguments();
|
||||||
qDebug()<<"Process ID:"<<this->applicationPid();
|
qDebug()<<"Process ID:"<<this->applicationPid();
|
||||||
|
|
||||||
LoadTranslation();
|
LoadTranslation(TapeSettings()->GetLocale());
|
||||||
|
|
||||||
static const char * GENERIC_ICON_TO_CHECK = "document-open";
|
static const char * GENERIC_ICON_TO_CHECK = "document-open";
|
||||||
if (QIcon::hasThemeIcon(GENERIC_ICON_TO_CHECK) == false)
|
if (QIcon::hasThemeIcon(GENERIC_ICON_TO_CHECK) == false)
|
||||||
|
@ -251,43 +246,6 @@ void MApplication::InitOptions()
|
||||||
QResource::registerResource(diagramsPath());
|
QResource::registerResource(diagramsPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void MApplication::LoadTranslation()
|
|
||||||
{
|
|
||||||
const QString checkedLocale = TapeSettings()->GetLocale();
|
|
||||||
qDebug()<<"Checked locale:"<<checkedLocale;
|
|
||||||
|
|
||||||
ClearTranslation();
|
|
||||||
|
|
||||||
qtTranslator = new QTranslator(this);
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
qtTranslator->load("qt_" + checkedLocale, translationsPath());
|
|
||||||
#else
|
|
||||||
qtTranslator->load("qt_" + checkedLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
|
||||||
#endif
|
|
||||||
installTranslator(qtTranslator);
|
|
||||||
|
|
||||||
qtxmlTranslator = new QTranslator(this);
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
qtxmlTranslator->load("qtxmlpatterns_" + checkedLocale, translationsPath());
|
|
||||||
#else
|
|
||||||
qtxmlTranslator->load("qtxmlpatterns_" + checkedLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
|
||||||
#endif
|
|
||||||
installTranslator(qtxmlTranslator);
|
|
||||||
|
|
||||||
appTranslator = new QTranslator(this);
|
|
||||||
bool result = appTranslator->load("valentina_" + checkedLocale, translationsPath());
|
|
||||||
installTranslator(appTranslator);
|
|
||||||
|
|
||||||
const QString checkedSystem = TapeSettings()->GetPMSystemCode();
|
|
||||||
|
|
||||||
pmsTranslator = new QTranslator(this);
|
|
||||||
result = pmsTranslator->load("measurements_" + checkedSystem + "_" + checkedLocale, translationsPath());
|
|
||||||
installTranslator(pmsTranslator);
|
|
||||||
|
|
||||||
InitTrVars();//Very important do it after load QM files.
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
const VTranslateVars *MApplication::TrVars()
|
const VTranslateVars *MApplication::TrVars()
|
||||||
{
|
{
|
||||||
|
@ -645,35 +603,3 @@ void MApplication::Clean()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void MApplication::ClearTranslation()
|
|
||||||
{
|
|
||||||
if (qtTranslator != nullptr)
|
|
||||||
{
|
|
||||||
removeTranslator(qtTranslator);
|
|
||||||
delete qtTranslator;
|
|
||||||
qtTranslator = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (qtxmlTranslator != nullptr)
|
|
||||||
{
|
|
||||||
removeTranslator(qtxmlTranslator);
|
|
||||||
delete qtxmlTranslator;
|
|
||||||
qtxmlTranslator = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (appTranslator != nullptr)
|
|
||||||
{
|
|
||||||
removeTranslator(appTranslator);
|
|
||||||
delete appTranslator;
|
|
||||||
appTranslator = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pmsTranslator != nullptr)
|
|
||||||
{
|
|
||||||
removeTranslator(pmsTranslator);
|
|
||||||
delete pmsTranslator;
|
|
||||||
pmsTranslator = nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -61,15 +61,13 @@ public:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void InitOptions();
|
void InitOptions();
|
||||||
void LoadTranslation();
|
|
||||||
|
|
||||||
virtual const VTranslateVars *TrVars();
|
virtual const VTranslateVars *TrVars() Q_DECL_OVERRIDE;
|
||||||
void InitTrVars();
|
|
||||||
|
|
||||||
virtual void OpenSettings() Q_DECL_OVERRIDE;
|
virtual void OpenSettings() Q_DECL_OVERRIDE;
|
||||||
VTapeSettings *TapeSettings();
|
VTapeSettings *TapeSettings();
|
||||||
|
|
||||||
QString translationsPath() const;
|
virtual QString translationsPath() const Q_DECL_OVERRIDE;
|
||||||
QString diagramsPath() const;
|
QString diagramsPath() const;
|
||||||
|
|
||||||
void ShowDataBase();
|
void ShowDataBase();
|
||||||
|
@ -81,6 +79,9 @@ public:
|
||||||
public slots:
|
public slots:
|
||||||
TMainWindow *NewMainWindow();
|
TMainWindow *NewMainWindow();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void InitTrVars() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void OpenFile(const QString &path);
|
void OpenFile(const QString &path);
|
||||||
void NewLocalSocketConnection();
|
void NewLocalSocketConnection();
|
||||||
|
@ -91,13 +92,8 @@ private:
|
||||||
QLocalServer *localServer;
|
QLocalServer *localServer;
|
||||||
VTranslateVars *trVars;
|
VTranslateVars *trVars;
|
||||||
QPointer<DialogMDataBase> dataBase;
|
QPointer<DialogMDataBase> dataBase;
|
||||||
QTranslator *qtTranslator;
|
|
||||||
QTranslator *qtxmlTranslator;
|
|
||||||
QTranslator *appTranslator;
|
|
||||||
QTranslator *pmsTranslator;
|
|
||||||
|
|
||||||
void Clean();
|
void Clean();
|
||||||
void ClearTranslation();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAPPLICATION_H
|
#endif // MAPPLICATION_H
|
||||||
|
|
|
@ -499,30 +499,7 @@ void VApplication::InitOptions()
|
||||||
qDebug()<<"Command-line arguments:"<<this->arguments();
|
qDebug()<<"Command-line arguments:"<<this->arguments();
|
||||||
qDebug()<<"Process ID:"<<this->applicationPid();
|
qDebug()<<"Process ID:"<<this->applicationPid();
|
||||||
|
|
||||||
const QString checkedLocale = ValentinaSettings()->GetLocale();
|
InitTranslation();
|
||||||
qDebug()<<"Checked locale:"<<checkedLocale;
|
|
||||||
|
|
||||||
QTranslator *qtTranslator = new QTranslator(this);
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
qtTranslator->load("qt_" + checkedLocale, translationsPath());
|
|
||||||
#else
|
|
||||||
qtTranslator->load("qt_" + checkedLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
|
||||||
#endif
|
|
||||||
installTranslator(qtTranslator);
|
|
||||||
|
|
||||||
QTranslator *qtxmlTranslator = new QTranslator(this);
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
qtxmlTranslator->load("qtxmlpatterns_" + checkedLocale, translationsPath());
|
|
||||||
#else
|
|
||||||
qtxmlTranslator->load("qtxmlpatterns_" + checkedLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
|
||||||
#endif
|
|
||||||
installTranslator(qtxmlTranslator);
|
|
||||||
|
|
||||||
QTranslator *appTranslator = new QTranslator(this);
|
|
||||||
appTranslator->load("valentina_" + checkedLocale, translationsPath());
|
|
||||||
installTranslator(appTranslator);
|
|
||||||
|
|
||||||
InitTrVars();//Very important do it after load QM files.
|
|
||||||
|
|
||||||
static const char * GENERIC_ICON_TO_CHECK = "document-open";
|
static const char * GENERIC_ICON_TO_CHECK = "document-open";
|
||||||
if (QIcon::hasThemeIcon(GENERIC_ICON_TO_CHECK) == false)
|
if (QIcon::hasThemeIcon(GENERIC_ICON_TO_CHECK) == false)
|
||||||
|
@ -535,6 +512,19 @@ void VApplication::InitOptions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VApplication::InitTranslation()
|
||||||
|
{
|
||||||
|
if (VApplication::CheckGUI())
|
||||||
|
{
|
||||||
|
LoadTranslation(ValentinaSettings()->GetLocale());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LoadTranslation(CommandLine()->OptLocale());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QStringList VApplication::LabelLanguages()
|
QStringList VApplication::LabelLanguages()
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,8 +60,9 @@ public:
|
||||||
virtual bool notify(QObject * receiver, QEvent * event) Q_DECL_OVERRIDE;
|
virtual bool notify(QObject * receiver, QEvent * event) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
void InitOptions();
|
void InitOptions();
|
||||||
|
void InitTranslation();
|
||||||
|
|
||||||
QString translationsPath() const;
|
virtual QString translationsPath() const Q_DECL_OVERRIDE;
|
||||||
QString TapeFilePath() const;
|
QString TapeFilePath() const;
|
||||||
|
|
||||||
QTimer *getAutoSaveTimer() const;
|
QTimer *getAutoSaveTimer() const;
|
||||||
|
@ -73,7 +74,6 @@ public:
|
||||||
QTextStream *LogFile();
|
QTextStream *LogFile();
|
||||||
|
|
||||||
virtual const VTranslateVars *TrVars();
|
virtual const VTranslateVars *TrVars();
|
||||||
void InitTrVars();
|
|
||||||
|
|
||||||
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
||||||
static void DrMingw();
|
static void DrMingw();
|
||||||
|
@ -84,6 +84,9 @@ public:
|
||||||
virtual void OpenSettings() Q_DECL_OVERRIDE;
|
virtual void OpenSettings() Q_DECL_OVERRIDE;
|
||||||
VSettings *ValentinaSettings();
|
VSettings *ValentinaSettings();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void InitTrVars() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
||||||
void CleanGist() const;
|
void CleanGist() const;
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
#include "dialogs/dialogsavelayout.h"
|
#include "dialogs/dialogsavelayout.h"
|
||||||
#include "xml/vdomdocument.h"
|
#include "xml/vdomdocument.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
VCommandLinePtr VCommandLine::instance = nullptr;
|
VCommandLinePtr VCommandLine::instance = nullptr;
|
||||||
|
|
||||||
const static auto LONG_OPTION_OUTFILE = QStringLiteral("outfile");
|
const static auto LONG_OPTION_OUTFILE = QStringLiteral("outfile");
|
||||||
|
@ -52,6 +50,9 @@ const static auto SINGLE_OPTION_GAPWIDTH = QStringLiteral("G");
|
||||||
const static auto LONG_OPTION_GROUPPING = QStringLiteral("groups");
|
const static auto LONG_OPTION_GROUPPING = QStringLiteral("groups");
|
||||||
const static auto SINGLE_OPTION_GROUPPING = QStringLiteral("g");
|
const static auto SINGLE_OPTION_GROUPPING = QStringLiteral("g");
|
||||||
|
|
||||||
|
const static auto SINGLE_OPTION_LOCALE = QStringLiteral("L");
|
||||||
|
const static auto LONG_OPTION_LOCALE = QStringLiteral("locale");
|
||||||
|
|
||||||
#define tr(A) QCoreApplication::translate("VCommandLine", (A))
|
#define tr(A) QCoreApplication::translate("VCommandLine", (A))
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -64,71 +65,89 @@ VCommandLine::VCommandLine() : parser()
|
||||||
//keep in mind order here - that is how user will see it, so group-up for usability
|
//keep in mind order here - that is how user will see it, so group-up for usability
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_OUTFILE << LONG_OPTION_OUTFILE,
|
{LONG_OPTION_OUTFILE,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_OUTFILE << LONG_OPTION_OUTFILE,
|
||||||
tr("Path to output exported layout file. Use it to enable console export mode."),
|
tr("Path to output exported layout file. Use it to enable console export mode."),
|
||||||
tr("The exported layout file")),
|
tr("The exported layout file"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_MEASUREFILE << LONG_OPTION_MEASUREFILE,
|
{LONG_OPTION_MEASUREFILE,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_MEASUREFILE << LONG_OPTION_MEASUREFILE,
|
||||||
tr("Path to custom measure file (export mode)."),
|
tr("Path to custom measure file (export mode)."),
|
||||||
tr("The measure file")),
|
tr("The measure file"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_EXP2FORMAT << LONG_OPTION_EXP2FORMAT,
|
{LONG_OPTION_EXP2FORMAT,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_EXP2FORMAT << LONG_OPTION_EXP2FORMAT,
|
||||||
tr("Number corresponding to output format (default = 0, export mode): ") +
|
tr("Number corresponding to output format (default = 0, export mode): ") +
|
||||||
DialogSaveLayout::MakeHelpFormatList(), tr("Format number"), "0"),
|
DialogSaveLayout::MakeHelpFormatList(), tr("Format number"), "0")},
|
||||||
|
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_PAGETEMPLATE << LONG_OPTION_PAGETEMPLATE,
|
{LONG_OPTION_PAGETEMPLATE,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGETEMPLATE << LONG_OPTION_PAGETEMPLATE,
|
||||||
tr("Number corresponding to page template (default = 0, export mode): ")+
|
tr("Number corresponding to page template (default = 0, export mode): ")+
|
||||||
DialogLayoutSettings::MakeHelpTemplateList(), tr("Template number"), "0"),
|
DialogLayoutSettings::MakeHelpTemplateList(), tr("Template number"), "0")},
|
||||||
|
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEW << LONG_OPTION_PAGEW,
|
{LONG_OPTION_PAGEW,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEW << LONG_OPTION_PAGEW,
|
||||||
tr("Page width in current units like 12.0 (cannot be used with \"")
|
tr("Page width in current units like 12.0 (cannot be used with \"")
|
||||||
+LONG_OPTION_PAGETEMPLATE+tr("\", export mode)."), tr("The page width")),
|
+LONG_OPTION_PAGETEMPLATE+tr("\", export mode)."), tr("The page width"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEH << LONG_OPTION_PAGEH,
|
{LONG_OPTION_PAGEH,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEH << LONG_OPTION_PAGEH,
|
||||||
tr("Page height in current units like 12.0 (cannot be used with \"")
|
tr("Page height in current units like 12.0 (cannot be used with \"")
|
||||||
+LONG_OPTION_PAGETEMPLATE+tr("\", export mode)."), ("The page height")),
|
+LONG_OPTION_PAGETEMPLATE+tr("\", export mode)."), ("The page height"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEUNITS << LONG_OPTION_PAGEUNITS,
|
{LONG_OPTION_PAGEUNITS,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_PAGEUNITS << LONG_OPTION_PAGEUNITS,
|
||||||
tr("Page height/width measure units (cannot be used with \"")+
|
tr("Page height/width measure units (cannot be used with \"")+
|
||||||
LONG_OPTION_PAGETEMPLATE+tr("\", export mode): ") + VDomDocument::UnitsHelpString(),
|
LONG_OPTION_PAGETEMPLATE+tr("\", export mode): ") + VDomDocument::UnitsHelpString(),
|
||||||
tr("The measure unit")),
|
tr("The measure unit"))},
|
||||||
|
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_ROTATE << LONG_OPTION_ROTATE,
|
{LONG_OPTION_ROTATE,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_ROTATE << LONG_OPTION_ROTATE,
|
||||||
tr("Rotation in degrees (one of predefined). Default (or 0) is no-rotate "
|
tr("Rotation in degrees (one of predefined). Default (or 0) is no-rotate "
|
||||||
"(export mode)."),
|
"(export mode)."), tr("Angle"))},
|
||||||
tr("Angle")),
|
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_CROP << LONG_OPTION_CROP,
|
{LONG_OPTION_CROP,
|
||||||
tr("Auto crop unused length (export mode).")),
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_CROP << LONG_OPTION_CROP,
|
||||||
|
tr("Auto crop unused length (export mode)."))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_UNITE << LONG_OPTION_UNITE,
|
{LONG_OPTION_UNITE,
|
||||||
tr("Unite pages if possible (export mode).")),
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_UNITE << LONG_OPTION_UNITE,
|
||||||
|
tr("Unite pages if possible (export mode)."))},
|
||||||
|
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_SAVELENGTH << LONG_OPTION_SAVELENGTH,
|
{LONG_OPTION_SAVELENGTH,
|
||||||
tr("Save length of the sheet if set. (export mode).")),
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_SAVELENGTH << LONG_OPTION_SAVELENGTH,
|
||||||
|
tr("Save length of the sheet if set. (export mode)."))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_SHIFTUNITS << LONG_OPTION_SHIFTUNITS,
|
{LONG_OPTION_SHIFTUNITS,
|
||||||
tr("Layout units (as paper's one except px, export mode)."),
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_SHIFTUNITS << LONG_OPTION_SHIFTUNITS,
|
||||||
tr("The unit")),
|
tr("Layout units (as paper's one except px, export mode)."), tr("The unit"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_SHIFTLENGTH << LONG_OPTION_SHIFTLENGTH,
|
{LONG_OPTION_SHIFTLENGTH,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_SHIFTLENGTH << LONG_OPTION_SHIFTLENGTH,
|
||||||
tr("Shift layout length measured in layout units (export mode)."),
|
tr("Shift layout length measured in layout units (export mode)."),
|
||||||
tr("Shift length")),
|
tr("Shift length"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_GAPWIDTH << LONG_OPTION_GAPWIDTH,
|
{LONG_OPTION_GAPWIDTH,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_GAPWIDTH << LONG_OPTION_GAPWIDTH,
|
||||||
tr("Gap width x2, measured in layout units. (export mode)."),
|
tr("Gap width x2, measured in layout units. (export mode)."),
|
||||||
tr("The gap width")),
|
tr("The gap width"))},
|
||||||
|
|
||||||
QCommandLineOption(QStringList() << SINGLE_OPTION_GROUPPING << LONG_OPTION_GROUPPING,
|
{LONG_OPTION_GROUPPING,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_GROUPPING << LONG_OPTION_GROUPPING,
|
||||||
tr("Sets layout groupping (export mode): ")
|
tr("Sets layout groupping (export mode): ")
|
||||||
+ DialogLayoutSettings::MakeGroupsHelp(), tr("Grouping type"), "2"),
|
+ DialogLayoutSettings::MakeGroupsHelp(), tr("Grouping type"), "2")},
|
||||||
|
|
||||||
|
{LONG_OPTION_LOCALE,
|
||||||
|
new QCommandLineOption(QStringList() << SINGLE_OPTION_LOCALE << LONG_OPTION_LOCALE,
|
||||||
|
tr("Sets language locale (export mode). Default is system locale. Supported "
|
||||||
|
"locales: ") + SupportedLocales().join(", "), tr("Locale"))}
|
||||||
}),
|
}),
|
||||||
isGuiEnabled(false)
|
isGuiEnabled(false)
|
||||||
{
|
{
|
||||||
|
@ -137,16 +156,19 @@ VCommandLine::VCommandLine() : parser()
|
||||||
parser.addVersionOption();
|
parser.addVersionOption();
|
||||||
parser.addPositionalArgument("filename", QCoreApplication::translate("main", "Pattern file."));
|
parser.addPositionalArgument("filename", QCoreApplication::translate("main", "Pattern file."));
|
||||||
|
|
||||||
foreach(const auto& o, optionsUsed)
|
QMap<QString, QCommandLineOption *>::const_iterator i = optionsUsed.constBegin();
|
||||||
|
while (i != optionsUsed.constEnd())
|
||||||
{
|
{
|
||||||
parser.addOption(o);
|
parser.addOption(*i.value());
|
||||||
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------
|
||||||
int VCommandLine::Lo2Px(const QString &src, const DialogLayoutSettings &converter)
|
int VCommandLine::Lo2Px(const QString &src, const DialogLayoutSettings &converter)
|
||||||
{
|
{
|
||||||
//that is dirty-dirty hack ...eventually number is converted float <--> int 3 or 4 times including inside dialog ... that will loose precision for sure
|
//that is dirty-dirty hack ...eventually number is converted float <--> int 3 or 4 times including inside dialog ...
|
||||||
|
// that will loose precision for sure
|
||||||
return converter.LayoutToPixels(src.toFloat());
|
return converter.LayoutToPixels(src.toFloat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,11 +188,11 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
|
||||||
|
|
||||||
{
|
{
|
||||||
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
//just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
bool x = parser.isSet(LONG_OPTION_PAGETEMPLATE);
|
bool x = parser.isSet(*optionsUsed.value(LONG_OPTION_PAGETEMPLATE));
|
||||||
|
|
||||||
bool a = parser.isSet(LONG_OPTION_PAGEH);
|
bool a = parser.isSet(*optionsUsed.value(LONG_OPTION_PAGEH));
|
||||||
bool b = parser.isSet(LONG_OPTION_PAGEW);
|
bool b = parser.isSet(*optionsUsed.value(LONG_OPTION_PAGEW));
|
||||||
bool c = parser.isSet(LONG_OPTION_PAGEUNITS);
|
bool c = parser.isSet(*optionsUsed.value(LONG_OPTION_PAGEUNITS));
|
||||||
|
|
||||||
if ((a || b || c) && x)
|
if ((a || b || c) && x)
|
||||||
{
|
{
|
||||||
|
@ -188,8 +210,8 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
|
||||||
|
|
||||||
// {
|
// {
|
||||||
// //just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
// //just anonymous namespace ...don' like to have a,b,c,d everywhere defined
|
||||||
// bool a = parser.isSet(OPTION_SHIFTLENGTH);
|
// bool a = parser.isSet(optionsUsed.value(LONG_OPTION_SHIFTLENGTH));
|
||||||
// bool b = parser.isSet(OPTION_SHIFTUNITS);
|
// bool b = parser.isSet(optionsUsed.value(LONG_OPTION_SHIFTUNITS));
|
||||||
|
|
||||||
// if ((a || b) && !(a && b))
|
// if ((a || b) && !(a && b))
|
||||||
// {
|
// {
|
||||||
|
@ -214,40 +236,40 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
|
||||||
Error(tr("Unknown page templated selected."));
|
Error(tr("Unknown page templated selected."));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser.isSet(LONG_OPTION_PAGEH)) //at this point we already sure 3 are set or none
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_PAGEH))) //at this point we already sure 3 are set or none
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!diag.SelectPaperUnit(parser.value(LONG_OPTION_PAGEUNITS)))
|
if (!diag.SelectPaperUnit(parser.value(*optionsUsed.value(LONG_OPTION_PAGEUNITS))))
|
||||||
{
|
{
|
||||||
Error(tr("Unsupported paper units."));
|
Error(tr("Unsupported paper units."));
|
||||||
}
|
}
|
||||||
|
|
||||||
diag.SetPaperHeight (Pg2Px(parser.value(LONG_OPTION_PAGEH), diag));
|
diag.SetPaperHeight (Pg2Px(parser.value(*optionsUsed.value(LONG_OPTION_PAGEH)), diag));
|
||||||
diag.SetPaperWidth (Pg2Px(parser.value(LONG_OPTION_PAGEW), diag));
|
diag.SetPaperWidth (Pg2Px(parser.value(*optionsUsed.value(LONG_OPTION_PAGEW)), diag));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser.isSet(LONG_OPTION_SHIFTUNITS))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_SHIFTUNITS)))
|
||||||
{
|
{
|
||||||
if (!diag.SelectLayoutUnit(parser.value(LONG_OPTION_SHIFTUNITS)))
|
if (!diag.SelectLayoutUnit(parser.value(*optionsUsed.value(LONG_OPTION_SHIFTUNITS))))
|
||||||
{
|
{
|
||||||
Error(tr("Unsupported layout units."));
|
Error(tr("Unsupported layout units."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser.isSet(LONG_OPTION_SHIFTLENGTH))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_SHIFTLENGTH)))
|
||||||
{
|
{
|
||||||
|
|
||||||
diag.SetShift(Lo2Px(parser.value(LONG_OPTION_SHIFTLENGTH), diag));
|
diag.SetShift(Lo2Px(parser.value(*optionsUsed.value(LONG_OPTION_SHIFTLENGTH)), diag));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser.isSet(LONG_OPTION_GAPWIDTH))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_GAPWIDTH)))
|
||||||
{
|
{
|
||||||
diag.SetLayoutWidth(Lo2Px(parser.value(LONG_OPTION_GAPWIDTH), diag));
|
diag.SetLayoutWidth(Lo2Px(parser.value(*optionsUsed.value(LONG_OPTION_GAPWIDTH)), diag));
|
||||||
}
|
}
|
||||||
|
|
||||||
diag.SetAutoCrop(parser.isSet(LONG_OPTION_CROP));
|
diag.SetAutoCrop(parser.isSet(*optionsUsed.value(LONG_OPTION_CROP)));
|
||||||
diag.SetUnitePages(parser.isSet(LONG_OPTION_UNITE));
|
diag.SetUnitePages(parser.isSet(*optionsUsed.value(LONG_OPTION_UNITE)));
|
||||||
diag.SetSaveLength(parser.isSet(LONG_OPTION_SAVELENGTH));
|
diag.SetSaveLength(parser.isSet(*optionsUsed.value(LONG_OPTION_SAVELENGTH)));
|
||||||
diag.SetGroup(OptGroup());
|
diag.SetGroup(OptGroup());
|
||||||
|
|
||||||
|
|
||||||
|
@ -288,7 +310,7 @@ void VCommandLine::Reset()
|
||||||
//------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------
|
||||||
bool VCommandLine::IsExportEnabled() const
|
bool VCommandLine::IsExportEnabled() const
|
||||||
{
|
{
|
||||||
bool r = parser.isSet(LONG_OPTION_OUTFILE);
|
bool r = parser.isSet(*optionsUsed.value(LONG_OPTION_OUTFILE));
|
||||||
if (r && parser.positionalArguments().size() != 1)
|
if (r && parser.positionalArguments().size() != 1)
|
||||||
{
|
{
|
||||||
Error(tr("Export options can be used with single input file only."));
|
Error(tr("Export options can be used with single input file only."));
|
||||||
|
@ -300,9 +322,9 @@ bool VCommandLine::IsExportEnabled() const
|
||||||
DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const
|
DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const
|
||||||
{
|
{
|
||||||
int ppsize = 0;
|
int ppsize = 0;
|
||||||
if (parser.isSet(LONG_OPTION_PAGETEMPLATE))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_PAGETEMPLATE)))
|
||||||
{
|
{
|
||||||
ppsize = parser.value(LONG_OPTION_PAGETEMPLATE).toInt();
|
ppsize = parser.value(*optionsUsed.value(LONG_OPTION_PAGETEMPLATE)).toInt();
|
||||||
}
|
}
|
||||||
return static_cast<DialogLayoutSettings::PaperSizeTemplate>(ppsize);
|
return static_cast<DialogLayoutSettings::PaperSizeTemplate>(ppsize);
|
||||||
}
|
}
|
||||||
|
@ -311,9 +333,9 @@ DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const
|
||||||
int VCommandLine::OptRotation() const
|
int VCommandLine::OptRotation() const
|
||||||
{
|
{
|
||||||
int rotate = 0;
|
int rotate = 0;
|
||||||
if (parser.isSet(LONG_OPTION_ROTATE))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_ROTATE)))
|
||||||
{
|
{
|
||||||
rotate = parser.value(LONG_OPTION_ROTATE).toInt();
|
rotate = parser.value(*optionsUsed.value(LONG_OPTION_ROTATE)).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
return rotate;
|
return rotate;
|
||||||
|
@ -322,7 +344,7 @@ int VCommandLine::OptRotation() const
|
||||||
//------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------
|
||||||
Cases VCommandLine::OptGroup() const
|
Cases VCommandLine::OptGroup() const
|
||||||
{
|
{
|
||||||
int r = parser.value(LONG_OPTION_GROUPPING).toInt();
|
int r = parser.value(*optionsUsed.value(LONG_OPTION_GROUPPING)).toInt();
|
||||||
if ( r < 0 || r >= static_cast<int>(Cases::UnknownCase))
|
if ( r < 0 || r >= static_cast<int>(Cases::UnknownCase))
|
||||||
{
|
{
|
||||||
r = 0;
|
r = 0;
|
||||||
|
@ -334,11 +356,11 @@ Cases VCommandLine::OptGroup() const
|
||||||
QString VCommandLine::OptMeasurePath() const
|
QString VCommandLine::OptMeasurePath() const
|
||||||
{
|
{
|
||||||
QString measure;
|
QString measure;
|
||||||
if (parser.isSet(LONG_OPTION_MEASUREFILE)
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_MEASUREFILE))
|
||||||
&& IsExportEnabled() //todo: don't want yet to allow user set measure file for general loading, because need to fix multiply opened windows as well
|
&& IsExportEnabled() //todo: don't want yet to allow user set measure file for general loading, because need to fix multiply opened windows as well
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
measure = parser.value(LONG_OPTION_MEASUREFILE);
|
measure = parser.value(*optionsUsed.value(LONG_OPTION_MEASUREFILE));
|
||||||
}
|
}
|
||||||
|
|
||||||
return measure;
|
return measure;
|
||||||
|
@ -350,7 +372,7 @@ QString VCommandLine::OptExportPath() const
|
||||||
QString path;
|
QString path;
|
||||||
if (IsExportEnabled())
|
if (IsExportEnabled())
|
||||||
{
|
{
|
||||||
path = parser.value(LONG_OPTION_OUTFILE);
|
path = parser.value(*optionsUsed.value(LONG_OPTION_OUTFILE));
|
||||||
}
|
}
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
|
@ -360,9 +382,9 @@ QString VCommandLine::OptExportPath() const
|
||||||
int VCommandLine::OptExportType() const
|
int VCommandLine::OptExportType() const
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
if (parser.isSet(LONG_OPTION_EXP2FORMAT))
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_EXP2FORMAT)))
|
||||||
{
|
{
|
||||||
r = parser.value(LONG_OPTION_EXP2FORMAT).toInt();
|
r = parser.value(*optionsUsed.value(LONG_OPTION_EXP2FORMAT)).toInt();
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -373,11 +395,21 @@ QStringList VCommandLine::OptInputFileNames() const
|
||||||
return parser.positionalArguments();
|
return parser.positionalArguments();
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VCommandLine::OptLocale() const
|
||||||
|
{
|
||||||
|
QString locale = QLocale::system().name();
|
||||||
|
if (parser.isSet(*optionsUsed.value(LONG_OPTION_LOCALE)))
|
||||||
|
{
|
||||||
|
locale = parser.value(*optionsUsed.value(LONG_OPTION_LOCALE));
|
||||||
|
}
|
||||||
|
return locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
bool VCommandLine::IsGuiEnabled() const
|
bool VCommandLine::IsGuiEnabled() const
|
||||||
{
|
{
|
||||||
return isGuiEnabled;
|
return isGuiEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
|
||||||
#undef tr
|
#undef tr
|
||||||
|
|
|
@ -52,7 +52,7 @@ class VCommandLine
|
||||||
private:
|
private:
|
||||||
static VCommandLinePtr instance;
|
static VCommandLinePtr instance;
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
const std::vector<QCommandLineOption> optionsUsed;
|
const QMap<QString, QCommandLineOption *> optionsUsed;
|
||||||
bool isGuiEnabled;
|
bool isGuiEnabled;
|
||||||
friend class VApplication;
|
friend class VApplication;
|
||||||
|
|
||||||
|
@ -105,6 +105,9 @@ public:
|
||||||
//@brief gets filenames which should be loaded
|
//@brief gets filenames which should be loaded
|
||||||
QStringList OptInputFileNames() const;
|
QStringList OptInputFileNames() const;
|
||||||
|
|
||||||
|
//@brief gets locale name
|
||||||
|
QString OptLocale() const;
|
||||||
|
|
||||||
bool IsGuiEnabled()const;
|
bool IsGuiEnabled()const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -912,3 +912,22 @@ QStringList ListGroupQ()
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QStringList SupportedLocales()
|
||||||
|
{
|
||||||
|
const QStringList locales = {QStringLiteral("ru_RU"),
|
||||||
|
QStringLiteral("uk_UA"),
|
||||||
|
QStringLiteral("de_DE"),
|
||||||
|
QStringLiteral("cs_CZ"),
|
||||||
|
QStringLiteral("he_IL"),
|
||||||
|
QStringLiteral("fr_FR"),
|
||||||
|
QStringLiteral("it_IT"),
|
||||||
|
QStringLiteral("nl_NL"),
|
||||||
|
QStringLiteral("id_ID"),
|
||||||
|
QStringLiteral("es_ES"),
|
||||||
|
QStringLiteral("fi_FI"),
|
||||||
|
QStringLiteral("en_US")};
|
||||||
|
|
||||||
|
return locales;
|
||||||
|
}
|
||||||
|
|
|
@ -575,4 +575,6 @@ qreal UnitConvertor(qreal value, const Unit &from, const Unit &to);
|
||||||
|
|
||||||
void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
|
void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
|
||||||
|
|
||||||
|
QStringList SupportedLocales();
|
||||||
|
|
||||||
#endif // DEF_H
|
#endif // DEF_H
|
||||||
|
|
|
@ -29,12 +29,18 @@
|
||||||
#include "vabstractapplication.h"
|
#include "vabstractapplication.h"
|
||||||
#include "../vmisc/def.h"
|
#include "../vmisc/def.h"
|
||||||
|
|
||||||
|
#include <QLibraryInfo>
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
||||||
:QApplication(argc, argv),
|
:QApplication(argc, argv),
|
||||||
undoStack(nullptr),
|
undoStack(nullptr),
|
||||||
mainWindow(nullptr),
|
mainWindow(nullptr),
|
||||||
settings(nullptr),
|
settings(nullptr),
|
||||||
|
qtTranslator(nullptr),
|
||||||
|
qtxmlTranslator(nullptr),
|
||||||
|
appTranslator(nullptr),
|
||||||
|
pmsTranslator(nullptr),
|
||||||
_patternUnit(Unit::Cm),
|
_patternUnit(Unit::Cm),
|
||||||
_patternType(MeasurementsType::Individual),
|
_patternType(MeasurementsType::Individual),
|
||||||
currentScene(nullptr),
|
currentScene(nullptr),
|
||||||
|
@ -112,3 +118,72 @@ double VAbstractApplication::fromPixel(double pix) const
|
||||||
{
|
{
|
||||||
return FromPixel(pix, _patternUnit);
|
return FromPixel(pix, _patternUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractApplication::LoadTranslation(const QString &locale)
|
||||||
|
{
|
||||||
|
if (locale.isEmpty())
|
||||||
|
{
|
||||||
|
qDebug()<<"Locale is empty.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qDebug()<<"Checked locale:"<<locale;
|
||||||
|
|
||||||
|
ClearTranslation();
|
||||||
|
|
||||||
|
qtTranslator = new QTranslator(this);
|
||||||
|
#if defined(Q_OS_WIN)
|
||||||
|
qtTranslator->load("qt_" + locale, translationsPath());
|
||||||
|
#else
|
||||||
|
qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||||
|
#endif
|
||||||
|
installTranslator(qtTranslator);
|
||||||
|
|
||||||
|
qtxmlTranslator = new QTranslator(this);
|
||||||
|
#if defined(Q_OS_WIN)
|
||||||
|
qtxmlTranslator->load("qtxmlpatterns_" + locale, translationsPath());
|
||||||
|
#else
|
||||||
|
qtxmlTranslator->load("qtxmlpatterns_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||||
|
#endif
|
||||||
|
installTranslator(qtxmlTranslator);
|
||||||
|
|
||||||
|
appTranslator = new QTranslator(this);
|
||||||
|
appTranslator->load("valentina_" + locale, translationsPath());
|
||||||
|
installTranslator(appTranslator);
|
||||||
|
|
||||||
|
const QString system = Settings()->GetPMSystemCode();
|
||||||
|
|
||||||
|
pmsTranslator = new QTranslator(this);
|
||||||
|
pmsTranslator->load("measurements_" + system + "_" + locale, translationsPath());
|
||||||
|
installTranslator(pmsTranslator);
|
||||||
|
|
||||||
|
InitTrVars();//Very important do it after load QM files.
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractApplication::ClearTranslation()
|
||||||
|
{
|
||||||
|
if (not qtTranslator.isNull())
|
||||||
|
{
|
||||||
|
removeTranslator(qtTranslator);
|
||||||
|
delete qtTranslator;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not qtxmlTranslator.isNull())
|
||||||
|
{
|
||||||
|
removeTranslator(qtxmlTranslator);
|
||||||
|
delete qtxmlTranslator;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not appTranslator.isNull())
|
||||||
|
{
|
||||||
|
removeTranslator(appTranslator);
|
||||||
|
delete appTranslator;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not pmsTranslator.isNull())
|
||||||
|
{
|
||||||
|
removeTranslator(pmsTranslator);
|
||||||
|
delete pmsTranslator;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QGraphicsScene>
|
#include <QGraphicsScene>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
#include "def.h"
|
#include "def.h"
|
||||||
#include "vsettings.h"
|
#include "vsettings.h"
|
||||||
#include "vlockguard.h"
|
#include "vlockguard.h"
|
||||||
|
@ -53,6 +55,9 @@ public:
|
||||||
virtual ~VAbstractApplication() Q_DECL_OVERRIDE;
|
virtual ~VAbstractApplication() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
virtual const VTranslateVars *TrVars()=0;
|
virtual const VTranslateVars *TrVars()=0;
|
||||||
|
virtual QString translationsPath() const=0;
|
||||||
|
|
||||||
|
void LoadTranslation(const QString &locale);
|
||||||
|
|
||||||
Unit patternUnit() const;
|
Unit patternUnit() const;
|
||||||
const Unit *patternUnitP() const;
|
const Unit *patternUnitP() const;
|
||||||
|
@ -101,6 +106,13 @@ protected:
|
||||||
*/
|
*/
|
||||||
VCommonSettings *settings;
|
VCommonSettings *settings;
|
||||||
|
|
||||||
|
QPointer<QTranslator> qtTranslator;
|
||||||
|
QPointer<QTranslator> qtxmlTranslator;
|
||||||
|
QPointer<QTranslator> appTranslator;
|
||||||
|
QPointer<QTranslator> pmsTranslator;
|
||||||
|
|
||||||
|
virtual void InitTrVars()=0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VAbstractApplication)
|
Q_DISABLE_COPY(VAbstractApplication)
|
||||||
Unit _patternUnit;
|
Unit _patternUnit;
|
||||||
|
@ -117,6 +129,8 @@ private:
|
||||||
* we can allow user use Undo option.
|
* we can allow user use Undo option.
|
||||||
*/
|
*/
|
||||||
bool openingPattern;
|
bool openingPattern;
|
||||||
|
|
||||||
|
void ClearTranslation();
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -69,8 +69,7 @@ void TST_MeasurementRegExp::TestOriginalMeasurementNamesRegExp()
|
||||||
void TST_MeasurementRegExp::TestMeasurementRegExp()
|
void TST_MeasurementRegExp::TestMeasurementRegExp()
|
||||||
{
|
{
|
||||||
const int systemCounts = 55;
|
const int systemCounts = 55;
|
||||||
const QStringList locales {"ru_RU", "uk_UA", "de_DE", "cs_CZ", "he_IL", "fr_FR", "it_IT", "nl_NL", "id_ID",
|
const QStringList locales = SupportedLocales();
|
||||||
"es_ES", "fi_FI", "en_US"};
|
|
||||||
|
|
||||||
{
|
{
|
||||||
const int combinations = systemCounts * locales.size(); // 55*12=660
|
const int combinations = systemCounts * locales.size(); // 55*12=660
|
||||||
|
|
Loading…
Reference in New Issue
Block a user