[Xfce4-commits] <thunar-vcs-plugin:master> Added options to the svn log dialog.

Peter de Ridder noreply at xfce.org
Tue Aug 3 20:06:05 CEST 2010


Updating branch refs/heads/master
         to 7bd57d8bb6c899922dd8519749c28eee587a3375 (commit)
       from 26b1b79eb109c6240a66860b4252c37408bbe061 (commit)

commit 7bd57d8bb6c899922dd8519749c28eee587a3375
Author: Peter de Ridder <peter at xfce.org>
Date:   Mon Aug 2 22:31:50 2010 +0200

    Added options to the svn log dialog.
    
    Made show merged revisions optional. Solving bug #6564.
    Added an option to stop the log on the first copy history.

 tvp-svn-helper/tsh-log-dialog.c |   34 ++++++++++++++++++++++++++++++++++
 tvp-svn-helper/tsh-log-dialog.h |    3 +++
 tvp-svn-helper/tsh-log.c        |   11 +++++++++--
 3 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/tvp-svn-helper/tsh-log-dialog.c b/tvp-svn-helper/tsh-log-dialog.c
index 6878f94..3994f09 100644
--- a/tvp-svn-helper/tsh-log-dialog.c
+++ b/tvp-svn-helper/tsh-log-dialog.c
@@ -43,6 +43,8 @@ struct _TshLogDialog
 	GtkWidget *tree_view;
   GtkWidget *text_view;
   GtkWidget *file_view;
+  GtkWidget *strict_history;
+  GtkWidget *merged_revisions;
 	GtkWidget *close;
 	GtkWidget *cancel;
 	GtkWidget *refresh;
@@ -108,6 +110,9 @@ tsh_log_dialog_init (TshLogDialog *dialog)
 	GtkWidget *scroll_window;
   GtkWidget *pane;
   GtkWidget *vpane;
+  GtkWidget *strict_history;
+  GtkWidget *merged_revisions;
+  GtkWidget *table;
 	GtkCellRenderer *renderer;
 	GtkTreeModel *model;
   gint n_columns;
@@ -205,6 +210,19 @@ tsh_log_dialog_init (TshLogDialog *dialog)
 	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), pane, TRUE, TRUE, 0);
   gtk_widget_show (pane);
 
+  table = gtk_table_new (3, 2, FALSE);
+
+  dialog->strict_history = strict_history = gtk_check_button_new_with_label (_("Stop On Copy"));
+  gtk_table_attach (GTK_TABLE (table), strict_history, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+  gtk_widget_show (strict_history);
+
+  dialog->merged_revisions = merged_revisions = gtk_check_button_new_with_label (_("Show Merged Revisions"));
+  gtk_table_attach (GTK_TABLE (table), merged_revisions, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+  gtk_widget_show (merged_revisions);
+
+  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), table, FALSE, FALSE, 0);
+  gtk_widget_show (table);
+
 	gtk_window_set_title (GTK_WINDOW (dialog), _("Log"));
 
   gtk_button_box_set_layout(GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), GTK_BUTTONBOX_EDGE);
@@ -338,6 +356,22 @@ tsh_log_dialog_done (TshLogDialog *dialog)
   gtk_widget_show (dialog->refresh);
 }
 
+gboolean
+tsh_log_dialog_get_hide_copied (TshLogDialog *dialog)
+{
+  g_return_val_if_fail (TSH_IS_LOG_DIALOG (dialog), FALSE);
+
+  return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->strict_history));
+}
+
+gboolean
+tsh_log_dialog_get_show_merged (TshLogDialog *dialog)
+{
+  g_return_val_if_fail (TSH_IS_LOG_DIALOG (dialog), FALSE);
+
+  return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->merged_revisions));
+}
+
 static void
 selection_changed (GtkTreeView *tree_view, gpointer user_data)
 {
diff --git a/tvp-svn-helper/tsh-log-dialog.h b/tvp-svn-helper/tsh-log-dialog.h
index f0fdfbe..ad02f50 100644
--- a/tvp-svn-helper/tsh-log-dialog.h
+++ b/tvp-svn-helper/tsh-log-dialog.h
@@ -61,6 +61,9 @@ const gchar* tsh_log_dialog_top      (TshLogDialog *dialog);
 void         tsh_log_dialog_pop      (TshLogDialog *dialog);
 void         tsh_log_dialog_done     (TshLogDialog *dialog);
 
+gboolean tsh_log_dialog_get_hide_copied (TshLogDialog *dialog);
+gboolean tsh_log_dialog_get_show_merged (TshLogDialog *dialog);
+
 G_END_DECLS;
 
 #endif /* !__TSH_LOG_DIALOG_H__ */
diff --git a/tvp-svn-helper/tsh-log.c b/tvp-svn-helper/tsh-log.c
index f429483..f6b6a31 100644
--- a/tvp-svn-helper/tsh-log.c
+++ b/tvp-svn-helper/tsh-log.c
@@ -59,9 +59,16 @@ static gpointer log_thread (gpointer user_data)
 	apr_array_header_t *ranges;
 	apr_array_header_t *revprops;
 	gint size, i;
+  gboolean strict_history;
+  gboolean merged_revisions;
   GtkWidget *error;
   gchar *error_str;
 
+  gdk_threads_enter ();
+  strict_history = tsh_log_dialog_get_hide_copied (dialog);
+  merged_revisions = tsh_log_dialog_get_show_merged (dialog);
+  gdk_threads_leave ();
+
   if(!paths)
   {
     size = files?g_strv_length(files):0;
@@ -99,9 +106,9 @@ static gpointer log_thread (gpointer user_data)
   ranges = apr_array_make (subpool, 1, sizeof (svn_opt_revision_range_t *));
   APR_ARRAY_PUSH (ranges, svn_opt_revision_range_t *) = ⦥
 #if CHECK_SVN_VERSION(1,5)
-	if ((err = svn_client_log4(paths, &revision, &range.start, &range.end, 0, TRUE, FALSE, TRUE, revprops, tsh_log_func, dialog, ctx, subpool)))
+	if ((err = svn_client_log4(paths, &revision, &range.start, &range.end, 0, TRUE, strict_history, merged_revisions, revprops, tsh_log_func, dialog, ctx, subpool)))
 #else /* CHECK_SVN_VERSION(1,6) */
-	if ((err = svn_client_log5(paths, &revision, ranges, 0, TRUE, FALSE, TRUE, revprops, tsh_log_func, dialog, ctx, subpool)))
+	if ((err = svn_client_log5(paths, &revision, ranges, 0, TRUE, strict_history, merged_revisions, revprops, tsh_log_func, dialog, ctx, subpool)))
 #endif
 	{
     svn_pool_destroy (subpool);



More information about the Xfce4-commits mailing list