Skip to content
  • Michael Gratton's avatar
    Break out ListBox used to display conversations into standalone widget. · d4676471
    Michael Gratton authored
    The conversation viewer's ListBox is sufficiently complex to warrant its
    own widget. Use empty placeholders for the list per the HIG, and
    correctly fix mamagement of empty folder vs no conversations selected
    this time.
    
    * src/client/application/geary-controller.vala (GearyController):
      Directly manage secondary parts of the conversation viewer, since the
      controller since it has a better and more timely idea of when a
      conversation change is due to folder loading status or from the user
      selecting conversations, and so the viwer doesn't need to hook back
      into the controller. Remove the now-unused conversations_selected
      signal and its callers.
    
    * src/client/conversation-viewer/conversation-listbox.vala: New widget
      for displaying the list of emails for a conversation. Moved relevant
      code from ConversationViewer here. Made adding emails async to get
      better UI responsiveness. Don't implement anything to handle
      conversation changes or emptying the list.
    
    * src/client/conversation-viewer/conversation-viewer.vala: Replace user
      messages - empty folder/search & no/multiple messages selected with new
      EmptyPlaceholder. Remove a lot of the state manage code needed when
      managing the email listbox. Add a new ConversationListBox for every new
      conversation and just throw away.
    
    * src/client/conversation-list/conversation-list-view.vala
      (ConversationListView): Clean up firing the conversations_selected
      signal - don't actually emit it when the model is clearing, and don't
      bother delaying the check either.
    
    * src/client/components/empty-placeholder.vala: New widget for displaying
      empty list and grid placeholders per the HIG.
    
    * src/client/conversation-viewer/conversation-email.vala
      (ConversationEmail): Make manually read a property, since it
      effectively is one.
    
    * src/CMakeLists.txt: Include new source files.
    
    * po/POTFILES.in: Include new source and UI files, and some missing ones.
    
    * ui/CMakeLists.txt: Include new UI files.
    
    * ui/conversation-viewer.ui: Replace user message and splash page with
      placeholders for the new empty placeholders(!).
    
    * ui/empty-placeholder.ui: UI def for new widget class.
    
    * ui/geary.css: Chase widget name/class changes, style new
      empty placeholder UI.
    d4676471