[anjuta] git: Show the column in the commit log view



commit 1cec55781890ec1d989f7e366ebf2ea0057155ce
Author: James Liggett <jrliggett cox net>
Date:   Sun Aug 9 16:53:58 2009 -0700

    git: Show the column in the commit log view
    
    Showing the column of the cursor in the log view should make it easier to make
    sure that commit message lines aren't too long.

 plugins/git/anjuta-git.ui       |   39 ++++++++++++++++++++++++++++++---------
 plugins/git/git-commit-dialog.c |   25 +++++++++++++++++--------
 plugins/git/git-ui-utils.c      |   16 ++++++++++++++++
 plugins/git/git-ui-utils.h      |    4 +++-
 4 files changed, 66 insertions(+), 18 deletions(-)
---
diff --git a/plugins/git/anjuta-git.ui b/plugins/git/anjuta-git.ui
index abc4716..56e2370 100644
--- a/plugins/git/anjuta-git.ui
+++ b/plugins/git/anjuta-git.ui
@@ -80,21 +80,41 @@
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkScrolledWindow" id="scrolledwindow11">
+                      <object class="GtkVBox" id="vbox36">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="hscrollbar_policy">automatic</property>
-                        <property name="vscrollbar_policy">automatic</property>
-                        <property name="shadow_type">in</property>
+                        <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkTextView" id="commit_log_view">
-                            <property name="width_request">600</property>
-                            <property name="height_request">100</property>
+                          <object class="GtkScrolledWindow" id="scrolledwindow11">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="hscrollbar_policy">automatic</property>
+                            <property name="vscrollbar_policy">automatic</property>
+                            <property name="shadow_type">in</property>
+                            <child>
+                              <object class="GtkTextView" id="commit_log_view">
+                                <property name="width_request">600</property>
+                                <property name="height_request">100</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="buffer">log_view_buffer</property>
+                              </object>
+                            </child>
                           </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="commit_log_column_label">
+                            <property name="visible">True</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Column 1</property>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
@@ -5844,4 +5864,5 @@
       <action-widget response="-5">button43</action-widget>
     </action-widgets>
   </object>
+  <object class="GtkTextBuffer" id="log_view_buffer"/>
 </interface>
diff --git a/plugins/git/git-commit-dialog.c b/plugins/git/git-commit-dialog.c
index 0814e4c..d4cd661 100644
--- a/plugins/git/git-commit-dialog.c
+++ b/plugins/git/git-commit-dialog.c
@@ -171,8 +171,7 @@ on_commit_custom_author_info_check_toggled (GtkToggleButton *button,
 static void
 on_commit_amend_check_toggled (GtkToggleButton *toggle_button, GitUIData *data)
 {
-	GtkTextView *commit_log_view;
-	GtkTextBuffer *buffer;
+	GtkTextBuffer *log_view_buffer;
 	gchar *commit_message_path;
 	GFile *commit_message_file;
 	GFileInfo *file_info;
@@ -180,9 +179,8 @@ on_commit_amend_check_toggled (GtkToggleButton *toggle_button, GitUIData *data)
 	guint64 file_size;
 	GFileInputStream *stream;
 
-	commit_log_view = GTK_TEXT_VIEW (gtk_builder_get_object (data->bxml,
-	                                                         "commit_log_view"));
-	buffer = gtk_text_view_get_buffer (commit_log_view);
+	log_view_buffer = GTK_TEXT_BUFFER (gtk_builder_get_object (data->bxml,
+	                                                           "log_view_buffer"));
 
 	if (gtk_toggle_button_get_active (toggle_button))
 	{
@@ -210,7 +208,8 @@ on_commit_amend_check_toggled (GtkToggleButton *toggle_button, GitUIData *data)
 				g_input_stream_close (G_INPUT_STREAM (stream), NULL, NULL);
 				g_object_unref (stream);
 
-				gtk_text_buffer_set_text (buffer, commit_message, file_size);
+				gtk_text_buffer_set_text (log_view_buffer, commit_message, 
+				                          file_size);
 
 				g_free (commit_message);
 
@@ -224,16 +223,18 @@ on_commit_amend_check_toggled (GtkToggleButton *toggle_button, GitUIData *data)
 		g_object_unref (commit_message_file);
 	}
 	else
-		gtk_text_buffer_set_text (buffer, "", 0);
+		gtk_text_buffer_set_text (log_view_buffer, "", 0);
 }
 
 static void
 commit_dialog (Git *plugin)
 {
 	GtkBuilder *bxml;
-	gchar *objects[] = {"commit_dialog", NULL};
+	gchar *objects[] = {"commit_dialog", "log_view_buffer", NULL};
 	GError *error;
 	GtkWidget *dialog;
+	GtkTextBuffer *log_view_buffer;
+	GtkWidget *commit_log_column_label;
 	GtkWidget *commit_amend_check;
 	GtkWidget *commit_custom_author_info_check;
 	GtkWidget *commit_author_info_alignment;
@@ -255,6 +256,10 @@ commit_dialog (Git *plugin)
 	}
 	
 	dialog = GTK_WIDGET (gtk_builder_get_object (bxml, "commit_dialog"));
+	log_view_buffer = GTK_TEXT_BUFFER (gtk_builder_get_object (bxml, 
+	                                                   		   "log_view_buffer"));
+	commit_log_column_label = GTK_WIDGET (gtk_builder_get_object (bxml,
+	                                                              "commit_log_column_label"));
 	commit_amend_check = GTK_WIDGET (gtk_builder_get_object (bxml, "commit_amend_check"));
 	commit_custom_author_info_check = GTK_WIDGET (gtk_builder_get_object (bxml, "commit_custom_author_info_check"));
 	commit_author_info_alignment = GTK_WIDGET (gtk_builder_get_object (bxml, "commit_author_info_alignment"));
@@ -267,6 +272,10 @@ commit_dialog (Git *plugin)
 											 GIT_STATUS_SECTION_MODIFIED);
 
 	data = git_ui_data_new (plugin, bxml);
