Merge lp:~slodki/homebank/re into lp:homebank/trunk

Proposed by slodki
Status: Rejected
Rejected by: Maxime DOYEN
Proposed branch: lp:~slodki/homebank/re
Merge into: lp:homebank/trunk
Diff against target: 500 lines (+184/-28)
8 files modified
src/hb-assign.c (+1/-0)
src/hb-assign.h (+5/-0)
src/hb-hbfile.c (+2/-0)
src/hb-transaction.c (+33/-8)
src/hb-xml.c (+10/-2)
src/homebank.h (+1/-1)
src/ui-assign.c (+125/-14)
src/ui-assign.h (+7/-3)
To merge this branch: bzr merge lp:~slodki/homebank/re
Reviewer Review Type Date Requested Status
Maxime DOYEN Pending
Review via email: mp+273769@code.launchpad.net

Description of the change

See related bug description with examples and screenshots.
Manual should be also updated with reference to https://developer.gnome.org/glib/stable/glib-regex-syntax.html.

To post a comment you must log in.
lp:~slodki/homebank/re updated
37. By slodki

minor fix

38. By slodki

GUI for ASGF_OVW* added

39. By slodki

Don't allow to overwrite with empty payee or category in assignments

40. By slodki

Add ability to assign Payment

41. By slodki

Fixed typo in assign_rename()

42. By slodki

merged trunk

43. By slodki

fix for merging trunk

44. By slodki

fix for merging trunk

Unmerged revisions

44. By slodki

fix for merging trunk

43. By slodki

fix for merging trunk

42. By slodki

merged trunk

41. By slodki

Fixed typo in assign_rename()

40. By slodki

Add ability to assign Payment

39. By slodki

Don't allow to overwrite with empty payee or category in assignments

38. By slodki

GUI for ASGF_OVW* added

37. By slodki

minor fix

36. By slodki

update to latest trunk

35. By slodki

