Commit Graph

206 Commits

Author SHA1 Message Date
Adriaan de Groot
afb4e00f92 [keyboard] Pre-select pc105 2020-11-06 01:10:27 +01:00
Adriaan de Groot
be7b63051e Enable keyboard-model and layout-name translations.
SEE #1515
2020-11-04 23:36:33 +01:00
Adriaan de Groot
83d2c06f68 [keyboard] Apply coding style 2020-11-04 16:36:52 +01:00
Adriaan de Groot
705e6dd8d6 [keyboard] Improve debug-logging for writing etc/default 2020-11-04 16:32:22 +01:00
Adriaan de Groot
cbc376a206 [keyboard] Improve debug-logging for writing X11 config 2020-11-04 16:32:22 +01:00
Adriaan de Groot
57da222c72 [keyboard] Improve debug-logging for vconsole-config 2020-11-04 16:16:28 +01:00
Adriaan de Groot
845fb3f6da [keyboard] Refactor writing-various-files
- put the writing of each kind of file in its own block -- this should
  become separate functions -- so that variables become more local
  and debugging can be improved.
- while here, fix the error message for /etc/default/keyboard:
  it would complain and name the vconsole file path if it ever failed.
2020-11-04 14:03:14 +01:00
Adriaan de Groot
3e51d77782 [keyboard] Check for successful file-write 2020-11-04 13:39:23 +01:00
Adriaan de Groot
4746754344 [keyboard] Translate layouts as well 2020-11-01 14:28:12 +01:00
Adriaan de Groot
6863db0dc1 [keyboard] Use the translations if they were loaded 2020-11-01 14:19:06 +01:00
Adriaan de Groot
f088efdf84 [keyboard] Re-jig translation extraction
- Use classes to prompt lupdate to extract with a better
  context (e.g. the class name, rather than plain "QObject")
  so that the translation-lookup can use the named context.
- Add hard-coded "default" variant
- Add totally bogus Tajik translations, for testing purposes
2020-11-01 13:50:12 +01:00
Adriaan de Groot
4387b8061e [keyboard] Move responsibility for retranslation to Config
- only widgets get language change events, so we need to
  hook that up to the ViewSteps and inform the Config
  object so that it can (re)load translations for the
  keyboard data.
2020-10-31 20:02:21 +01:00
Adriaan de Groot
71e0081fce [keyboard] SPDX-tagging 2020-10-30 22:31:42 +01:00
Adriaan de Groot
89a180ee58 [keyboard] Initial support for translated keyboard names 2020-10-30 16:24:56 +01:00
Adriaan de Groot
2e9a44269c [keyboard] Extracted strings from keyboard list 2020-10-30 12:39:47 +01:00
Adriaan de Groot
5a378090c2 [keyboard] Do not munge keyboard model name
The translation happens whenever this code is run, which may
not match the language the user subsequently selects.
It also causes general problems with the translation,
since we end up with a possibly-partly-translated name.
2020-10-30 12:16:14 +01:00
Adriaan de Groot
7ec8c454bd [keyboard] Ukranian needs a switcher, too 2020-10-30 11:21:57 +01:00
Adriaan de Groot
8457a00ad0 [keyboard] Fix group-switcher multiplying
FIXES #1556
2020-10-30 11:05:15 +01:00
Adriaan de Groot
cd9c0ea781 [keyboard] Reduce debugging output 2020-10-28 17:00:12 +01:00
Adriaan de Groot
2e5301c5c9 [keyboard] Simplify back down to lambdas
- With debugging and untangling done, the lambdas are simple
  and short, so return to using them. One point of improvement
  might be to give the models suitable slots themselves,
  to avoid even this indirection.
2020-10-28 16:54:08 +01:00
Adriaan de Groot
0bf28b0b94 [keyboard] Sanity in setCurrentIndex() parameters 2020-10-28 16:47:52 +01:00
Adriaan de Groot
9e141636c5 [keyboard] Tidy up the debugging output, add docs 2020-10-28 16:40:43 +01:00
Adriaan de Groot
14a76a386a [keyboard] Replace broken-ish variants model with k-v list
- Use the just-refactored XKBListModel to store the xkb key-value
  pairs for variants, drop most of the complicated implementation,
  store just a single list of values.
2020-10-28 16:29:52 +01:00
Adriaan de Groot
d536173d66 [keyboard] Factor out a 2-column k-v list 2020-10-28 16:29:52 +01:00
Adriaan de Groot
5afe54132b [keyboard] Use the models from Config
- Remove code that is duplicated in Config.
- Hook up UI for physical keyboard model, and back.
- For now, introduce some named slots with debugging output.
  This makes debugging a lot easier since we have function names
  to work with rather than anonymous lambdas
