[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