Commit Graph

206 Commits

Author SHA1 Message Date
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
Adriaan de Groot
0396ed28b7 [keyboard] Update some origin information for the keyboard map 2018-09-24 17:05:36 +02:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
ac769d1de8 Style: use QStringLiteral
- In many cases, using QLatin1String is a de-optimization, when
   applied to a C string literal. Kevin Kofler pointed out that
   those should basically all be QStringLiteral, instead. (Compile
   tests with -O3 show that in the optimized object file, the
   code size difference is negligible).
 - Drop the explicit constructor entirely in cases where we're calling
   QProcess::execute(), for consistency.
 - Do a little less messing around in the mapping of keyboard locales
   to keyboard map names.
2018-06-15 04:41:41 -04:00
Adriaan de Groot
583cc06f7c [keyboard] Warnings-- for nullptr 2018-03-06 16:23:44 +01:00
Adriaan de Groot
3f77fb1d16 [modules] Use new convenience logging methods 2018-02-12 11:58:34 -05:00
Adriaan de Groot
3ff68bce98 [keyboard] Correct guessing for Arabic variants 2018-01-09 16:24:55 +01:00
Adriaan de Groot
7249b41e3e [keyboard] Explain table format, add more edge cases 2018-01-08 11:02:20 -05:00
Adriaan de Groot
0d56b9b9c5 Merge branch 'master' into i689-kayboard-layout 2018-01-08 16:19:27 +01:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
9b5772c482 Keyboard: warn about missing ckbcomp, thanks @abucodonosor 2017-10-23 11:52:11 -04:00
Adriaan de Groot
6704121946 Keyboard: try a little harder to match keyboard layouts with selected system language 2017-09-26 11:32:52 -04:00
Adriaan de Groot
9b9801d48d Code-style: format the keyboard module 2017-09-26 11:22:51 +02:00
Adriaan de Groot
ea07d9e1d8 Merge branch 'master' into i689-kayboard-layout 2017-09-26 11:20:17 +02:00
Adriaan de Groot
13807ceabf Licensing: add self
- to all the files I've touched recently
 - to (very incomplete) AUTHORS list

Licensing: add license info to top-level CMakeLists.txt
2017-09-19 15:57:25 +02:00
Adriaan de Groot
bd37572fd8 Clang: reduce warnings 2017-09-13 19:03:56 +02:00
Adriaan de Groot
3527c82327 Clang: make private internal class less visible 2017-09-10 13:22:54 -04:00
Adriaan de Groot
bd3786ebeb Clang: reduce warnings in various places 2017-09-10 13:22:32 -04:00
Adriaan de Groot
196b1567db Modules: remove boilerplate module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
3b0b05186a Clang: reduce warnings 2017-06-27 07:36:46 -04:00
Adriaan de Groot
e9ab78cd52 Keyboard: special-case, pc+latin interpreted as us,
instead of as unknown which selects the first layout in the list.
2017-06-19 11:12:23 -04:00
Adriaan de Groot
6ef2f5d769 Keyboard: code-docs, copyright 2017-06-19 10:46:30 -04:00
Adriaan de Groot
59605d552e Keyboard: simplify execution of setxkbmap.
Use QProcess::execute() with the 'safer' argument-list, rather than
escaping and de-escaping strings. Also reduce noise by only passing
a variant if there is one.
2017-06-19 10:41:56 -04:00
Adriaan de Groot
88715b9a0f Keyboard: guess at layout based on locale
Split locale into <language>_<country> and go looking for keyboard
layouts that match. Do that in reverse, so look for country first.

- known weakness is el_CY (should get layout gr) because CY and el
  don't name any keyboard layout.
- known weakness are Hausa, Igbo .. which are ha_NG and ig_NG. They select
  keyboard layout ng, which is labeled "English (Nigeria)"; they ought
  to select ng(hausa) and ng(igbo), which are the right variant keyboard
  layouts to use.
- similar selecting a locale in Canada (en_CA, fr_CA, iu_CA ...) will
  select keyboard layout ca, which is for French-speaking Canada.
  Locale en_CA should select keyboard en -- e.g. en(us). But iu_CA
  (Inuktituk) needs layout ca(ike).
