From cd91831d3c68fc5c3a087a7e4194f21c5549e348 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Thu, 23 May 2013 10:53:38 +0200 Subject: [PATCH] Aggiunti i pulsanti salva e chiudi (closes #529). Aggiustamenti vari. --- .cproject | 2 +- .project | 74 ++- data/organigramma/form/nodo.form | 4 +- data/organigramma/form/persona_incarico.form | 5 +- data/organigramma/form/persona_nodo.form | 2 + .../form/persona_nodo_recapito.form | 2 + data/organigramma/form/persona_recapito.form | 2 + data/organigramma/form/persona_ufficio.form | 1 + .../form/persona_ufficio_recapito.form | 2 + .../form/posizione_economica.form | 4 +- .../form/struttura_indirizzo.form | 1 + data/organigramma/gui/organigramma.gui | 481 ++++++++++++------ src/nodo.c | 42 +- src/persona.c | 31 +- src/personaincarico.c | 32 +- src/personanodo.c | 38 +- src/personanodorecapito.c | 28 +- src/personarecapito.c | 34 +- src/personaufficio.c | 38 +- src/personaufficiorecapito.c | 32 +- src/posizioneeconomica.c | 36 +- src/profiloprofessionale.c | 36 +- src/struttura.c | 44 +- src/strutturaindirizzo.c | 41 +- src/tiponodo.c | 37 +- src/tipoprestazione.c | 36 +- src/tiporapportolavoro.c | 36 +- src/tiporecapito.c | 36 +- src/titolo.c | 36 +- src/ufficio.c | 30 +- src/ufficionodo.c | 30 +- src/ufficioorario.c | 32 +- src/ufficiorecapito.c | 26 +- src/ufficiostanza.c | 26 +- 34 files changed, 976 insertions(+), 361 deletions(-) diff --git a/.cproject b/.cproject index f8f50df..d6c5403 100644 --- a/.cproject +++ b/.cproject @@ -16,7 +16,7 @@ - + diff --git a/.project b/.project index 59ab419..e6582c5 100644 --- a/.project +++ b/.project @@ -69,7 +69,7 @@ - 1369207836344 + 1369291081801 30 @@ -78,7 +78,7 @@ - 1369207836348 + 1369291081809 22 @@ -87,7 +87,7 @@ - 1369207836352 + 1369291081813 22 @@ -96,7 +96,7 @@ - 1369207836377 + 1369291081817 22 @@ -105,7 +105,7 @@ - 1369207836379 + 1369291081822 22 @@ -114,7 +114,7 @@ - 1369207836382 + 1369291081831 22 @@ -123,7 +123,7 @@ - 1369207836529 + 1369291081835 22 @@ -132,7 +132,7 @@ - 1369207836532 + 1369291081839 22 @@ -141,7 +141,7 @@ - 1369207836534 + 1369291081845 22 @@ -150,7 +150,7 @@ - 1369207836537 + 1369291081850 22 @@ -159,7 +159,7 @@ - 1369207836539 + 1369291081853 22 @@ -168,7 +168,7 @@ - 1369207836541 + 1369291081857 22 @@ -177,7 +177,7 @@ - 1369207836544 + 1369291081860 22 @@ -186,7 +186,7 @@ - 1369207836547 + 1369291081864 22 @@ -195,7 +195,7 @@ - 1369207836550 + 1369291081868 22 @@ -204,7 +204,7 @@ - 1369207836552 + 1369291081871 22 @@ -213,7 +213,7 @@ - 1369207836555 + 1369291081874 22 @@ -222,43 +222,43 @@ - 1369207836626 + 1369291081876 - 30 + 22 org.eclipse.ui.ide.multiFilter 1.0-name-matches-false-false-*.lo - 1369207836629 + 1369291081879 - 30 + 22 org.eclipse.ui.ide.multiFilter 1.0-name-matches-false-false-*.la - 1369207836632 + 1369291081882 - 30 + 22 org.eclipse.ui.ide.multiFilter 1.0-name-matches-false-false-liborganigramma.pc - 1369207836634 + 1369291081884 - 30 + 22 org.eclipse.ui.ide.multiFilter 1.0-name-matches-false-false-*~ - 1369207836637 + 1369291081887 6 @@ -267,7 +267,7 @@ - 1369207836640 + 1369291081890 6 @@ -276,7 +276,7 @@ - 1369207836643 + 1369291081894 22 @@ -284,5 +284,23 @@ 1.0-name-matches-false-false-make_installer.sh + + 1369291081897 + + 22 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-*.dll + + + + 1369291081900 + + 22 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-*.a + + diff --git a/data/organigramma/form/nodo.form b/data/organigramma/form/nodo.form index 728f811..94afce6 100644 --- a/data/organigramma/form/nodo.form +++ b/data/organigramma/form/nodo.form @@ -39,7 +39,9 @@ - + + t + diff --git a/data/organigramma/form/persona_incarico.form b/data/organigramma/form/persona_incarico.form index 91042c9..1036218 100644 --- a/data/organigramma/form/persona_incarico.form +++ b/data/organigramma/form/persona_incarico.form @@ -60,6 +60,7 @@ date %d/%m/%Y + t @@ -71,7 +72,9 @@ - + + t + diff --git a/data/organigramma/form/persona_nodo.form b/data/organigramma/form/persona_nodo.form index 94cba91..227486b 100644 --- a/data/organigramma/form/persona_nodo.form +++ b/data/organigramma/form/persona_nodo.form @@ -30,6 +30,7 @@ + t @@ -37,6 +38,7 @@ date %d/%m/%Y + t diff --git a/data/organigramma/form/persona_nodo_recapito.form b/data/organigramma/form/persona_nodo_recapito.form index 1d68676..146e86c 100644 --- a/data/organigramma/form/persona_nodo_recapito.form +++ b/data/organigramma/form/persona_nodo_recapito.form @@ -26,11 +26,13 @@ SELECT id, nome FROM tipi_recapito WHERE status <> 'E' ORDER BY nome + t + t diff --git a/data/organigramma/form/persona_recapito.form b/data/organigramma/form/persona_recapito.form index b6d70b4..8bb7d19 100644 --- a/data/organigramma/form/persona_recapito.form +++ b/data/organigramma/form/persona_recapito.form @@ -21,11 +21,13 @@ SELECT id, nome FROM tipi_recapito WHERE status <> 'E' ORDER BY nome + t + t diff --git a/data/organigramma/form/persona_ufficio.form b/data/organigramma/form/persona_ufficio.form index 410ed4f..b83de62 100644 --- a/data/organigramma/form/persona_ufficio.form +++ b/data/organigramma/form/persona_ufficio.form @@ -30,6 +30,7 @@ + t diff --git a/data/organigramma/form/persona_ufficio_recapito.form b/data/organigramma/form/persona_ufficio_recapito.form index f33b674..9e1da93 100644 --- a/data/organigramma/form/persona_ufficio_recapito.form +++ b/data/organigramma/form/persona_ufficio_recapito.form @@ -26,11 +26,13 @@ SELECT id, nome FROM tipi_recapito WHERE status <> 'E' ORDER BY nome + t + t diff --git a/data/organigramma/form/posizione_economica.form b/data/organigramma/form/posizione_economica.form index 879c63f..160dee3 100644 --- a/data/organigramma/form/posizione_economica.form +++ b/data/organigramma/form/posizione_economica.form @@ -11,7 +11,9 @@ - + + t + diff --git a/data/organigramma/form/struttura_indirizzo.form b/data/organigramma/form/struttura_indirizzo.form index f57f0fe..e63803e 100644 --- a/data/organigramma/form/struttura_indirizzo.form +++ b/data/organigramma/form/struttura_indirizzo.form @@ -33,6 +33,7 @@ + t diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui index bbba4b3..ccf416f 100644 --- a/data/organigramma/gui/organigramma.gui +++ b/data/organigramma/gui/organigramma.gui @@ -341,7 +341,6 @@ False - False True False _File @@ -353,7 +352,6 @@ gtk-quit - False True False True @@ -367,7 +365,6 @@ - False True False _Visualizza @@ -378,7 +375,6 @@ False - False True False _Organigramma @@ -388,7 +384,6 @@ - False True False _Strutture @@ -398,7 +393,6 @@ - False True False _Uffici @@ -408,7 +402,6 @@ - False True False _Persone @@ -422,7 +415,6 @@ - False True False _Tabelle @@ -433,7 +425,6 @@ False - False True False Tipi _nodo @@ -443,7 +434,6 @@ - False True False Tipi _recapito @@ -453,7 +443,6 @@ - False True False _Titoli @@ -463,7 +452,6 @@ - False True False Tipi rapporto di _lavoro @@ -473,7 +461,6 @@ - False True False _Posizioni economiche @@ -483,7 +470,6 @@ - False True False Tipi pr_estazione @@ -493,7 +479,6 @@ - False True False Pro_fili professionali @@ -507,7 +492,6 @@ - False True False A_iuto @@ -519,7 +503,6 @@ gtk-about - False True False True @@ -636,7 +619,6 @@ gtk-new - False True True True @@ -651,7 +633,6 @@ gtk-edit - False True True True @@ -666,7 +647,6 @@ gtk-delete - False True True True @@ -681,7 +661,6 @@ gtk-cancel - False True True True @@ -696,7 +675,6 @@ gtk-ok - False True True True @@ -887,7 +865,6 @@ ... - False True True True @@ -959,7 +936,6 @@ gtk-cancel - False True True True @@ -974,7 +950,6 @@ gtk-save - False True True True @@ -986,6 +961,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -1262,7 +1251,6 @@ gtk-new - False True True True @@ -1277,7 +1265,6 @@ gtk-edit - False True True True @@ -1292,7 +1279,6 @@ gtk-delete - False True True True @@ -1431,7 +1417,6 @@ gtk-new - False True True True @@ -1446,7 +1431,6 @@ gtk-edit - False True True True @@ -1461,7 +1445,6 @@ gtk-delete - False True True True @@ -1568,7 +1551,6 @@ gtk-new - False True True True @@ -1583,7 +1565,6 @@ gtk-edit - False True True True @@ -1598,7 +1579,6 @@ gtk-delete - False True True True @@ -1736,7 +1716,6 @@ gtk-new - False True True True @@ -1751,7 +1730,6 @@ gtk-edit - False True True True @@ -1766,7 +1744,6 @@ gtk-delete - False True True True @@ -1873,7 +1850,6 @@ gtk-new - False True True True @@ -1888,7 +1864,6 @@ gtk-edit - False True True True @@ -1903,7 +1878,6 @@ gtk-delete - False True True True @@ -2026,7 +2000,6 @@ gtk-new - False True True True @@ -2041,7 +2014,6 @@ gtk-edit - False True True True @@ -2056,7 +2028,6 @@ gtk-delete - False True True True @@ -2228,7 +2199,6 @@ ... - False True True True @@ -2359,7 +2329,6 @@ gtk-cancel - False True True True @@ -2374,7 +2343,6 @@ gtk-save - False True True True @@ -2386,6 +2354,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -2762,7 +2744,6 @@ gtk-cancel - False True True True @@ -2777,7 +2758,6 @@ gtk-save - False True True True @@ -2789,6 +2769,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -2892,7 +2886,6 @@ ... - False True True True @@ -2944,6 +2937,7 @@ 2 4 5 + GTK_FILL @@ -3028,7 +3022,6 @@ gtk-cancel - False True True True @@ -3043,7 +3036,6 @@ gtk-save - False True True True @@ -3055,6 +3047,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -3230,7 +3236,6 @@ - False True True False @@ -3272,7 +3277,6 @@ gtk-cancel - False True True True @@ -3287,7 +3291,6 @@ gtk-save - False True True True @@ -3299,6 +3302,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -3457,7 +3474,6 @@ - False True True False @@ -3501,7 +3517,6 @@ gtk-cancel - False True True True @@ -3516,7 +3531,6 @@ gtk-save - False True True True @@ -3528,6 +3542,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -3631,7 +3659,6 @@ ... - False True True True @@ -3833,7 +3860,6 @@ gtk-cancel - False True True True @@ -3848,7 +3874,6 @@ gtk-save - False True True True @@ -3860,6 +3885,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -4035,7 +4074,6 @@ - False True True False @@ -4077,7 +4115,6 @@ gtk-cancel - False True True True @@ -4092,7 +4129,6 @@ gtk-save - False True True True @@ -4104,6 +4140,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -4184,7 +4234,6 @@ gtk-new - False True True True @@ -4199,7 +4248,6 @@ gtk-edit - False True True True @@ -4214,7 +4262,6 @@ gtk-delete - False True True True @@ -4229,7 +4276,6 @@ gtk-cancel - False True True True @@ -4244,7 +4290,6 @@ gtk-ok - False True True True @@ -4360,7 +4405,6 @@ gtk-cancel - False True True True @@ -4375,7 +4419,6 @@ gtk-save - False True True True @@ -4387,6 +4430,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -4467,7 +4524,6 @@ gtk-new - False True True True @@ -4482,7 +4538,6 @@ gtk-edit - False True True True @@ -4497,7 +4552,6 @@ gtk-delete - False True True True @@ -4512,7 +4566,6 @@ gtk-cancel - False True True True @@ -4527,7 +4580,6 @@ gtk-ok - False True True True @@ -4619,7 +4671,6 @@ gtk-new - False True True True @@ -4634,7 +4685,6 @@ gtk-edit - False True True True @@ -4649,7 +4699,6 @@ gtk-delete - False True True True @@ -4664,7 +4713,6 @@ gtk-cancel - False True True True @@ -4679,7 +4727,6 @@ gtk-ok - False True True True @@ -4795,7 +4842,6 @@ gtk-cancel - False True True True @@ -4810,7 +4856,6 @@ gtk-save - False True True True @@ -4822,6 +4867,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -5071,7 +5130,6 @@ gtk-new - False True True True @@ -5086,7 +5144,6 @@ gtk-edit - False True True True @@ -5101,7 +5158,6 @@ gtk-delete - False True True True @@ -5155,7 +5211,6 @@ gtk-cancel - False True True True @@ -5170,7 +5225,6 @@ gtk-save - False True True True @@ -5182,6 +5236,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -5285,7 +5353,6 @@ ... - False True True True @@ -5388,7 +5455,6 @@ gtk-cancel - False True True True @@ -5403,7 +5469,6 @@ gtk-save - False True True True @@ -5415,6 +5480,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -5495,7 +5574,6 @@ gtk-new - False True True True @@ -5510,7 +5588,6 @@ gtk-edit - False True True True @@ -5525,7 +5602,6 @@ gtk-delete - False True True True @@ -5540,7 +5616,6 @@ gtk-cancel - False True True True @@ -5555,7 +5630,6 @@ gtk-ok - False True True True @@ -5647,7 +5721,6 @@ gtk-new - False True True True @@ -5662,7 +5735,6 @@ gtk-edit - False True True True @@ -5677,7 +5749,6 @@ gtk-delete - False True True True @@ -5692,7 +5763,6 @@ gtk-cancel - False True True True @@ -5707,7 +5777,6 @@ gtk-ok - False True True True @@ -5799,7 +5868,6 @@ gtk-new - False True True True @@ -5814,7 +5882,6 @@ gtk-edit - False True True True @@ -5829,7 +5896,6 @@ gtk-delete - False True True True @@ -5844,7 +5910,6 @@ gtk-cancel - False True True True @@ -5859,7 +5924,6 @@ gtk-ok - False True True True @@ -5951,7 +6015,6 @@ gtk-new - False True True True @@ -5966,7 +6029,6 @@ gtk-edit - False True True True @@ -5981,7 +6043,6 @@ gtk-delete - False True True True @@ -5996,7 +6057,6 @@ gtk-cancel - False True True True @@ -6011,7 +6071,6 @@ gtk-ok - False True True True @@ -6103,7 +6162,6 @@ gtk-new - False True True True @@ -6118,7 +6176,6 @@ gtk-edit - False True True True @@ -6133,7 +6190,6 @@ gtk-delete - False True True True @@ -6148,7 +6204,6 @@ gtk-cancel - False True True True @@ -6163,7 +6218,6 @@ gtk-ok - False True True True @@ -6286,7 +6340,6 @@ gtk-cancel - False True True True @@ -6301,7 +6354,6 @@ gtk-save - False True True True @@ -6313,6 +6365,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -6417,7 +6483,6 @@ gtk-cancel - False True True True @@ -6432,7 +6497,6 @@ gtk-save - False True True True @@ -6444,6 +6508,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -6548,7 +6626,6 @@ gtk-cancel - False True True True @@ -6563,7 +6640,6 @@ gtk-save - False True True True @@ -6575,6 +6651,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -6686,7 +6776,6 @@ gtk-cancel - False True True True @@ -6701,7 +6790,6 @@ gtk-save - False True True True @@ -6713,6 +6801,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -6804,7 +6906,6 @@ gtk-new - False True True True @@ -6819,7 +6920,6 @@ gtk-edit - False True True True @@ -6834,7 +6934,6 @@ gtk-delete - False True True True @@ -6849,7 +6948,6 @@ gtk-cancel - False True True True @@ -6864,7 +6962,6 @@ gtk-ok - False True True True @@ -7013,7 +7110,6 @@ gtk-cancel - False True True True @@ -7028,7 +7124,6 @@ gtk-save - False True True True @@ -7040,6 +7135,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -7120,7 +7229,6 @@ gtk-new - False True True True @@ -7135,7 +7243,6 @@ gtk-edit - False True True True @@ -7150,7 +7257,6 @@ gtk-delete - False True True True @@ -7165,7 +7271,6 @@ gtk-cancel - False True True True @@ -7180,7 +7285,6 @@ gtk-ok - False True True True @@ -7356,7 +7460,6 @@ ... - False True True True @@ -7454,7 +7557,6 @@ gtk-new - False True True True @@ -7469,7 +7571,6 @@ gtk-edit - False True True True @@ -7484,7 +7585,6 @@ gtk-delete - False True True True @@ -7589,7 +7689,6 @@ gtk-new - False True True True @@ -7604,7 +7703,6 @@ gtk-edit - False True True True @@ -7619,7 +7717,6 @@ gtk-delete - False True True True @@ -7715,7 +7812,6 @@ gtk-new - False True True True @@ -7730,7 +7826,6 @@ gtk-edit - False True True True @@ -7745,7 +7840,6 @@ gtk-delete - False True True True @@ -7863,7 +7957,6 @@ gtk-new - False True True True @@ -7878,7 +7971,6 @@ gtk-edit - False True True True @@ -7893,7 +7985,6 @@ gtk-delete - False True True True @@ -7947,7 +8038,6 @@ gtk-cancel - False True True True @@ -7962,7 +8052,6 @@ gtk-save - False True True True @@ -7974,6 +8063,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -8077,7 +8180,6 @@ ... - False True True True @@ -8129,6 +8231,7 @@ 2 2 3 + GTK_FILL @@ -8147,7 +8250,6 @@ gtk-cancel - False True True True @@ -8162,7 +8264,6 @@ gtk-save - False True True True @@ -8174,6 +8275,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -8294,7 +8409,6 @@ - False True True False @@ -8321,7 +8435,6 @@ - False True True False @@ -8348,7 +8461,6 @@ - False True True False @@ -8375,7 +8487,6 @@ - False True True False @@ -8402,7 +8513,6 @@ - False True True False @@ -8429,7 +8539,6 @@ - False True True False @@ -8456,7 +8565,6 @@ - False True True False @@ -8723,7 +8831,6 @@ gtk-cancel - False True True True @@ -8738,7 +8845,6 @@ gtk-save - False True True True @@ -8750,6 +8856,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -8851,6 +8971,7 @@ 2 4 5 + GTK_FILL @@ -8920,7 +9041,6 @@ - False True True False @@ -8950,7 +9070,6 @@ gtk-cancel - False True True True @@ -8965,7 +9084,6 @@ gtk-save - False True True True @@ -8977,6 +9095,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -9080,6 +9212,7 @@ 2 4 5 + GTK_FILL @@ -9179,7 +9312,6 @@ gtk-cancel - False True True True @@ -9194,7 +9326,6 @@ gtk-save - False True True True @@ -9206,6 +9337,20 @@ 1 + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False @@ -9273,7 +9418,6 @@ gtk-cancel - False True True True @@ -9288,7 +9432,6 @@ gtk-ok - False True True True diff --git a/src/nodo.c b/src/nodo.c index e834e9e..8bf3736 100644 --- a/src/nodo.c +++ b/src/nodo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -28,7 +32,7 @@ static void organigramma_nodo_class_init (OrganigrammaNodoClass *klass); static void organigramma_nodo_init (OrganigrammaNodo *nodo); static void organigramma_nodo_carica (OrganigrammaNodo *nodo); -static void organigramma_nodo_salva (OrganigrammaNodo *nodo); +static void organigramma_nodo_salva (OrganigrammaNodo *nodo, gboolean chiudi); static gboolean organigramma_nodo_conferma_chiusura (OrganigrammaNodo *nodo); @@ -58,6 +62,8 @@ static void organigramma_nodo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_NODO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_NODO, OrganigrammaNodoPrivate)) @@ -156,17 +162,21 @@ OrganigrammaNodo NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_nodo_on_w_organigramma_nodo_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_nodo_on_w_organigramma_nodo_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "entry2"), - "icon-press", G_CALLBACK (organigramma_nodo_on_organigramma_nodo_pulisci), (gpointer *)a); + "icon-press", G_CALLBACK (organigramma_nodo_on_organigramma_nodo_pulisci), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button6"), - "clicked", G_CALLBACK (organigramma_nodo_on_btn_organigramma_nodo_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_nodo_on_btn_organigramma_nodo_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button4"), - "clicked", G_CALLBACK (organigramma_nodo_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_nodo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button5"), - "clicked", G_CALLBACK (organigramma_nodo_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_nodo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button152"), + "clicked", G_CALLBACK (organigramma_nodo_on_btn_salvaechiudi_clicked), (gpointer)a); + + gtk_form_clear (priv->form); priv->id = id; @@ -186,6 +196,7 @@ OrganigrammaNodo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button5")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button152")), FALSE); } return a; @@ -216,7 +227,7 @@ organigramma_nodo_carica (OrganigrammaNodo *nodo) } static void -organigramma_nodo_salva (OrganigrammaNodo *nodo) +organigramma_nodo_salva (OrganigrammaNodo *nodo, gboolean chiudi) { gchar *sql; @@ -253,6 +264,12 @@ organigramma_nodo_salva (OrganigrammaNodo *nodo) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (nodo); + } } else { @@ -384,5 +401,12 @@ static void organigramma_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_nodo_salva ((OrganigrammaNodo *)user_data); + organigramma_nodo_salva ((OrganigrammaNodo *)user_data, FALSE); +} + +static void +organigramma_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_nodo_salva ((OrganigrammaNodo *)user_data, TRUE); } diff --git a/src/persona.c b/src/persona.c index 93019aa..b69b06c 100644 --- a/src/persona.c +++ b/src/persona.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -36,7 +40,7 @@ static void organigramma_persona_class_init (OrganigrammaPersonaClass *klass); static void organigramma_persona_init (OrganigrammaPersona *persona); static void organigramma_persona_carica (OrganigrammaPersona *persona); -static void organigramma_persona_salva (OrganigrammaPersona *persona); +static void organigramma_persona_salva (OrganigrammaPersona *persona, gboolean chiudi); static void organigramma_persona_carica_incarichi (OrganigrammaPersona *persona); static void organigramma_persona_carica_nodi (OrganigrammaPersona *persona); @@ -153,6 +157,8 @@ static void organigramma_persona_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_persona_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA, OrganigrammaPersonaPrivate)) @@ -398,6 +404,8 @@ OrganigrammaPersona "clicked", G_CALLBACK (organigramma_persona_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button66"), "clicked", G_CALLBACK (organigramma_persona_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button153"), + "clicked", G_CALLBACK (organigramma_persona_on_btn_salvaechiudi_clicked), (gpointer)a); gtk_form_clear (priv->form); @@ -433,6 +441,7 @@ OrganigrammaPersona gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button76")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button78")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button66")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button153")), FALSE); } return a; @@ -489,7 +498,7 @@ organigramma_persona_carica (OrganigrammaPersona *persona) } static void -organigramma_persona_salva (OrganigrammaPersona *persona) +organigramma_persona_salva (OrganigrammaPersona *persona, gboolean chiudi) { gchar *sql; @@ -537,6 +546,12 @@ organigramma_persona_salva (OrganigrammaPersona *persona) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (persona); + } } else { @@ -1765,7 +1780,6 @@ organigramma_persona_on_btn_annulla_clicked (GtkButton *button, gpointer user_data) { OrganigrammaPersona *persona = (OrganigrammaPersona *)user_data; - OrganigrammaPersonaPrivate *priv = ORGANIGRAMMA_PERSONA_GET_PRIVATE (persona); if (organigramma_persona_conferma_chiusura (persona)) gtk_widget_destroy (priv->w); @@ -1775,5 +1789,12 @@ static void organigramma_persona_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_salva ((OrganigrammaPersona *)user_data); + organigramma_persona_salva ((OrganigrammaPersona *)user_data, FALSE); +} + +static void +organigramma_persona_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_salva ((OrganigrammaPersona *)user_data, TRUE); } diff --git a/src/personaincarico.c b/src/personaincarico.c index ea7fb3c..d22f937 100644 --- a/src/personaincarico.c +++ b/src/personaincarico.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,7 +32,7 @@ static void organigramma_persona_incarico_class_init (OrganigrammaPersonaIncaric static void organigramma_persona_incarico_init (OrganigrammaPersonaIncarico *organigramma_persona_incarico); static void organigramma_persona_incarico_carica (OrganigrammaPersonaIncarico *organigramma_persona_incarico); -static void organigramma_persona_incarico_salva (OrganigrammaPersonaIncarico *organigramma_persona_incarico); +static void organigramma_persona_incarico_salva (OrganigrammaPersonaIncarico *organigramma_persona_incarico, gboolean chiudi); static gboolean organigramma_persona_incarico_conferma_chiusura (OrganigrammaPersonaIncarico *organigramma_persona_incarico); @@ -53,6 +53,8 @@ static void organigramma_persona_incarico_on_btn_annulla_clicked (GtkButton *but gpointer user_data); static void organigramma_persona_incarico_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_incarico_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_INCARICO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_INCARICO, OrganigrammaPersonaIncaricoPrivate)) @@ -159,12 +161,14 @@ OrganigrammaPersonaIncarico NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_persona_incarico_on_w_organigramma_persona_incarico_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_persona_incarico_on_w_organigramma_persona_incarico_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button98")), - "clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button99")), - "clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button158")), + "clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -185,6 +189,7 @@ OrganigrammaPersonaIncarico if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button99")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button158")), FALSE); } return a; @@ -218,7 +223,7 @@ organigramma_persona_incarico_carica (OrganigrammaPersonaIncarico *organigramma_ } static void -organigramma_persona_incarico_salva (OrganigrammaPersonaIncarico *organigramma_persona_incarico) +organigramma_persona_incarico_salva (OrganigrammaPersonaIncarico *organigramma_persona_incarico, gboolean chiudi) { gchar *sql; @@ -255,6 +260,12 @@ organigramma_persona_incarico_salva (OrganigrammaPersonaIncarico *organigramma_p GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_incarico); + } } else { @@ -340,5 +351,12 @@ static void organigramma_persona_incarico_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_incarico_salva ((OrganigrammaPersonaIncarico *)user_data); + organigramma_persona_incarico_salva ((OrganigrammaPersonaIncarico *)user_data, FALSE); +} + +static void +organigramma_persona_incarico_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_incarico_salva ((OrganigrammaPersonaIncarico *)user_data, TRUE); } diff --git a/src/personanodo.c b/src/personanodo.c index 584686c..38c70d1 100644 --- a/src/personanodo.c +++ b/src/personanodo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,9 +32,7 @@ static void organigramma_persona_nodo_class_init (OrganigrammaPersonaNodoClass * static void organigramma_persona_nodo_init (OrganigrammaPersonaNodo *organigramma_persona_nodo); static void organigramma_persona_nodo_carica (OrganigrammaPersonaNodo *organigramma_persona_nodo); -static void organigramma_persona_nodo_salva (OrganigrammaPersonaNodo *organigramma_persona_nodo); - -static void organigramma_persona_nodo_carica_nodo (OrganigrammaPersonaNodo *indirizzo); +static void organigramma_persona_nodo_salva (OrganigrammaPersonaNodo *organigramma_persona_nodo, gboolean chiudi); static gboolean organigramma_persona_nodo_conferma_chiusura (OrganigrammaPersonaNodo *organigramma_persona_nodo); @@ -60,6 +58,8 @@ static void organigramma_persona_nodo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_persona_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_NODO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_NODO, OrganigrammaPersonaNodoPrivate)) @@ -161,15 +161,19 @@ OrganigrammaPersonaNodo NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_persona_nodo_on_w_organigramma_persona_nodo_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_persona_nodo_on_w_organigramma_persona_nodo_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button90")), - "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_ricerca_via_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_ricerca_via_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button91")), - "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button92")), - "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button159")), + "clicked", G_CALLBACK (organigramma_persona_nodo_on_btn_salvaechiudi_clicked), (gpointer)a); + + gtk_form_clear (priv->form); priv->id = id; if (priv->id == 0) @@ -190,6 +194,7 @@ OrganigrammaPersonaNodo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button92")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button159")), FALSE); } return a; @@ -223,7 +228,7 @@ organigramma_persona_nodo_carica (OrganigrammaPersonaNodo *organigramma_persona_ } static void -organigramma_persona_nodo_salva (OrganigrammaPersonaNodo *organigramma_persona_nodo) +organigramma_persona_nodo_salva (OrganigrammaPersonaNodo *organigramma_persona_nodo, gboolean chiudi) { gchar *sql; @@ -260,6 +265,12 @@ organigramma_persona_nodo_salva (OrganigrammaPersonaNodo *organigramma_persona_n GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_nodo); + } } else { @@ -374,5 +385,12 @@ static void organigramma_persona_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_nodo_salva ((OrganigrammaPersonaNodo *)user_data); + organigramma_persona_nodo_salva ((OrganigrammaPersonaNodo *)user_data, FALSE); +} + +static void +organigramma_persona_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_nodo_salva ((OrganigrammaPersonaNodo *)user_data, TRUE); } diff --git a/src/personanodorecapito.c b/src/personanodorecapito.c index 868027b..3794dce 100644 --- a/src/personanodorecapito.c +++ b/src/personanodorecapito.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_persona_nodo_recapito_class_init (OrganigrammaPersonaNo static void organigramma_persona_nodo_recapito_init (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito); static void organigramma_persona_nodo_recapito_carica (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito); -static void organigramma_persona_nodo_recapito_salva (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito); +static void organigramma_persona_nodo_recapito_salva (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito, gboolean chiudi); static gboolean organigramma_persona_nodo_recapito_conferma_chiusura (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito); @@ -52,6 +52,8 @@ static void organigramma_persona_nodo_recapito_on_btn_annulla_clicked (GtkButton gpointer user_data); static void organigramma_persona_nodo_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_nodo_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_NODO_RECAPITO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_NODO_RECAPITO, OrganigrammaPersonaNodoRecapitoPrivate)) @@ -162,6 +164,10 @@ OrganigrammaPersonaNodoRecapito "clicked", G_CALLBACK (organigramma_persona_nodo_recapito_on_btn_annulla_clicked), (gpointer *)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button94")), "clicked", G_CALLBACK (organigramma_persona_nodo_recapito_on_btn_salva_clicked), (gpointer *)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button160")), + "clicked", G_CALLBACK (organigramma_persona_nodo_recapito_on_btn_salvaechiudi_clicked), (gpointer *)a); + + gtk_form_clear (priv->form); priv->id = id; if (priv->id == 0) @@ -183,6 +189,7 @@ OrganigrammaPersonaNodoRecapito if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button94")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button160")), FALSE); } return a; @@ -216,7 +223,7 @@ organigramma_persona_nodo_recapito_carica (OrganigrammaPersonaNodoRecapito *orga } static void -organigramma_persona_nodo_recapito_salva (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito) +organigramma_persona_nodo_recapito_salva (OrganigrammaPersonaNodoRecapito *organigramma_persona_nodo_recapito, gboolean chiudi) { gchar *sql; @@ -253,6 +260,12 @@ organigramma_persona_nodo_recapito_salva (OrganigrammaPersonaNodoRecapito *organ GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_nodo_recapito); + } } else { @@ -338,5 +351,12 @@ static void organigramma_persona_nodo_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_nodo_recapito_salva ((OrganigrammaPersonaNodoRecapito *)user_data); + organigramma_persona_nodo_recapito_salva ((OrganigrammaPersonaNodoRecapito *)user_data, FALSE); +} + +static void +organigramma_persona_nodo_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_nodo_recapito_salva ((OrganigrammaPersonaNodoRecapito *)user_data, TRUE); } diff --git a/src/personarecapito.c b/src/personarecapito.c index 8d541e4..98da9f9 100644 --- a/src/personarecapito.c +++ b/src/personarecapito.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_persona_recapito_class_init (OrganigrammaPersonaRecapit static void organigramma_persona_recapito_init (OrganigrammaPersonaRecapito *organigramma_persona_recapito); static void organigramma_persona_recapito_carica (OrganigrammaPersonaRecapito *organigramma_persona_recapito); -static void organigramma_persona_recapito_salva (OrganigrammaPersonaRecapito *organigramma_persona_recapito); +static void organigramma_persona_recapito_salva (OrganigrammaPersonaRecapito *organigramma_persona_recapito, gboolean chiudi); static gboolean organigramma_persona_recapito_conferma_chiusura (OrganigrammaPersonaRecapito *organigramma_persona_recapito); @@ -52,6 +52,8 @@ static void organigramma_persona_recapito_on_btn_annulla_clicked (GtkButton *but gpointer user_data); static void organigramma_persona_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_RECAPITO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_RECAPITO, OrganigrammaPersonaRecapitoPrivate)) @@ -153,12 +155,16 @@ OrganigrammaPersonaRecapito NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_persona_recapito_on_w_organigramma_persona_recapito_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_persona_recapito_on_w_organigramma_persona_recapito_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button87")), - "clicked", G_CALLBACK (organigramma_persona_recapito_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_recapito_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button88")), - "clicked", G_CALLBACK (organigramma_persona_recapito_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_recapito_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button163")), + "clicked", G_CALLBACK (organigramma_persona_recapito_on_btn_salvaechiudi_clicked), (gpointer)a); + + gtk_form_clear (priv->form); priv->id = id; if (priv->id == 0) @@ -179,6 +185,7 @@ OrganigrammaPersonaRecapito if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button88")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button163")), FALSE); } return a; @@ -212,7 +219,7 @@ organigramma_persona_recapito_carica (OrganigrammaPersonaRecapito *organigramma_ } static void -organigramma_persona_recapito_salva (OrganigrammaPersonaRecapito *organigramma_persona_recapito) +organigramma_persona_recapito_salva (OrganigrammaPersonaRecapito *organigramma_persona_recapito, gboolean chiudi) { gchar *sql; @@ -249,6 +256,12 @@ organigramma_persona_recapito_salva (OrganigrammaPersonaRecapito *organigramma_p GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_recapito); + } } else { @@ -334,5 +347,12 @@ static void organigramma_persona_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_recapito_salva ((OrganigrammaPersonaRecapito *)user_data); + organigramma_persona_recapito_salva ((OrganigrammaPersonaRecapito *)user_data, FALSE); +} + +static void +organigramma_persona_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_recapito_salva ((OrganigrammaPersonaRecapito *)user_data, TRUE); } diff --git a/src/personaufficio.c b/src/personaufficio.c index 98aed54..7d35e78 100644 --- a/src/personaufficio.c +++ b/src/personaufficio.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,9 +32,7 @@ static void organigramma_persona_ufficio_class_init (OrganigrammaPersonaUfficioC static void organigramma_persona_ufficio_init (OrganigrammaPersonaUfficio *organigramma_persona_ufficio); static void organigramma_persona_ufficio_carica (OrganigrammaPersonaUfficio *organigramma_persona_ufficio); -static void organigramma_persona_ufficio_salva (OrganigrammaPersonaUfficio *organigramma_persona_ufficio); - -static void organigramma_persona_ufficio_carica_ufficio (OrganigrammaPersonaUfficio *indirizzo); +static void organigramma_persona_ufficio_salva (OrganigrammaPersonaUfficio *organigramma_persona_ufficio, gboolean chiudi); static gboolean organigramma_persona_ufficio_conferma_chiusura (OrganigrammaPersonaUfficio *organigramma_persona_ufficio); @@ -60,6 +58,8 @@ static void organigramma_persona_ufficio_on_btn_annulla_clicked (GtkButton *butt gpointer user_data); static void organigramma_persona_ufficio_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_ufficio_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_UFFICIO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_UFFICIO, OrganigrammaPersonaUfficioPrivate)) @@ -161,15 +161,19 @@ OrganigrammaPersonaUfficio NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_persona_ufficio_on_w_organigramma_persona_ufficio_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_persona_ufficio_on_w_organigramma_persona_ufficio_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button82")), - "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_ricerca_via_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_ricerca_via_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button83")), - "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button84")), - "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button161")), + "clicked", G_CALLBACK (organigramma_persona_ufficio_on_btn_salvaechiudi_clicked), (gpointer)a); + + gtk_form_clear (priv->form); priv->id = id; if (priv->id == 0) @@ -190,6 +194,7 @@ OrganigrammaPersonaUfficio if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button84")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button161")), FALSE); } return a; @@ -223,7 +228,7 @@ organigramma_persona_ufficio_carica (OrganigrammaPersonaUfficio *organigramma_pe } static void -organigramma_persona_ufficio_salva (OrganigrammaPersonaUfficio *organigramma_persona_ufficio) +organigramma_persona_ufficio_salva (OrganigrammaPersonaUfficio *organigramma_persona_ufficio, gboolean chiudi) { gchar *sql; @@ -260,6 +265,12 @@ organigramma_persona_ufficio_salva (OrganigrammaPersonaUfficio *organigramma_per GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_ufficio); + } } else { @@ -374,5 +385,12 @@ static void organigramma_persona_ufficio_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_ufficio_salva ((OrganigrammaPersonaUfficio *)user_data); + organigramma_persona_ufficio_salva ((OrganigrammaPersonaUfficio *)user_data, FALSE); +} + +static void +organigramma_persona_ufficio_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_ufficio_salva ((OrganigrammaPersonaUfficio *)user_data, TRUE); } diff --git a/src/personaufficiorecapito.c b/src/personaufficiorecapito.c index 82727ed..c6f76f1 100644 --- a/src/personaufficiorecapito.c +++ b/src/personaufficiorecapito.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_persona_ufficio_recapito_class_init (OrganigrammaPerson static void organigramma_persona_ufficio_recapito_init (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); static void organigramma_persona_ufficio_recapito_carica (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); -static void organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); +static void organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito, gboolean chiudi); static gboolean organigramma_persona_ufficio_recapito_conferma_chiusura (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito); @@ -52,6 +52,8 @@ static void organigramma_persona_ufficio_recapito_on_btn_annulla_clicked (GtkBut gpointer user_data); static void organigramma_persona_ufficio_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_ufficio_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PERSONA_UFFICIO_RECAPITO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PERSONA_UFFICIO_RECAPITO, OrganigrammaPersonaUfficioRecapitoPrivate)) @@ -156,12 +158,14 @@ OrganigrammaPersonaUfficioRecapito NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ufficio_recapito_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_persona_ufficio_recapito_on_w_organigramma_persona_ufficio_recapito_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button85")), - "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button86")), - "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button162")), + "clicked", G_CALLBACK (organigramma_persona_ufficio_recapito_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -183,6 +187,7 @@ OrganigrammaPersonaUfficioRecapito if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button86")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button162")), FALSE); } return a; @@ -216,7 +221,7 @@ organigramma_persona_ufficio_recapito_carica (OrganigrammaPersonaUfficioRecapito } static void -organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito) +organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUfficioRecapito *organigramma_persona_ufficio_recapito, gboolean chiudi) { gchar *sql; @@ -253,6 +258,12 @@ organigramma_persona_ufficio_recapito_salva (OrganigrammaPersonaUfficioRecapito GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_persona_ufficio_recapito); + } } else { @@ -338,5 +349,12 @@ static void organigramma_persona_ufficio_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_persona_ufficio_recapito_salva ((OrganigrammaPersonaUfficioRecapito *)user_data); + organigramma_persona_ufficio_recapito_salva ((OrganigrammaPersonaUfficioRecapito *)user_data, FALSE); +} + +static void +organigramma_persona_ufficio_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_persona_ufficio_recapito_salva ((OrganigrammaPersonaUfficioRecapito *)user_data, TRUE); } diff --git a/src/posizioneeconomica.c b/src/posizioneeconomica.c index 245088c..d17ab7c 100644 --- a/src/posizioneeconomica.c +++ b/src/posizioneeconomica.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -27,7 +31,7 @@ static void organigramma_posizione_economica_class_init (OrganigrammaPosizioneEc static void organigramma_posizione_economica_init (OrganigrammaPosizioneEconomica *posizione_economica); static void organigramma_posizione_economica_carica (OrganigrammaPosizioneEconomica *posizione_economica); -static void organigramma_posizione_economica_salva (OrganigrammaPosizioneEconomica *posizione_economica); +static void organigramma_posizione_economica_salva (OrganigrammaPosizioneEconomica *posizione_economica, gboolean chiudi); static gboolean organigramma_posizione_economica_conferma_chiusura (OrganigrammaPosizioneEconomica *posizione_economica); @@ -48,6 +52,8 @@ static void organigramma_posizione_economica_on_btn_annulla_clicked (GtkButton * gpointer user_data); static void organigramma_posizione_economica_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_posizione_economica_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define POSIZIONE_ECONOMICA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_POSIZIONE_ECONOMICA, OrganigrammaPosizioneEconomicaPrivate)) @@ -144,12 +150,14 @@ OrganigrammaPosizioneEconomica NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_posizione_economica_on_w_organigramma_posizione_economica_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_posizione_economica_on_w_organigramma_posizione_economica_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button121"), - "clicked", G_CALLBACK (organigramma_posizione_economica_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_posizione_economica_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button122"), - "clicked", G_CALLBACK (organigramma_posizione_economica_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_posizione_economica_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button147"), + "clicked", G_CALLBACK (organigramma_posizione_economica_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -169,6 +177,7 @@ OrganigrammaPosizioneEconomica if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button122")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button147")), FALSE); } return a; @@ -197,7 +206,7 @@ organigramma_posizione_economica_carica (OrganigrammaPosizioneEconomica *posizio } static void -organigramma_posizione_economica_salva (OrganigrammaPosizioneEconomica *posizione_economica) +organigramma_posizione_economica_salva (OrganigrammaPosizioneEconomica *posizione_economica, gboolean chiudi) { gchar *sql; @@ -234,6 +243,12 @@ organigramma_posizione_economica_salva (OrganigrammaPosizioneEconomica *posizion GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (posizione_economica); + } } else { @@ -323,5 +338,12 @@ static void organigramma_posizione_economica_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_posizione_economica_salva ((OrganigrammaPosizioneEconomica *)user_data); + organigramma_posizione_economica_salva ((OrganigrammaPosizioneEconomica *)user_data, FALSE); +} + +static void +organigramma_posizione_economica_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_posizione_economica_salva ((OrganigrammaPosizioneEconomica *)user_data, TRUE); } diff --git a/src/profiloprofessionale.c b/src/profiloprofessionale.c index 2aeda3d..4bde7db 100644 --- a/src/profiloprofessionale.c +++ b/src/profiloprofessionale.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -28,7 +32,7 @@ static void organigramma_profilo_professionale_class_init (OrganigrammaProfiloPr static void organigramma_profilo_professionale_init (OrganigrammaProfiloProfessionale *profilo_professionale); static void organigramma_profilo_professionale_carica (OrganigrammaProfiloProfessionale *profilo_professionale); -static void organigramma_profilo_professionale_salva (OrganigrammaProfiloProfessionale *profilo_professionale); +static void organigramma_profilo_professionale_salva (OrganigrammaProfiloProfessionale *profilo_professionale, gboolean chiudi); static gboolean organigramma_profilo_professionale_conferma_chiusura (OrganigrammaProfiloProfessionale *profilo_professionale); @@ -49,6 +53,8 @@ static void organigramma_profilo_professionale_on_btn_annulla_clicked (GtkButton gpointer user_data); static void organigramma_profilo_professionale_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_profilo_professionale_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_PROFILO_PROFESSIONALE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_PROFILO_PROFESSIONALE, OrganigrammaProfiloProfessionalePrivate)) @@ -145,12 +151,14 @@ OrganigrammaProfiloProfessionale NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_profilo_professionale_on_w_organigramma_profilo_professionale_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_profilo_professionale_on_w_organigramma_profilo_professionale_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button135"), - "clicked", G_CALLBACK (organigramma_profilo_professionale_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_profilo_professionale_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button136"), - "clicked", G_CALLBACK (organigramma_profilo_professionale_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_profilo_professionale_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button148"), + "clicked", G_CALLBACK (organigramma_profilo_professionale_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -170,6 +178,7 @@ OrganigrammaProfiloProfessionale if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button136")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button148")), FALSE); } return a; @@ -200,7 +209,7 @@ organigramma_profilo_professionale_carica (OrganigrammaProfiloProfessionale *pro } static void -organigramma_profilo_professionale_salva (OrganigrammaProfiloProfessionale *profilo_professionale) +organigramma_profilo_professionale_salva (OrganigrammaProfiloProfessionale *profilo_professionale, gboolean chiudi) { gchar *sql; @@ -237,6 +246,12 @@ organigramma_profilo_professionale_salva (OrganigrammaProfiloProfessionale *prof GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (profilo_professionale); + } } else { @@ -326,5 +341,12 @@ static void organigramma_profilo_professionale_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_profilo_professionale_salva ((OrganigrammaProfiloProfessionale *)user_data); + organigramma_profilo_professionale_salva ((OrganigrammaProfiloProfessionale *)user_data, FALSE); +} + +static void +organigramma_profilo_professionale_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_profilo_professionale_salva ((OrganigrammaProfiloProfessionale *)user_data, TRUE); } diff --git a/src/struttura.c b/src/struttura.c index 7532cbb..5a44831 100644 --- a/src/struttura.c +++ b/src/struttura.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -29,7 +33,7 @@ static void organigramma_struttura_class_init (OrganigrammaStrutturaClass *klass static void organigramma_struttura_init (OrganigrammaStruttura *struttura); static void organigramma_struttura_carica (OrganigrammaStruttura *struttura); -static void organigramma_struttura_salva (OrganigrammaStruttura *struttura); +static void organigramma_struttura_salva (OrganigrammaStruttura *struttura, gboolean chiudi); static void organigramma_struttura_carica_indirizzi (OrganigrammaStruttura *struttura); @@ -67,6 +71,8 @@ static void organigramma_struttura_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_struttura_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_struttura_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_STRUTTURA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_STRUTTURA, OrganigrammaStrutturaPrivate)) @@ -175,23 +181,25 @@ OrganigrammaStruttura NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_struttura_on_w_organigramma_struttura_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_struttura_on_w_organigramma_struttura_delete_event), (gpointer)a); priv->sel_indirizzi = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview9"))); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button47")), - "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_nuovo_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_nuovo_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button50")), - "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_modifica_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_modifica_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button51")), - "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_elimina_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_on_btn_indirizzo_elimina_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview9")), - "row-activated", G_CALLBACK (organigramma_struttura_on_trv_indirizzi_row_activated), (gpointer *)a); + "row-activated", G_CALLBACK (organigramma_struttura_on_trv_indirizzi_row_activated), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button39"), - "clicked", G_CALLBACK (organigramma_struttura_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button40"), - "clicked", G_CALLBACK (organigramma_struttura_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button149"), + "clicked", G_CALLBACK (organigramma_struttura_on_btn_salvaechiudi_clicked), (gpointer)a); gtk_form_clear (priv->form); @@ -217,6 +225,7 @@ OrganigrammaStruttura gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button47")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button51")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button40")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button149")), FALSE); } return a; @@ -248,7 +257,7 @@ organigramma_struttura_carica (OrganigrammaStruttura *struttura) } static void -organigramma_struttura_salva (OrganigrammaStruttura *struttura) +organigramma_struttura_salva (OrganigrammaStruttura *struttura, gboolean chiudi) { gchar *sql; @@ -286,6 +295,12 @@ organigramma_struttura_salva (OrganigrammaStruttura *struttura) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (struttura); + } } else { @@ -541,5 +556,12 @@ static void organigramma_struttura_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_struttura_salva ((OrganigrammaStruttura *)user_data); + organigramma_struttura_salva ((OrganigrammaStruttura *)user_data, FALSE); +} + +static void +organigramma_struttura_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_struttura_salva ((OrganigrammaStruttura *)user_data, TRUE); } diff --git a/src/strutturaindirizzo.c b/src/strutturaindirizzo.c index 8a098f4..7b3331c 100644 --- a/src/strutturaindirizzo.c +++ b/src/strutturaindirizzo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,15 +33,10 @@ static void organigramma_struttura_indirizzo_class_init (OrganigrammaStrutturaIn static void organigramma_struttura_indirizzo_init (OrganigrammaStrutturaIndirizzo *struttura_indirizzo); static void organigramma_struttura_indirizzo_carica (OrganigrammaStrutturaIndirizzo *struttura_indirizzo); -static void organigramma_struttura_indirizzo_salva (OrganigrammaStrutturaIndirizzo *struttura_indirizzo); - -static void organigramma_struttura_indirizzo_carica_indirizzo (OrganigrammaStrutturaIndirizzo *indirizzo); +static void organigramma_struttura_indirizzo_salva (OrganigrammaStrutturaIndirizzo *struttura_indirizzo, gboolean chiudi); static gboolean organigramma_struttura_indirizzo_conferma_chiusura (OrganigrammaStrutturaIndirizzo *struttura_indirizzo); -static void indirizzo_on_vie_selezionato (gpointer instance, - guint id, gpointer user_data); - static void organigramma_struttura_indirizzo_set_property (GObject *object, guint property_id, const GValue *value, @@ -61,6 +56,8 @@ static void organigramma_struttura_indirizzo_on_btn_annulla_clicked (GtkButton * gpointer user_data); static void organigramma_struttura_indirizzo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_struttura_indirizzo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_STRUTTURA_INDIRIZZO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_STRUTTURA_INDIRIZZO, OrganigrammaStrutturaIndirizzoPrivate)) @@ -165,15 +162,19 @@ OrganigrammaStrutturaIndirizzo NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_struttura_indirizzo_on_w_organigramma_struttura_indirizzo_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_struttura_indirizzo_on_w_organigramma_struttura_indirizzo_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button54")), - "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_ricerca_via_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_ricerca_via_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button55")), - "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button56")), - "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button150")), + "clicked", G_CALLBACK (organigramma_struttura_indirizzo_on_btn_salvaechiudi_clicked), (gpointer)a); + + gtk_form_clear (priv->form); priv->id = id; if (priv->id == 0) @@ -194,6 +195,7 @@ OrganigrammaStrutturaIndirizzo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button56")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button150")), FALSE); } return a; @@ -224,7 +226,7 @@ organigramma_struttura_indirizzo_carica (OrganigrammaStrutturaIndirizzo *struttu } static void -organigramma_struttura_indirizzo_salva (OrganigrammaStrutturaIndirizzo *struttura_indirizzo) +organigramma_struttura_indirizzo_salva (OrganigrammaStrutturaIndirizzo *struttura_indirizzo, gboolean chiudi) { gchar *sql; @@ -261,6 +263,12 @@ organigramma_struttura_indirizzo_salva (OrganigrammaStrutturaIndirizzo *struttur GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (struttura_indirizzo); + } } else { @@ -377,5 +385,12 @@ static void organigramma_struttura_indirizzo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_struttura_indirizzo_salva ((OrganigrammaStrutturaIndirizzo *)user_data); + organigramma_struttura_indirizzo_salva ((OrganigrammaStrutturaIndirizzo *)user_data, FALSE); +} + +static void +organigramma_struttura_indirizzo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_struttura_indirizzo_salva ((OrganigrammaStrutturaIndirizzo *)user_data, TRUE); } diff --git a/src/tiponodo.c b/src/tiponodo.c index d520414..c05a8e4 100644 --- a/src/tiponodo.c +++ b/src/tiponodo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -28,7 +32,7 @@ static void organigramma_tipo_nodo_class_init (OrganigrammaTipoNodoClass *klass) static void organigramma_tipo_nodo_init (OrganigrammaTipoNodo *organigramma_tipo_nodo); static void organigramma_tipo_nodo_carica (OrganigrammaTipoNodo *organigramma_tipo_nodo); -static void organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo); +static void organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo, gboolean chiudi); static gboolean organigramma_tipo_nodo_conferma_chiusura (OrganigrammaTipoNodo *organigramma_tipo_nodo); @@ -49,6 +53,8 @@ static void organigramma_tipo_nodo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_tipo_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_tipo_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_TIPO_NODO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_TIPO_NODO, OrganigrammaTipoNodoPrivate)) @@ -145,12 +151,14 @@ OrganigrammaTipoNodo NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_tipo_nodo_on_w_organigramma_tipo_nodo_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_tipo_nodo_on_w_organigramma_tipo_nodo_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button8"), - "clicked", G_CALLBACK (organigramma_tipo_nodo_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_nodo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button9"), - "clicked", G_CALLBACK (organigramma_tipo_nodo_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_nodo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button142"), + "clicked", G_CALLBACK (organigramma_tipo_nodo_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -170,6 +178,7 @@ OrganigrammaTipoNodo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button9")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button142")), FALSE); } return a; @@ -200,7 +209,7 @@ organigramma_tipo_nodo_carica (OrganigrammaTipoNodo *organigramma_tipo_nodo) } static void -organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo) +organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo, gboolean chiudi) { gchar *sql; @@ -237,6 +246,12 @@ organigramma_tipo_nodo_salva (OrganigrammaTipoNodo *organigramma_tipo_nodo) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_tipo_nodo); + } } else { @@ -316,7 +331,6 @@ organigramma_tipo_nodo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data) { OrganigrammaTipoNodo *organigramma_tipo_nodo = (OrganigrammaTipoNodo *)user_data; - OrganigrammaTipoNodoPrivate *priv = ORGANIGRAMMA_TIPO_NODO_GET_PRIVATE (organigramma_tipo_nodo); if (organigramma_tipo_nodo_conferma_chiusura (organigramma_tipo_nodo)) gtk_widget_destroy (priv->w); @@ -326,5 +340,12 @@ static void organigramma_tipo_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_tipo_nodo_salva ((OrganigrammaTipoNodo *)user_data); + organigramma_tipo_nodo_salva ((OrganigrammaTipoNodo *)user_data, FALSE); +} + +static void +organigramma_tipo_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_tipo_nodo_salva ((OrganigrammaTipoNodo *)user_data, TRUE); } diff --git a/src/tipoprestazione.c b/src/tipoprestazione.c index 04945c5..1cd8505 100644 --- a/src/tipoprestazione.c +++ b/src/tipoprestazione.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -28,7 +32,7 @@ static void organigramma_tipo_prestazione_class_init (OrganigrammaTipoPrestazion static void organigramma_tipo_prestazione_init (OrganigrammaTipoPrestazione *tipo_prestazione); static void organigramma_tipo_prestazione_carica (OrganigrammaTipoPrestazione *tipo_prestazione); -static void organigramma_tipo_prestazione_salva (OrganigrammaTipoPrestazione *tipo_prestazione); +static void organigramma_tipo_prestazione_salva (OrganigrammaTipoPrestazione *tipo_prestazione, gboolean chiudi); static gboolean organigramma_tipo_prestazione_conferma_chiusura (OrganigrammaTipoPrestazione *tipo_prestazione); @@ -49,6 +53,8 @@ static void organigramma_tipo_prestazione_on_btn_annulla_clicked (GtkButton *but gpointer user_data); static void organigramma_tipo_prestazione_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_tipo_prestazione_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_TIPO_PRESTAZIONE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_TIPO_PRESTAZIONE, OrganigrammaTipoPrestazionePrivate)) @@ -145,12 +151,14 @@ OrganigrammaTipoPrestazione NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_tipo_prestazione_on_w_organigramma_tipo_prestazione_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_tipo_prestazione_on_w_organigramma_tipo_prestazione_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button128"), - "clicked", G_CALLBACK (organigramma_tipo_prestazione_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_prestazione_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button129"), - "clicked", G_CALLBACK (organigramma_tipo_prestazione_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_prestazione_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button143"), + "clicked", G_CALLBACK (organigramma_tipo_prestazione_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -170,6 +178,7 @@ OrganigrammaTipoPrestazione if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button129")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button143")), FALSE); } return a; @@ -200,7 +209,7 @@ organigramma_tipo_prestazione_carica (OrganigrammaTipoPrestazione *tipo_prestazi } static void -organigramma_tipo_prestazione_salva (OrganigrammaTipoPrestazione *tipo_prestazione) +organigramma_tipo_prestazione_salva (OrganigrammaTipoPrestazione *tipo_prestazione, gboolean chiudi) { gchar *sql; @@ -237,6 +246,12 @@ organigramma_tipo_prestazione_salva (OrganigrammaTipoPrestazione *tipo_prestazio GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (tipo_prestazione); + } } else { @@ -326,5 +341,12 @@ static void organigramma_tipo_prestazione_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_tipo_prestazione_salva ((OrganigrammaTipoPrestazione *)user_data); + organigramma_tipo_prestazione_salva ((OrganigrammaTipoPrestazione *)user_data, FALSE); +} + +static void +organigramma_tipo_prestazione_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_tipo_prestazione_salva ((OrganigrammaTipoPrestazione *)user_data, TRUE); } diff --git a/src/tiporapportolavoro.c b/src/tiporapportolavoro.c index cf44dc0..4e76a12 100644 --- a/src/tiporapportolavoro.c +++ b/src/tiporapportolavoro.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -27,7 +31,7 @@ static void organigramma_tipo_rapporto_lavoro_class_init (OrganigrammaTipoRappor static void organigramma_tipo_rapporto_lavoro_init (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro); static void organigramma_tipo_rapporto_lavoro_carica (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro); -static void organigramma_tipo_rapporto_lavoro_salva (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro); +static void organigramma_tipo_rapporto_lavoro_salva (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro, gboolean chiudi); static gboolean organigramma_tipo_rapporto_lavoro_conferma_chiusura (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro); @@ -48,6 +52,8 @@ static void organigramma_tipo_rapporto_lavoro_on_btn_annulla_clicked (GtkButton gpointer user_data); static void organigramma_tipo_rapporto_lavoro_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_tipo_rapporto_lavoro_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_TIPO_RAPPORTO_LAVORO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_TIPO_RAPPORTO_LAVORO, OrganigrammaTipoRapportoLavoroPrivate)) @@ -144,12 +150,14 @@ OrganigrammaTipoRapportoLavoro NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_w_organigramma_tipo_rapporto_lavoro_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_w_organigramma_tipo_rapporto_lavoro_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button114"), - "clicked", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button115"), - "clicked", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button144"), + "clicked", G_CALLBACK (organigramma_tipo_rapporto_lavoro_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -169,6 +177,7 @@ OrganigrammaTipoRapportoLavoro if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button115")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button144")), FALSE); } return a; @@ -197,7 +206,7 @@ organigramma_tipo_rapporto_lavoro_carica (OrganigrammaTipoRapportoLavoro *tipo_r } static void -organigramma_tipo_rapporto_lavoro_salva (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro) +organigramma_tipo_rapporto_lavoro_salva (OrganigrammaTipoRapportoLavoro *tipo_rapporto_lavoro, gboolean chiudi) { gchar *sql; @@ -234,6 +243,12 @@ organigramma_tipo_rapporto_lavoro_salva (OrganigrammaTipoRapportoLavoro *tipo_ra GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (tipo_rapporto_lavoro); + } } else { @@ -323,5 +338,12 @@ static void organigramma_tipo_rapporto_lavoro_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_tipo_rapporto_lavoro_salva ((OrganigrammaTipoRapportoLavoro *)user_data); + organigramma_tipo_rapporto_lavoro_salva ((OrganigrammaTipoRapportoLavoro *)user_data, FALSE); +} + +static void +organigramma_tipo_rapporto_lavoro_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_tipo_rapporto_lavoro_salva ((OrganigrammaTipoRapportoLavoro *)user_data, TRUE); } diff --git a/src/tiporecapito.c b/src/tiporecapito.c index f8f3701..3986830 100644 --- a/src/tiporecapito.c +++ b/src/tiporecapito.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -27,7 +31,7 @@ static void organigramma_tipo_recapito_class_init (OrganigrammaTipoRecapitoClass static void organigramma_tipo_recapito_init (OrganigrammaTipoRecapito *tipo_recapito); static void organigramma_tipo_recapito_carica (OrganigrammaTipoRecapito *tipo_recapito); -static void organigramma_tipo_recapito_salva (OrganigrammaTipoRecapito *tipo_recapito); +static void organigramma_tipo_recapito_salva (OrganigrammaTipoRecapito *tipo_recapito, gboolean chiudi); static gboolean organigramma_tipo_recapito_conferma_chiusura (OrganigrammaTipoRecapito *tipo_recapito); @@ -48,6 +52,8 @@ static void organigramma_tipo_recapito_on_btn_annulla_clicked (GtkButton *button gpointer user_data); static void organigramma_tipo_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_tipo_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_TIPO_RECAPITO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_TIPO_RECAPITO, OrganigrammaTipoRecapitoPrivate)) @@ -144,12 +150,14 @@ OrganigrammaTipoRecapito NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_tipo_recapito_on_w_organigramma_tipo_recapito_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_tipo_recapito_on_w_organigramma_tipo_recapito_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button21"), - "clicked", G_CALLBACK (organigramma_tipo_recapito_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_recapito_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button22"), - "clicked", G_CALLBACK (organigramma_tipo_recapito_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_tipo_recapito_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button145"), + "clicked", G_CALLBACK (organigramma_tipo_recapito_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -169,6 +177,7 @@ OrganigrammaTipoRecapito if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button22")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button145")), FALSE); } return a; @@ -197,7 +206,7 @@ organigramma_tipo_recapito_carica (OrganigrammaTipoRecapito *tipo_recapito) } static void -organigramma_tipo_recapito_salva (OrganigrammaTipoRecapito *tipo_recapito) +organigramma_tipo_recapito_salva (OrganigrammaTipoRecapito *tipo_recapito, gboolean chiudi) { gchar *sql; @@ -234,6 +243,12 @@ organigramma_tipo_recapito_salva (OrganigrammaTipoRecapito *tipo_recapito) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (tipo_recapito); + } } else { @@ -323,5 +338,12 @@ static void organigramma_tipo_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_tipo_recapito_salva ((OrganigrammaTipoRecapito *)user_data); + organigramma_tipo_recapito_salva ((OrganigrammaTipoRecapito *)user_data, FALSE); +} + +static void +organigramma_tipo_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_tipo_recapito_salva ((OrganigrammaTipoRecapito *)user_data, TRUE); } diff --git a/src/titolo.c b/src/titolo.c index 0697585..14ae919 100644 --- a/src/titolo.c +++ b/src/titolo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -27,7 +31,7 @@ static void organigramma_titolo_class_init (OrganigrammaTitoloClass *klass); static void organigramma_titolo_init (OrganigrammaTitolo *titolo); static void organigramma_titolo_carica (OrganigrammaTitolo *titolo); -static void organigramma_titolo_salva (OrganigrammaTitolo *titolo); +static void organigramma_titolo_salva (OrganigrammaTitolo *titolo, gboolean chiudi); static gboolean organigramma_titolo_conferma_chiusura (OrganigrammaTitolo *titolo); @@ -48,6 +52,8 @@ static void organigramma_titolo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_titolo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_titolo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_TITOLO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_TITOLO, OrganigrammaTitoloPrivate)) @@ -144,12 +150,14 @@ OrganigrammaTitolo NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_titolo_on_w_organigramma_titolo_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_titolo_on_w_organigramma_titolo_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button105"), - "clicked", G_CALLBACK (organigramma_titolo_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_titolo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button106"), - "clicked", G_CALLBACK (organigramma_titolo_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_titolo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button146"), + "clicked", G_CALLBACK (organigramma_titolo_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; @@ -169,6 +177,7 @@ OrganigrammaTitolo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button106")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button146")), FALSE); } return a; @@ -199,7 +208,7 @@ organigramma_titolo_carica (OrganigrammaTitolo *titolo) } static void -organigramma_titolo_salva (OrganigrammaTitolo *titolo) +organigramma_titolo_salva (OrganigrammaTitolo *titolo, gboolean chiudi) { gchar *sql; @@ -236,6 +245,12 @@ organigramma_titolo_salva (OrganigrammaTitolo *titolo) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (titolo); + } } else { @@ -325,5 +340,12 @@ static void organigramma_titolo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_titolo_salva ((OrganigrammaTitolo *)user_data); + organigramma_titolo_salva ((OrganigrammaTitolo *)user_data, FALSE); +} + +static void +organigramma_titolo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_titolo_salva ((OrganigrammaTitolo *)user_data, TRUE); } diff --git a/src/ufficio.c b/src/ufficio.c index c599319..d6cdf42 100644 --- a/src/ufficio.c +++ b/src/ufficio.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 Andrea Zagli + * Copyright (C) 2010-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,10 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + #include #include #include @@ -32,7 +36,7 @@ static void organigramma_ufficio_class_init (OrganigrammaUfficioClass *klass); static void organigramma_ufficio_init (OrganigrammaUfficio *ufficio); static void organigramma_ufficio_carica (OrganigrammaUfficio *ufficio); -static void organigramma_ufficio_salva (OrganigrammaUfficio *ufficio); +static void organigramma_ufficio_salva (OrganigrammaUfficio *ufficio, gboolean chiudi); static void organigramma_ufficio_carica_nodi (OrganigrammaUfficio *ufficio); static void organigramma_ufficio_carica_stanze (OrganigrammaUfficio *ufficio); @@ -117,6 +121,8 @@ static void organigramma_ufficio_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_ufficio_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_ufficio_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_UFFICIO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_UFFICIO, OrganigrammaUfficioPrivate)) @@ -309,6 +315,8 @@ OrganigrammaUfficio "clicked", G_CALLBACK (organigramma_ufficio_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button30"), "clicked", G_CALLBACK (organigramma_ufficio_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button151"), + "clicked", G_CALLBACK (organigramma_ufficio_on_btn_salvaechiudi_clicked), (gpointer)a); gtk_form_clear (priv->form); @@ -340,6 +348,7 @@ OrganigrammaUfficio gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button59")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button61")), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button30")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button151")), FALSE); } return a; @@ -394,7 +403,7 @@ organigramma_ufficio_carica (OrganigrammaUfficio *ufficio) } static void -organigramma_ufficio_salva (OrganigrammaUfficio *ufficio) +organigramma_ufficio_salva (OrganigrammaUfficio *ufficio, gboolean chiudi) { gchar *sql; @@ -432,6 +441,12 @@ organigramma_ufficio_salva (OrganigrammaUfficio *ufficio) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (ufficio); + } } else { @@ -1190,5 +1205,12 @@ static void organigramma_ufficio_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_ufficio_salva ((OrganigrammaUfficio *)user_data); + organigramma_ufficio_salva ((OrganigrammaUfficio *)user_data, FALSE); +} + +static void +organigramma_ufficio_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_ufficio_salva ((OrganigrammaUfficio *)user_data, TRUE); } diff --git a/src/ufficionodo.c b/src/ufficionodo.c index e6c01b0..fe4434b 100644 --- a/src/ufficionodo.c +++ b/src/ufficionodo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,15 +32,11 @@ static void organigramma_ufficio_nodo_class_init (OrganigrammaUfficioNodoClass * static void organigramma_ufficio_nodo_init (OrganigrammaUfficioNodo *organigramma_ufficio_nodo); static void organigramma_ufficio_nodo_carica (OrganigrammaUfficioNodo *organigramma_ufficio_nodo); -static void organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_nodo); +static void organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_nodo, gboolean chiudi); -static void organigramma_ufficio_nodo_carica_indirizzo (OrganigrammaUfficioNodo *indirizzo); static gboolean organigramma_ufficio_nodo_conferma_chiusura (OrganigrammaUfficioNodo *organigramma_ufficio_nodo); -static void indirizzo_on_nodo_selezionato (gpointer instance, - guint id, gpointer user_data); - static void organigramma_ufficio_nodo_set_property (GObject *object, guint property_id, const GValue *value, @@ -60,6 +56,8 @@ static void organigramma_ufficio_nodo_on_btn_annulla_clicked (GtkButton *button, gpointer user_data); static void organigramma_ufficio_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_ufficio_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_UFFICIO_NODO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_UFFICIO_NODO, OrganigrammaUfficioNodoPrivate)) @@ -172,6 +170,8 @@ OrganigrammaUfficioNodo "clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button46")), "clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button154")), + "clicked", G_CALLBACK (organigramma_ufficio_nodo_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -192,6 +192,7 @@ OrganigrammaUfficioNodo if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button46")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button154")), FALSE); } return a; @@ -225,7 +226,7 @@ organigramma_ufficio_nodo_carica (OrganigrammaUfficioNodo *organigramma_ufficio_ } static void -organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_nodo) +organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_nodo, gboolean chiudi) { gchar *sql; @@ -262,6 +263,12 @@ organigramma_ufficio_nodo_salva (OrganigrammaUfficioNodo *organigramma_ufficio_n GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_ufficio_nodo); + } } else { @@ -375,5 +382,12 @@ static void organigramma_ufficio_nodo_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_ufficio_nodo_salva ((OrganigrammaUfficioNodo *)user_data); + organigramma_ufficio_nodo_salva ((OrganigrammaUfficioNodo *)user_data, FALSE); +} + +static void +organigramma_ufficio_nodo_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_ufficio_nodo_salva ((OrganigrammaUfficioNodo *)user_data, TRUE); } diff --git a/src/ufficioorario.c b/src/ufficioorario.c index 1971d87..e47fcf2 100644 --- a/src/ufficioorario.c +++ b/src/ufficioorario.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_ufficio_orario_class_init (OrganigrammaUfficioOrarioCla static void organigramma_ufficio_orario_init (OrganigrammaUfficioOrario *organigramma_ufficio_orario); static void organigramma_ufficio_orario_carica (OrganigrammaUfficioOrario *organigramma_ufficio_orario); -static void organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_ufficio_orario); +static void organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_ufficio_orario, gboolean chiudi); static gboolean organigramma_ufficio_orario_conferma_chiusura (OrganigrammaUfficioOrario *organigramma_ufficio_orario); @@ -52,6 +52,8 @@ static void organigramma_ufficio_orario_on_btn_annulla_clicked (GtkButton *butto gpointer user_data); static void organigramma_ufficio_orario_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_ufficio_orario_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_UFFICIO_ORARIO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_UFFICIO_ORARIO, OrganigrammaUfficioOrarioPrivate)) @@ -153,12 +155,14 @@ OrganigrammaUfficioOrario NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (organigramma_ufficio_orario_on_w_organigramma_ufficio_orario_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (organigramma_ufficio_orario_on_w_organigramma_ufficio_orario_delete_event), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button57")), - "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button58")), - "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button155")), + "clicked", G_CALLBACK (organigramma_ufficio_orario_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -179,6 +183,7 @@ OrganigrammaUfficioOrario if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button58")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button155")), FALSE); } return a; @@ -212,7 +217,7 @@ organigramma_ufficio_orario_carica (OrganigrammaUfficioOrario *organigramma_uffi } static void -organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_ufficio_orario) +organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_ufficio_orario, gboolean chiudi) { gchar *sql; @@ -249,6 +254,12 @@ organigramma_ufficio_orario_salva (OrganigrammaUfficioOrario *organigramma_uffic GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_ufficio_orario); + } } else { @@ -334,5 +345,12 @@ static void organigramma_ufficio_orario_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_ufficio_orario_salva ((OrganigrammaUfficioOrario *)user_data); + organigramma_ufficio_orario_salva ((OrganigrammaUfficioOrario *)user_data, FALSE); +} + +static void +organigramma_ufficio_orario_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_ufficio_orario_salva ((OrganigrammaUfficioOrario *)user_data, TRUE); } diff --git a/src/ufficiorecapito.c b/src/ufficiorecapito.c index 1de68ad..ecb1bd9 100644 --- a/src/ufficiorecapito.c +++ b/src/ufficiorecapito.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_ufficio_recapito_class_init (OrganigrammaUfficioRecapit static void organigramma_ufficio_recapito_init (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito); static void organigramma_ufficio_recapito_carica (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito); -static void organigramma_ufficio_recapito_salva (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito); +static void organigramma_ufficio_recapito_salva (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito, gboolean chiudi); static gboolean organigramma_ufficio_recapito_conferma_chiusura (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito); @@ -52,6 +52,8 @@ static void organigramma_ufficio_recapito_on_btn_annulla_clicked (GtkButton *but gpointer user_data); static void organigramma_ufficio_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_ufficio_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_UFFICIO_RECAPITO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_UFFICIO_RECAPITO, OrganigrammaUfficioRecapitoPrivate)) @@ -159,6 +161,8 @@ OrganigrammaUfficioRecapito "clicked", G_CALLBACK (organigramma_ufficio_recapito_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button49")), "clicked", G_CALLBACK (organigramma_ufficio_recapito_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button156")), + "clicked", G_CALLBACK (organigramma_ufficio_recapito_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -179,6 +183,7 @@ OrganigrammaUfficioRecapito if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button49")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button156")), FALSE); } return a; @@ -212,7 +217,7 @@ organigramma_ufficio_recapito_carica (OrganigrammaUfficioRecapito *organigramma_ } static void -organigramma_ufficio_recapito_salva (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito) +organigramma_ufficio_recapito_salva (OrganigrammaUfficioRecapito *organigramma_ufficio_recapito, gboolean chiudi) { gchar *sql; @@ -249,6 +254,12 @@ organigramma_ufficio_recapito_salva (OrganigrammaUfficioRecapito *organigramma_u GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_ufficio_recapito); + } } else { @@ -334,5 +345,12 @@ static void organigramma_ufficio_recapito_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_ufficio_recapito_salva ((OrganigrammaUfficioRecapito *)user_data); + organigramma_ufficio_recapito_salva ((OrganigrammaUfficioRecapito *)user_data, FALSE); +} + +static void +organigramma_ufficio_recapito_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_ufficio_recapito_salva ((OrganigrammaUfficioRecapito *)user_data, TRUE); } diff --git a/src/ufficiostanza.c b/src/ufficiostanza.c index 5dfa008..f9486f0 100644 --- a/src/ufficiostanza.c +++ b/src/ufficiostanza.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012 Andrea Zagli + * Copyright (C) 2009-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ static void organigramma_ufficio_stanza_class_init (OrganigrammaUfficioStanzaCla static void organigramma_ufficio_stanza_init (OrganigrammaUfficioStanza *organigramma_ufficio_stanza); static void organigramma_ufficio_stanza_carica (OrganigrammaUfficioStanza *organigramma_ufficio_stanza); -static void organigramma_ufficio_stanza_salva (OrganigrammaUfficioStanza *organigramma_ufficio_stanza); +static void organigramma_ufficio_stanza_salva (OrganigrammaUfficioStanza *organigramma_ufficio_stanza, gboolean chiudi); static gboolean organigramma_ufficio_stanza_conferma_chiusura (OrganigrammaUfficioStanza *organigramma_ufficio_stanza); @@ -52,6 +52,8 @@ static void organigramma_ufficio_stanza_on_btn_annulla_clicked (GtkButton *butto gpointer user_data); static void organigramma_ufficio_stanza_on_btn_salva_clicked (GtkButton *button, gpointer user_data); +static void organigramma_ufficio_stanza_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data); #define ORGANIGRAMMA_UFFICIO_STANZA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_ORGANIGRAMMA_UFFICIO_STANZA, OrganigrammaUfficioStanzaPrivate)) @@ -159,6 +161,8 @@ OrganigrammaUfficioStanza "clicked", G_CALLBACK (organigramma_ufficio_stanza_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button139")), "clicked", G_CALLBACK (organigramma_ufficio_stanza_on_btn_salva_clicked), (gpointer)a); + g_signal_connect (G_OBJECT (gtk_builder_get_object (priv->commons->gtkbuilder, "button157")), + "clicked", G_CALLBACK (organigramma_ufficio_stanza_on_btn_salvaechiudi_clicked), (gpointer)a); priv->id = id; if (priv->id == 0) @@ -179,6 +183,7 @@ OrganigrammaUfficioStanza if (!autoz_is_allowed (priv->commons->autoz, priv->commons->role_utente, ires1, FALSE)) { gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button139")), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (commons->gtkbuilder, "button157")), FALSE); } return a; @@ -212,7 +217,7 @@ organigramma_ufficio_stanza_carica (OrganigrammaUfficioStanza *organigramma_uffi } static void -organigramma_ufficio_stanza_salva (OrganigrammaUfficioStanza *organigramma_ufficio_stanza) +organigramma_ufficio_stanza_salva (OrganigrammaUfficioStanza *organigramma_ufficio_stanza, gboolean chiudi) { gchar *sql; @@ -249,6 +254,12 @@ organigramma_ufficio_stanza_salva (OrganigrammaUfficioStanza *organigramma_uffic GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Salvataggio eseguito con successo."); + + if (chiudi) + { + gtk_widget_destroy (priv->w); + g_object_unref (organigramma_ufficio_stanza); + } } else { @@ -334,5 +345,12 @@ static void organigramma_ufficio_stanza_on_btn_salva_clicked (GtkButton *button, gpointer user_data) { - organigramma_ufficio_stanza_salva ((OrganigrammaUfficioStanza *)user_data); + organigramma_ufficio_stanza_salva ((OrganigrammaUfficioStanza *)user_data, FALSE); +} + +static void +organigramma_ufficio_stanza_on_btn_salvaechiudi_clicked (GtkButton *button, + gpointer user_data) +{ + organigramma_ufficio_stanza_salva ((OrganigrammaUfficioStanza *)user_data, TRUE); } -- 2.49.0