[gitg/wip/sidebar: 1/2] Added special class to handle history ui
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg/wip/sidebar: 1/2] Added special class to handle history ui
- Date: Tue, 2 Jul 2013 18:09:44 +0000 (UTC)
commit 37effb7ef10a4184b95e654dc890a813af691eb5
Author: Jesse van den Kieboom <jessevdk gmail com>
Date: Tue Jul 2 20:07:33 2013 +0200
Added special class to handle history ui
gitg/Makefile.am | 3 +-
gitg/history/gitg-history-paned.vala | 103 ++++++++++++++++++++++++++++++++
gitg/history/gitg-history.vala | 71 +++++-----------------
gitg/resources/ui/gitg-view-history.ui | 56 ++++++++++++-----
4 files changed, 159 insertions(+), 74 deletions(-)
---
diff --git a/gitg/Makefile.am b/gitg/Makefile.am
index 3edefb5..7aa5b27 100644
--- a/gitg/Makefile.am
+++ b/gitg/Makefile.am
@@ -45,7 +45,8 @@ VALASOURCES = \
preferences/gitg-preferences-interface.vala \
preferences/gitg-preferences-history.vala \
history/gitg-history.vala \
- history/gitg-history-navigation.vala
+ history/gitg-history-navigation.vala \
+ history/gitg-history-paned.vala
BUILT_SOURCES = \
gitg-resources.c \
diff --git a/gitg/history/gitg-history-paned.vala b/gitg/history/gitg-history-paned.vala
new file mode 100644
index 0000000..5853b38
--- /dev/null
+++ b/gitg/history/gitg-history-paned.vala
@@ -0,0 +1,103 @@
+/*
+ * This file is part of gitg
+ *
+ * Copyright (C) 2012 - Jesse van den Kieboom
+ *
+ * gitg is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * gitg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gitg. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace GitgHistory
+{
+
+[GtkTemplate (ui = "/org/gnome/gitg/ui/gitg-view-history.ui")]
+class Paned : Gtk.Paned
+{
+ [GtkChild]
+ private Gtk.Box d_box_sidebar;
+
+ [GtkChild]
+ private Gtk.Paned d_paned_panels;
+
+ [GtkChild]
+ private Gtk.Toolbar d_toolbar_panels;
+
+ [GtkChild]
+ private NavigationView d_navigation_view;
+
+ [GtkChild]
+ private Gtk.TreeView d_commit_list_view;
+
+ [GtkChild]
+ private Gtk.Stack d_stack_panel;
+
+ [GtkChild]
+ private Gd.StyledTextRenderer d_renderer_commit_list_author;
+
+ [GtkChild]
+ private Gd.StyledTextRenderer d_renderer_commit_list_author_date;
+
+ construct
+ {
+ var state_settings = new Settings("org.gnome.gitg.state.history");
+
+ state_settings.bind("paned-views-position",
+ this,
+ "position",
+ SettingsBindFlags.GET | SettingsBindFlags.SET);
+
+ state_settings.bind("paned-panels-position",
+ d_paned_panels,
+ "position",
+ SettingsBindFlags.GET | SettingsBindFlags.SET);
+
+ var interface_settings = new Settings("org.gnome.gitg.preferences.interface");
+
+ interface_settings.bind("orientation",
+ d_paned_panels,
+ "orientation",
+ SettingsBindFlags.GET);
+
+ d_renderer_commit_list_author.add_class("dim-label");
+ d_renderer_commit_list_author_date.add_class("dim-label");
+ }
+
+ public Paned()
+ {
+ Object(orientation: Gtk.Orientation.HORIZONTAL);
+ }
+
+ public NavigationView navigation_view
+ {
+ get { return d_navigation_view; }
+ }
+
+ public Gtk.TreeView commit_list_view
+ {
+ get { return d_commit_list_view; }
+ }
+
+ public Gtk.Paned paned_panels
+ {
+ get { return d_paned_panels; }
+ }
+
+ public Gtk.Stack stack_panel
+ {
+ get { return d_stack_panel; }
+ }
+}
+
+}
+
+// ex: ts=4 noet
diff --git a/gitg/history/gitg-history.vala b/gitg/history/gitg-history.vala
index 6e940f1..d2e18c4 100644
--- a/gitg/history/gitg-history.vala
+++ b/gitg/history/gitg-history.vala
@@ -35,11 +35,7 @@ namespace GitgHistory
private ulong d_insertsig;
private Settings d_settings;
- private Gtk.Paned d_main;
- private GitgHistory.NavigationView d_navigation;
- private Gtk.Paned d_paned_panels;
- private Gtk.Stack d_stack_panel;
- private Gtk.TreeView d_commit_list;
+ private Paned d_main;
private Gitg.UIElements<GitgExt.HistoryPanel> d_panels;
@@ -69,7 +65,7 @@ namespace GitgHistory
{
bool breakit = false;
- d_commit_list.get_selection().selected_foreach((model, path, iter) => {
+ d_main.commit_list_view.get_selection().selected_foreach((model, path, iter) => {
if (!breakit)
{
breakit = !func(d_commit_list_model.commit_from_iter(iter));
@@ -134,7 +130,7 @@ namespace GitgHistory
if (d_selected.size == 0 || d_selected.remove(commit.get_id()))
{
- d_commit_list.get_selection().select_path(path);
+ d_main.commit_list_view.get_selection().select_path(path);
}
if (d_selected.size == 0)
@@ -203,71 +199,34 @@ namespace GitgHistory
public void activate()
{
- d_navigation.expand_all();
- d_navigation.select_first();
+ d_main.navigation_view.expand_all();
+ d_main.navigation_view.select_first();
}
public void reload()
{
- double vadj = d_navigation.get_vadjustment().get_value();
+ double vadj = d_main.navigation_view.get_vadjustment().get_value();
d_navigation_model.reload();
- d_navigation.expand_all();
- d_navigation.select();
+ d_main.navigation_view.expand_all();
+ d_main.navigation_view.select();
- d_navigation.size_allocate.connect((a) => {
- d_navigation.get_vadjustment().set_value(vadj);
+ d_main.navigation_view.size_allocate.connect((a) => {
+ d_main.navigation_view.get_vadjustment().set_value(vadj);
});
}
private void build_ui()
{
- var ret = GitgExt.UI.from_builder("ui/gitg-view-history.ui",
- "paned_views",
- "paned_panels",
- "stack_panel",
- "navigation_view",
- "commit_list_view",
- "renderer_commit_list_author",
- "renderer_commit_list_author_date");
+ d_main = new Paned();
- d_main = ret["paned_views"] as Gtk.Paned;
+ d_main.navigation_view.model = d_navigation_model;
+ d_main.commit_list_view.model = d_commit_list_model;
- d_paned_panels = ret["paned_panels"] as Gtk.Paned;
- d_stack_panel = ret["stack_panel"] as Gtk.Stack;
-
- d_navigation = ret["navigation_view"] as GitgHistory.NavigationView;
- d_navigation.model = d_navigation_model;
-
- d_commit_list = ret["commit_list_view"] as Gtk.TreeView;
- d_commit_list.model = d_commit_list_model;
-
- d_commit_list.get_selection().changed.connect((sel) => {
+ d_main.commit_list_view.get_selection().changed.connect((sel) => {
selection_changed();
});
- (ret["renderer_commit_list_author"] as Gd.StyledTextRenderer).add_class("dim-label");
- (ret["renderer_commit_list_author_date"] as
Gd.StyledTextRenderer).add_class("dim-label");
-
- var state_settings = new Settings("org.gnome.gitg.state.history");
-
- state_settings.bind("paned-views-position",
- d_main,
- "position",
- SettingsBindFlags.GET | SettingsBindFlags.SET);
-
- state_settings.bind("paned-panels-position",
- d_paned_panels,
- "position",
- SettingsBindFlags.GET | SettingsBindFlags.SET);
-
- var interface_settings = new Settings("org.gnome.gitg.preferences.interface");
-
- interface_settings.bind("orientation",
- d_paned_panels,
- "orientation",
- SettingsBindFlags.GET);
-
var engine = Gitg.PluginsEngine.get_default();
var extset = new Peas.ExtensionSet(engine,
@@ -276,7 +235,7 @@ namespace GitgHistory
this);
d_panels = new Gitg.UIElements<GitgExt.HistoryPanel>(extset,
- d_stack_panel);
+ d_main.stack_panel);
}
private void update_walker(Navigation n, Gitg.Ref? head)
diff --git a/gitg/resources/ui/gitg-view-history.ui b/gitg/resources/ui/gitg-view-history.ui
index ccf6a26..2f16442 100644
--- a/gitg/resources/ui/gitg-view-history.ui
+++ b/gitg/resources/ui/gitg-view-history.ui
@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.3 -->
- <object class="GtkPaned" id="paned_views">
+ <!-- interface-requires gitg 0.0 -->
+ <!-- interface-requires gd 1.0 -->
+ <template class="GitgHistoryPaned" parent="Gtk.Paned">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -12,23 +14,43 @@
<class name="sidebar-paned"/>
</style>
<child>
- <object class="GtkScrolledWindow" id="scrolled_window_navigation">
+ <object class="GtkBox" id="d_box_sidebar">
<property name="visible">True</property>
- <property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="name">scrolled_window_navigation</property>
- <style>
- <class name="sidebar"/>
- </style>
<child>
- <object class="GitgHistoryNavigationView" id="navigation_view">
+ <object class="GtkScrolledWindow" id="scrolled_window_navigation">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="name">tree_view_navigation</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="name">scrolled_window_navigation</property>
+ <style>
+ <class name="sidebar"/>
+ </style>
+ <child>
+ <object class="GitgHistoryNavigationView" id="d_navigation_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="name">tree_view_navigation</property>
+ </object>
+ </child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolbar" id="d_toolbar_panels">
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
</child>
</object>
<packing>
@@ -37,7 +59,7 @@
</packing>
</child>
<child>
- <object class="GtkPaned" id="paned_panels">
+ <object class="GtkPaned" id="d_paned_panels">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -55,7 +77,7 @@
<property name="can_focus">True</property>
<property name="shadow-type">none</property>
<child>
- <object class="GitgCommitListView" id="commit_list_view">
+ <object class="GitgCommitListView" id="d_commit_list_view">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="rules_hint">True</property>
@@ -85,7 +107,7 @@
<property name="resizable">True</property>
<property name="fixed-width">200</property>
<child>
- <object class="GdStyledTextRenderer" id="renderer_commit_list_author">
+ <object class="GdStyledTextRenderer" id="d_renderer_commit_list_author">
<property name="ellipsize">end</property>
</object>
<attributes>
@@ -101,7 +123,7 @@
<property name="resizable">True</property>
<property name="fixed-width">250</property>
<child>
- <object class="GdStyledTextRenderer" id="renderer_commit_list_author_date">
+ <object class="GdStyledTextRenderer" id="d_renderer_commit_list_author_date">
<property name="ellipsize">end</property>
</object>
<attributes>
@@ -115,7 +137,7 @@
</object>
</child>
<child>
- <object class="GtkStack" id="stack_panel">
+ <object class="GtkStack" id="d_stack_panel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -129,7 +151,7 @@
</child>
</object>
</child>
- </object>
+ </template>
</interface>
<!-- ex:set ts=2 et: -->
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]