2020-10-28 16:01:38 +01:00
Adriaan de Groot
168be02c96 [keyboard] Hook up the model-selection again 2020-10-28 14:03:46 +01:00
Adriaan de Groot
87aafb2442 [keyboard] Tear up connections between widgets and model 2020-10-28 13:57:57 +01:00
Adriaan de Groot
193efe1710 [keyboard] Restore the notion of PC105 default index 2020-10-28 13:57:57 +01:00
Adriaan de Groot
6aedf4401f [keyboard] Apply coding style 2020-10-28 13:41:34 +01:00
Adriaan de Groot
365a2ad6fd [keyboard] Re-do the keyboard physical models model from scratch 2020-10-28 13:41:21 +01:00
Adriaan de Groot
a1c70b46a1 [keyboard] Typo in comment 2020-10-28 13:06:43 +01:00
Adriaan de Groot
5f1d7b2e8d [keyboard] Rename UI widgets to make code clearer 2020-10-28 10:38:51 +01:00
Adriaan de Groot
d464e98e89 [keyboard] Move remaining variables to Config
- Config already *has* everythind, but drop the useless copies
  and duplicated code from the Page
- Plug the models model into the Page
- While here, document the model / layout / variant distinctions

The code doesn't fill the UI properly, and the drop-down
for the models combobox is not right, but at least the data
is shared.
2020-10-28 01:25:42 +01:00
Adriaan de Groot
fe5757c7d1 [keyboard] Matching of layouts is very suspect 2020-10-28 01:07:49 +01:00
Adriaan de Groot
4f0d6a8f25 Merge branch 'calamares' into fix-keyboardq 2020-10-28 00:04:40 +01:00
Artem Grinev
4434e85d4d [keyboard] Simplified variable name 2020-10-27 20:53:20 +03:00
Artem Grinev
3552233bf1 [keyboard] Minor logic rework 2020-10-27 20:48:18 +03:00
Artem Grinev
6667ea834f [keyboard] Adjusted indents 2020-10-27 20:42:49 +03:00
Artem Grinev
996c82160e [keyboard] fixed typo 2020-10-27 20:38:04 +03:00
Adriaan de Groot
4a3273d634 [keyboard] Remove superfluous variable (set to true, never changed) 2020-10-27 16:59:22 +01:00
Artem Grinev
bfc60ad2cf [keyboard] Implemented X11 config writing for additional layout 2020-10-27 18:59:10 +03:00
Artem Grinev
0dd027af90 [keyboard] Fixed condition bug 2020-10-27 18:59:10 +03:00
Artem Grinev
19b1fb3358 [keyboard] Added explanatory comment for xkbmap_query_grp_option 2020-10-27 18:59:10 +03:00
Artem Grinev
384b1ba8c6 [keyboard] Swapped primary and additional layouts in selection 2020-10-27 18:59:10 +03:00
Artem Grinev
354dc1613a [keyboard] Removed unnecessary repacking in xkbmap_layout_args 2020-10-27 18:59:10 +03:00
Artem Grinev
09b5e42734 [keyboard] Minor additional layout info rework 2020-10-27 18:59:10 +03:00
Artem Grinev
17b9647016 [keyboard] Support for additional layout if current layout is not ASCII-
capable in live system
2020-10-27 18:59:10 +03:00
Adriaan de Groot
0947cd8354 [keyboard] Migrate to Config::onActivate() which is badly-named 2020-10-27 16:12:36 +01:00
Adriaan de Groot
0ffa500432 [keyboard] Remove unused code
- this has already migrated to Config but had not been removed locally
2020-10-27 15:56:50 +01:00
Adriaan de Groot
35a2bd3f0f [keyboard] Use Config's own finalize() 2020-10-27 15:55:29 +01:00
Adriaan de Groot
14c079d1d6 [keyboard] Replace own copy of status by the one from Config 2020-10-27 15:53:59 +01:00
Adriaan de Groot
acb5190217 [keyboard] Use Config methods rather than own copy
- this continues the port of the keyboard module to use the Config
  object, which was horribly botched earlier.
2020-10-27 15:51:48 +01:00
Adriaan de Groot
679f613955 [keyboard] Rename mysterious Config::init() to descriptive name 2020-10-27 15:48:51 +01:00
Adriaan de Groot
c7c7e6a6c1 [keyboard] Move configuration to the Config object
- information from the configuration file -> Config object
- job creation -> Config object

