[meld/deprecation-cleanup: 12/12] Merge branch 'master' into deprecation-cleanup



commit 41bb22ab5f505bbd7403d149ae3904e64693d2e3
Merge: d7222d2e 0bab0435
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Jan 6 11:31:59 2019 +1000

    Merge branch 'master' into deprecation-cleanup

 NEWS                         |  21 ++++
 meld/conf.py                 |   2 +-
 meld/dirdiff.py              |  13 +--
 meld/filediff.py             |  96 +++++++++--------
 meld/resources/ui/dirdiff.ui |   4 +
 po/pt_BR.po                  | 239 +++++++++++++++++++++----------------------
 po/tr.po                     | 232 +++++++++++++++++++++--------------------
 7 files changed, 314 insertions(+), 293 deletions(-)
---
diff --cc meld/conf.py
index 74fd646f,fb65797c..efbd4ac3
--- a/meld/conf.py
+++ b/meld/conf.py
@@@ -1,17 -1,15 +1,17 @@@
  
  import os
  import sys
 +from pathlib import Path
  
  __package__ = "meld"
- __version__ = "3.19.2"
+ __version__ = "3.21.0"
  
  APPLICATION_ID = "org.gnome.meld"
 +RESOURCE_BASE = '/org/gnome/meld'
  
  # START; these paths are clobbered on install by meld.build_helpers
 -DATADIR = os.path.join(sys.prefix, "share", "meld")
 -LOCALEDIR = os.path.join(sys.prefix, "share", "locale")
 +DATADIR = Path(sys.prefix) / "share" / "meld"
 +LOCALEDIR = Path(sys.prefix) / "share" / "locale"
  # END
  
  # Flag enabling some workarounds if data dir isn't installed in standard prefix
