diff --git a/.luacheckrc b/.luacheckrc index c162021f6..570307fa9 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -71,9 +71,19 @@ read_globals = { "DCREREADER_CONFIG_LIGHTER_FONT_GAMMA", "DCREREADER_CONFIG_DEFAULT_FONT_GAMMA", "DCREREADER_CONFIG_DARKER_FONT_GAMMA", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_TINY", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_TINY", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_SMALL", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_SMALL", "DCREREADER_CONFIG_LINE_SPACE_PERCENT_SMALL", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_SMALL", "DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_MEDIUM", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_XL_MEDIUM", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_XXL_MEDIUM", "DCREREADER_CONFIG_LINE_SPACE_PERCENT_LARGE", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_LARGE", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_LARGE", "DCREREADER_CONFIG_WORD_GAP_SMALL", "DCREREADER_CONFIG_WORD_GAP_MEDIUM", "DCREREADER_CONFIG_WORD_GAP_LARGE", diff --git a/defaults.lua b/defaults.lua index 02353bfce..c8683a774 100644 --- a/defaults.lua +++ b/defaults.lua @@ -126,9 +126,19 @@ DCREREADER_CONFIG_MARGIN_SIZES_X_HUGE = {140, 140, 140, 140} -- DCREREADER_CONFIG_DARKER_FONT_GAMMA = 25 -- crereader line space percentage +DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_TINY = 70 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_TINY = 75 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_SMALL = 80 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_SMALL = 85 DCREREADER_CONFIG_LINE_SPACE_PERCENT_SMALL = 90 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_SMALL = 95 DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM = 100 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_MEDIUM = 105 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_XL_MEDIUM = 110 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_XXL_MEDIUM = 115 DCREREADER_CONFIG_LINE_SPACE_PERCENT_LARGE = 120 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_LARGE = 125 +DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_LARGE = 130 -- word gap percentage DCREREADER_CONFIG_WORD_GAP_SMALL = 50 diff --git a/frontend/apps/reader/modules/readerfont.lua b/frontend/apps/reader/modules/readerfont.lua index bb7a1f66b..cebc15c61 100644 --- a/frontend/apps/reader/modules/readerfont.lua +++ b/frontend/apps/reader/modules/readerfont.lua @@ -233,7 +233,7 @@ function ReaderFont:onSetFontSize(new_size) end function ReaderFont:onSetLineSpace(space) - self.line_space_percent = math.min(200, math.max(80, space)) + self.line_space_percent = math.min(200, math.max(50, space)) UIManager:show(Notification:new{ text = T( _("Line spacing set to %1%."), self.line_space_percent), timeout = 2, diff --git a/frontend/ui/data/creoptions.lua b/frontend/ui/data/creoptions.lua index dd6fc36a1..4ae484b8a 100644 --- a/frontend/ui/data/creoptions.lua +++ b/frontend/ui/data/creoptions.lua @@ -92,18 +92,39 @@ Note that your selected font size is not affected by this setting.]]), { name = "line_spacing", name_text = S.LINE_SPACING, - toggle = {S.SMALL, S.MEDIUM, S.LARGE}, + buttonprogress = true, values = { + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_TINY, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_TINY, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_SMALL, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_SMALL, DCREREADER_CONFIG_LINE_SPACE_PERCENT_SMALL, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_SMALL, DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XL_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XXL_MEDIUM, DCREREADER_CONFIG_LINE_SPACE_PERCENT_LARGE, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_LARGE, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_LARGE, }, + default_pos = 7, default_value = DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM, event = "SetLineSpace", args = { + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_TINY, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_TINY, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_SMALL, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_SMALL, DCREREADER_CONFIG_LINE_SPACE_PERCENT_SMALL, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_SMALL, DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_L_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XL_MEDIUM, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XXL_MEDIUM, DCREREADER_CONFIG_LINE_SPACE_PERCENT_LARGE, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_X_LARGE, + DCREREADER_CONFIG_LINE_SPACE_PERCENT_XX_LARGE, }, name_text_hold_callback = optionsutil.showValues, -- used by showValues diff --git a/spec/unit/defaults_spec.lua b/spec/unit/defaults_spec.lua index b1782179b..2c192d334 100644 --- a/spec/unit/defaults_spec.lua +++ b/spec/unit/defaults_spec.lua @@ -8,8 +8,8 @@ describe("defaults module", function() it("should load all defaults from defaults.lua", function() Defaults:init() - assert.is_same(82, #Defaults.defaults_name) - assert.is_same("DFULL_SCREEN", Defaults.defaults_name[28]) + assert.is_same(92, #Defaults.defaults_name) + assert.is_same("DFULL_SCREEN", Defaults.defaults_name[38]) end) it("should save changes to defaults.persistent.lua", function() @@ -17,18 +17,18 @@ describe("defaults module", function() os.remove(persistent_filename) -- not in persistent but checked in defaults - Defaults.changed[11] = true - Defaults.changed[19] = true - Defaults.changed[28] = true - Defaults.changed[63] = true - Defaults.changed[77] = true + Defaults.changed[21] = true + Defaults.changed[29] = true + Defaults.changed[38] = true + Defaults.changed[73] = true + Defaults.changed[87] = true Defaults:saveSettings() - assert.is_same(82, #Defaults.defaults_name) - assert.is_same("DFULL_SCREEN", Defaults.defaults_name[28]) - assert.is_same("SEARCH_LIBRARY_PATH", Defaults.defaults_name[77]) - assert.is_same("DTAP_ZONE_BACKWARD", Defaults.defaults_name[63]) - assert.is_same("DCREREADER_CONFIG_WORD_GAP_LARGE", Defaults.defaults_name[19]) - assert.is_same("DCREREADER_CONFIG_MARGIN_SIZES_HUGE", Defaults.defaults_name[11]) + assert.is_same(92, #Defaults.defaults_name) + assert.is_same("DFULL_SCREEN", Defaults.defaults_name[38]) + assert.is_same("SEARCH_LIBRARY_PATH", Defaults.defaults_name[87]) + assert.is_same("DTAP_ZONE_BACKWARD", Defaults.defaults_name[73]) + assert.is_same("DCREREADER_CONFIG_WORD_GAP_LARGE", Defaults.defaults_name[29]) + assert.is_same("DCREREADER_CONFIG_MARGIN_SIZES_HUGE", Defaults.defaults_name[21]) local fd = io.open(persistent_filename, "r") assert.Equals( [[-- For configuration changes that persists between updates @@ -53,10 +53,10 @@ DCREREADER_CONFIG_MARGIN_SIZES_HUGE = { -- in persistent Defaults:init() - Defaults.changed[28] = true - Defaults.defaults_value[28] = 2 - Defaults.changed[63] = true - Defaults.defaults_value[63] = { + Defaults.changed[38] = true + Defaults.defaults_value[38] = 2 + Defaults.changed[73] = true + Defaults.defaults_value[73] = { y = 10, x = 10.125, h = 20.25, @@ -106,8 +106,8 @@ DHINTCOUNT = 2 -- in persistent Defaults:init() - Defaults.changed[28] = true - Defaults.defaults_value[28] = 1 + Defaults.changed[38] = true + Defaults.defaults_value[38] = 1 Defaults:saveSettings() fd = io.open(persistent_filename) assert.Equals(