Ignore keyboardq for now.
2020-10-14 15:50:21 +02:00
Adriaan de Groot
0f6602cad7 [keyboard] Improve xkb parsing 2020-10-14 15:50:21 +02:00
Adriaan de Groot
ec42e3294f [keyboard] Refactor argument-lists for setxkbmap
- separate functions for model, and layout+variant settings
2020-10-14 15:50:21 +02:00
Adriaan de Groot
b54273f904 [keyboard] Move all the keyboard (AbstractList)Models to the models file 2020-10-14 15:50:21 +02:00
Adriaan de Groot
a955791766 Apply coding style globally again 2020-10-12 14:27:01 +02:00
Adriaan de Groot
6b07bdf6ed [keyboard] Do not use deprecated Qt4-era indexChanged for text 2020-09-22 23:51:35 +02:00
Adriaan de Groot
2878c474c5 Warnings-- (~T() override)
Change all the places that had
	virtual ~T() override
to the less redundant form without override.
2020-09-22 22:49:30 +02:00
Adriaan de Groot
2126be6d6d Warnings-- (~T() override)
Consistently use
	~T() override;
in class declarations (so no virtual in front, and avoid
warnings due to the missing override in back).
2020-09-22 22:40:52 +02:00
Adriaan de Groot
7d5a209dd0 [modules] Warnings-- in tests (~Test() override) 2020-09-22 22:37:55 +02:00
Adriaan de Groot
8b22786bd2 Merge branch 'issue-1397' into calamares
Document keyboard change for Turkish F layout, and document
the keyboard configuration value better, with alternate
path used in e.g. openSUSE

FIXES #1397
2020-09-09 12:21:48 +02:00
Adriaan de Groot
633186778b [keyboard] Add test for Turkish F variant
- test keyboard lookup for "tr" - "f" variations
- add data mapping "tr" - "f" to legacy keymap "trf"

FIXES #1397
2020-09-09 12:11:50 +02:00
Adriaan de Groot
aeffbac9cd CMake: add resources to tests
Some tests -- notably the keyboard module -- need to have the
QRC for the module loaded as well (e.g. because of data in the
QRC). Add a RESOURCES parameter to calamares_add_test()
like calamares_add_plugin() already has, to build the
resources into the test.

Keyboard test now passes, since it was missing the data for
lookups before.
2020-09-09 11:58:56 +02:00
Adriaan de Groot
2aece7ff1b [keyboard] Warn if QRC is not available 2020-09-09 11:47:50 +02:00
Adriaan de Groot
0d8e0d9b96 [keyboard] Add a stub for unit tests 2020-09-08 17:27:21 +02:00
Adriaan de Groot
af3261b16f [keyboard] Refactor findLegacyKeymap into something testable 2020-09-08 17:27:21 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
30a85668b7 REUSE: (GPL-3.0-or-later) C++ modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
1b23520f20 REUSE: (CC0-1.0) module descriptors and configuration files
In spite of there being considerable documentation sometimes in the
config file, we go with CC0 because we don't want the notion of
'derived work' of a config file.

The example `settings.conf` is also CC0. Add some docs to
it while we're at it.
2020-08-26 02:22:49 +02:00
Adriaan de Groot
95ceb1e8c7 REUSE: (BSD-2-Clause) all CMakeLists
The build instructions are not that interesting, it's a toss-up
between CC0 and BSD-2, but because other CMake bits are BSD-2-Clause,
apply that to more CMakeLists. The copyright date isn't all that
accurate, but these are just inconsequential files.

While here, tidy up and get rid of some useless intermediates.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
965bc3b0b4 REUSE: use <author> tag in .ui for license info
The .ui files are all GPL-3.0-or-later style, but it's
slightly difficult to keep licensing information in them:
it's XML, so an XML comment might work, but there's no
guarantee that safe/load will preserve them.

Put the SPDX tags in the <author> tag, so that it's visible
in Qt Designer.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
86f66e8f16 REUSE: (GPL-3.0-or-later) all the schema files
- these are vaguely derived from the schema's written by
  artoo@manjaro.org, but totally re-done for JSON-Schema
2020-08-26 02:01:58 +02:00
Adriaan de Groot
fcbd6e38c5 [keyboard] Fix schema -- forgotten field *writeEtcDefaultKeyboard* 2020-08-12 10:29:19 +02:00
Adriaan de Groot
192263cf9d [libcalamares][modules] Use compatibility for QString::split()
- Use the compatibility value, which has an enum value suitable
  for the Qt version in use.
2020-06-23 11:13:55 +02:00
Adriaan de Groot
4a07bd4ae3 CI: import all the rest of the YAML schema
- These have **not** been fixed for validation, so the schema's themselves
  will fail to load. This is a consequence of variations in JSON-Schema
  representations through various drafts. Fixing the schemata is
  fairly straightforward.

