Truncate path in filemanager (#3565)

pull/3558/head
Robert 6 years ago committed by Frans de Jonge
parent b2ec0eba8d
commit 79517eb166

@ -21,6 +21,7 @@ local PluginLoader = require("pluginloader")
local ReaderDictionary = require("apps/reader/modules/readerdictionary")
local ReaderUI = require("apps/reader/readerui")
local ReaderWikipedia = require("apps/reader/modules/readerwikipedia")
local RenderText = require("ui/rendertext")
local Screenshoter = require("ui/widget/screenshoter")
local Size = require("ui/size")
local TextWidget = require("ui/widget/textwidget")
@ -41,6 +42,20 @@ local function restoreScreenMode()
end
end
local function truncatePath(text)
local screen_width = Screen:getWidth()
local face = Font:getFace("xx_smallinfofont")
local reversed_text = string.reverse(text)
local txt_width = RenderText:sizeUtf8Text(0, screen_width, face, reversed_text, nil, false).x
if screen_width - 2 * Size.padding.small < txt_width then
reversed_text = RenderText:truncateTextByWidth(reversed_text, face, screen_width - 2 * Size.padding.small, nil, false)
-- string.reverse() breaks "…" so we delete it
reversed_text = reversed_text:sub(1, -5)
text = "" .. string.reverse(reversed_text)
end
return text
end
local FileManager = InputContainer:extend{
title = _("KOReader File Browser"),
root_path = lfs.currentdir(),
@ -67,7 +82,7 @@ function FileManager:init()
self.path_text = TextWidget:new{
face = Font:getFace("xx_smallinfofont"),
text = filemanagerutil.abbreviate(self.root_path),
text = truncatePath(filemanagerutil.abbreviate(self.root_path)),
}
self.banner = FrameContainer:new{
@ -117,7 +132,7 @@ function FileManager:init()
self.focused_file = nil -- use it only once
function file_chooser:onPathChanged(path) -- luacheck: ignore
FileManager.instance.path_text:setText(filemanagerutil.abbreviate(path))
FileManager.instance.path_text:setText(truncatePath(filemanagerutil.abbreviate(path)))
UIManager:setDirty(FileManager.instance, function()
return "ui", FileManager.instance.path_text.dimen
end)

Loading…
Cancel
Save