From f25ff7a34500c676d7819a519bbde2de166626b0 Mon Sep 17 00:00:00 2001 From: WS64 Date: Sat, 9 Aug 2014 08:52:20 +0200 Subject: [PATCH 1/4] Add missing quotation marks in example and add option to turn on/off chapter markers in mini progress bar --- defaults.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/defaults.lua b/defaults.lua index 56080329d..2096bc7a5 100644 --- a/defaults.lua +++ b/defaults.lua @@ -127,6 +127,8 @@ DMINIBAR_PAGES = true DMINIBAR_NEXT_CHAPTER = true DMINIBAR_BATTERY = true +DMINIBAR_PROGRESS_MARKER = true + -- gesture detector defaults DGESDETECT_DISABLE_DOUBLE_TAP = true @@ -142,9 +144,9 @@ FRONTLIGHT_SENSITIVITY_DECREASE = 2 -- Set a path to a folder that is filled by Calibre (must contain the file metadata.calibre) -- e.g. --- /mnt/sd/.hidden for Kobo with files in ".hidden" on the SD card --- /mnt/onboard/MyPath for Kobo with files in "MyPath" on the device itself --- /mnt/us/documents/ for Kindle files in folder "documents" +-- "/mnt/sd/.hidden" for Kobo with files in ".hidden" on the SD card +-- "/mnt/onboard/MyPath" for Kobo with files in "MyPath" on the device itself +-- "/mnt/us/documents/" for Kindle files in folder "documents" LIBRARY_PATH = nil -- Search parameters From e0c9501f854630004ed9f0475f0c951e8bac75c8 Mon Sep 17 00:00:00 2001 From: WS64 Date: Sat, 9 Aug 2014 08:58:44 +0200 Subject: [PATCH 2/4] Add chapter markers --- frontend/ui/widget/progresswidget.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/ui/widget/progresswidget.lua b/frontend/ui/widget/progresswidget.lua index dafd9c246..1e6c3014d 100644 --- a/frontend/ui/widget/progresswidget.lua +++ b/frontend/ui/widget/progresswidget.lua @@ -15,6 +15,8 @@ local ProgressWidget = Widget:new{ bgcolor = 0, rectcolor = 10, percentage = nil, + TOC = {}, + last = nil, } function ProgressWidget:getSize() @@ -34,6 +36,15 @@ function ProgressWidget:paintTo(bb, x, y) bb:paintRect(x+self.margin_h, y+self.margin_v+self.bordersize, (my_size.w-2*self.margin_h)*self.percentage, (my_size.h-2*(self.margin_v+self.bordersize)), self.rectcolor) + if DMINIBAR_PROGRESS_MARKER then + if #self.TOC > 0 then + for i=1, #self.TOC do + v = self.TOC[i] + bb:paintRect(x+(my_size.w-2*self.margin_h)*(v.page/self.last), y+self.margin_v+self.bordersize, + 2,(my_size.h-2*(self.margin_v+self.bordersize)), self.bordercolor) + end + end + end end function ProgressWidget:setPercentage(percentage) From 844ae29fe5d9b3eed704470f015e3348db4a466d Mon Sep 17 00:00:00 2001 From: WS64 Date: Sat, 9 Aug 2014 08:59:55 +0200 Subject: [PATCH 3/4] Send TOC parameters to progressbar --- frontend/apps/reader/modules/readerfooter.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index 92cf99d81..134440169 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -65,6 +65,8 @@ function ReaderFooter:init() width = math.floor(Screen:getWidth() - text_width - self.padding), height = self.bar_height, percentage = self.progress_percentage, + TOC = self.ui.document:getToc(), + last = self.pages, } local horizontal_group = HorizontalGroup:new{} local bar_container = RightContainer:new{ From 3e4dc9c2828c4371307e7a442e15e0c2c8dfd823 Mon Sep 17 00:00:00 2001 From: WS64 Date: Sat, 9 Aug 2014 09:34:23 +0200 Subject: [PATCH 4/4] Added complete unichar support --- .../apps/filemanager/filemanagersearch.lua | 57 +++++++------------ 1 file changed, 20 insertions(+), 37 deletions(-) diff --git a/frontend/apps/filemanager/filemanagersearch.lua b/frontend/apps/filemanager/filemanagersearch.lua index fc0ba024c..785d5fbce 100644 --- a/frontend/apps/filemanager/filemanagersearch.lua +++ b/frontend/apps/filemanager/filemanagersearch.lua @@ -20,6 +20,25 @@ local Search = InputContainer:new{ results = {}, } +local function unichar (value) + local floor = math.floor + local strchar = string.char + if value < 0 then + return nil + elseif value <= 0x007f then + return string.char (value) + elseif value <= 0x07ff then + return string.char (0xc0 + floor(value/0x40),0x80 + (floor(value) % 0x40)) + elseif value <= 0xffff then + return string.char (0xe0 + floor(value/0x1000), 0x80 + (floor(value/0x40) % 0x40), 0x80 + (floor(value) % 0x40)) + elseif value <= 0x10ffff then + return string.char (0xf0 + floor(value/0x40000), 0x80 + (floor(value/0x1000) % 0x40), 0x80 + (floor(value/0x40) % 0x40), 0x80 + (floor(value) % 0x40)) + else + return nil + end +end + + local function findcalibre(root) local t=nil for entity in lfs.dir(root) do @@ -130,43 +149,7 @@ function Search:find() s=string.sub(s,n,string.len(s)-3) end --- todo: identify \uXXXX values and enter. Better solution: Find a better way how to replace hex-unicodes with \XXX\XXX constructs --- s=string.gsub(s,"\\","\195\160") -- à --- s=string.gsub(s,"\\","\195\178") -- ò --- s=string.gsub(s,"\\","\195\168") -- è --- s=string.gsub(s,"\\","\195\172") -- ì --- s=string.gsub(s,"\\","\195\185") -- ù --- s=string.gsub(s,"\\","\195\161") -- á --- s=string.gsub(s,"\\","\195\179") -- ó --- --- s=string.gsub(s,"\\","\195\173") -- í --- s=string.gsub(s,"\\","\195\186") -- ú --- s=string.gsub(s,"\\","\195\162") -- â --- s=string.gsub(s,"\\","\195\180") -- ô --- s=string.gsub(s,"\\","\195\170") -- ê --- s=string.gsub(s,"\\","\195\174") -- î --- s=string.gsub(s,"\\","\195\187") -- û --- s=string.gsub(s,"\\","\195\163") -- ã --- s=string.gsub(s,"\\","\195\181") -- õ --- s=string.gsub(s,"\\","\195\171") -- ë --- s=string.gsub(s,"\\","\195\175") -- ï --- s=string.gsub(s,"\\","\195\166") -- æ --- s=string.gsub(s,"\\","\195\184") -- ø --- s=string.gsub(s,"\\","\195\167") -- ç --- s=string.gsub(s,"\\","\195\177") -- ñ - - s=string.gsub(s,"\\u00e9","\195\169") -- é - - s=string.gsub(s,"\\u00c4","\195\132") -- Ä - s=string.gsub(s,"\\u00d6","\195\150") -- Ö - s=string.gsub(s,"\\u00dc","\195\156") -- Ü - - s=string.gsub(s,"\\u00e4","\195\164") -- ä - s=string.gsub(s,"\\u00fc","\195\188") -- ü - s=string.gsub(s,"\\u00f6","\195\182") -- ö - - s=string.gsub(s,"\\u00df","\195\159") -- ß - s=string.gsub(s,"\\u2019","'") -- ' + s=string.gsub(s,"\\u([a-f0-9][a-f0-9][a-f0-9][a-f0-9])",function(w) return unichar(tonumber(w, 16)) end) -- ' return s end