+
+	g_signal_connect (G_OBJECT (log_view_buffer), "mark-set",
+	                  G_CALLBACK (git_set_log_view_column_label),
+	                  commit_log_column_label);
 	
 	g_signal_connect (G_OBJECT (commit_amend_check), "toggled",
 	                  G_CALLBACK (on_commit_amend_check_toggled),
diff --git a/plugins/git/git-ui-utils.c b/plugins/git/git-ui-utils.c
index 348836c..6215891 100644
--- a/plugins/git/git-ui-utils.c
+++ b/plugins/git/git-ui-utils.c
@@ -678,6 +678,22 @@ on_git_diff_command_finished (AnjutaCommand *command, guint return_code,
 }
 
 void
+git_set_log_view_column_label (GtkTextBuffer *text_buffer,
+                               GtkTextIter *location, GtkTextMark *mark,
+                               GtkLabel *column_label)
+{
+	gint column;
+	gchar *text;
+
+	column = gtk_text_iter_get_line_offset (location) + 1;
+	text = g_strdup_printf (_("Column %i"), column);
+
+	gtk_label_set_text (column_label, text);
+
+	g_free (text);
+}
+
+void
 git_stop_status_bar_progress_pulse (AnjutaCommand *command, guint return_code,
 									gpointer timer_id)
 {
diff --git a/plugins/git/git-ui-utils.h b/plugins/git/git-ui-utils.h
index 40dbca1..dfd517e 100644
--- a/plugins/git/git-ui-utils.h
+++ b/plugins/git/git-ui-utils.h
@@ -101,11 +101,13 @@ void on_git_origin_check_toggled (GtkToggleButton *button, GtkWidget *widget);
 void git_init_whole_project (Git *plugin, GtkWidget* project,
 							 gboolean active);
 void on_git_whole_project_toggled (GtkToggleButton* project, Git *plugin);
-
 void on_git_diff_command_finished (AnjutaCommand *command, guint return_code, 
 								   Git *plugin);
 void git_send_raw_command_output_to_editor (AnjutaCommand *command, 
 											IAnjutaEditor *editor);
+void git_set_log_view_column_label (GtkTextBuffer *text_buffer, 
+                                    GtkTextIter *location, 
+                                    GtkTextMark *mark, GtkLabel *column_label);
 void git_stop_status_bar_progress_pulse (AnjutaCommand *command, 
 										 guint return_code, gpointer timer_id);
 void git_hide_pulse_progress_bar (AnjutaCommand *command, guint return_code,



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