2
0
mirror of https://github.com/koreader/koreader synced 2024-11-11 19:11:14 +00:00
koreader/frontend/ui/widget
poire-z 0d66ea7555
Text input fixes and enhancements (#4084)
InputText, ScrollTextWidget, TextBoxWidget:
- proper line scrolling when moving cursor or inserting/deleting text
  to behave like most text editors do
- fix cursor navigation, optimize refreshes when moving only the cursor,
  don't recreate the textwidget when moving cursor up/down
- optimize refresh areas, stick to "ui" to avoid a "partial" black
  flash every 6 appended or deleted chars

InputText:
- fix issue when toggling Show password multiple times
- new option: InputText.cursor_at_end (default: true)
- if no InputText.height provided, measure the text widget height
  that we would start with, and use a ScrollTextWidget with that
  fixed height, so widget does not overflow container if we extend
  the text and increase the number of lines
- as we are using "ui" refreshes while text editing, allows refreshing
  the InputText with a diagonal swipe on it (actually, refresh the
  whole screen, which allows refreshing the keyboard too if needed)

ScrollTextWidget:
- properly align scrollbar with its TextBoxWidget

TextBoxWidget:
- some cleanup (added new properties to avoid many method calls), added
  proxy methods for upper widgets to get them
- reordered/renamed/refactored the *CharPos* methods for easier reading
  (sorry for the diff that won't help reviewing, but that was needed)

InputDialog:
- new options:
   allow_newline = false, -- allow entering new lines
   cursor_at_end = true, -- starts with cursor at end of text, ready to append
   fullscreen = false, -- adjust to full screen minus keyboard
   condensed = false, -- true will prevent adding air and balance between elements
   add_scroll_buttons = false, -- add scroll Up/Down buttons to first row of buttons
   add_nav_bar = false, -- append a row of page navigation buttons
- find the most adequate text height, when none provided or fullscreen, to
  not overflow screen (and not be stuck with Cancel/Save buttons hidden)
- had to disable the use of a MovableContainer (many issues like becoming
  transparent when a PathChooser comes in front, Hold to paste from
  clipboard, moving the InputDialog under the keyboard and getting stuck...)

GestureRange: fix possible crash (when event processed after widget
destruction ?)

LoginDialog: fix some ui stack increase and possible crash when switching
focus many times.
2018-07-19 08:30:40 +02:00
..
container [feat, UX] Support the virtualKeyboard on non touch-device (#3796) 2018-03-30 12:46:36 +02:00
bboxwidget.lua
bookstatuswidget.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
button.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
buttondialog.lua Add MovableContainer: allow moving some widgets (#3636) 2018-01-29 21:27:24 +01:00
buttondialogtitle.lua Add MovableContainer: allow moving some widgets (#3636) 2018-01-29 21:27:24 +01:00
buttonprogresswidget.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
buttontable.lua Buttons: properly truncate text when too long (#4057) 2018-07-06 21:05:12 +02:00
checkbutton.lua OpenWithDialog widget: improved display (#4078) 2018-07-15 22:48:19 +02:00
checkmark.lua
closebutton.lua
configdialog.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
confirmbox.lua Add MovableContainer: allow moving some widgets (#3636) 2018-01-29 21:27:24 +01:00
datewidget.lua [fix, UX] timewidget and datewidget in landscape mode (#3666) 2018-02-07 18:45:46 +01:00
dictquicklookup.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
eventlistener.lua
filechooser.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
fixedtextwidget.lua
focusmanager.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
frontlightwidget.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
horizontalgroup.lua
horizontalspan.lua
htmlboxwidget.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
hyphenationlimits.lua cre hyphenation: allow for setting min left/right fragment length (#3890) 2018-04-19 14:24:04 +02:00
iconbutton.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
imageviewer.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
imagewidget.lua Bookmarks, CoverBrowser: scale dogear icon (#4081) 2018-07-19 08:18:55 +02:00
infomessage.lua [feat, UX] Support the virtualKeyboard on non touch-device (#3796) 2018-03-30 12:46:36 +02:00
inputdialog.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
inputtext.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
keyvaluepage.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
linewidget.lua
linkbox.lua
listview.lua
logindialog.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
menu.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
multiconfirmbox.lua Wikipedia link: check if previously saved as EPUB (#3837) 2018-04-06 21:13:25 +02:00
multiinputdialog.lua Fix focus/unfocus in MultiInputDialog (#4060) 2018-07-08 00:45:27 +02:00
naturallightwidget.lua [fix, UX] naturallightwidget: Reduce text size in button 2018-04-06 22:12:25 +02:00
networksetting.lua Dismiss Wi-Fi scan popup after connection (#4055) 2018-07-07 17:06:58 +02:00
notification.lua bump crengine: fix drawing position of bottom and right borders (#4013) 2018-06-14 21:53:43 +02:00
numberpickerwidget.lua cre hyphenation: allow for setting min left/right fragment length (#3890) 2018-04-19 14:24:04 +02:00
opdsbrowser.lua [feat, UX] Support the virtualKeyboard on non touch-device (#3796) 2018-03-30 12:46:36 +02:00
openwithdialog.lua OpenWithDialog widget: improved display (#4078) 2018-07-15 22:48:19 +02:00
overlapgroup.lua
pathchooser.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
physicalkeyboard.lua [fix, spec] InputText:addChars() unicode handling (#3729) 2018-03-07 10:22:49 +01:00
progresswidget.lua ProgressWidget: add some bound checks (#3916) 2018-04-27 22:22:33 +02:00
radiobutton.lua OpenWithDialog widget: improved display (#4078) 2018-07-15 22:48:19 +02:00
radiobuttontable.lua OpenWithDialog widget: improved display (#4078) 2018-07-15 22:48:19 +02:00
rectspan.lua
screensaverwidget.lua
screenshoter.lua
scrollhtmlwidget.lua [UX] Dict: scroll back with tap: go to bottom of prev definition (#3647) 2018-01-31 09:16:34 +01:00
scrolltextwidget.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
spinwidget.lua
textboxwidget.lua Text input fixes and enhancements (#4084) 2018-07-19 08:30:40 +02:00
textviewer.lua UI Behavior tweaks (#3983) 2018-06-02 12:10:55 -04:00
textwidget.lua Buttons: properly truncate text when too long (#4057) 2018-07-06 21:05:12 +02:00
timewidget.lua [fix, UX] timewidget and datewidget in landscape mode (#3666) 2018-02-07 18:45:46 +01:00
toggleswitch.lua cre: add Word Gap setting to bottom config panel (#4026) 2018-06-30 16:55:43 +02:00
touchmenu.lua TouchMenu: properly truncate item text when too long (#4052) 2018-07-05 07:20:15 +02:00
trapwidget.lua Trapper: adds dismissableRunInSubprocess() + new TrapWidget 2018-01-17 21:36:21 +01:00
verticalgroup.lua
verticalscrollbar.lua
verticalspan.lua
virtualkeyboard.lua Misc. minor fixes (#4080) 2018-07-16 17:24:04 +02:00
widget.lua