@ -28,6 +28,7 @@ local TextEditor = WidgetContainer:new{
history_keep_size = 60 , -- hom many to keep in settings
history_keep_size = 60 , -- hom many to keep in settings
normal_font = " x_smallinfofont " ,
normal_font = " x_smallinfofont " ,
monospace_font = " infont " ,
monospace_font = " infont " ,
default_font_size = 20 , -- x_smallinfofont default size
min_file_size_warn = 200000 , -- warn/ask when opening files bigger than this
min_file_size_warn = 200000 , -- warn/ask when opening files bigger than this
}
}
@ -50,7 +51,7 @@ function TextEditor:loadSettings()
self.last_view_pos = self.settings : readSetting ( " last_view_pos " ) or { }
self.last_view_pos = self.settings : readSetting ( " last_view_pos " ) or { }
self.last_path = self.settings : readSetting ( " last_path " ) or ffiutil.realpath ( DataStorage : getDataDir ( ) )
self.last_path = self.settings : readSetting ( " last_path " ) or ffiutil.realpath ( DataStorage : getDataDir ( ) )
self.font_face = self.settings : readSetting ( " font_face " ) or self.normal_font
self.font_face = self.settings : readSetting ( " font_face " ) or self.normal_font
self.font_size = self.settings : readSetting ( " font_size " ) or 20 -- x_smallinfofont default size
self.font_size = self.settings : readSetting ( " font_size " ) or self.default_font_ size
-- The font settings could be saved in G_reader_setting if we want them
-- The font settings could be saved in G_reader_setting if we want them
-- to be re-used by default by InputDialog (on certain conditaions,
-- to be re-used by default by InputDialog (on certain conditaions,
-- when fullscreen or condensed or add_nav_bar...)
-- when fullscreen or condensed or add_nav_bar...)
@ -66,6 +67,7 @@ function TextEditor:loadSettings()
self.auto_para_direction = self.settings : nilOrTrue ( " auto_para_direction " )
self.auto_para_direction = self.settings : nilOrTrue ( " auto_para_direction " )
self.force_ltr_para_direction = self.settings : isTrue ( " force_ltr_para_direction " )
self.force_ltr_para_direction = self.settings : isTrue ( " force_ltr_para_direction " )
self.qr_code_export = self.settings : nilOrTrue ( " qr_code_export " )
self.qr_code_export = self.settings : nilOrTrue ( " qr_code_export " )
self.show_keyboard_on_start = self.settings : nilOrTrue ( " show_keyboard_on_start " )
end
end
function TextEditor : onFlushSettings ( )
function TextEditor : onFlushSettings ( )
@ -78,6 +80,7 @@ function TextEditor:onFlushSettings()
self.settings : saveSetting ( " auto_para_direction " , self.auto_para_direction )
self.settings : saveSetting ( " auto_para_direction " , self.auto_para_direction )
self.settings : saveSetting ( " force_ltr_para_direction " , self.force_ltr_para_direction )
self.settings : saveSetting ( " force_ltr_para_direction " , self.force_ltr_para_direction )
self.settings : saveSetting ( " qr_code_export " , self.qr_code_export )
self.settings : saveSetting ( " qr_code_export " , self.qr_code_export )
self.settings : saveSetting ( " show_keyboard_on_start " , self.show_keyboard_on_start )
self.settings : flush ( )
self.settings : flush ( )
end
end
end
end
@ -96,10 +99,10 @@ function TextEditor:getSubMenuItems()
self.whenDoneFunc = nil -- discard reference to previous TouchMenu instance
self.whenDoneFunc = nil -- discard reference to previous TouchMenu instance
local sub_item_table = {
local sub_item_table = {
{
{
text = _ ( " Text editor s ettings" ) ,
text = _ ( " S ettings" ) ,
sub_item_table = {
sub_item_table = {
{
{
text = _ ( " Set t ext font size" ) ,
text = _ ( " T ext font size" ) ,
keep_menu_open = true ,
keep_menu_open = true ,
callback = function ( )
callback = function ( )
local SpinWidget = require ( " ui/widget/spinwidget " )
local SpinWidget = require ( " ui/widget/spinwidget " )
@ -109,8 +112,8 @@ function TextEditor:getSubMenuItems()
value = font_size ,
value = font_size ,
value_min = 8 ,
value_min = 8 ,
value_max = 26 ,
value_max = 26 ,
ok_text = _ ( " Set font size " ) ,
default_value = self.default_font_size ,
title_text = _ ( " Selec t font size" ) ,
title_text = _ ( " Tex t font size" ) ,
callback = function ( spin )
callback = function ( spin )
self.font_size = spin.value
self.font_size = spin.value
end ,
end ,
@ -155,6 +158,16 @@ Enable this if you are mostly editing code, HTML, CSS…]]),
callback = function ( )
callback = function ( )
self.force_ltr_para_direction = not self.force_ltr_para_direction
self.force_ltr_para_direction = not self.force_ltr_para_direction
end ,
end ,
separator = true ,
} ,
{
text = _ ( " Show keyboard on start " ) ,
checked_func = function ( )
return self.show_keyboard_on_start
end ,
callback = function ( )
self.show_keyboard_on_start = not self.show_keyboard_on_start
end ,
} ,
} ,
{
{
text = _ ( " Enable QR code export " ) ,
text = _ ( " Enable QR code export " ) ,
@ -171,19 +184,19 @@ Export text to QR code, that can be scanned, for example, by a phone.]]),
separator = true ,
separator = true ,
} ,
} ,
{
{
text = _ ( " Select a file to open " ) ,
text = _ ( " New file " ) ,
keep_menu_open = true ,
keep_menu_open = true ,
callback = function ( touchmenu_instance )
callback = function ( touchmenu_instance )
self : setupWhenDoneFunc ( touchmenu_instance )
self : setupWhenDoneFunc ( touchmenu_instance )
self : choose File( )
self : new File( )
end ,
end ,
} ,
} ,
{
{
text = _ ( " Edit a new empty file" ) ,
text = _ ( " Open file" ) ,
keep_menu_open = true ,
keep_menu_open = true ,
callback = function ( touchmenu_instance )
callback = function ( touchmenu_instance )
self : setupWhenDoneFunc ( touchmenu_instance )
self : setupWhenDoneFunc ( touchmenu_instance )
self : new File( )
self : choose File( )
end ,
end ,
separator = true ,
separator = true ,
} ,
} ,
@ -465,7 +478,7 @@ function TextEditor:editFile(file_path, readonly)
local buttons_first_row = { } -- First button on first row, that will be filled with Reset|Save|Close
local buttons_first_row = { } -- First button on first row, that will be filled with Reset|Save|Close
if is_lua then
if is_lua then
table.insert ( buttons_first_row , {
table.insert ( buttons_first_row , {
text = _ ( " Check Lua " ) ,
text = _ ( " Lua check " ) ,
callback = function ( )
callback = function ( )
local parse_error = util.checkLuaSyntax ( input : getInputText ( ) )
local parse_error = util.checkLuaSyntax ( input : getInputText ( ) )
if parse_error then
if parse_error then
@ -504,6 +517,7 @@ function TextEditor:editFile(file_path, readonly)
cursor_at_end = false ,
cursor_at_end = false ,
readonly = readonly ,
readonly = readonly ,
add_nav_bar = true ,
add_nav_bar = true ,
keyboard_hidden = not self.show_keyboard_on_start ,
scroll_by_pan = true ,
scroll_by_pan = true ,
buttons = { buttons_first_row } ,
buttons = { buttons_first_row } ,
-- Set/save view and cursor position callback
-- Set/save view and cursor position callback