Commit Graph

8207 Commits

Author SHA1 Message Date
Adriaan de Groot
8fd66933ee Merge branch 'fix-keyboardq' into calamares
This lands Artem's work on supporting non-ASCII layouts better,
which currently only applies to Russian layouts -- it works with
a table, so it is easy to extend for other layouts.

The QML and Widget steps now completely share the Config backend,
which is why there's so many commits here: the Widget page needed
to have most of its code ripped out, and the models for
keyboard data were broken in various ways and needed fixing.

FIXES #1211
2020-10-28 17:03:57 +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
Adriaan de Groot
dca9ae0c93
Merge pull request #1553 from LordTermor/calamares
Initial additional layout support for non-ASCII layouts
2020-10-27 22:11:23 +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
8cf3bd23b9 [keyboardq] Remove superfluous variable (set to true, never changed) 2020-10-27 16:55:02 +01:00
Adriaan de Groot
734dbece8a [keyboardq] Fix include style, remove unnecessary declarations 2020-10-27 16:47:47 +01: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
a940be2bb4 [keyboardq] Load configuration into Config object 2020-10-27 15:46:18 +01:00
Adriaan de Groot
8142d6f86c [keyboardq] Drop unnecessary variable -- just use the Config status 2020-10-27 15:42:27 +01:00
Adriaan de Groot
83b06fe3cb Changes: credits for this round 2020-10-27 15:38:38 +01:00
Adriaan de Groot
98c7cec732 CMake: restore NOTREACHED, without the macro-mess
- gcc (up to at least version 10) is worse at recognizing that all
  cases have been handled, so it complains about all the switches
  that cover enum values.
2020-10-25 18:52:38 +01:00
demmm
f6e6774f92 [keyboardq] fix build 2020-10-25 18:35:03 +01:00
Adriaan de Groot
fea403186f [libcalamares] Search for balance between warnings and annotations
- CI's gcc is too old to analyse a switch() for completeness,
  so the CI build fails.
2020-10-25 17:49:26 +01:00
Adriaan de Groot
478c394d99 [partition] Don't needlessly expose a test symbol 2020-10-25 17:49:26 +01:00
Andrius Štikonas
f629826d40 README: switch to C++17. 2020-10-25 11:54:27 +00:00
Adriaan de Groot
2b9fa0f982 CMake: drop the NOTREACHED macro
- both clang and g++ support __builtin_unreachable(); (as Kevin
   Kofler pointed out) so we don't need the macro to do different things;
 - the compilers have gotten better at detecting unreachable code,
   so instead of inserting macros or fiddly bits, just drop them
   and the unreachable code they comment.
2020-10-25 12:49:49 +01:00
Adriaan de Groot
9a2fca7f5b CMake: prefer normal C++17 [[fallthrough]] annotation 2020-10-25 12:49:49 +01:00
Adriaan de Groot
364d50679f CMake: don't put linker flags in compile-flags variables 2020-10-25 12:49:49 +01:00