Skip to content

Commit

Permalink
Keyboard definition in the AY configuration file: Alias AND keymap na…
Browse files Browse the repository at this point in the history
…me is supported (bsc#1159541).
  • Loading branch information
schubi2 committed Jan 20, 2020
1 parent 692e3bb commit 58fb9d4
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 1 deletion.
16 changes: 16 additions & 0 deletions keyboard/src/modules/Keyboard.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ def main
Yast.import "Mode"
Yast.import "ProductFeatures"
Yast.import "Stage"
Yast.import "Report"

# general kb strategy which is used for temporary changes only.
@kb_strategy = Y2Keyboard::Strategies::KbStrategy.new
Expand Down Expand Up @@ -281,6 +282,21 @@ def Import(settings, syntax = :keyboard)
when :language
keyboard = GetKeyboardForLanguage(settings["language"], keyboard)
end

# Checking if the keymap exists. Either it is the real keymap name
# or an alias.
if !Keyboards.code(keyboard)
# Checking if it a real keymap name
checked_keyboard = keyboard
keyboard = Keyboards.alias(checked_keyboard)
if !keyboard
# TRANSLATORS: the "%s" is the kaymap name
Report.Warning(_("Cannot find keymap: %s. Taking default one.") % checked_keyboard)
return false
end
end

# Set it with the keyboard alias name
Set(keyboard)
true
end
Expand Down
15 changes: 15 additions & 0 deletions keyboard/test/keyboard_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,21 @@
subject.Import({"language" => "de"}, :language)
end
end

context "keymap value is given instead of an alias name" do
it "sets the alias name" do
expect(subject).to receive(:Set).with("spanish")
subject.Import({"keymap" => "es"}, :keyboard)
end
end

context "keymap is unknown" do
it "reports a warning" do
expect(subject).not_to receive(:Set)
expect(Yast::Report).to receive(:Warning).with(/Cannot find keymap/)
subject.Import({"keymap" => "foo"}, :keyboard)
end
end
end

end
8 changes: 8 additions & 0 deletions package/yast2-country.changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
-------------------------------------------------------------------
Mon Jan 20 16:35:45 CET 2020 - schubi@suse.de

- Keyboard definition in the AY configuration file: Alias AND
keymap name is supported (bsc#1159541).
- Reporting a warning if the defined keymap has not been found.
- 4.2.15

-------------------------------------------------------------------
Thu Jan 2 15:13:06 UTC 2020 - Josef Reidinger <jreidinger@suse.com>

Expand Down
2 changes: 1 addition & 1 deletion package/yast2-country.spec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@


Name: yast2-country
Version: 4.2.14
Version: 4.2.15
Release: 0
Summary: YaST2 - Country Settings (Language, Keyboard, and Timezone)
License: GPL-2.0-only
Expand Down

0 comments on commit 58fb9d4

Please sign in to comment.