/* HomeBank -- Free, easy, personal accounting for everyone.
- * Copyright (C) 1995-2017 Maxime DOYEN
+ * Copyright (C) 1995-2019 Maxime DOYEN
*
* This file is part of HomeBank.
*
extern struct HomeBank *GLOBALS;
+extern gchar *CYA_FLT_TYPE[];
+extern gchar *CYA_FLT_STATUS[];
+extern gchar *CYA_FLT_RANGE[];
+extern gchar *CYA_SELECT[];
extern char *paymode_label_names[];
+extern gchar *nainex_label_names[];
-gchar *CYA_FLT_TYPE[] = {
- N_("Expense"),
- N_("Income"),
- "",
- N_("Any Type"),
- NULL
-};
-
-gchar *CYA_FLT_STATUS[] = {
- N_("Uncategorized"),
- N_("Unreconciled"),
- N_("Uncleared"),
- N_("Reconciled"),
- N_("Cleared"),
- "",
- N_("Any Status"),
- NULL
-};
-
-gchar *CYA_FLT_RANGE[] = {
- N_("This month"),
- N_("Last month"),
- N_("This quarter"),
- N_("Last quarter"),
- N_("This year"),
- N_("Last year"),
- "",
- N_("Last 30 days"),
- N_("Last 60 days"),
- N_("Last 90 days"),
- N_("Last 12 months"),
- "",
- N_("Other..."),
- "",
- N_("All date"),
- NULL
-};
-
-
-gchar *CYA_SELECT[] =
+/* = = = = = = = = = = = = = = = = = = = = */
+
+
+static void ui_flt_hub_category_expand_all(GtkWidget *widget, gpointer user_data)
{
- "----",
- N_("All month"),
- N_("January"),
- N_("February"),
- N_("March"),
- N_("April"),
- N_("May"),
- N_("June"),
- N_("July"),
- N_("August"),
- N_("September"),
- N_("October"),
- N_("November"),
- N_("December"),
- NULL
-};
+struct ui_flt_manage_data *data;
+ data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
+ DB( g_print("\n(ui_flt_hub_category) expand all (data=%p)\n", data) );
-/* = = = = = = = = = = = = = = = = = = = = */
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_cat));
-/*
-**
-*/
-static void ui_flt_manage_acc_select(GtkWidget *widget, gpointer user_data)
+}
+
+
+static void ui_flt_hub_category_collapse_all(GtkWidget *widget, gpointer user_data)
+{
+struct ui_flt_manage_data *data;
+
+ data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
+ DB( g_print("\n(ui_flt_hub_category) collapse all (data=%p)\n", data) );
+
+ gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_cat));
+
+}
+
+
+static void ui_flt_panel_category_get(struct ui_flt_manage_data *data)
+{
+gint i;
+
+ DB( g_print("(ui_flt_panel_category) get\n") );
+
+ if(data->filter !=NULL)
+ {
+ GtkTreeModel *model;
+ //GtkTreeSelection *selection;
+ GtkTreeIter iter, child;
+ gint n_child;
+ gboolean valid;
+ gboolean toggled;
+
+
+ // category
+ DB( g_print(" category\n") );
+
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
+ //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat));
+ i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
+ while (valid)
+ {
+ Category *catitem;
+
+ gtk_tree_model_get (model, &iter,
+ LST_DEFCAT_TOGGLE, &toggled,
+ LST_DEFCAT_DATAS, &catitem,
+ -1);
+
+ //data->filter->cat[i] = gtk_tree_selection_iter_is_selected(selection, &iter);
+ //data->filter->cat[i] = toggled;
+ catitem->flt_select = toggled;
+
+ n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
+ gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
+ while(n_child > 0)
+ {
+ i++;
+
+ gtk_tree_model_get (model, &child,
+ LST_DEFCAT_TOGGLE, &toggled,
+ LST_DEFCAT_DATAS, &catitem,
+ -1);
+
+
+ //data->filter->cat[i] = toggled;
+ //data->filter->cat[i] = gtk_tree_selection_iter_is_selected(selection, &child);
+ catitem->flt_select = toggled;
+
+ n_child--;
+ gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
+ }
+
+ /* Make iter point to the next row in the list store */
+ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
+ }
+
+ }
+}
+
+
+static void ui_flt_panel_category_set(struct ui_flt_manage_data *data)
+{
+
+ DB( g_print("(ui_flt_panel_category) set\n") );
+
+ if(data->filter != NULL)
+ {
+ GtkTreeModel *model;
+ //GtkTreeSelection *selection;
+ GtkTreeIter iter, child;
+
+ gint n_child;
+ gboolean valid;
+ gint i;
+
+
+ // category
+ DB( g_print(" category\n") );
+
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
+ //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat));
+ i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
+ while (valid)
+ {
+ Category *catitem;
+
+ gtk_tree_model_get (model, &iter,
+ LST_DEFCAT_DATAS, &catitem,
+ -1);
+
+ if(catitem->flt_select == TRUE)
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, TRUE, -1);
+
+ n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
+ gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
+ while(n_child > 0)
+ {
+ i++;
+
+ gtk_tree_model_get (model, &child,
+ LST_DEFCAT_DATAS, &catitem,
+ -1);
+
+ if(catitem->flt_select == TRUE)
+ gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, TRUE, -1);
+
+ n_child--;
+ gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
+ }
+
+ /* Make iter point to the next row in the list store */
+ i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
+ }
+
+
+ }
+}
+
+
+
+static void ui_flt_manage_cat_select(GtkWidget *widget, gpointer user_data)
{
struct ui_flt_manage_data *data;
gint select = GPOINTER_TO_INT(user_data);
GtkTreeModel *model;
-GtkTreeIter iter;
+GtkTreeIter iter, child;
gboolean valid;
+gint n_child;
gboolean toggle;
- DB( g_print("(ui_flt_manage) acc select\n") );
+ DB( g_print("(ui_flt_manage) pay select\n") );
data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc));
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
while (valid)
{
switch(select)
{
case BUTTON_ALL:
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, TRUE, -1);
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, TRUE, -1);
break;
case BUTTON_NONE:
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, FALSE, -1);
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, FALSE, -1);
break;
case BUTTON_INVERT:
- gtk_tree_model_get (model, &iter, LST_DEFACC_TOGGLE, &toggle, -1);
+ gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &toggle, -1);
toggle ^= 1;
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, toggle, -1);
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, toggle, -1);
break;
}
+
+ n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
+ gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
+ while(n_child > 0)
+ {
+
+ switch(select)
+ {
+ case BUTTON_ALL:
+ gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, TRUE, -1);
+ break;
+ case BUTTON_NONE:
+ gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, FALSE, -1);
+ break;
+ case BUTTON_INVERT:
+ gtk_tree_model_get (model, &child, LST_DEFCAT_TOGGLE, &toggle, -1);
+ toggle ^= 1;
+ gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, toggle, -1);
+ break;
+ }
+
+ n_child--;
+ gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
+ }
+
valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
}
+
}
-/*
-**
-*/
+
+
+static gboolean
+ui_flt_panel_category_activate_link (GtkWidget *label,
+ const gchar *uri,
+ gpointer data)
+{
+ DB( g_print(" comboboxlink '%s' \n", uri) );
+
+ if (g_strcmp0 (uri, "all") == 0)
+ {
+ ui_flt_manage_cat_select(label, GINT_TO_POINTER(BUTTON_ALL) );
+ }
+ else
+ if (g_strcmp0 (uri, "non") == 0)
+ {
+ ui_flt_manage_cat_select(label, GINT_TO_POINTER(BUTTON_NONE) );
+ }
+ else
+ if (g_strcmp0 (uri, "inv") == 0)
+ {
+ ui_flt_manage_cat_select(label, GINT_TO_POINTER(BUTTON_INVERT) );
+ }
+
+ return TRUE;
+}
+
+
+static GtkWidget *
+ui_flt_panel_category_new (struct ui_flt_manage_data *data)
+{
+GtkWidget *hubbox, *scrollwin, *hbox, *vbox, *widget, *label, *tbar;
+GtkToolItem *toolitem;
+
+ hubbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
+
+ label = make_label (_("Categories"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
+ gtk_box_pack_start (GTK_BOX (hubbox), label, FALSE, FALSE, 0);
+
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM);
+ gtk_box_pack_start (GTK_BOX (hubbox), hbox, FALSE, FALSE, 0);
+
+ label = make_label (_("Select:"), 0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+ label = make_clicklabel("all", _("All"));
+ data->BT_cat[BUTTON_ALL] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_category_activate_link), NULL);
+
+ label = make_clicklabel("non", _("None"));
+ data->BT_cat[BUTTON_NONE] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_category_activate_link), NULL);
+
+ label = make_clicklabel("inv", _("Invert"));
+ data->BT_cat[BUTTON_INVERT] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_category_activate_link), NULL);
+
+ //list
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_box_pack_start (GTK_BOX (hubbox), vbox, TRUE, TRUE, 0);
+
+ scrollwin = gtk_scrolled_window_new(NULL,NULL);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ //gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrollwin), HB_MINHEIGHT_LIST);
+ data->LV_cat = (GtkWidget *)ui_cat_listview_new(TRUE, FALSE);
+ gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_cat);
+ gtk_widget_set_hexpand (scrollwin, TRUE);
+ gtk_widget_set_vexpand (scrollwin, TRUE);
+ gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
+
+ //list toolbar
+ tbar = gtk_toolbar_new();
+ gtk_toolbar_set_icon_size (GTK_TOOLBAR(tbar), GTK_ICON_SIZE_MENU);
+ gtk_toolbar_set_style(GTK_TOOLBAR(tbar), GTK_TOOLBAR_ICONS);
+ gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR);
+ gtk_box_pack_start (GTK_BOX (vbox), tbar, FALSE, FALSE, 0);
+
+ toolitem = gtk_separator_tool_item_new ();
+ gtk_tool_item_set_expand (toolitem, TRUE);
+ gtk_separator_tool_item_set_draw(GTK_SEPARATOR_TOOL_ITEM(toolitem), FALSE);
+ gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(toolitem), -1);
+
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ toolitem = gtk_tool_item_new();
+ gtk_container_add (GTK_CONTAINER(toolitem), hbox);
+ gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(toolitem), -1);
+
+ widget = make_image_button(ICONNAME_HB_BUTTON_EXPAND, _("Expand all"));
+ data->BT_expand = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+
+ widget = make_image_button(ICONNAME_HB_BUTTON_COLLAPSE, _("Collapse all"));
+ data->BT_collapse = widget;
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+
+ g_signal_connect (G_OBJECT (data->BT_expand), "clicked", G_CALLBACK (ui_flt_hub_category_expand_all), NULL);
+ g_signal_connect (G_OBJECT (data->BT_collapse), "clicked", G_CALLBACK (ui_flt_hub_category_collapse_all), NULL);
+
+
+ return(hubbox);
+}
+
+
+/* = = = = = = = = = = = = = = = = */
+
+
static void ui_flt_manage_pay_select(GtkWidget *widget, gpointer user_data)
{
struct ui_flt_manage_data *data;
}
}
-/*
-**
-*/
-static void ui_flt_manage_cat_select(GtkWidget *widget, gpointer user_data)
+
+
+static gboolean
+ui_flt_panel_payee_activate_link (GtkWidget *label,
+ const gchar *uri,
+ gpointer data)
+{
+ DB( g_print(" comboboxlink '%s' \n", uri) );
+
+ if (g_strcmp0 (uri, "all") == 0)
+ {
+ ui_flt_manage_pay_select(label, GINT_TO_POINTER(BUTTON_ALL) );
+ }
+ else
+ if (g_strcmp0 (uri, "non") == 0)
+ {
+ ui_flt_manage_pay_select(label, GINT_TO_POINTER(BUTTON_NONE) );
+ }
+ else
+ if (g_strcmp0 (uri, "inv") == 0)
+ {
+ ui_flt_manage_pay_select(label, GINT_TO_POINTER(BUTTON_INVERT) );
+ }
+
+ return TRUE;
+}
+
+
+static GtkWidget *
+ui_flt_panel_payee_new (struct ui_flt_manage_data *data)
+{
+GtkWidget *scrollwin, *hbox, *vbox, *label;
+
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
+
+ label = make_label (_("Payees"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ label = make_label (_("Select:"), 0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+ label = make_clicklabel("all", _("All"));
+ data->BT_pay[BUTTON_ALL] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_payee_activate_link), NULL);
+
+ label = make_clicklabel("non", _("None"));
+ data->BT_pay[BUTTON_NONE] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_payee_activate_link), NULL);
+
+ label = make_clicklabel("inv", _("Invert"));
+ data->BT_pay[BUTTON_INVERT] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_payee_activate_link), NULL);
+
+ scrollwin = gtk_scrolled_window_new(NULL,NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
+
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
+ //gtk_container_set_border_width (GTK_CONTAINER(scrollwin), SPACING_SMALL);
+
+ data->LV_pay = (GtkWidget *)ui_pay_listview_new(TRUE, FALSE);
+ gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_pay);
+
+ return(vbox);
+}
+
+
+
+
+
+
+
+/* = = = = = = = = = = = = = = = = */
+
+static void ui_flt_manage_acc_select(GtkWidget *widget, gpointer user_data)
{
struct ui_flt_manage_data *data;
gint select = GPOINTER_TO_INT(user_data);
GtkTreeModel *model;
-GtkTreeIter iter, child;
+GtkTreeIter iter;
gboolean valid;
-gint n_child;
gboolean toggle;
- DB( g_print("(ui_flt_manage) pay select\n") );
+ DB( g_print("(ui_flt_manage) acc select\n") );
data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc));
valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
while (valid)
{
switch(select)
{
case BUTTON_ALL:
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, TRUE, -1);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, TRUE, -1);
break;
case BUTTON_NONE:
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, FALSE, -1);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, FALSE, -1);
break;
case BUTTON_INVERT:
- gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &toggle, -1);
+ gtk_tree_model_get (model, &iter, LST_DEFACC_TOGGLE, &toggle, -1);
toggle ^= 1;
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, toggle, -1);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFACC_TOGGLE, toggle, -1);
break;
}
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
+ }
+}
- n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
- gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
- while(n_child > 0)
- {
- switch(select)
- {
- case BUTTON_ALL:
- gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, TRUE, -1);
- break;
- case BUTTON_NONE:
- gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, FALSE, -1);
- break;
- case BUTTON_INVERT:
- gtk_tree_model_get (model, &child, LST_DEFCAT_TOGGLE, &toggle, -1);
- toggle ^= 1;
- gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, toggle, -1);
- break;
- }
+static gboolean
+ui_flt_panel_account_activate_link (GtkWidget *label,
+ const gchar *uri,
+ gpointer data)
+{
+ DB( g_print(" comboboxlink '%s' \n", uri) );
+
+ if (g_strcmp0 (uri, "all") == 0)
+ {
+ ui_flt_manage_acc_select(label, GINT_TO_POINTER(BUTTON_ALL) );
+ }
+ else
+ if (g_strcmp0 (uri, "non") == 0)
+ {
+ ui_flt_manage_acc_select(label, GINT_TO_POINTER(BUTTON_NONE) );
+ }
+ else
+ if (g_strcmp0 (uri, "inv") == 0)
+ {
+ ui_flt_manage_acc_select(label, GINT_TO_POINTER(BUTTON_INVERT) );
+ }
+
+ return TRUE;
+}
+
+static GtkWidget *
+ui_flt_panel_account_new (struct ui_flt_manage_data *data)
+{
+GtkWidget *scrollwin, *hbox, *vbox, *label;
+
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
+
+ label = make_label (_("Accounts"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_MEDIUM);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ label = make_label (_("Select:"), 0, 0.5);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+ label = make_clicklabel("all", _("All"));
+ data->BT_acc[BUTTON_ALL] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_account_activate_link), NULL);
+
+ label = make_clicklabel("non", _("None"));
+ data->BT_acc[BUTTON_NONE] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_account_activate_link), NULL);
+
+ label = make_clicklabel("inv", _("Invert"));
+ data->BT_acc[BUTTON_INVERT] = label;
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+ g_signal_connect (label, "activate-link", G_CALLBACK (ui_flt_panel_account_activate_link), NULL);
+
+ scrollwin = gtk_scrolled_window_new(NULL,NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
- n_child--;
- gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
- }
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
+ //gtk_container_set_border_width (GTK_CONTAINER(scrollwin), SPACING_SMALL);
- valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
- }
+ data->LV_acc = (GtkWidget *)ui_acc_listview_new(TRUE);
+ gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_acc);
+ return(vbox);
}
+/* = = = = = = = = = = = = = = = = */
+
+
+
+
+
+
+
/*
**
*/
active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_option[FILTER_TEXT]));
sensitive = active == 0 ? FALSE : TRUE;
gtk_widget_set_sensitive(data->CM_exact, sensitive);
- gtk_widget_set_sensitive(data->ST_wording, sensitive);
+ gtk_widget_set_sensitive(data->ST_memo, sensitive);
gtk_widget_set_sensitive(data->ST_info, sensitive);
gtk_widget_set_sensitive(data->ST_tag, sensitive);
{
GtkTreeModel *model;
//GtkTreeSelection *selection;
- GtkTreeIter iter, child;
- gint n_child;
+ GtkTreeIter iter;
+
gboolean valid;
gboolean toggled;
data->filter->minamount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_minamount));
data->filter->maxamount = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_maxamount));
- //text:wording
+ //text:memo
data->filter->exact = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_exact));
//free any previous string
- if( data->filter->wording )
+ if( data->filter->memo )
{
- g_free(data->filter->wording);
- data->filter->wording = NULL;
+ g_free(data->filter->memo);
+ data->filter->memo = NULL;
}
- txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_wording));
+ txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_memo));
if (txt && *txt) // ignore if entry is empty
{
- data->filter->wording = g_strdup(txt);
+ data->filter->memo = g_strdup(txt);
}
//text:info
-1);
//data->filter->acc[i] = gtk_tree_selection_iter_is_selected(selection, &iter);
- accitem->filter = toggled;
+ accitem->flt_select = toggled;
/* Make iter point to the next row in the list store */
i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
-1);
//data->filter->pay[i] = gtk_tree_selection_iter_is_selected(selection, &iter);
- payitem->filter = toggled;
+ payitem->flt_select = toggled;
/* Make iter point to the next row in the list store */
i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
// category
DB( g_print(" category\n") );
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
- //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat));
- i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
- while (valid)
- {
- Category *catitem;
-
- gtk_tree_model_get (model, &iter,
- LST_DEFCAT_TOGGLE, &toggled,
- LST_DEFCAT_DATAS, &catitem,
- -1);
-
- //data->filter->cat[i] = gtk_tree_selection_iter_is_selected(selection, &iter);
- //data->filter->cat[i] = toggled;
- catitem->filter = toggled;
-
- n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
- gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
- while(n_child > 0)
- {
- i++;
-
- gtk_tree_model_get (model, &child,
- LST_DEFCAT_TOGGLE, &toggled,
- LST_DEFCAT_DATAS, &catitem,
- -1);
-
-
- //data->filter->cat[i] = toggled;
- //data->filter->cat[i] = gtk_tree_selection_iter_is_selected(selection, &child);
- catitem->filter = toggled;
-
- n_child--;
- gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
- }
-
- /* Make iter point to the next row in the list store */
- i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
- }
+ ui_flt_panel_category_get(data);
// active tab
- data->filter->last_tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->notebook));
- DB( g_print(" page is %d\n", data->filter->last_tab) );
+ g_strlcpy(data->filter->last_tab, gtk_stack_get_visible_child_name(GTK_STACK(data->stack)), 8);
+ DB( g_print(" page is '%s'\n", data->filter->last_tab) );
}
{
GtkTreeModel *model;
//GtkTreeSelection *selection;
- GtkTreeIter iter, child;
+ GtkTreeIter iter;
GDate *date;
- gint n_child;
+
gboolean valid;
gint i;
//text
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_exact), data->filter->exact);
gtk_entry_set_text(GTK_ENTRY(data->ST_info), (data->filter->info != NULL) ? data->filter->info : "");
- gtk_entry_set_text(GTK_ENTRY(data->ST_wording), (data->filter->wording != NULL) ? data->filter->wording : "");
+ gtk_entry_set_text(GTK_ENTRY(data->ST_memo), (data->filter->memo != NULL) ? data->filter->memo : "");
gtk_entry_set_text(GTK_ENTRY(data->ST_tag), (data->filter->tag != NULL) ? data->filter->tag : "");
//account
LST_DEFACC_DATAS, &accitem,
-1);
- if(accitem->filter == TRUE)
+ if(accitem->flt_select == TRUE)
//gtk_tree_selection_select_iter(selection, &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
LST_DEFACC_TOGGLE, TRUE, -1);
LST_DEFPAY_DATAS, &payitem,
-1);
- if(payitem->filter == TRUE)
+ if(payitem->flt_select == TRUE)
gtk_list_store_set (GTK_LIST_STORE (model), &iter, LST_DEFPAY_TOGGLE, TRUE, -1);
/* Make iter point to the next row in the list store */
// category
DB( g_print(" category\n") );
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_cat));
- //selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_cat));
- i=0; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
- while (valid)
- {
- Category *catitem;
-
- gtk_tree_model_get (model, &iter,
- LST_DEFCAT_DATAS, &catitem,
- -1);
-
- if(catitem->filter == TRUE)
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, TRUE, -1);
-
- n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
- gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
- while(n_child > 0)
- {
- i++;
-
- gtk_tree_model_get (model, &child,
- LST_DEFCAT_DATAS, &catitem,
- -1);
-
- if(catitem->filter == TRUE)
- gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, TRUE, -1);
-
- n_child--;
- gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
- }
-
- /* Make iter point to the next row in the list store */
- i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
- }
-
- // active tab
- gtk_notebook_set_current_page(GTK_NOTEBOOK(data->notebook), data->filter->last_tab);
- DB( g_print(" set page %d\n", data->filter->last_tab) );
+ ui_flt_panel_category_set(data);
}
}
DB( g_print("(ui_flt_manage) clear\n") );
- filter_default_all_set(data->filter);
+ filter_reset(data->filter);
ui_flt_manage_set(data);
{
//gtk_tree_selection_set_mode(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_pay))), GTK_SELECTION_MULTIPLE);
- ui_pay_listview_populate(data->LV_pay);
+ ui_pay_listview_populate(data->LV_pay, NULL);
//populate_view_pay(data->LV_pay, GLOBALS->pay_list, FALSE);
}
}
}
-/*
-**
-*/
+
+
+
+
+
static GtkWidget *ui_flt_manage_page_category (struct ui_flt_manage_data *data)
{
-GtkWidget *container, *scrollwin, *hbox, *vbox, *label, *widget;
+GtkWidget *container, *panel, *hbox, *label;
container = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
gtk_container_set_border_width (GTK_CONTAINER (container), SPACING_MEDIUM);
data->CY_option[FILTER_CATEGORY] = make_nainex(label);
gtk_box_pack_start (GTK_BOX (hbox), data->CY_option[FILTER_CATEGORY], TRUE, TRUE, 0);
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (container), hbox, TRUE, TRUE, 0);
-
- scrollwin = gtk_scrolled_window_new(NULL,NULL);
- gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0);
-
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
- //gtk_container_set_border_width (GTK_CONTAINER(scrollwin), SPACING_SMALL);
-
- data->LV_cat = (GtkWidget *)ui_cat_listview_new(TRUE, FALSE);
- gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_cat);
-
- vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
-
- widget = gtk_button_new_with_label(_("All"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_cat[BUTTON_ALL] = widget;
-
- widget = gtk_button_new_with_label(_("None"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_cat[BUTTON_NONE] = widget;
-
- widget = gtk_button_new_with_label(_("Invert"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_cat[BUTTON_INVERT] = widget;
+ panel = ui_flt_panel_category_new(data);
+ gtk_box_pack_start (GTK_BOX (container), panel, TRUE, TRUE, 0);
return(container);
}
-/*
-**
-*/
+
static GtkWidget *ui_flt_manage_page_payee (struct ui_flt_manage_data *data)
{
-GtkWidget *container, *scrollwin, *hbox, *vbox, *label, *widget;
+GtkWidget *container, *panel, *hbox, *label;
container = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
gtk_container_set_border_width (GTK_CONTAINER (container), SPACING_MEDIUM);
data->CY_option[FILTER_PAYEE] = make_nainex(label);
gtk_box_pack_start (GTK_BOX (hbox), data->CY_option[FILTER_PAYEE], TRUE, TRUE, 0);
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (container), hbox, TRUE, TRUE, 0);
-
- scrollwin = gtk_scrolled_window_new(NULL,NULL);
- gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0);
-
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
- //gtk_container_set_border_width (GTK_CONTAINER(scrollwin), SPACING_SMALL);
-
- data->LV_pay = (GtkWidget *)ui_pay_listview_new(TRUE, FALSE);
- gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_pay);
-
- vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
-
- widget = gtk_button_new_with_label(_("All"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_pay[BUTTON_ALL] = widget;
-
- widget = gtk_button_new_with_label(_("None"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_pay[BUTTON_NONE] = widget;
-
- widget = gtk_button_new_with_label(_("Invert"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_pay[BUTTON_INVERT] = widget;
+ panel = ui_flt_panel_payee_new(data);
+ gtk_box_pack_start (GTK_BOX (container), panel, TRUE, TRUE, 0);
return(container);
}
*/
static GtkWidget *ui_flt_manage_page_account (struct ui_flt_manage_data *data)
{
-GtkWidget *container, *scrollwin, *hbox, *vbox, *label, *widget;
+GtkWidget *container, *panel, *hbox, *label;
container = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
gtk_container_set_border_width (GTK_CONTAINER (container), SPACING_MEDIUM);
data->CY_option[FILTER_ACCOUNT] = make_nainex(label);
gtk_box_pack_start (GTK_BOX (hbox), data->CY_option[FILTER_ACCOUNT], TRUE, TRUE, 0);
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (container), hbox, TRUE, TRUE, 0);
-
- scrollwin = gtk_scrolled_window_new(NULL,NULL);
- gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0);
-
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
- //gtk_container_set_border_width (GTK_CONTAINER(scrollwin), SPACING_SMALL);
-
- data->LV_acc = ui_acc_listview_new(TRUE);
- gtk_container_add(GTK_CONTAINER(scrollwin), data->LV_acc);
-
- vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
-
- widget = gtk_button_new_with_label(_("All"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_acc[BUTTON_ALL] = widget;
-
- widget = gtk_button_new_with_label(_("None"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_acc[BUTTON_NONE] = widget;
-
- widget = gtk_button_new_with_label(_("Invert"));
- gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
- data->BT_acc[BUTTON_INVERT] = widget;
+ panel = ui_flt_panel_account_new(data);
+ gtk_box_pack_start (GTK_BOX (container), panel, TRUE, TRUE, 0);
return(container);
}
}
-
static GtkWidget *ui_flt_manage_part_date(struct ui_flt_manage_data *data)
{
GtkWidget *table, *label;
gint row;
- // filter date
table = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
gtk_container_set_border_width(GTK_CONTAINER(table), SPACING_MEDIUM);
row = 0;
- label = make_label_group(_("Filter Date"));
+ label = make_label_widget(_("_Option:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
+ data->CY_option[FILTER_DATE] = make_nainex(label);
+ gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_DATE], 2, row, 1, 1);
+
+ row++;
+ label = make_label (_("Dates"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1);
- row++;
- label = make_label_widget(_("_Option:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->CY_option[FILTER_DATE] = make_nainex(label);
- gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_DATE], 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_From:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->PO_mindate = gtk_date_entry_new();
- //data->PO_mindate = gtk_entry_new();
- //gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 1, 2, row, row+1);
- gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_To:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->PO_maxdate = gtk_date_entry_new();
- //data->PO_maxdate = gtk_entry_new();
- //gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 1, 2, row, row+1);
- gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_Month:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->CY_month = make_cycle(label, CYA_SELECT);
- gtk_grid_attach (GTK_GRID (table), data->CY_month, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_Year:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->NB_year = make_year(label);
- gtk_grid_attach (GTK_GRID (table), data->NB_year, 2, row, 1, 1);
-
+ row++;
+ label = make_label_widget(_("_From:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->PO_mindate = gtk_date_entry_new();
+ gtk_grid_attach (GTK_GRID (table), data->PO_mindate, 1, row, 2, 1);
+
+ row++;
+ label = make_label_widget(_("_To:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->PO_maxdate = gtk_date_entry_new();
+ gtk_grid_attach (GTK_GRID (table), data->PO_maxdate, 1, row, 2, 1);
+
+ row++;
+ label = make_label_widget(_("_Month:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->CY_month = make_cycle(label, CYA_SELECT);
+ gtk_grid_attach (GTK_GRID (table), data->CY_month, 1, row, 2, 1);
+
+ row++;
+ label = make_label_widget(_("_Year:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->NB_year = make_year(label);
+ gtk_grid_attach (GTK_GRID (table), data->NB_year, 1, row, 2, 1);
return table;
}
gtk_container_set_border_width(GTK_CONTAINER(table), SPACING_MEDIUM);
row = 0;
- label = make_label_group(_("Filter Text"));
+ label = make_label_widget(_("_Option:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
+ data->CY_option[FILTER_TEXT] = make_nainex(label);
+ gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_TEXT], 2, row, 1, 1);
+
+ row++;
+ label = make_label (_("Texts"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1);
- row++;
- label = make_label_widget(_("_Option:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
-
- //gtk_grid_attach (GTK_GRID (table), label, 0, 1, row, row+1);
- data->CY_option[FILTER_TEXT] = make_nainex(label);
- gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_TEXT], 2, row, 1, 1);
-
- row++;
- data->CM_exact = gtk_check_button_new_with_mnemonic (_("Case _sensitive"));
- gtk_grid_attach (GTK_GRID (table), data->CM_exact, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_Memo:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->ST_wording = make_string(label);
- gtk_widget_set_hexpand (data->ST_wording, TRUE);
- gtk_grid_attach (GTK_GRID (table), data->ST_wording, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_Info:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->ST_info = make_string(label);
- gtk_widget_set_hexpand (data->ST_info, TRUE);
- gtk_grid_attach (GTK_GRID (table), data->ST_info, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_Tag:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->ST_tag = make_string(label);
- gtk_widget_set_hexpand (data->ST_tag, TRUE);
- gtk_grid_attach (GTK_GRID (table), data->ST_tag, 2, row, 1, 1);
+ row++;
+ label = make_label_widget(_("_Memo:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->ST_memo = make_string(label);
+ gtk_widget_set_hexpand (data->ST_memo, TRUE);
+ gtk_grid_attach (GTK_GRID (table), data->ST_memo, 1, row, 2, 1);
+
+ row++;
+ label = make_label_widget(_("_Info:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->ST_info = make_string(label);
+ gtk_widget_set_hexpand (data->ST_info, TRUE);
+ gtk_grid_attach (GTK_GRID (table), data->ST_info, 1, row, 2, 1);
+
+ row++;
+ label = make_label_widget(_("_Tag:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->ST_tag = make_string(label);
+ gtk_widget_set_hexpand (data->ST_tag, TRUE);
+ gtk_grid_attach (GTK_GRID (table), data->ST_tag, 1, row, 2, 1);
+
+ row++;
+ data->CM_exact = gtk_check_button_new_with_mnemonic (_("Case _sensitive"));
+ gtk_grid_attach (GTK_GRID (table), data->CM_exact, 1, row, 2, 1);
return table;
GtkWidget *table, *label;
gint row;
-
table = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
gtk_container_set_border_width(GTK_CONTAINER(table), SPACING_MEDIUM);
- // Amount section
row = 0;
-
- label = make_label_group(_("Filter Amount"));
+ label = make_label_widget(_("_Option:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
+ data->CY_option[FILTER_AMOUNT] = make_nainex(label);
+ gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_AMOUNT], 2, row, 1, 1);
+
+ row++;
+ label = make_label (_("Amounts"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1);
- row++;
- label = make_label_widget(_("_Option:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
-
- //gtk_grid_attach (GTK_GRID (table), label, 0, 1, row, row+1);
- data->CY_option[FILTER_AMOUNT] = make_nainex(label);
- gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_AMOUNT], 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_From:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->ST_minamount = make_amount(label);
- gtk_grid_attach (GTK_GRID (table), data->ST_minamount, 2, row, 1, 1);
-
- row++;
- label = make_label_widget(_("_To:"));
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->ST_maxamount = make_amount(label);
- gtk_grid_attach (GTK_GRID (table), data->ST_maxamount, 2, row, 1, 1);
-
+ row++;
+ label = make_label_widget(_("_From:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->ST_minamount = make_amount(label);
+ gtk_grid_attach (GTK_GRID (table), data->ST_minamount, 1, row, 2, 1);
+ row++;
+ label = make_label_widget(_("_To:"));
+ gtk_grid_attach (GTK_GRID (table), label, 0, row, 1, 1);
+ data->ST_maxamount = make_amount(label);
+ gtk_grid_attach (GTK_GRID (table), data->ST_maxamount, 1, row, 2, 1);
return table;
}
GtkWidget *table, *label, *vbox, *widget;
gint row;
-
- // column 2
-
- // filter status
table = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
gtk_container_set_border_width(GTK_CONTAINER(table), SPACING_MEDIUM);
row = 0;
- label = make_label_group (_("Filter Status"));
+ label = make_label_widget(_("_Option:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
+ data->CY_option[FILTER_STATUS] = make_nainex(label);
+ gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_STATUS], 2, row, 1, 1);
+
+ row++;
+ label = make_label (_("Statuses"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1);
- row++;
- label = make_label_widget(_("_Option:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
-
- data->CY_option[FILTER_STATUS] = make_nainex(label);
- gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_STATUS], 2, row, 1, 1);
row++;
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
row++;
label = make_label_widget(_("Force:"));
+ data->LB_force = label;
gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ data->GR_force = vbox;
gtk_grid_attach (GTK_GRID (table), vbox, 2, row, 1, 1);
widget = gtk_check_button_new_with_mnemonic (_("display 'Added'"));
GtkWidget *table, *label, *table1, *image;
gint i, row;
- // Filter Payment
table = gtk_grid_new ();
gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
gtk_container_set_border_width(GTK_CONTAINER(table), SPACING_MEDIUM);
-
row = 0;
- label = make_label_group(_("Filter Payment"));
+ label = make_label_widget(_("_Option:"));
+ //----------------------------------------- l, r, t, b
+ gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
+ data->CY_option[FILTER_PAYMODE] = make_nainex(label);
+ gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_PAYMODE], 2, row, 1, 1);
+
+ row++;
+ label = make_label (_("Payments"), 0, 0);
+ gimp_label_set_attributes (GTK_LABEL (label), PANGO_ATTR_SCALE, PANGO_SCALE_LARGE, -1);
gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1);
+ row++;
+ table1 = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (table1), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (table1), SPACING_SMALL);
+ gtk_grid_attach (GTK_GRID (table), table1, 1, row, 2, 1);
- row++;
- label = make_label_widget(_("_Option:"));
- //----------------------------------------- l, r, t, b
- gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1);
- data->CY_option[FILTER_PAYMODE] = make_nainex(label);
- gtk_grid_attach (GTK_GRID (table), data->CY_option[FILTER_PAYMODE], 2, row, 1, 1);
-
- table1 = gtk_grid_new ();
- gtk_grid_set_row_spacing (GTK_GRID (table1), 0);
- gtk_grid_set_column_spacing (GTK_GRID (table1), 2);
-
- row++;
- gtk_grid_attach (GTK_GRID (table), table1, 2, row, 1, 1);
-
- for(i=0;i<NUM_PAYMODE_MAX;i++)
- {
- row = i;
-
- data->CM_paymode[i] = gtk_check_button_new();
- gtk_grid_attach (GTK_GRID (table1), data->CM_paymode[i], 0, row, 1, 1);
-
- image = gtk_image_new_from_icon_name( get_paymode_icon_name(i), GTK_ICON_SIZE_MENU);
- gtk_grid_attach (GTK_GRID (table1), image, 1, row, 1, 1);
-
- label = make_label(_(paymode_label_names[i]), 0.0, 0.5);
- gtk_grid_attach (GTK_GRID (table1), label, 2, row, 1, 1);
-
- }
+ for(i=0;i<NUM_PAYMODE_MAX;i++)
+ {
+ row = i;
+ image = gtk_image_new_from_icon_name( get_paymode_icon_name(i), GTK_ICON_SIZE_MENU);
+ gtk_grid_attach (GTK_GRID (table1), image, 0, row, 1, 1);
+ data->CM_paymode[i] = gtk_check_button_new_with_mnemonic(_(paymode_label_names[i]));
+ gtk_grid_attach (GTK_GRID (table1), data->CM_paymode[i], 1, row, 1, 1);
+ }
return table;
}
-/*
-** general page: date, amount, status, payment
-*/
-/*
-static GtkWidget *ui_flt_manage_page_general (struct ui_flt_manage_data *data)
-{
-GtkWidget *container, *part;
-
- //container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
- // gtk_alignment_new(xalign, yalign, xscale, yscale)
- //gtk_container_set_border_width(GTK_CONTAINER(container), SPACING_SMALL);
-
- container = gtk_grid_new (2, 3, FALSE);
- gtk_grid_set_row_spacing (GTK_GRID (container), SPACING_SMALL*2);
- gtk_grid_set_column_spacing (GTK_GRID (container), SPACING_MEDIUM*2);
- gtk_container_set_border_width(GTK_CONTAINER(container), SPACING_SMALL);
-
- // date: r=1, c=1
- part = ui_flt_manage_part_date(data);
- gtk_grid_attach(GTK_GRID (container), part, 0, 1, 0, 1);
-
- // amount: r=2, c=2
- part = ui_flt_manage_part_amount(data);
- gtk_grid_attach (GTK_GRID (container), part, 0, 1, 1, 2);
-
- // paymode:
- part = ui_flt_manage_part_paymode(data);
- gtk_grid_attach (GTK_GRID (container), part, 1, 2, 0, 2);
-
- // status: r=2, c=1
- part = ui_flt_manage_part_status(data);
- gtk_grid_attach (GTK_GRID (container), part, 2, 3, 0, 1);
-
- // text: r=2, c=1
- part = ui_flt_manage_part_text(data);
- gtk_grid_attach (GTK_GRID (container), part, 2, 3, 1, 2);
-
- gtk_container_set_border_width(GTK_CONTAINER(container), SPACING_SMALL);
-
- return(container);
-}
-*/
-
-
-
/*
**
*/
-gint ui_flt_manage_dialog_new(GtkWidget *widget, Filter *filter, gboolean show_account)
+gint ui_flt_manage_dialog_new(GtkWindow *parentwindow, Filter *filter, gboolean show_account, gboolean txnmode)
{
struct ui_flt_manage_data data;
-GtkWidget *parentwindow, *window, *content, *mainbox, *notebook, *label, *page;
+GtkWidget *window, *content, *mainbox, *box, *sidebar, *stack, *page;
+//gint w, h;
//data = g_malloc0(sizeof(struct ui_flt_manage_data));
//if(!data) return NULL;
- memset(&data, 0, sizeof(data));
+ memset(&data, 0, sizeof(struct ui_flt_manage_data));
data.filter = filter;
- parentwindow = gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW);
-
window = gtk_dialog_new_with_buttons (_("Edit filter"),
GTK_WINDOW (parentwindow),
0,
gtk_window_set_icon_name(GTK_WINDOW (window), ICONNAME_HB_FILTER);
+ //set a nice dialog size
+ //gtk_window_get_size(GTK_WINDOW(parentwindow), &w, &h);
+ //gtk_window_set_default_size (GTK_WINDOW(window), -1, 0.8*h);
+
+
//store our window private data
g_object_set_data(G_OBJECT(window), "inst_data", (gpointer)&data);
- DB( g_print("(ui_flt_manage) window=%x, inst_data=%x\n", (guint)window, (guint)&data) );
+ DB( g_print("(ui_flt_manage) window=%p, inst_data=%p\n", window, &data) );
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
content = gtk_dialog_get_content_area(GTK_DIALOG (window));
mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, SPACING_SMALL);
gtk_box_pack_start (GTK_BOX (content), mainbox, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER(mainbox), SPACING_MEDIUM);
+ //gtk_container_set_border_width (GTK_CONTAINER(mainbox), SPACING_MEDIUM);
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_pack_start (GTK_BOX (mainbox), box, TRUE, TRUE, 0);
+
+ sidebar = gtk_stack_sidebar_new ();
+ gtk_box_pack_start (GTK_BOX (box), sidebar, FALSE, FALSE, 0);
+
+
+ stack = gtk_stack_new ();
+ gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN);
+ gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack));
+ data.stack = stack;
+ gtk_box_pack_start (GTK_BOX (box), stack, TRUE, TRUE, 0);
- notebook = gtk_notebook_new();
- gtk_notebook_set_tab_pos(GTK_NOTEBOOK (notebook), GTK_POS_LEFT);
- gtk_box_pack_start (GTK_BOX (mainbox), notebook, TRUE, TRUE, 0);
- data.notebook = notebook;
//common (date + status + amount)
/* label = gtk_label_new(_("General"));
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
*/
- label = gtk_label_new(_("Date"));
page = ui_flt_manage_part_date(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "dat", _("Dates"));
- label = gtk_label_new(_("Status"));
page = ui_flt_manage_part_status(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "sta", _("Statuses"));
- label = gtk_label_new(_("Payment"));
page = ui_flt_manage_part_paymode(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "pmt", _("Payments"));
- label = gtk_label_new(_("Amount"));
page = ui_flt_manage_part_amount(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "amt", _("Amounts"));
- label = gtk_label_new(_("Text"));
page = ui_flt_manage_part_text(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "txt", _("Texts"));
- label = gtk_label_new(_("Category"));
page = ui_flt_manage_page_category(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "cat", _("Categories"));
- label = gtk_label_new(_("Payee"));
page = ui_flt_manage_page_payee(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "pay", _("Payees"));
data.show_account = show_account;
if(show_account == TRUE)
{
- label = gtk_label_new(_("Account"));
page = ui_flt_manage_page_account(&data);
- gtk_widget_show(GTK_WIDGET(page));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
+ //gtk_widget_show(GTK_WIDGET(page));
+ gtk_stack_add_titled (GTK_STACK (stack), page, "acc", _("Accounts"));
}
//setup, init and show window
ui_flt_manage_set(&data);
ui_flt_manage_option_update(window, NULL);
-
/* signal connect */
g_signal_connect (data.CY_option[FILTER_STATUS] , "changed", G_CALLBACK (ui_flt_manage_option_update), NULL);
{
g_signal_connect (data.CY_option[FILTER_ACCOUNT] , "changed", G_CALLBACK (ui_flt_manage_option_update), NULL);
- g_signal_connect (data.BT_acc[BUTTON_ALL] , "clicked", G_CALLBACK (ui_flt_manage_acc_select), GINT_TO_POINTER(BUTTON_ALL));
- g_signal_connect (data.BT_acc[BUTTON_NONE] , "clicked", G_CALLBACK (ui_flt_manage_acc_select), GINT_TO_POINTER(BUTTON_NONE));
- g_signal_connect (data.BT_acc[BUTTON_INVERT], "clicked", G_CALLBACK (ui_flt_manage_acc_select), GINT_TO_POINTER(BUTTON_INVERT));
}
g_signal_connect (data.CY_month, "changed", G_CALLBACK (ui_flt_manage_period_change), NULL);
g_signal_connect (data.NB_year, "value-changed", G_CALLBACK (ui_flt_manage_period_change), NULL);
- g_signal_connect (data.BT_pay[BUTTON_ALL] , "clicked", G_CALLBACK (ui_flt_manage_pay_select), GINT_TO_POINTER(BUTTON_ALL));
- g_signal_connect (data.BT_pay[BUTTON_NONE] , "clicked", G_CALLBACK (ui_flt_manage_pay_select), GINT_TO_POINTER(BUTTON_NONE));
- g_signal_connect (data.BT_pay[BUTTON_INVERT], "clicked", G_CALLBACK (ui_flt_manage_pay_select), GINT_TO_POINTER(BUTTON_INVERT));
- g_signal_connect (data.BT_cat[BUTTON_ALL] , "clicked", G_CALLBACK (ui_flt_manage_cat_select), GINT_TO_POINTER(BUTTON_ALL));
- g_signal_connect (data.BT_cat[BUTTON_NONE] , "clicked", G_CALLBACK (ui_flt_manage_cat_select), GINT_TO_POINTER(BUTTON_NONE));
- g_signal_connect (data.BT_cat[BUTTON_INVERT], "clicked", G_CALLBACK (ui_flt_manage_cat_select), GINT_TO_POINTER(BUTTON_INVERT));
+ gtk_widget_show_all (window);
+
+ if(!txnmode)
+ {
+ hb_widget_visible (data.LB_force, FALSE);
+ hb_widget_visible (data.GR_force, FALSE);
+ }
- gtk_widget_show_all (window);
+ if( *data.filter->last_tab != '\0' )
+ gtk_stack_set_visible_child_name (GTK_STACK(data.stack), data.filter->last_tab);
+ DB( g_print(" set page '%s'\n", data.filter->last_tab) );
//wait for the user