Skip to content
  • Michael Gratton's avatar
    Replace the conversation list store's model on folder change. · 16e3bf01
    Michael Gratton authored
    Rather than keeping a single conversation list model instance around -
    attaching and adding conversations then clearing and detaching
    conversation viewers, simply remove the old model instance and add a new
    one.
    
    This also allows the ConversationListStore::is_clearing property to be
    removed, fixing a related critical warning, and simply unhooking the
    selection-changed signal handler instead when changing the model.
    
    * src/client/components/main-window.vala (MainWindow): Remove props that
      are now dynamically managed. When the conversation monitor changes,
      replace the ConversationListView's model, update progress listeners.
    
    * src/client/conversation-list/conversation-list-view.vala
      (ConversationListView): Remove list store property since the parent
      class already maintains it. Override ::get_model() and ::set_model() to
      use ConversationListStore instances, manage signals on model instances
      when they are set/unset.
    
    * src/client/conversation-list/conversation-list-store.vala
      (ConversationListStore): Replae destructor with an explict destroy
      method that ensures the object is cleaned up enough to actualy be
      finalised. Remove use of is_clearing in ::on_selection_changed() to fix
      critical warning.
    16e3bf01