Fix update.style maintain
authorJack Miller <jack@codezen.org>
Sun, 16 Nov 2014 00:16:30 +0000 (18:16 -0600)
committerJack Miller <jack@codezen.org>
Sun, 16 Nov 2014 02:21:29 +0000 (20:21 -0600)
canto_curses/main.py
canto_curses/tag.py
canto_curses/tagcore.py

index f438992..defc53d 100644 (file)
@@ -133,6 +133,7 @@ class CantoCurses(CantoClient):
 
     def sigusr1(self, a = None, b = None):
         import threading
+
         held_locks = {}
         code = {}
         curthreads = threading.enumerate()
index 2732e0d..519506d 100644 (file)
@@ -168,48 +168,10 @@ class Tag(PluginHandler, list):
         for item in self:
             if item.id == id:
                 return item
-        return None
 
     def get_ids(self):
         return [ s.id for s in self ]
 
-    # Take a list of ordered ids and reorder ourselves, without generating any
-    # unnecessary add/remove hooks.
-
-    def reorder(self, ids):
-        cur_stories = [ s for s in self ]
-
-        # Perform the actual reorder.
-        stories = [ self.get_id(id) for id in ids ]
-
-        del self[:]
-        list.extend(self, stories)
-
-        # Deal with items that aren't listed. Usually this happens if the item
-        # would be filtered, but is protected for some reason (like selection)
-
-        # NOTE: This is bad behavior, but if we don't retain these items, other
-        # code will crap-out expecting this item to exist. Built-in transforms
-        # are hardened to never discard items with the filter-immune reason,
-        # like selection, so this is just for bad user transforms.
-
-        for s in cur_stories:
-            if s not in self:
-                log.warn("Warning: A filter is filtering filter-immune items.")
-                log.warn("Compensating. This may cause items to jump unexpectedly.")
-                list.append(self, s)
-
-        log.debug("Self: %s" % [ s for s in self ])
-
-        # Handle updating story information.
-        for i, story in enumerate(self):
-            story.set_rel_offset(i)
-            story.set_offset(self.item_offset + i)
-            story.set_sel_offset(self.sel_offset + i)
-
-        # Request redraw to update item counts.
-        self.need_redraw()
-
     # Inform the tag of global index of it's first item.
     def set_item_offset(self, offset):
         if self.item_offset != offset:
@@ -419,7 +381,10 @@ class Tag(PluginHandler, list):
 
             call_hook("curses_stories_added", [ self, added_stories ])
 
-            current_stories.sort()
+            conf = config.get_conf()
+            if conf["update"]["style"] == "maintain":
+                current_stories.sort()
+
             current_stories = [ x[1] for x in current_stories ]
 
             deleted = []
index 174baa0..dbc5963 100644 (file)
@@ -236,16 +236,6 @@ class TagUpdater(SubThread):
         if self.item_removes:
             self.item_tag.remove_items(self.item_removes)
 
-        # If we're using the maintain update style, reorder the feed
-        # properly. Append style requires no extra work (add_items does
-        # it by default).
-
-        conf = config.get_conf()
-
-        if conf["update"]["style"] == "maintain":
-            log.debug("Re-ordering items (update style maintain)")
-            self.item_tag.reorder(self.item_buf)
-
         self.item_tag = None
         self.item_buf = []
         self.item_removes = []