diff options
author | TinWoodman92 <chrhodgden@gmail.com> | 2023-12-16 06:18:44 -0600 |
---|---|---|
committer | TinWoodman92 <chrhodgden@gmail.com> | 2023-12-16 06:18:44 -0600 |
commit | 158b36e51c8c2925d6c8af6e08380369d019378e (patch) | |
tree | f91fadecf85e982714927eb6ab451c9173e37de0 /entry_list.py |
Initial commit
Diffstat (limited to 'entry_list.py')
-rw-r--r-- | entry_list.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/entry_list.py b/entry_list.py new file mode 100644 index 0000000..09719fd --- /dev/null +++ b/entry_list.py @@ -0,0 +1,70 @@ +#Notes: +# There is a simplification opportinity to depreciate the EntryList class. +# because we are using list index funtionality and not iterator functionalit +# just put the Entry objects into a list object, then create a nav str object that is populated with Entry.text items. +# ks == [b'\r'] will loop to find entry.text == nav_str +# Should we keep EntryList, but move that functionality here? +# the entry.indicate() method is referencing entry.select. May need to keep the .select setter functionality. + +class EntryList(): + def __init__(self, init_list): + self.entries = init_list + self.iter_entries = iter(init_list) + self.entries[0].select = True + + def __iter__(self): + self.iter_entries = iter(self.entries) + return self.iter_entries + + def __next__(self): + return next(self.iter_entries) + + # FOR THE LOVE OF GOD DEVS MAKE BACK A THING + def __back__(self): + pass + + def add_entry(self, entry): + if not entry in self.entries: + entry.select = False + self.entries.append(entry) + self.iter_entries = iter(self.entries) + + def remove_entry(self, entry): + chk = False + if entry in self.entries: + chk = entry.select + self.entries.remove(entry) + self.iter_entries = iter(self.entries) + if chk: + self.entries[0].select = True + + def set_select(self): + i = 0 + for entry in self.entries: + entry.select = (i == 0) + i += 1 + + def nav(self, next = 'NEXT'): + chk = False + if next == 'NEXT': + for entry in self.entries: + if entry.select: + chk = entry.select + entry.select = False + elif chk: + entry.select = chk + chk = False + self.entries[0].select = chk + + elif next == 'PREV': + for entry in reversed(self.entries): + if entry.select: + chk = entry.select + entry.select = False + elif chk: + entry.select = chk + chk = False + self.entries[-1].select = chk + + + |