1. 27 Jul, 2016 3 commits
    • Bram Schoenmakers's avatar
      Fix crash when a widget is cached with an old Todo object · 87bfda02
      Bram Schoenmakers authored
      When editing one or more todo items, some items may not have changed, therefore
      having the exact same source text. The EditCommand still deletes the Todo
      instance and creates a new one and puts it in the todo list. But the widget
      cache only looked at the source text, found a widget from before the edit and
      will use it. But the widget still has a reference to the old Todo instance.
      When executing an action on it (e.g. mark it as complete), the TodoList doesn't
      remember that todo item, which results in a crash.
      
      Fixed by updating the reference to the latest Todo instance when the sources
      are equal but the instances are not.
      87bfda02
    • Bram Schoenmakers's avatar
    • Bram Schoenmakers's avatar
      Cache TodoWidgets to improve performance · 772372e9
      Bram Schoenmakers authored
      Having hundreds of todo items slows down the column UI quite a lot when doing
      an update. An update basically throws away all widgets and creates them from
      scratch. That is quite a waste when only one item has changed.
      
      Instead, keep all widgets in a cache, retrievable by the todo's raw text. When
      the raw text changes, a new widget is constructed.
      772372e9
  2. 26 Jul, 2016 1 commit
  3. 23 Jul, 2016 1 commit
  4. 22 Jul, 2016 6 commits
  5. 08 Jul, 2016 1 commit
  6. 03 Jun, 2016 3 commits
  7. 02 Jun, 2016 1 commit
  8. 01 Jun, 2016 1 commit
  9. 30 May, 2016 2 commits
  10. 25 May, 2016 1 commit
  11. 23 May, 2016 5 commits
  12. 22 May, 2016 5 commits
  13. 02 May, 2016 1 commit
  14. 29 Apr, 2016 4 commits
  15. 28 Apr, 2016 1 commit
    • Bram Schoenmakers's avatar
      Fix crash when completing/deleting items after an edit. · c3ef22af
      Bram Schoenmakers authored
      The crash occurs when using text-based identifiers and performing an edit on
      selected items (instead of the whole todo.txt file).
      
      If you edit the text of a child item (having a p tag), then the item is deleted
      using the TodoListBase.delete() instead of TodoList.delete(). But
      this messes up the dependency administration, still thinking that the removed
      todo item is still in the list. When you call the children of any todo item
      (part of the deletion/completion step), it will return a stale Todo item, whose
      number() can not be found anymore in the TodoListBase. That makes it crash.
      c3ef22af
  16. 25 Apr, 2016 4 commits