- files with the same name but different content are seen as being the same
-
settings should be overwritten by settings in .config/teahaz
-
usercfg & session should be stored under .config/teahaz
-
indicator for sending files
-
indicator for downloading files
-
inline action sending
-
notifications
-
fix up completer
- cant handle less than
self.rows
number of options
- cant handle less than
-
windows compatibility:
- move os specific imports to their proper place
- add more keys to keybinds for windows (specifically CTRL_*)
- convert _GetchWindows __call__ to use wgetch || decode getch output
- test on windows
-
new binds
-
s
-
-
multi level inline codes
-
add help menu for common errors
-
FUTURE: gtk plugin
- change infield cursor char depending on mode
- formatting commands, like
!th break
- add pathbar to bottom in settings (maybe other menus too)
-
pytermgui
get_object_by_id(id)
- store all objects with
ui__id
tag in a global dictionary - make this dict appendable from other sources, as not everyone will use container_from_dict
- create method to return element of id given
- store all objects with
-
pytermgui buttons
- prompts should have a new type, which is a single button selection
- creation of buttons is done with the "ui__button" tag
- handlers of functions can be added by setting their
.handler
attribute
-
color settings
- add highlights category
- make char styles live refresh
- fix toggle
- (maybe) add corner char style
-
profiles menu
- add settings/saving handler (maybe using edit_setting)
- make depth work properly
- add file attribute to all ui elements as they are made
- add handler functions & id system to pytermgui
- bugs
- UI_TRACE function doesn't restore values correctly
- obj.file not set sometimes
- deeper objects dont refresh their values
- UI_TRACE function doesn't restore values correctly
- add settings/saving handler (maybe using edit_setting)
-
login menu
- generate prompts for server options
- basically, the idea is for the choice to be registered after an enter press, and for it to look like timetable.
- create dict to store data like address,nick,users?
- overwrite select to be like asztal's timetable
- overwrite handler for all prompts in serverlist with the id system
- generate prompts for server options
-
multiline:
- implement
\033[7m
highlighting for infield - implement custom cursor & highlight colors
- fix visual_goto_up/down not working
- fix paste not adjusting height
- strip
\n
from paste - fix endless insert tags after
dd
andESC
i
- implement
-
fixes for printing
- figure out what wipes the screen
- make it, like, not do that
-
minor additions
-
add_to_trace
can get the caller function dynamically, so it really should
-
-
new binds
- CTRL_L or something to reprint current ui
-
general ui
- make colorguide nicer
-
messaging lol
-
basic functions first
- add server
- login/register
- basic menu
- login function
- register function
-
top headerbar indicating current chatroom info
-
-
restructure
- create Color class in pytermgui.py and move color things under it
-
add inline formatting symbols
- italic
- bold
- italic_bold
- underline
- strikethrough
-
add prev_get support, extra messages before they send
-
InputFieldCompleter(Container)
""" Container derivative for autocomplete function """
- main goals:
- this object can get a field in the constructor, or create one for itself
- it uses FuzzyWuzzy for autocompletion
- intercepts field's keys to look for RETURN, up/down
- it gets a list of strings to look for, and it uses FW to get the 5 best matches NOTE: this list should be refreshable
- in the first iteration used by FileManager and emoji search
- matching parts of string are highlighted (with settable style)
- main goals:
_________________________
| your input matters |
| your input's cool |
| your input sucks |
| > your input |
-------------------------
-
messages would work better with positional printing
-
teahazrc file in $HOME/.config/teahaz/thconf.py
-
improve parse_inline_codes (refer to comment) !! USE REGEX !!
-
messaging lol
- message
- get
- send
- display
- invent fancy formula to get pos of messages by index
- select
- message
-
strip messages
- send
- receive
-
fix multiline
-
fix conv header
> FileManager(Container)
"""
Container derivative that would show and let users interact
with files.
"""
- main methods (other than Container's):
* [x] cd : change directory
* [x] search(term) : search for `term` in files
* [x] execute(cmd) : execute given command in bash on the file
* [x] open(opt: index) : open selected file with the global filetype handlers
- goals
[x] have keybind support through field
[x] highlight files and directories separately
[x] do magiks :exclamation:
-
--create-chatroom
arg -
fix conv/user switching
- messages should reprint in set_chatroom (lno. 1935)
-
message replies!
- add submit action to message_select
- make reply action pre-set replyId
- add visual representation of replying-to
- make sent message add replyId
- make print_messages read & display replyId
- add goto_reply_parent action
- theres a specific message that breaks it all
> LoadingScreen(Container):
Universal loading screen to be called during
any long operations. For re-implementation,
provide .start() and .stop() methods, and
intercept input.
- methods:
+ set_title
+ show
* interrupts input
+ destroy
* resumes input
- goals
+ different functions can write data to it
+ callbacks are meant to destroy once loading is done
+ can be reimplemented easily in configs
-
universal handling of errors
-
? help menu
-
work on chatroom selector