1. 03 Oct, 2016 2 commits
    • Michael Gratton's avatar
      Reenable and update code for attached, full pane message composer. · 5184a38f
      Michael Gratton authored
      Display attached+un-embedded composer as an additional ConversationViewer
      stack page, although it realy should be broken as its own top-level
      widget - there's already too much state in ConversationViewer.
      
      * src/client/conversation-viewer/conversation-viewer.vala: Remove old
        composer boxes code. Add new ViewState enum, property and methods to
        define and manipulate the current view state - either conversation or
        composer.
        (do_conversation): New method to put the viewer in conversation mode.
        (do_compose): New method to put the viewer in compose mode, hook up the
        composer widget, and handle ConversationListView selection management
        for now.
        (on_folder_selected, on_conversation_count_changed,
        on_conversations_selected): Ensure these methods do the right thing
        depending on the viewer's current view state.
        (set_paned_composer): Replaced by ::do_compose, fixed call sites.
        (show_multiple_selected): Minor code clean up - moved down to a more
        appropriate location.
      
      * src/client/composer/composer-box.vala (ComposerBox): Don't attempt to
        up-manage it's parent's state, since the parent has a much better idea
        of how best to do that. Likewise move code to manage previous
        ConversationList selection out, provide signal so the a more
        appropriate class can manage it instead.
      
      * src/client/composer/composer-container.vala: Add some method comments.
      
      * ui/conversation-viewer.ui: Add new page to the stack for the composer.
      5184a38f
    • Michael Gratton's avatar
      Convert ConversationViewer to a Stack with a ListBox, remove its WebView. · b29d83e5
      Michael Gratton authored
      * src/client/conversation-viewer/conversation-viewer.vala: Convert to a
        GtkStack. Use a GTK template for constructing the UI. Remove WebView
        and any DOM-related code. Replace the enum DisplayMode and hence the
        HTML spinner and HTML user message with widgets in the stack. Remove
        all menus since they're all message specific and will need to be
        re-implemented for ConversationViewer. Comment out composer related
        code for the moment.
      
      * src/client/application/geary-controller.vala
        (GearyController::conversations_selected): Make both conversations and
        current_folder arguments non-nullable, since it doesn't make any sense
        for there not to be any and simplifies handler impls.
        (GearyController::on_conversations_selected): Don't fire when there
        isn't a current folder.
      
      * src/client/components/main-window.vala (MainWindow::set_styling): Add
        CSS theme code for the the conversation message list.
        (MainWindow::create_layout): Remove GtkFrame, just add the
        ConversationViewer instance directly.
      
      * ui/conversation-viewer.ui: New GtkBuilder template for
        ConversationViewer, implemented as a GtkStack containing widgets for
        displaying the loading spinner, conversation as a GtkListBox, and label
        for user messages.
      
      * ui/CMakeLists.txt, po/POTFILES.in: Added new UI files.
      b29d83e5