[geany/geany-plugins] cd1214: Add a little statusbar below the commit message text widget
Enrico Tröger
git-noreply at xxxxx
Fri Oct 18 09:11:20 UTC 2013
Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger at uvena.de>
Committer: Frank Lanitz <frank at frank.uvena.de>
Date: Fri, 18 Oct 2013 09:11:20 UTC
Commit: cd1214af29fabc6aeec473dd773704e219496c4b
https://github.com/geany/geany-plugins/commit/cd1214af29fabc6aeec473dd773704e219496c4b
Log Message:
-----------
Add a little statusbar below the commit message text widget
Display line and column number below the commit message widget in the
commit dialog. This helps to see how long the entered message is, e.g.
when you want to ensure GIT commit messages' first line is only about
72 characters long.
Modified Paths:
--------------
geanyvc/src/geanyvc.c
Modified: geanyvc/src/geanyvc.c
42 files changed, 40 insertions(+), 2 deletions(-)
===================================================================
@@ -1301,6 +1301,26 @@ static void commit_tree_selection_changed_cb(GtkTreeSelection *sel, GtkTextView
g_free(path);
}
+static gboolean commit_text_line_number_update_cb(GtkWidget *widget, GdkEvent *event,
+ gpointer user_data)
+{
+ GtkWidget *text_view = widget;
+ GtkLabel *line_column_label = GTK_LABEL(user_data);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
+ GtkTextMark *mark = gtk_text_buffer_get_insert(buffer);
+ GtkTextIter iter;
+ gint line, column;
+ gchar text[64];
+
+ gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark);
+ line = gtk_text_iter_get_line(&iter) + 1;
+ column = gtk_text_iter_get_line_offset(&iter);
+
+ g_snprintf(text, sizeof(text), _("Line :%d Column: %d"), line, column);
+ gtk_label_set_text(line_column_label, text);
+
+ return FALSE;
+}
static GtkWidget *
create_commitDialog(void)
@@ -1323,6 +1343,8 @@ static void commit_tree_selection_changed_cb(GtkTreeSelection *sel, GtkTextView
GtkWidget *btnCancel;
GtkWidget *btnCommit;
GtkWidget *select_cbox;
+ GtkWidget *commit_text_vbox;
+ GtkWidget *lineColumnLabel;
GtkTreeSelection *sel;
gchar *rcstyle = g_strdup_printf("style \"geanyvc-diff-font\"\n"
@@ -1408,14 +1430,17 @@ static void commit_tree_selection_changed_cb(GtkTreeSelection *sel, GtkTextView
gtk_container_add(GTK_CONTAINER(frame1), alignment1);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment1), 0, 0, 12, 0);
+ commit_text_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_widget_show(commit_text_vbox);
+ gtk_container_add(GTK_CONTAINER(alignment1), commit_text_vbox);
+
scrolledwindow3 = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(scrolledwindow3);
- gtk_container_add(GTK_CONTAINER(alignment1), scrolledwindow3);
+ gtk_box_pack_start(GTK_BOX(commit_text_vbox), scrolledwindow3, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_SHADOW_IN);
-
textCommitMessage = gtk_text_view_new();
gtk_widget_show(textCommitMessage);
gtk_container_add(GTK_CONTAINER(scrolledwindow3), textCommitMessage);
@@ -1428,6 +1453,12 @@ static void commit_tree_selection_changed_cb(GtkTreeSelection *sel, GtkTextView
gtk_frame_set_label_widget(GTK_FRAME(frame1), label1);
gtk_label_set_use_markup(GTK_LABEL(label1), TRUE);
+ /* line/column status label */
+ lineColumnLabel = gtk_label_new("");
+ gtk_misc_set_alignment(GTK_MISC(lineColumnLabel), 0, 0.5);
+ gtk_box_pack_end(GTK_BOX(commit_text_vbox), lineColumnLabel, TRUE, TRUE, 0);
+ gtk_widget_show(lineColumnLabel);
+
dialog_action_area1 = GTK_DIALOG(commitDialog)->action_area;
gtk_widget_show(dialog_action_area1);
gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog_action_area1), GTK_BUTTONBOX_END);
@@ -1444,6 +1475,13 @@ static void commit_tree_selection_changed_cb(GtkTreeSelection *sel, GtkTextView
gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
g_signal_connect(sel, "changed", G_CALLBACK(commit_tree_selection_changed_cb), textDiff);
+ g_signal_connect(textCommitMessage, "key-release-event",
+ G_CALLBACK(commit_text_line_number_update_cb), lineColumnLabel);
+ g_signal_connect(textCommitMessage, "button-release-event",
+ G_CALLBACK(commit_text_line_number_update_cb), lineColumnLabel);
+ /* initial setup */
+ commit_text_line_number_update_cb(textCommitMessage, NULL, lineColumnLabel);
+
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF(commitDialog, commitDialog, "commitDialog");
GLADE_HOOKUP_OBJECT_NO_REF(commitDialog, dialog_vbox1, "dialog_vbox1");
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list