mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Jump to transaction after a double-click in the reconcile window.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3029 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
1e9ebabe86
commit
6f65c5adcf
@ -39,6 +39,7 @@
|
||||
enum
|
||||
{
|
||||
TOGGLE_RECONCILED,
|
||||
DOUBLE_CLICK_SPLIT,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@ -227,6 +228,16 @@ gnc_reconcile_list_class_init(GNCReconcileListClass *klass)
|
||||
GTK_TYPE_NONE, 1,
|
||||
GTK_TYPE_POINTER);
|
||||
|
||||
reconcile_list_signals[DOUBLE_CLICK_SPLIT] =
|
||||
gtk_signal_new("double_click_split",
|
||||
GTK_RUN_FIRST,
|
||||
object_class->type,
|
||||
GTK_SIGNAL_OFFSET(GNCReconcileListClass,
|
||||
double_click_split),
|
||||
gtk_marshal_NONE__POINTER,
|
||||
GTK_TYPE_NONE, 1,
|
||||
GTK_TYPE_POINTER);
|
||||
|
||||
gtk_object_class_add_signals(object_class,
|
||||
reconcile_list_signals,
|
||||
LAST_SIGNAL);
|
||||
@ -237,6 +248,7 @@ gnc_reconcile_list_class_init(GNCReconcileListClass *klass)
|
||||
clist_class->unselect_row = gnc_reconcile_list_unselect_row;
|
||||
|
||||
klass->toggle_reconciled = NULL;
|
||||
klass->double_click_split = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -290,8 +302,7 @@ gnc_reconcile_list_toggle(GNCReconcileList *list)
|
||||
gnc_reconcile_list_set_row_style(list, row, reconciled);
|
||||
|
||||
gtk_signal_emit(GTK_OBJECT(list),
|
||||
reconcile_list_signals[TOGGLE_RECONCILED],
|
||||
split);
|
||||
reconcile_list_signals[TOGGLE_RECONCILED], split);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -304,6 +315,16 @@ gnc_reconcile_list_select_row(GtkCList *clist, gint row, gint column,
|
||||
gnc_reconcile_list_toggle(list);
|
||||
|
||||
GTK_CLIST_CLASS(parent_class)->select_row(clist, row, column, event);
|
||||
|
||||
if (event && (event->type == GDK_2BUTTON_PRESS))
|
||||
{
|
||||
Split *split;
|
||||
|
||||
split = gtk_clist_get_row_data(clist, row);
|
||||
|
||||
gtk_signal_emit(GTK_OBJECT(list),
|
||||
reconcile_list_signals[DOUBLE_CLICK_SPLIT], split);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@ -320,6 +341,16 @@ gnc_reconcile_list_unselect_row(GtkCList *clist, gint row, gint column,
|
||||
}
|
||||
|
||||
GTK_CLIST_CLASS(parent_class)->unselect_row(clist, row, column, event);
|
||||
|
||||
if (event && (event->type == GDK_2BUTTON_PRESS))
|
||||
{
|
||||
Split *split;
|
||||
|
||||
split = gtk_clist_get_row_data(clist, row);
|
||||
|
||||
gtk_signal_emit(GTK_OBJECT(list),
|
||||
reconcile_list_signals[DOUBLE_CLICK_SPLIT], split);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -75,6 +75,8 @@ struct _GNCReconcileListClass
|
||||
|
||||
void (*toggle_reconciled) (GNCReconcileList *list,
|
||||
Split *split);
|
||||
void (*double_click_split) (GNCReconcileList *list,
|
||||
Split *split);
|
||||
};
|
||||
|
||||
/***********************************************************
|
||||
|
@ -459,12 +459,31 @@ static void
|
||||
gnc_reconcile_window_list_cb(GNCReconcileList *list, Split *split,
|
||||
gpointer data)
|
||||
{
|
||||
RecnWindow *recnData = (RecnWindow *) data;
|
||||
RecnWindow *recnData = data;
|
||||
|
||||
gnc_reconcile_window_set_sensitivity(recnData);
|
||||
recnRecalculateBalance(recnData);
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_reconcile_window_double_click_cb(GNCReconcileList *list, Split *split,
|
||||
gpointer data)
|
||||
{
|
||||
RecnWindow *recnData = data;
|
||||
RegWindow *regData;
|
||||
|
||||
/* This should never be true, but be paranoid */
|
||||
if (split == NULL)
|
||||
return;
|
||||
|
||||
regData = regWindowSimple(recnData->account);
|
||||
if (regData == NULL)
|
||||
return;
|
||||
|
||||
gnc_register_raise(regData);
|
||||
gnc_register_jump_to_split_amount(regData, split);
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_reconcile_window_focus_cb(GtkWidget *widget, GdkEventFocus *event,
|
||||
gpointer data)
|
||||
@ -559,6 +578,9 @@ gnc_reconcile_window_create_list_box(Account *account,
|
||||
gtk_signal_connect(GTK_OBJECT(list), "toggle_reconciled",
|
||||
GTK_SIGNAL_FUNC(gnc_reconcile_window_list_cb),
|
||||
recnData);
|
||||
gtk_signal_connect(GTK_OBJECT(list), "double_click_split",
|
||||
GTK_SIGNAL_FUNC(gnc_reconcile_window_double_click_cb),
|
||||
recnData);
|
||||
gtk_signal_connect(GTK_OBJECT(list), "focus_in_event",
|
||||
GTK_SIGNAL_FUNC(gnc_reconcile_window_focus_cb),
|
||||
recnData);
|
||||
|
Loading…
Reference in New Issue
Block a user