diff --cc meld/dirdiff.py
index 506416fd,6fb8eb52..b2f6e302
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@@ -435,19 -388,11 +435,11 @@@ class DirDiff(Gtk.VBox, tree.TreeviewCo
          self.custom_labels = []
          self.set_num_panes(num_panes)
  
 -        self.widget.connect("style-updated", self.model.on_style_updated)
 -        self.model.on_style_updated(self.widget)
 +        self.connect("style-updated", self.model.on_style_updated)
 +        self.model.on_style_updated(self)
  
          self.do_to_others_lock = False
-         self.focus_in_events = []
-         self.focus_out_events = []
          for treeview in self.treeview:
-             handler_id = treeview.connect(
-                 "focus-in-event", self.on_treeview_focus_in_event)
-             self.focus_in_events.append(handler_id)
-             handler_id = treeview.connect(
-                 "focus-out-event", self.on_treeview_focus_out_event)
-             self.focus_out_events.append(handler_id)
              treeview.set_search_equal_func(tree.treeview_search_cb, None)
          self.force_cursor_recalculate = False
          self.current_path, self.prev_path, self.next_path = None, None, None
@@@ -1282,14 -1197,12 +1273,12 @@@
          self._do_to_others(view, self.treeview, "collapse_row", (path,))
          self._update_diffmaps()
  
++    @Template.Callback()
      def on_treeview_focus_in_event(self, tree, event):
          self.focus_pane = tree
 -        pane = self.treeview.index(tree)
 -        self.on_treeview_selection_changed(tree.get_selection(), pane)
 +        self.update_action_sensitivity()
          tree.emit("cursor-changed")
  
-     def on_treeview_focus_out_event(self, tree, event):
-         self.update_action_sensitivity()
- 
      def run_diff_from_iter(self, it):
          row_paths = self.model.value_paths(it)
          gfiles = [Gio.File.new_for_path(p)
diff --cc meld/filediff.py
index 99fc19ea,a76a8a93..59b9732d
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@@ -927,66 -856,71 +927,74 @@@ class FileDiff(Gtk.VBox, MeldDoc)
      def check_save_modified(self, buffers=None):
          response = Gtk.ResponseType.OK
          buffers = buffers or self.textbuffer[:self.num_panes]
-         modified = [b.get_modified() for b in buffers]
-         labels = [b.data.label for b in buffers]
-         if any(modified):
+         if any(b.get_modified() for b in buffers):
 -            dialog = Component("filediff.ui", "check_save_dialog")
 -            dialog.widget.set_transient_for(self.widget.get_toplevel())
 -            message_area = dialog.widget.get_message_area()
 +            builder = Gtk.Builder.new_from_resource(
 +                '/org/gnome/meld/ui/save-confirm-dialog.ui')
 +            dialog = builder.get_object('save-confirm-dialog')
 +            dialog.set_transient_for(self.get_toplevel())
 +            message_area = dialog.get_message_area()
 +
              buttons = []
-             for label, should_save in zip(labels, modified):
-                 button = Gtk.CheckButton.new_with_label(label)
-                 button.set_sensitive(should_save)
-                 button.set_active(should_save)
+             for buf in buffers:
+                 button = Gtk.CheckButton.new_with_label(buf.data.label)
+                 needs_save = buf.get_modified()
+                 button.set_sensitive(needs_save)
+                 button.set_active(needs_save)
                  message_area.pack_start(
                      button, expand=False, fill=True, padding=0)
                  buttons.append(button)
              message_area.show_all()
+ 
 -            response = dialog.widget.run()
 +            response = dialog.run()
              try_save = [b.get_active() for b in buttons]
 -            dialog.widget.destroy()
 +            dialog.destroy()
-             if response == Gtk.ResponseType.OK and any(try_save):
-                 for i in range(self.num_panes):
+ 
+             if response == Gtk.ResponseType.OK:
+                 for i, buf in enumerate(buffers):
                      if try_save[i]:
-                         self.save_file(i)
-                 return Gtk.ResponseType.CANCEL
+                         self.save_file(self.textbuffer.index(buf))
  
-         if response == Gtk.ResponseType.DELETE_EVENT:
-             response = Gtk.ResponseType.CANCEL
-         elif response == Gtk.ResponseType.CLOSE:
-             response = Gtk.ResponseType.OK
+                 # Regardless of whether these saves are successful or not,
+                 # we return a cancel here, so that other closing logic
+                 # doesn't run. Instead, the file-saved callback from
+                 # save_file() handles closing files and setting state.
+                 return Gtk.ResponseType.CANCEL
+             elif response == Gtk.ResponseType.DELETE_EVENT:
+                 response = Gtk.ResponseType.CANCEL
+             elif response == Gtk.ResponseType.CLOSE:
+                 response = Gtk.ResponseType.OK
  
          if response == Gtk.ResponseType.OK and self.meta:
-             parent = self.meta.get('parent', None)
-             saved = self.meta.get('middle_saved', False)
-             prompt_resolve = self.meta.get('prompt_resolve', False)
-             if prompt_resolve and saved and parent.has_command('resolve'):
-                 primary = _("Mark conflict as resolved?")
-                 secondary = _(
-                     "If the conflict was resolved successfully, you may mark "
-                     "it as resolved now.")
-                 buttons = ((_("Cancel"), Gtk.ResponseType.CANCEL),
-                            (_("Mark _Resolved"), Gtk.ResponseType.OK))
-                 resolve_response = misc.modal_dialog(
-                     primary, secondary, buttons, parent=self,
-                     messagetype=Gtk.MessageType.QUESTION)
- 
-                 if resolve_response == Gtk.ResponseType.OK:
-                     bufdata = self.textbuffer[1].data
-                     conflict_gfile = bufdata.savefile or bufdata.gfile
-                     # It's possible that here we're in a quit callback,
-                     # so we can't schedule the resolve action to an
-                     # idle loop; it might never happen.
-                     parent.command(
-                         'resolve', [conflict_gfile.get_path()], sync=True)
+             self.prompt_resolve_conflict()
          elif response == Gtk.ResponseType.CANCEL:
              self.state = ComparisonState.Normal
  
          return response
  
+     def prompt_resolve_conflict(self):
+         parent = self.meta.get('parent', None)
+         saved = self.meta.get('middle_saved', False)
+         prompt_resolve = self.meta.get('prompt_resolve', False)
+         if prompt_resolve and saved and parent.has_command('resolve'):
+             primary = _("Mark conflict as resolved?")
+             secondary = _(
+                 "If the conflict was resolved successfully, you may mark "
+                 "it as resolved now.")
+             buttons = ((_("Cancel"), Gtk.ResponseType.CANCEL),
+                        (_("Mark _Resolved"), Gtk.ResponseType.OK))
+             resolve_response = misc.modal_dialog(
 -                primary, secondary, buttons, parent=self.widget,
++                primary, secondary, buttons, parent=self,
+                 messagetype=Gtk.MessageType.QUESTION)
+ 
+             if resolve_response == Gtk.ResponseType.OK:
+                 bufdata = self.textbuffer[1].data
+                 conflict_gfile = bufdata.savefile or bufdata.gfile
+                 # It's possible that here we're in a quit callback,
+                 # so we can't schedule the resolve action to an
+                 # idle loop; it might never happen.
+                 parent.command(
+                     'resolve', [conflict_gfile.get_path()], sync=True)
+ 
      def on_delete_event(self):
          self.state = ComparisonState.Closing
          response = self.check_save_modified()
diff --cc meld/resources/ui/dirdiff.ui
index 9e82e75e,00000000..0d109a12
mode 100644,000000..100644
--- a/meld/resources/ui/dirdiff.ui
+++ b/meld/resources/ui/dirdiff.ui
@@@ -1,529 -1,0 +1,533 @@@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<interface>
 +  <!-- interface-requires gtk+ 3.0 -->
 +  <!-- interface-requires meld.ui.gladesupport 0.0 -->
 +  <object class="GtkActionGroup" id="DirdiffActions">
 +    <child>
 +      <object class="GtkAction" id="DirCompare">
 +        <property name="label" translatable="yes">_Compare</property>
 +        <property name="tooltip" translatable="yes">Compare selected files</property>
 +        <property name="stock_id">gtk-dialog-info</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_button_diff_clicked" swapped="no"/>
 +      </object>
++      <accelerator key="Return"/>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="DirCollapseRecursively">
 +        <property name="label" translatable="yes">Collapse Recursively</property>
 +        <property name="tooltip" translatable="yes">Collapse selected folder and all subfolders</property>
 +        <property name="stock_id">gtk-dialog-info</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_collapse_recursive_clicked" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="DirExpandRecursively">
 +        <property name="label" translatable="yes">Expand Recursively</property>
 +        <property name="tooltip" translatable="yes">Expand selected folder and all subfolders</property>
 +        <property name="stock_id">gtk-dialog-info</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_expand_recursive_clicked" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="DirCopyLeft">
 +        <property name="label" translatable="yes">Copy to _Left</property>
 +        <property name="tooltip" translatable="yes">Copy to left</property>
 +        <property name="stock_id">gtk-go-back</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_button_copy_left_clicked" swapped="no"/>
 +      </object>
 +      <accelerator key="Left" modifiers="GDK_MOD1_MASK"/>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="DirCopyRight">
 +        <property name="label" translatable="yes">Copy to _Right</property>
 +        <property name="tooltip" translatable="yes">Copy to right</property>
 +        <property name="stock_id">gtk-go-forward</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_button_copy_right_clicked" swapped="no"/>
 +      </object>
 +      <accelerator key="Right" modifiers="GDK_MOD1_MASK"/>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="DirDelete">
 +        <property name="tooltip" translatable="yes">Delete selected</property>
 +        <property name="stock_id">gtk-delete</property>
 +        <property name="is_important">True</property>
 +        <signal name="activate" handler="on_button_delete_clicked" swapped="no"/>
 +      </object>
 +      <accelerator key="Delete"/>
 +    </child>
 +    <child>
 +      <object class="GtkAction" id="Hide">
 +        <property name="label" translatable="yes">Hide</property>
 +        <property name="tooltip" translatable="yes">Hide selected</property>
 +        <property name="stock_id">gtk-no</property>
 +        <signal name="activate" handler="on_filter_hide_current_clicked" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkToggleAction" id="IgnoreCase">
 +        <property name="label" translatable="yes">Ignore Filename Case</property>
 +        <property name="tooltip" translatable="yes">Consider differently-cased filenames that are 
otherwise-identical to be the same</property>
 +        <property name="stock_id">gtk-italic</property>
 +        <signal name="toggled" handler="on_button_ignore_case_toggled" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkToggleAction" id="ShowSame">
 +        <property name="label" translatable="yes">Same</property>
 +        <property name="tooltip" translatable="yes">Show identical</property>
 +        <property name="stock_id">gtk-apply</property>
 +        <property name="is_important">True</property>
 +        <signal name="toggled" handler="on_filter_state_toggled" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkToggleAction" id="ShowNew">
 +        <property name="label" translatable="yes">New</property>
 +        <property name="tooltip" translatable="yes">Show new</property>
 +        <property name="stock_id">gtk-add</property>
 +        <property name="is_important">True</property>
 +        <signal name="toggled" handler="on_filter_state_toggled" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkToggleAction" id="ShowModified">
 +        <property name="label" translatable="yes">Modified</property>
 +        <property name="tooltip" translatable="yes">Show modified</property>
 +        <property name="stock_id">gtk-remove</property>
 +        <property name="is_important">True</property>
 +        <signal name="toggled" handler="on_filter_state_toggled" swapped="no"/>
 +      </object>
 +    </child>
 +    <child>
 +      <object class="GtkToggleAction" id="CustomFilterMenu">
 +        <property name="label" translatable="yes">Filters</property>
 +        <property name="tooltip" translatable="yes">Set active filters</property>
 +        <property name="is_important">True</property>
 +        <signal name="toggled" handler="on_custom_filter_menu_toggled" swapped="no"/>
 +      </object>
 +    </child>
 +  </object>
 +  <template class="DirDiff" parent="GtkVBox">
 +    <property name="visible">True</property>
 +    <property name="can_focus">False</property>
 +    <child>
 +      <object class="DiffGrid" id="grid">
 +        <property name="visible">True</property>
 +        <property name="can_focus">False</property>
 +        <child>
 +          <object class="GtkToolbar" id="file_toolbar0">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="show-arrow">False</property>
 +            <property name="icon-size">1</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +            <child>
 +              <object class="GtkToolItem" id="fileentry_toolitem0">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <property name="receives_default">False</property>
 +                <child>
 +                  <object class="GtkFileChooserButton" id="fileentry0">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">False</property>
 +                    <property name="hexpand">True</property>
 +                    <property name="action">select-folder</property>
 +                    <signal name="file-set" handler="on_fileentry_file_set" swapped="no"/>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">1</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="file_toolbar1">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="show-arrow">False</property>
 +            <property name="icon-size">1</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +            <child>
 +              <object class="GtkToolItem" id="fileentry_toolitem1">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <property name="receives_default">False</property>
 +                <child>
 +                  <object class="GtkFileChooserButton" id="fileentry1">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">False</property>
 +                    <property name="hexpand">True</property>
 +                    <property name="action">select-folder</property>
 +                    <signal name="file-set" handler="on_fileentry_file_set" swapped="no"/>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">3</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="file_toolbar2">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="show-arrow">False</property>
 +            <property name="icon-size">1</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +            <child>
 +              <object class="GtkToolItem" id="fileentry_toolitem2">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <property name="receives_default">False</property>
 +                <child>
 +                  <object class="GtkFileChooserButton" id="fileentry2">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">False</property>
 +                    <property name="hexpand">True</property>
 +                    <property name="action">select-folder</property>
 +                    <signal name="file-set" handler="on_fileentry_file_set" swapped="no"/>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">5</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="dummy_toolbar_diffmap1">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +          </object>
 +          <packing>
 +            <property name="left_attach">6</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="DiffMap" id="diffmap1">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="vexpand">True</property>
 +          </object>
 +          <packing>
 +            <property name="left_attach">6</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="dummy_toolbar_linkmap1">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +          </object>
 +          <packing>
 +            <property name="left_attach">4</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="ScrollLinkMap" id="linkmap1">
 +            <property name="width_request">50</property>
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="events">GDK_SCROLL_MASK</property>
 +            <property name="vexpand">True</property>
 +            <signal name="scroll-event" handler="on_linkmap_scroll_event" swapped="no"/>
 +          </object>
 +          <packing>
 +            <property name="left_attach">4</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="dummy_toolbar_diffmap0">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +          </object>
 +          <packing>
 +            <property name="left_attach">0</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="DiffMap" id="diffmap0">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="vexpand">True</property>
 +          </object>
 +          <packing>
 +            <property name="left_attach">0</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkToolbar" id="dummy_toolbar_linkmap0">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <style>
 +              <class name="meld-notebook-toolbar"/>
 +            </style>
 +          </object>
 +          <packing>
 +            <property name="left_attach">2</property>
 +            <property name="top_attach">0</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="ScrollLinkMap" id="linkmap0">
 +            <property name="width_request">50</property>
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="events">GDK_SCROLL_MASK</property>
 +            <property name="vexpand">True</property>
 +            <signal name="scroll-event" handler="on_linkmap_scroll_event" swapped="no"/>
 +          </object>
 +          <packing>
 +            <property name="left_attach">2</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkVBox" id="vbox0">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="hexpand">True</property>
 +            <child>
 +              <object class="MsgAreaController" id="msgarea_mgr0">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <child>
 +                  <placeholder/>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
 +                <property name="fill">True</property>
 +                <property name="position">0</property>
 +              </packing>
 +            </child>
 +            <child>
 +              <object class="GtkScrolledWindow" id="scrolledwindow0">
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="vexpand">True</property>
 +                <property name="overlay-scrolling">False</property>
 +                <property name="window_placement">top-right</property>
 +                <property name="window_placement_set">True</property>
 +                <child>
 +                  <object class="GtkTreeView" id="treeview0">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">True</property>
 +                    <property name="headers_visible">False</property>
 +                    <signal name="button-press-event" handler="on_treeview_button_press_event" 
swapped="no"/>
 +                    <signal name="cursor-changed" handler="on_treeview_cursor_changed" swapped="no"/>
++                    <signal name="focus-in-event" handler="on_treeview_focus_in_event" swapped="no"/>
 +                    <signal name="row-expanded" handler="on_treeview_row_expanded" swapped="no"/>
 +                    <signal name="key-press-event" handler="on_treeview_key_press_event" swapped="no"/>
 +                    <signal name="row-activated" handler="on_treeview_row_activated" swapped="no"/>
 +                    <signal name="row-collapsed" handler="on_treeview_row_collapsed" swapped="no"/>
 +                    <signal name="popup-menu" handler="on_treeview_popup_menu" swapped="no"/>
 +                    <child internal-child="selection">
 +                      <object class="GtkTreeSelection" id="treeview-selection1"/>
 +                    </child>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +                <property name="fill">True</property>
 +                <property name="position">1</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">1</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkVBox" id="vbox1">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="hexpand">True</property>
 +            <child>
 +              <object class="MsgAreaController" id="msgarea_mgr1">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <child>
 +                  <placeholder/>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
 +                <property name="fill">True</property>
 +                <property name="position">0</property>
 +              </packing>
 +            </child>
 +            <child>
 +              <object class="GtkScrolledWindow" id="scrolledwindow1">
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="vexpand">True</property>
 +                <property name="overlay-scrolling">False</property>
 +                <child>
 +                  <object class="GtkTreeView" id="treeview1">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">True</property>
 +                    <property name="headers_visible">False</property>
 +                    <signal name="button-press-event" handler="on_treeview_button_press_event" 
swapped="no"/>
 +                    <signal name="cursor-changed" handler="on_treeview_cursor_changed" swapped="no"/>
++                    <signal name="focus-in-event" handler="on_treeview_focus_in_event" swapped="no"/>
 +                    <signal name="row-expanded" handler="on_treeview_row_expanded" swapped="no"/>
 +                    <signal name="key-press-event" handler="on_treeview_key_press_event" swapped="no"/>
 +                    <signal name="row-activated" handler="on_treeview_row_activated" swapped="no"/>
 +                    <signal name="row-collapsed" handler="on_treeview_row_collapsed" swapped="no"/>
 +                    <signal name="popup-menu" handler="on_treeview_popup_menu" swapped="no"/>
 +                    <child internal-child="selection">
 +                      <object class="GtkTreeSelection" id="treeview-selection2"/>
 +                    </child>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +                <property name="fill">True</property>
 +                <property name="position">1</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">3</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +        <child>
 +          <object class="GtkVBox" id="vbox2">
 +            <property name="visible">True</property>
 +            <property name="can_focus">False</property>
 +            <property name="hexpand">True</property>
 +            <child>
 +              <object class="MsgAreaController" id="msgarea_mgr2">
 +                <property name="visible">True</property>
 +                <property name="can_focus">False</property>
 +                <child>
 +                  <placeholder/>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">False</property>
 +                <property name="fill">True</property>
 +                <property name="position">0</property>
 +              </packing>
 +            </child>
 +            <child>
 +              <object class="GtkScrolledWindow" id="scrolledwindow2">
 +                <property name="visible">True</property>
 +                <property name="can_focus">True</property>
 +                <property name="vexpand">True</property>
 +                <property name="overlay-scrolling">False</property>
 +                <child>
 +                  <object class="GtkTreeView" id="treeview2">
 +                    <property name="visible">True</property>
 +                    <property name="can_focus">True</property>
 +                    <property name="headers_visible">False</property>
 +                    <signal name="button-press-event" handler="on_treeview_button_press_event" 
swapped="no"/>
 +                    <signal name="cursor-changed" handler="on_treeview_cursor_changed" swapped="no"/>
++                    <signal name="focus-in-event" handler="on_treeview_focus_in_event" swapped="no"/>
 +                    <signal name="row-expanded" handler="on_treeview_row_expanded" swapped="no"/>
 +                    <signal name="key-press-event" handler="on_treeview_key_press_event" swapped="no"/>
 +                    <signal name="row-activated" handler="on_treeview_row_activated" swapped="no"/>
 +                    <signal name="row-collapsed" handler="on_treeview_row_collapsed" swapped="no"/>
 +                    <signal name="popup-menu" handler="on_treeview_popup_menu" swapped="no"/>
 +                    <child internal-child="selection">
 +                      <object class="GtkTreeSelection" id="treeview-selection3"/>
 +                    </child>
 +                  </object>
 +                </child>
 +              </object>
 +              <packing>
 +                <property name="expand">True</property>
 +                <property name="fill">True</property>
 +                <property name="position">1</property>
 +              </packing>
 +            </child>
 +          </object>
 +          <packing>
 +            <property name="left_attach">5</property>
 +            <property name="top_attach">1</property>
 +            <property name="width">1</property>
 +            <property name="height">1</property>
 +          </packing>
 +        </child>
 +      </object>
 +      <packing>
 +        <property name="expand">True</property>
 +        <property name="fill">True</property>
 +        <property name="pack_type">end</property>
 +        <property name="position">0</property>
 +      </packing>
 +    </child>
 +  </template>
 +</interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]