2017-06-08 10:15:30 +02:00
Adriaan de Groot
8d9f75ffba Keyboard: refactor type declaration 2017-06-08 10:15:30 +02:00
Adriaan de Groot
3ae12f2573 Keyboard: avoid multiple connects
When selecting keyboard layout, pause, then select another, the
QTimer wasn't being disconnected from the previously selected
language, so the second selection would fire the timeout, and
then call *two* slots .. and then three, ... Disconnect when
the timer fires, too.
2017-06-06 09:22:21 -04:00
Teo Mrnjavac
c36b1f66a5 Provide default for m_writeEtcDefaultKeyboard in KeyboardViewStep. 2016-12-13 12:17:07 +01:00
Teo Mrnjavac
e2b2d761c2 Do not LINK_PUBLIC by default. 2016-12-07 16:37:29 +01:00
Teo Mrnjavac
5bf4bb8787 Make writeEtcDefaultKeyboard an option in keyboard.conf. 2016-09-26 10:57:57 +02:00
Teo Mrnjavac
37384279e5 Add support for writing keymap data to /etc/default/keyboard. 2016-09-22 12:32:30 +02:00
Andrius Štikonas
9f0ca042fe Port away from most cases of Q_FOREACH to C++11 ranged for loop.
In order to avoid deep copies, Qt containers over which we iterate must be const
The remaining unported cases require qAsConst (Qt 5.7) or std::as_const (C++17)
2016-09-01 16:46:14 +01:00
Teo Mrnjavac
fba8e448bb Fix build on very old GCC. 2016-06-13 17:47:54 +02:00
Teo Mrnjavac
09f650ecf5 Use KeyboardLayoutModel+QListView instead of QListWidget, and defer setxkbmap until keyboardSearch is over. 2016-05-31 19:06:53 +02:00
Teo Mrnjavac
4a2cd903f7 New KeyboardLayoutModel. 2016-05-31 19:06:07 +02:00
Teo Mrnjavac
90b156f97f PluginFactory in Keyboard module. 2015-09-15 16:48:42 +02:00
Teo Mrnjavac
94a1f44fd7 Initialize all members and use nullptr instead of 0. 2015-06-13 21:33:20 +02:00
Teo Mrnjavac
9bded2dcfc Initialize all members. 2015-06-13 21:33:00 +02:00
Teo Mrnjavac
654bc9f471 Add debug output to SetKeyboardLayoutJob.
CAL-206 #comment I've just pushed some debug output to master, could you please test again and post a new log?
2015-04-03 15:04:24 +02:00
Gormogon
e2d05cb9f2 Align Pointers 2015-02-25 19:57:19 -05:00
Gormogon
9ef5f581a3 Update 'kbd-model-map' from Upstream 2015-02-18 10:06:37 -05:00
Teo Mrnjavac
171248ad4f Add isBackEnabled checks to all ViewSteps. 2015-01-29 22:46:07 +01:00
Kevin Kofler
9b75999706 keyboard: Preselect the current keyboard layout variant. 2014-12-05 02:25:08 +01:00
Teo Mrnjavac
52a1a28696 Fix focus handling in Keyboard page. 2014-11-26 18:56:09 +01:00
Teo Mrnjavac
688cc8f798 Use Retranslator in KeyboardPage. 2014-11-11 15:46:49 +01:00
Kevin Kofler
3e9de2a05a keyboard: Allow absolute paths for the xOrgConfFileName setting.
This should ensure it works on all distributions.
2014-11-11 14:59:30 +01:00
Kevin Kofler
86d51b4a9c keyboard: Pass settings directly, not through GlobalStorage.
Pass the settings from keyboard.conf directly to the
SetKeyboardLayoutJob rather than through GlobalStorage.
2014-11-11 14:37:05 +01:00
Kevin Kofler
2fec6e3202 keyboard: kbd-model-map: Add link to the original.
In particular, to the upstream git log for the file.
2014-11-11 14:04:21 +01:00
Kevin Kofler
bfdcf0dbc0 keyboard: Coding style fixes. 2014-11-11 13:57:08 +01:00
Kevin Kofler
4f9f7d7858 keyboard: Write the keyboard model and layout settings to the root mount point.
This is implemented as a new SetKeyboardLayout job that does the work.

Portions of the code are adapted from systemd-localed's source code,
which is under a compatible license (LGPLv2.1+, can be converted to our
GPLv3+ license). I ported it from C to to C++/Qt and made some minor
tweaks to the mapping logic (from X11 to vconsole layouts) though.

Fixes #31.

Tested on a Fedora Remix (Kannolo 21) with the default module settings
(finds the converted X11 keymaps for the virtual console) and with
convertedKeymapPath: "" (does the legacy keymap conversion as expected).
2014-11-11 04:48:03 +01:00
Teo Mrnjavac
d97bb47f09 Add proper QResrouce system to libcalamaresui, finish up prepare checks
This also adds ImageRegistry, a SVG cache, a bunch of utility functions
for shared pixmaps in CalamaresUtilsGui and renames several qrc files
in viewmodules.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
83ad1fae0e Debug output in keyboard viewmodule. 2014-08-06 15:37:21 +02:00
Teo Mrnjavac
8f10c21e5b Big configuration overhaul.
Module descriptors are now module.desc, no configuration allowed inside.
Module config files are <modulename>.conf, installed in
share/calamares/modules.
settings.conf is read from /etc/calamares, then share/calamares, and if
running with --debug also in the current dir.
Module config files are read from /etc/calamares/modules, then
share/calamares/modules, and if running with --debug also in
src/modules/<modulename> relative to the current dir.
2014-08-06 11:54:45 +02:00
Teo Mrnjavac
cc2e49c6ae Store keyboard layout information in GlobalStorage. 2014-08-01 12:42:34 +02:00
Aurélien Gâteau
75a5bdac60 Fix fuzzy edges around keys (and a warning) 2014-07-30 14:17:14 +02:00
Teo Mrnjavac
e622fe4f99 Add prettyStatus to Keyboard module. 2014-07-08 18:28:28 +02:00
Teo Mrnjavac
b98c071f94 Prepare for late enqueuing of jobs to the JobQueue. 2014-07-08 14:03:06 +02:00
Teo Mrnjavac
7a99214ddb New keyboard viewmodule, based on the one from Manjaro's minst. 2014-07-04 15:33:59 +02:00