This gives us 19 new tests, all of which fail.
2020-06-16 16:06:56 +02:00
Adriaan de Groot
24653c1cc6 [locale] C&P code with repeated bugs from QML branches 2020-06-03 13:42:15 +02:00
Adriaan de Groot
c6d147bde6 [keyboard] Give Canadian English the US keyboard layout, eh 2020-06-03 01:38:11 -07:00
Camilo Higuita
835850c02a [keyboardq] apply the style script 2020-04-03 10:27:06 +02:00
Camilo Higuita
1a46e08cc2 [keyboard] changes to the keyboardmodel to work with qml 2020-04-03 10:26:58 +02:00
Camilo Higuita
0872de7910 [keyboard] Add Config object, split out a keyboardq
- Introduce new QML-ified module for the keyboard
- To share code, move *keyboard* module to a Config-object
2020-04-03 10:19:04 +02:00
Adriaan de Groot
ba8811c628 [keyboard] Apply coding style
- Include order
- ci/calamaresstyle
- modern alias for job-list
2020-03-26 11:08:55 +01:00
Adriaan de Groot
ebb3f319cc [modules] Be more consistent in include punctuation
- Use <> for Qt, system, externals
 - Use double-quotes for Calamares headers
2020-03-09 21:05:15 -05:00
Adriaan de Groot
b044549013 [libcalamares] Merge PluginDllMacro.h into DllMacro.h
- Let's just have one header definining export- and visibility-
   macros for Calamares. They are still selected based on the
   export flags (*_PRO), just defined in one header instead of two.
2020-02-17 11:37:35 +01:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
cf51eb7aab [keyboard] Apply source formatting
- Move errant attribution line to the copyright headers;
   unsure of the year though.
 - Apply Calamares coding style.
2019-04-18 13:41:42 +02:00
Adriaan de Groot
118f9255fd [keyboard] Refactor sectioning
- Look for section in a consistent fashion
 - Simplify parsing loops
2019-04-18 13:36:12 +02:00
Adriaan de Groot
fa70b3aa60 [keyboard] Refactor keyboard model loading
- Don't need private static methods
 - Pass char* if that's what we've got
2019-04-18 13:22:12 +02:00
Adriaan de Groot
3c014a868c [keyboard] Make keyboard preview more robust
- Replace #define with static const char
 - Handle FreeBSD as well (for testing purposes)
2019-04-18 13:06:50 +02:00
Adriaan de Groot
b704933b58 [keyboard] Avoid crash with unconfigured keyboards
- If there's no items at all, ->currentItem() can return nullptr,
   so don't dereference that.

Found on FreeBSD.
2019-04-18 12:56:56 +02:00
Adriaan de Groot
a1e08d2236 [keyboard] Don't use useless rvalue-ref
- Weird && usage here made redundant through RVO, just return
   something normally instead.
2019-04-18 12:06:17 +02:00
Adriaan de Groot
cef2f50510 Reduce warnings about extra ;
- Trailing ; after Q_UNUSED
 - Trailing ; after CALAMARES_RETRANSLATE
2019-04-18 12:06:09 +02:00
Adriaan de Groot
520478847c Make logging more consistent.
- Across all the C++ modules, use Logger::SubEntry for sub/continues
   log lines, instead of somewhat-random indent strings.
2019-04-15 09:02:21 -04:00
Adriaan de Groot
3db708dd04 [keyboard] qDebug -> cDebug 2019-03-20 11:26:02 +01:00
Adriaan de Groot
6071489788 [libcalamaresui] Provide default implementations of next() and back()
- These methods are used for multi-page view-steps, which are rare.
   For all the others, just drop the empty implementation and defer
   to the base class.
2019-02-25 07:49:10 -05:00
Adriaan de Groot
08565b5f17 [libcalamaresui] Remove the signal done() from ViewStep
- The signal is emitted, generally from next(), but not actually used.
2019-02-25 07:34:40 -05:00
Harald Sitter
311af6de5d [locale] prefer native language and country names when available
This basically means we talk about localization in the respective
localized variant. e.g. "German (Germany)" ➡ "Deutsch (Deutschland)".

If geoip lookup failed or isn't configured for whatever reason it's a
stretch to expect the user to know english enough to find their own
language. Preferring the localized strings resolves this issue.

Additionally this happens to bypass #712 respectively
https://bugreports.qt.io/browse/QTBUG-34287
as the native names are properly spelled. So, as long as Qt has localized
names the names will also be properly spelled.
2018-12-13 23:18:37 +01:00
Adriaan de Groot
e7c62c114f [keyboard] Improve debugging output 2018-09-27 13:35:33 +02:00
Adriaan de Groot
3ab891793a [keyboard] Add Austrian keyboard layout
- Map xkb 'at' to 'de' on the text console
 - Thanks Philip Mueller, Kevin Kofler

FIXES #1035
2018-09-26 16:54:39 +02:00