Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
5b59a047
Commit
5b59a047
authored
Mar 20, 2019
by
Gus Grubba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a language selector to the General Settings
parent
afe560b4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
80 additions
and
17 deletions
+80
-17
QGCApplication.cc
src/QGCApplication.cc
+40
-14
QGCApplication.h
src/QGCApplication.h
+2
-0
App.SettingsGroup.json
src/Settings/App.SettingsGroup.json
+11
-3
AppSettings.cc
src/Settings/AppSettings.cc
+10
-0
AppSettings.h
src/Settings/AppSettings.h
+6
-0
GeneralSettings.qml
src/ui/preferences/GeneralSettings.qml
+11
-0
No files found.
src/QGCApplication.cc
View file @
5b59a047
...
...
@@ -172,20 +172,6 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
{
_app
=
this
;
QLocale
locale
=
QLocale
::
system
();
//-- Some forced locales for testing
//QLocale locale = QLocale(QLocale::German);
//QLocale locale = QLocale(QLocale::French);
//QLocale locale = QLocale(QLocale::Chinese);
#if defined (__macos__)
locale
=
QLocale
(
locale
.
name
());
#endif
qDebug
()
<<
"System reported locale:"
<<
locale
<<
locale
.
name
();
//-- Our localization
if
(
_QGCTranslator
.
load
(
locale
,
"qgc_"
,
""
,
":/localization"
))
_app
->
installTranslator
(
&
_QGCTranslator
);
// This prevents usage of QQuickWidget to fail since it doesn't support native widget siblings
#ifndef __android__
setAttribute
(
Qt
::
AA_DontCreateNativeWidgetSiblings
);
...
...
@@ -371,9 +357,49 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
}
#endif
/* __mobile__ */
setLanguage
();
_checkForNewVersion
();
}
void
QGCApplication
::
setLanguage
()
{
QLocale
locale
=
QLocale
::
system
();
//-- See App.SettinsGroup.json for index
int
langID
=
toolbox
()
->
settingsManager
()
->
appSettings
()
->
language
()
->
rawValue
().
toInt
();
if
(
langID
)
{
switch
(
langID
)
{
case
1
:
locale
=
QLocale
(
QLocale
::
Bulgarian
);
break
;
case
2
:
locale
=
QLocale
(
QLocale
::
German
);
break
;
case
3
:
locale
=
QLocale
(
QLocale
::
French
);
break
;
case
4
:
locale
=
QLocale
(
QLocale
::
Italian
);
break
;
case
5
:
locale
=
QLocale
(
QLocale
::
Korean
);
break
;
case
6
:
locale
=
QLocale
(
QLocale
::
Russian
);
break
;
case
7
:
locale
=
QLocale
(
QLocale
::
Turkish
);
break
;
case
8
:
locale
=
QLocale
(
QLocale
::
Chinese
);
break
;
}
}
qDebug
()
<<
"System reported locale:"
<<
locale
<<
locale
.
name
();
//-- Our localization
if
(
_QGCTranslator
.
load
(
locale
,
"qgc_"
,
""
,
":/localization"
))
_app
->
installTranslator
(
&
_QGCTranslator
);
}
void
QGCApplication
::
_shutdown
(
void
)
{
// This code is specifically not in the destructor since the application object may not be available in the destructor.
...
...
src/QGCApplication.h
View file @
5b59a047
...
...
@@ -101,6 +101,8 @@ public:
static
QString
cachedParameterMetaDataFile
(
void
);
static
QString
cachedAirframeMetaDataFile
(
void
);
void
setLanguage
();
public
slots
:
/// You can connect to this slot to show an information message box from a different thread.
void
informationMessageBoxOnMainThread
(
const
QString
&
title
,
const
QString
&
msg
);
...
...
src/Settings/App.SettingsGroup.json
View file @
5b59a047
...
...
@@ -220,12 +220,20 @@
"longDescription"
:
"Enable Taisync Video Support"
,
"type"
:
"bool"
,
"defaultValue"
:
true
}
,
},
{
"name"
:
"enableMicrohard"
,
"shortDescription"
:
"Enable Microhard Module Support"
,
"longDescription"
:
"Enable Microhard Module Support"
,
"type"
:
"bool"
,
"defaultValue"
:
false
}]
},
{
"name"
:
"language"
,
"shortDescription"
:
"Language"
,
"type"
:
"uint32"
,
"enumStrings"
:
"System,български (Bulgarian),Deutsche (German),Français (French),Italiano (Italian),한국어 (Korean),Pусский (Russian),Türk (Turkish),中文 (Chinese)"
,
"enumValues"
:
"0,1,2,3,4,5,6,7,8"
,
"defaultValue"
:
0
}
]
src/Settings/AppSettings.cc
View file @
5b59a047
...
...
@@ -59,7 +59,11 @@ DECLARE_SETTINGGROUP(App, "")
connect
(
savePathFact
,
&
Fact
::
rawValueChanged
,
this
,
&
AppSettings
::
savePathsChanged
);
connect
(
savePathFact
,
&
Fact
::
rawValueChanged
,
this
,
&
AppSettings
::
_checkSavePathDirectories
);
_checkSavePathDirectories
();
//-- Same for language
SettingsFact
*
languageFact
=
qobject_cast
<
SettingsFact
*>
(
language
());
connect
(
languageFact
,
&
Fact
::
rawValueChanged
,
this
,
&
AppSettings
::
_languageChanged
);
}
DECLARE_SETTINGSFACT
(
AppSettings
,
offlineEditingFirmwareType
)
...
...
@@ -88,6 +92,7 @@ DECLARE_SETTINGSFACT(AppSettings, apmStartMavlinkStreams)
DECLARE_SETTINGSFACT
(
AppSettings
,
enableTaisync
)
DECLARE_SETTINGSFACT
(
AppSettings
,
enableTaisyncVideo
)
DECLARE_SETTINGSFACT
(
AppSettings
,
enableMicrohard
)
DECLARE_SETTINGSFACT
(
AppSettings
,
language
)
DECLARE_SETTINGSFACT_NO_FUNC
(
AppSettings
,
indoorPalette
)
{
...
...
@@ -98,6 +103,11 @@ DECLARE_SETTINGSFACT_NO_FUNC(AppSettings, indoorPalette)
return
_indoorPaletteFact
;
}
void
AppSettings
::
_languageChanged
()
{
qgcApp
()
->
setLanguage
();
}
void
AppSettings
::
_checkSavePathDirectories
(
void
)
{
QDir
savePathDir
(
savePath
()
->
rawValue
().
toString
());
...
...
src/Settings/AppSettings.h
View file @
5b59a047
...
...
@@ -7,6 +7,7 @@
*
****************************************************************************/
#pragma once
#include <QTranslator>
#include "SettingsGroup.h"
#include "QGCMAVLink.h"
...
...
@@ -46,6 +47,7 @@ public:
DEFINE_SETTINGFACT
(
enableTaisync
)
DEFINE_SETTINGFACT
(
enableTaisyncVideo
)
DEFINE_SETTINGFACT
(
enableMicrohard
)
DEFINE_SETTINGFACT
(
language
)
// Although this is a global setting it only affects ArduPilot vehicle since PX4 automatically starts the stream from the vehicle side
DEFINE_SETTINGFACT
(
apmStartMavlinkStreams
)
...
...
@@ -102,5 +104,9 @@ signals:
private
slots
:
void
_indoorPaletteChanged
();
void
_checkSavePathDirectories
();
void
_languageChanged
();
private:
QTranslator
_QGCTranslator
;
};
src/ui/preferences/GeneralSettings.qml
View file @
5b59a047
...
...
@@ -141,6 +141,17 @@ QGCView {
anchors.horizontalCenter
:
parent
.
horizontalCenter
columns
:
2
QGCLabel
{
text
:
qsTr
(
"
Language
"
)
visible
:
QGroundControl
.
settingsManager
.
appSettings
.
language
.
visible
}
FactComboBox
{
Layout.preferredWidth
:
_comboFieldWidth
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
language
indexModel
:
false
visible
:
QGroundControl
.
settingsManager
.
appSettings
.
language
.
visible
}
QGCLabel
{
text
:
qsTr
(
"
Color Scheme
"
)
visible
:
QGroundControl
.
settingsManager
.
appSettings
.
indoorPalette
.
visible
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment