summaryrefslogtreecommitdiff
path: root/entry_list.py
diff options
context:
space:
mode:
authorTinWoodman92 <chrhodgden@gmail.com>2023-12-16 06:18:44 -0600
committerTinWoodman92 <chrhodgden@gmail.com>2023-12-16 06:18:44 -0600
commit158b36e51c8c2925d6c8af6e08380369d019378e (patch)
treef91fadecf85e982714927eb6ab451c9173e37de0 /entry_list.py
Initial commit
Diffstat (limited to 'entry_list.py')
-rw-r--r--entry_list.py70
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
+
+
+