New attribute "patt" (pattern) added to assignment rule.
Changed assignment window layout - separate name and pattern fields
xhb file format version bumped to 1.2 (upgrade from <1.2 included).

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/hb-assign.c'
--- src/hb-assign.c 2015-02-08 13:24:47 +0000
+++ src/hb-assign.c 2015-10-24 13:51:48 +0000
@@ -43,6 +43,7 @@
43 DB( g_print(" => %d, %s\n", item->key, item->name) );43 DB( g_print(" => %d, %s\n", item->key, item->name) );
4444
45 g_free(item->name);45 g_free(item->name);
46 g_free(item->patt);
46 g_free(item);47 g_free(item);
47 }48 }
48}49}
4950
=== modified file 'src/hb-assign.h'
--- src/hb-assign.h 2015-10-04 09:22:24 +0000
+++ src/hb-assign.h 2015-10-24 13:51:48 +0000
@@ -30,8 +30,10 @@
30 gushort flags;30 gushort flags;
31 gushort field;31 gushort field;
32 gchar *name;32 gchar *name;
33 gchar *patt;
33 guint32 kpay;34 guint32 kpay;
34 guint32 kcat;35 guint32 kcat;
36 gushort paymode;
35};37};
3638
3739
@@ -40,6 +42,9 @@
40#define ASGF_DOCAT (1<<2)42#define ASGF_DOCAT (1<<2)
41#define ASGF_OVWPAY (1<<3)43#define ASGF_OVWPAY (1<<3)
42#define ASGF_OVWCAT (1<<4)44#define ASGF_OVWCAT (1<<4)
45#define ASGF_REMATCH (1<<5)
46#define ASGF_DOMOD (1<<6)
47#define ASGF_OVWMOD (1<<7)
4348
44void49void
45da_asg_free(Assign *item);50da_asg_free(Assign *item);
4651
=== modified file 'src/hb-hbfile.c'
--- src/hb-hbfile.c 2015-10-04 09:22:24 +0000
+++ src/hb-hbfile.c 2015-10-24 13:51:48 +0000
@@ -273,6 +273,8 @@
273 {273 {
274 g_free(item->name);274 g_free(item->name);
275 item->name = g_strdup_printf("assign %d", item->key);275 item->name = g_strdup_printf("assign %d", item->key);
276 g_free(item->patt);
277 item->patt = g_strdup_printf("pattern %d", item->key);
276 GLOBALS->changes_count++;278 GLOBALS->changes_count++;
277 }279 }
278 list = g_list_next(list);280 list = g_list_next(list);
279281
=== modified file 'src/hb-transaction.c'
--- src/hb-transaction.c 2015-10-18 12:22:35 +0000
+++ src/hb-transaction.c 2015-10-24 13:51:48 +0000
@@ -853,6 +853,22 @@
853 return match;853 return match;
854}854}
855855
856static gboolean misc_re_match(gchar *text, gchar *searchtext, gboolean exact)
857{
858gboolean match = FALSE;
859
860 if(text == NULL)
861 return FALSE;
862
863 DB( g_print("match RE %s in %s\n", searchtext, text) );
864 if( searchtext != NULL )
865 {
866 match = g_regex_match_simple(searchtext, text, ((exact == TRUE)?0:G_REGEX_CASELESS) | G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTEMPTY );
867 if (match == TRUE) { DB( g_print(" found pattern '%s'\n", searchtext) ); }
868 }
869 return match;
870}
871
856872
857static Assign *transaction_auto_assign_eval_txn(GList *l_rul, Transaction *txn)873static Assign *transaction_auto_assign_eval_txn(GList *l_rul, Transaction *txn)
858{874{
@@ -874,7 +890,7 @@
874 if(pay)890 if(pay)
875 text = pay->name;891 text = pay->name;
876 }892 }
877 if( misc_text_match(text, rul->name, rul->flags & ASGF_EXACT))893 if( (rul->flags & ASGF_REMATCH) ? misc_re_match(text, rul->patt, rul->flags & ASGF_EXACT) : misc_text_match(text, rul->patt, rul->flags & ASGF_EXACT) )
878 rule = rul;894 rule = rul;
879895
880 list = g_list_next(list);896 list = g_list_next(list);
@@ -898,7 +914,7 @@
898914
899 if( rul->field == 0 ) //memo915 if( rul->field == 0 ) //memo
900 {916 {
901 if( misc_text_match(text, rul->name, rul->flags & ASGF_EXACT))917 if( (rul->flags & ASGF_REMATCH) ? misc_re_match(text, rul->patt, rul->flags & ASGF_EXACT) : misc_text_match(text, rul->patt, rul->flags & ASGF_EXACT) )
902 rule = rul;918 rule = rul;
903 }919 }
904 list = g_list_next(list);920 list = g_list_next(list);
@@ -934,17 +950,26 @@
934 rul = transaction_auto_assign_eval_txn(l_rul, ope);950 rul = transaction_auto_assign_eval_txn(l_rul, ope);
935 if( rul != NULL )951 if( rul != NULL )
936 {952 {
937 if( (ope->kpay == 0 || (rul->flags & ASGF_OVWPAY)) && (rul->flags & ASGF_DOPAY) )953 if( (ope->kpay == 0 || (rul->flags & ASGF_OVWPAY)) && rul->kpay != 0 && ope->kpay != rul->kpay && (rul->flags & ASGF_DOPAY) )
938 {954 {
939 if(ope->kpay != rul->kpay) { changed = TRUE; }955 changed = TRUE;
940 ope->kpay = rul->kpay;956 ope->kpay = rul->kpay;
941 }957 }
942958
959 if( (ope->paymode == 0 || (rul->flags & ASGF_OVWMOD)) && rul->paymode != 0 && ope->paymode != rul->paymode && (rul->flags & ASGF_DOMOD) )
960 {
961 if(ope->paymode != PAYMODE_INTXFER && rul->paymode != PAYMODE_INTXFER) //ugly hack - don't allow modify intxfer
962 {
963 changed = TRUE;
964 ope->paymode = rul->paymode;
965 }
966 }
967
943 if( !(ope->flags & OF_SPLIT) )968 if( !(ope->flags & OF_SPLIT) )
944 {969 {
945 if( (ope->kcat == 0 || (rul->flags & ASGF_OVWCAT)) && (rul->flags & ASGF_DOCAT) )970 if( (ope->kcat == 0 || (rul->flags & ASGF_OVWCAT)) && rul->kcat != 0 && ope->kcat != rul->kcat && (rul->flags & ASGF_DOCAT) )
946 {971 {
947 if(ope->kcat != rul->kcat) { changed = TRUE; }972 changed = TRUE;
948 ope->kcat = rul->kcat;973 ope->kcat = rul->kcat;
949 }974 }
950 }975 }
@@ -964,9 +989,9 @@
964 if( rul != NULL )989 if( rul != NULL )
965 {990 {
966 //#1501144: check if user wants to set category in rule991 //#1501144: check if user wants to set category in rule
967 if( (split->kcat == 0 || (rul->flags & ASGF_OVWCAT)) && (rul->flags & ASGF_DOCAT) )992 if( (split->kcat == 0 || (rul->flags & ASGF_OVWCAT)) && rul->kcat != 0 && split->kcat != rul->kcat && (rul->flags & ASGF_DOCAT) )
968 {993 {
969 if(split->kcat != rul->kcat) { changed = TRUE; }994 changed = TRUE;
970 split->kcat = rul->kcat;995 split->kcat = rul->kcat;
971 }996 }
972 }997 }
973998
=== modified file 'src/hb-xml.c'
--- src/hb-xml.c 2015-10-18 12:22:35 +0000
+++ src/hb-xml.c 2015-10-24 13:51:48 +0000
@@ -405,9 +405,10 @@
405 else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); }405 else if(!strcmp (attribute_names[i], "flags" )) { entry->flags = atoi(attribute_values[i]); }
406 else if(!strcmp (attribute_names[i], "field" )) { entry->field = atoi(attribute_values[i]); }406 else if(!strcmp (attribute_names[i], "field" )) { entry->field = atoi(attribute_values[i]); }
407 else if(!strcmp (attribute_names[i], "name" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->name = g_strdup(attribute_values[i]); }407 else if(!strcmp (attribute_names[i], "name" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->name = g_strdup(attribute_values[i]); }
408 else if(!strcmp (attribute_names[i], "patt" )) { if(strcmp(attribute_values[i],"(null)") && attribute_values[i] != NULL) entry->patt = g_strdup(attribute_values[i]); }
408 else if(!strcmp (attribute_names[i], "payee" )) { entry->kpay = atoi(attribute_values[i]); }409 else if(!strcmp (attribute_names[i], "payee" )) { entry->kpay = atoi(attribute_values[i]); }
409 else if(!strcmp (attribute_names[i], "category")) { entry->kcat = atoi(attribute_values[i]); }410 else if(!strcmp (attribute_names[i], "category")) { entry->kcat = atoi(attribute_values[i]); }
410 //else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); }411 else if(!strcmp (attribute_names[i], "paymode" )) { entry->paymode = atoi(attribute_values[i]); }
411 // prior v08412 // prior v08
412 else if(!strcmp (attribute_names[i], "exact" )) { exact = atoi(attribute_values[i]); }413 else if(!strcmp (attribute_names[i], "exact" )) { exact = atoi(attribute_values[i]); }
413 }414 }
@@ -420,6 +421,12 @@
420 entry->flags |= ASGF_EXACT;421 entry->flags |= ASGF_EXACT;
421 }422 }
422423
424 /* in v1.2 pattern field added, value stored in name earlier */
425 if( ctx->file_version < 1.2)
426 {
427 entry->patt = g_strdup(entry->name);
428 }
429
423 //all attribute loaded: append430 //all attribute loaded: append
424 da_asg_append(entry);431 da_asg_append(entry);
425432
@@ -1224,9 +1231,10 @@
1224 hb_xml_append_int(node, "flags" , item->flags);1231 hb_xml_append_int(node, "flags" , item->flags);
1225 hb_xml_append_int(node, "field" , item->field);1232 hb_xml_append_int(node, "field" , item->field);
1226 hb_xml_append_txt(node, "name" , item->name); 1233 hb_xml_append_txt(node, "name" , item->name);
1234 hb_xml_append_txt(node, "patt" , item->patt);
1227 hb_xml_append_int(node, "payee" , item->kpay);1235 hb_xml_append_int(node, "payee" , item->kpay);
1228 hb_xml_append_int(node, "category", item->kcat);1236 hb_xml_append_int(node, "category", item->kcat);
1229 //hb_xml_append_int(node, "paymode" , item->paymode);1237 hb_xml_append_int(node, "paymode" , item->paymode);
12301238
1231 g_string_append(node, "/>\n");1239 g_string_append(node, "/>\n");
1232 1240
12331241
=== modified file 'src/homebank.h'
--- src/homebank.h 2015-10-04 09:22:24 +0000
+++ src/homebank.h 2015-10-24 13:51:48 +0000
@@ -76,7 +76,7 @@
76#define HB_VERSION "5.0.6"76#define HB_VERSION "5.0.6"
77#define HB_VERSION_NUM (HB_VERSION_MAJOR*10000) + (HB_VERSION_MINOR*100) + HB_VERSION_MICRO77#define HB_VERSION_NUM (HB_VERSION_MAJOR*10000) + (HB_VERSION_MINOR*100) + HB_VERSION_MICRO
7878
79#define FILE_VERSION 1.179#define FILE_VERSION 1.2
80#define PREF_VERSION 50080#define PREF_VERSION 500
8181
82#if HB_UNSTABLE == FALSE82#if HB_UNSTABLE == FALSE
8383
=== modified file 'src/ui-assign.c'
--- src/ui-assign.c 2015-10-18 12:22:35 +0000
+++ src/ui-assign.c 2015-10-24 13:51:48 +0000
@@ -312,7 +312,7 @@
312312
313 item->field = radio_get_active(GTK_CONTAINER(data->CY_field));313 item->field = radio_get_active(GTK_CONTAINER(data->CY_field));
314 314
315 /*txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_text));315 /*txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_name));
316 if (txt && *txt)316 if (txt && *txt)
317 {317 {
318 bool = assign_rename(item, txt);318 bool = assign_rename(item, txt);
@@ -322,7 +322,7 @@
322 }322 }
323 else323 else
324 {324 {
325 gtk_entry_set_text(GTK_ENTRY(data->ST_text), item->name);325 gtk_entry_set_text(GTK_ENTRY(data->ST_name), item->name);
326 }326 }
327 }*/327 }*/
328328
@@ -331,15 +331,30 @@
331 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_exact));331 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_exact));
332 if(active == 1) item->flags |= ASGF_EXACT;332 if(active == 1) item->flags |= ASGF_EXACT;
333333
334 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_re));
335 if(active == 1) item->flags |= ASGF_REMATCH;
336
334 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_pay));337 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_pay));
335 if(active == 1) item->flags |= ASGF_DOPAY;338 if(active == 1) item->flags |= ASGF_DOPAY;
336339
337 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cat));340 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cat));
338 if(active == 1) item->flags |= ASGF_DOCAT;341 if(active == 1) item->flags |= ASGF_DOCAT;
339342
343 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_mod));
344 if(active == 1) item->flags |= ASGF_DOMOD;
345
340 item->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat));346 item->kcat = ui_cat_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_cat));
341 item->kpay = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_pay));347 item->kpay = ui_pay_comboboxentry_get_key_add_new(GTK_COMBO_BOX(data->PO_pay));
342348 item->paymode = gtk_combo_box_get_active(GTK_COMBO_BOX(data->NU_mod));
349
350 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_payovw));
351 if(active == 1) item->flags |= ASGF_OVWPAY;
352
353 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_catovw));
354 if(active == 1) item->flags |= ASGF_OVWCAT;
355
356 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_modovw));
357 if(active == 1) item->flags |= ASGF_OVWMOD;
343 }358 }
344359
345}360}
@@ -371,15 +386,23 @@
371386
372 radio_set_active(GTK_CONTAINER(data->CY_field), item->field);387 radio_set_active(GTK_CONTAINER(data->CY_field), item->field);
373 388
374 gtk_entry_set_text(GTK_ENTRY(data->ST_text), item->name);389 gtk_entry_set_text(GTK_ENTRY(data->ST_name), item->name);
390 gtk_entry_set_text(GTK_ENTRY(data->ST_patt), item->patt);
375391
376 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_exact), (item->flags & ASGF_EXACT) ? 1 : 0);392 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_exact), (item->flags & ASGF_EXACT) ? 1 : 0);
393 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_re), (item->flags & ASGF_REMATCH) ? 1 : 0);
377394
378 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_cat), (item->flags & ASGF_DOCAT) ? 1 : 0);395 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_cat), (item->flags & ASGF_DOCAT) ? 1 : 0);
379 ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), item->kcat);396 ui_cat_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_cat), item->kcat);
397 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_catovw), (item->flags & ASGF_OVWCAT) ? 1 : 0);
380398
381 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_pay), (item->flags & ASGF_DOPAY) ? 1 : 0);399 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_pay), (item->flags & ASGF_DOPAY) ? 1 : 0);
382 ui_pay_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_pay), item->kpay);400 ui_pay_comboboxentry_set_active(GTK_COMBO_BOX(data->PO_pay), item->kpay);
401 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_payovw), (item->flags & ASGF_OVWPAY) ? 1 : 0);
402
403 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_mod), (item->flags & ASGF_DOMOD) ? 1 : 0);
404 gtk_combo_box_set_active(GTK_COMBO_BOX(data->NU_mod), item->paymode);
405 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_modovw), (item->flags & ASGF_OVWMOD) ? 1 : 0);
383406
384407
385 }408 }
@@ -405,12 +428,15 @@
405428
406 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_pay));429 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_pay));
407 gtk_widget_set_sensitive(data->PO_pay, active);430 gtk_widget_set_sensitive(data->PO_pay, active);
431 gtk_widget_set_sensitive(data->CM_payovw, active);
408 432
409 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cat));433 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_cat));
410 gtk_widget_set_sensitive(data->PO_cat, active);434 gtk_widget_set_sensitive(data->PO_cat, active);
435 gtk_widget_set_sensitive(data->CM_catovw, active);
411 436
412 //active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_mod));437 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_mod));
413 //gtk_widget_set_sensitive(data->NU_mod, active);438 gtk_widget_set_sensitive(data->NU_mod, active);
439 gtk_widget_set_sensitive(data->CM_modovw, active);
414440
415}441}
416442
@@ -440,6 +466,7 @@
440466
441467
442 sensitive = (selected == TRUE) ? TRUE : FALSE;468 sensitive = (selected == TRUE) ? TRUE : FALSE;
469 gtk_widget_set_sensitive(data->GR_name, sensitive);
443 gtk_widget_set_sensitive(data->GR_condition, sensitive);470 gtk_widget_set_sensitive(data->GR_condition, sensitive);
444 gtk_widget_set_sensitive(data->GR_assignment, sensitive);471 gtk_widget_set_sensitive(data->GR_assignment, sensitive);
445472
@@ -481,6 +508,7 @@
481508
482 item = da_asg_malloc();509 item = da_asg_malloc();
483 item->name = g_strdup_printf( _("(assignment %d)"), da_asg_length()+1);510 item->name = g_strdup_printf( _("(assignment %d)"), da_asg_length()+1);
511 item->patt = g_strdup(item->name);
484512
485 da_asg_append(item);513 da_asg_append(item);
486 ui_asg_listview_add(GTK_TREE_VIEW(data->LV_rul), item);514 ui_asg_listview_add(GTK_TREE_VIEW(data->LV_rul), item);
@@ -550,7 +578,7 @@
550 {578 {
551 Assign *item = da_asg_get(key);579 Assign *item = da_asg_get(key);
552580
553 txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_text));581 txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_name));
554 if( txt == NULL || *txt == '\0' )582 if( txt == NULL || *txt == '\0' )
555 {583 {
556 error = TRUE;584 error = TRUE;
@@ -571,11 +599,40 @@
571 }599 }
572600
573end:601end:
574 gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_text)), GTK_STYLE_CLASS_ERROR);602 gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_name)), GTK_STYLE_CLASS_ERROR);
575603
576 if( error == TRUE )604 if( error == TRUE )
577 gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_text)), GTK_STYLE_CLASS_ERROR);605 gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET(data->ST_name)), GTK_STYLE_CLASS_ERROR);
578}606}
607
608
609
610/*
611**
612*/
613static void ui_asg_manage_update_pattern(GtkWidget *widget, gpointer user_data)
614{
615struct ui_asg_manage_data *data;
616guint32 key;
617gchar *txt;
618
619 data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
620 DB( g_print("\n(ui_asg_manage_update_pattern) (data=%x)\n", (guint)data) );
621
622 key = ui_asg_listview_get_selected_key(GTK_TREE_VIEW(data->LV_rul));
623 if( key > 0 )
624 {
625 Assign *item = da_asg_get(key);
626 txt = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_patt));
627 if (txt && *txt)
628 {
629 g_free(item->patt);
630 item->patt = g_strdup(txt);
631 }
632 data->change++;
633 }
634}
635
579636
580637
581/*638/*
@@ -736,12 +793,27 @@
736 gtk_widget_set_margin_start(content_grid, SPACING_SMALL);793 gtk_widget_set_margin_start(content_grid, SPACING_SMALL);
737 gtk_paned_pack2 (GTK_PANED(hpaned), content_grid, FALSE, FALSE);794 gtk_paned_pack2 (GTK_PANED(hpaned), content_grid, FALSE, FALSE);
738795
796 // group :: Name
797 group_grid = gtk_grid_new ();
798 data.GR_name = group_grid;
799 gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
800 gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
801 gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1);
802
803 row = 0;
804 label = make_label(_("_Name:"), 0.0, 0.5);
805 gtk_grid_attach (GTK_GRID (group_grid), label, 0, row, 1, 1);
806 entry1 = make_string(label);
807 data.ST_name = entry1;
808 gtk_widget_set_hexpand(entry1, TRUE);
809 gtk_grid_attach (GTK_GRID (group_grid), entry1, 1, row, 1, 1);
810
739 // group :: Condition811 // group :: Condition
740 group_grid = gtk_grid_new ();812 group_grid = gtk_grid_new ();
741 data.GR_condition = group_grid; 813 data.GR_condition = group_grid;
742 gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);814 gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
743 gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);815 gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
744 gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1);816 gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 1, 1, 1);
745 817
746 row = 0;818 row = 0;
747 label = make_label_group(_("Condition"));819 label = make_label_group(_("Condition"));
@@ -758,7 +830,7 @@
758 label = make_label(_("Con_tains:"), 0.0, 0.5);830 label = make_label(_("Con_tains:"), 0.0, 0.5);
759 gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);831 gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
760 entry1 = make_string(label);832 entry1 = make_string(label);
761 data.ST_text = entry1;833 data.ST_patt = entry1;
762 gtk_widget_set_hexpand(entry1, TRUE);834 gtk_widget_set_hexpand(entry1, TRUE);
763 gtk_grid_attach (GTK_GRID (group_grid), entry1, 2, row, 2, 1);835 gtk_grid_attach (GTK_GRID (group_grid), entry1, 2, row, 2, 1);
764836
@@ -767,12 +839,17 @@
767 data.CM_exact = widget;839 data.CM_exact = widget;
768 gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1);840 gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1);
769841
842 row++;
843 widget = gtk_check_button_new_with_mnemonic (_("Use _Regular Expressions"));
844 data.CM_re = widget;
845 gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 3, 1);
846
770 // group :: Assignments847 // group :: Assignments
771 group_grid = gtk_grid_new ();848 group_grid = gtk_grid_new ();
772 data.GR_assignment = group_grid;849 data.GR_assignment = group_grid;
773 gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);850 gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
774 gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);851 gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
775 gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 1, 1, 1);852 gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 2, 1, 1);
776 853
777 row = 0;854 row = 0;
778 label = make_label_group(_("Assignments"));855 label = make_label_group(_("Assignments"));
@@ -793,6 +870,11 @@
793 gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available for Category"));870 gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available for Category"));
794 871
795 row++;872 row++;
873 widget = gtk_check_button_new_with_mnemonic (_("Allow overwrite"));
874 data.CM_catovw = widget;
875 gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1);
876
877 row++;
796 label = gtk_label_new_with_mnemonic (_("_Payee:"));878 label = gtk_label_new_with_mnemonic (_("_Payee:"));
797 gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);879 gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
798 widget = gtk_check_button_new();880 widget = gtk_check_button_new();
@@ -806,6 +888,30 @@
806888
807 gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available for Payee"));889 gtk_widget_set_tooltip_text(widget, _("Autocompletion and direct seizure\nis available for Payee"));
808890
891 row++;
892 widget = gtk_check_button_new_with_mnemonic (_("Allow overwrite"));
893 data.CM_payovw = widget;
894 gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1);
895
896 row++;
897 label = gtk_label_new_with_mnemonic (_("Pay_ment:"));
898 gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
899 widget = gtk_check_button_new();
900 data.CM_mod = widget;
901 gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
902 gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
903 widget = make_paymode(label);
904 data.NU_mod = widget;
905 gtk_widget_set_hexpand(widget, TRUE);
906 gtk_grid_attach (GTK_GRID (group_grid), widget, 3, row, 1, 1);
907
908 //ugly hack
909 gtk_widget_set_tooltip_text(widget, _("Internal transfer unsupported\nin auto assignments"));
910
911 row++;
912 widget = gtk_check_button_new_with_mnemonic (_("Allow overwrite"));
913 data.CM_modovw = widget;
914 gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1);
809915
810916
811 //connect all our signals917 //connect all our signals
@@ -813,10 +919,15 @@
813919
814 g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data.LV_rul)), "changed", G_CALLBACK (ui_asg_manage_selection), NULL);920 g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data.LV_rul)), "changed", G_CALLBACK (ui_asg_manage_selection), NULL);
815921
816 g_signal_connect (G_OBJECT (data.ST_text), "changed", G_CALLBACK (ui_asg_manage_rename), NULL);922 g_signal_connect (G_OBJECT (data.ST_name), "changed", G_CALLBACK (ui_asg_manage_rename), NULL);
923 g_signal_connect (G_OBJECT (data.ST_patt), "changed", G_CALLBACK (ui_asg_manage_update_pattern), NULL);
817924
818 g_signal_connect (G_OBJECT (data.CM_cat), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);925 g_signal_connect (G_OBJECT (data.CM_cat), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
819 g_signal_connect (G_OBJECT (data.CM_pay), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);926 g_signal_connect (G_OBJECT (data.CM_pay), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
927 g_signal_connect (G_OBJECT (data.CM_mod), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
928 g_signal_connect (G_OBJECT (data.CM_catovw), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
929 g_signal_connect (G_OBJECT (data.CM_payovw), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
930 g_signal_connect (G_OBJECT (data.CM_modovw), "toggled", G_CALLBACK (ui_asg_manage_update_assignments), NULL);
820931
821 g_signal_connect (G_OBJECT (data.BT_add), "clicked", G_CALLBACK (ui_asg_manage_add), NULL);932 g_signal_connect (G_OBJECT (data.BT_add), "clicked", G_CALLBACK (ui_asg_manage_add), NULL);
822 g_signal_connect (G_OBJECT (data.BT_rem), "clicked", G_CALLBACK (ui_asg_manage_delete), NULL);933 g_signal_connect (G_OBJECT (data.BT_rem), "clicked", G_CALLBACK (ui_asg_manage_delete), NULL);
823934
=== modified file 'src/ui-assign.h'
--- src/ui-assign.h 2015-02-08 13:24:47 +0000
+++ src/ui-assign.h 2015-10-24 13:51:48 +0000
@@ -57,14 +57,18 @@
57 GtkWidget *LV_rul;57 GtkWidget *LV_rul;
58 GtkWidget *BT_add, *BT_rem;58 GtkWidget *BT_add, *BT_rem;
5959
60 GtkWidget *GR_name;
60 GtkWidget *GR_condition;61 GtkWidget *GR_condition;
61 GtkWidget *GR_assignment;62 GtkWidget *GR_assignment;
62 GtkWidget *CY_field;63 GtkWidget *CY_field;
63 GtkWidget *ST_text;64 GtkWidget *ST_name;
65 GtkWidget *ST_patt;
64 GtkWidget *CM_exact;66 GtkWidget *CM_exact;
67 GtkWidget *CM_re;
65 68
66 GtkWidget *CM_pay, *PO_pay;69 GtkWidget *CM_pay, *PO_pay, *CM_payovw;
67 GtkWidget *CM_cat, *PO_cat;70 GtkWidget *CM_cat, *PO_cat, *CM_catovw;
71 GtkWidget *CM_mod, *NU_mod, *CM_modovw;
6872
6973
70};74};

Subscribers

People subscribed via source and target branches