From: Andrea Zagli Date: Mon, 26 Dec 2011 09:51:18 +0000 (+0100) Subject: Quando il pulsante salva è disabilitato in uscita non controlla i cambiamenti (closes... X-Git-Tag: gtk3~7 X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=d635f619eea8f81a94f510747197c37017140fb6;p=solipa%2Fterritorio Quando il pulsante salva è disabilitato in uscita non controlla i cambiamenti (closes #281). --- diff --git a/.anjuta_sym_db.db b/.anjuta_sym_db.db index 9c64799..7e78260 100644 Binary files a/.anjuta_sym_db.db and b/.anjuta_sym_db.db differ diff --git a/data/territorio/gui/territorio.gui b/data/territorio/gui/territorio.gui index 0178d85..fe77032 100644 --- a/data/territorio/gui/territorio.gui +++ b/data/territorio/gui/territorio.gui @@ -1,7 +1,7 @@ - + False @@ -43,6 +43,8 @@ + + @@ -318,14 +320,31 @@ lstore_aggregazioni_territoriali False True - 0 + 2 + + + Tipo + True + True + 1 + + + + 1 + + + + Nome + True + True + 2 - 1 + 2 diff --git a/src/aggregazioneterritoriale.c b/src/aggregazioneterritoriale.c index 8401b4f..272997e 100644 --- a/src/aggregazioneterritoriale.c +++ b/src/aggregazioneterritoriale.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Andrea Zagli + * Copyright (C) 2010-2011 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -144,12 +144,12 @@ TerritorioAggregazioneTerritoriale NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (territorio_aggregazione_territoriale_on_w_aggregazione_territoriale_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (territorio_aggregazione_territoriale_on_w_aggregazione_territoriale_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button41"), - "clicked", G_CALLBACK (territorio_aggregazione_territoriale_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_aggregazione_territoriale_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button42"), - "clicked", G_CALLBACK (territorio_aggregazione_territoriale_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_aggregazione_territoriale_on_btn_salva_clicked), (gpointer)a); priv->id = id; @@ -295,25 +295,21 @@ territorio_aggregazione_territoriale_get_property (GObject *object, guint proper static gboolean territorio_aggregazione_territoriale_conferma_chiusura (TerritorioAggregazioneTerritoriale *territorio_aggregazione_territoriale) { - GtkWidget *dialog; - gboolean ret; TerritorioAggregazioneTerritorialePrivate *priv = TERRITORIO_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_aggregazione_territoriale); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button42"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/aggregazioniterritoriali.c b/src/aggregazioniterritoriali.c index e56ef3a..5bc5ab7 100644 --- a/src/aggregazioniterritoriali.c +++ b/src/aggregazioniterritoriali.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Andrea Zagli + * Copyright (C) 2010-2011 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -61,6 +61,7 @@ static void territorio_aggregazioni_territoriali_on_btn_seleziona_clicked (GtkBu enum { COL_ID, + COL_TIPO, COL_NOME }; @@ -219,19 +220,20 @@ territorio_aggregazioni_territoriali_carica (TerritorioAggregazioniTerritoriali gtk_list_store_clear (priv->lstore_aggregazioni_territoriali); dm = gdaex_query (priv->commons->gdaex, - "SELECT c.id, c.nome" + "SELECT c.id, t.nome AS tipo, c.nome" " FROM aggregazioni_territoriali AS c" + " INNER JOIN tipi_aggregazione_territoriale AS t ON c.id_tipi_aggregazione_territoriale = t.id" " WHERE c.status <> 'E'" - " ORDER BY c.nome"); + " ORDER BY t.nome, c.nome"); if (dm != NULL) { rows = gda_data_model_get_n_rows (dm); for (row = 0; row < rows; row++) { gtk_list_store_append (priv->lstore_aggregazioni_territoriali, &iter); - gtk_list_store_set (priv->lstore_aggregazioni_territoriali, &iter, COL_ID, gdaex_data_model_get_field_value_stringify_at (dm, row, "id"), + COL_TIPO, gdaex_data_model_get_field_value_stringify_at (dm, row, "tipo"), COL_NOME, gdaex_data_model_get_field_value_stringify_at (dm, row, "nome"), -1); } diff --git a/src/comune.c b/src/comune.c index b4ca114..d961ca6 100644 --- a/src/comune.c +++ b/src/comune.c @@ -382,25 +382,20 @@ territorio_comune_get_property (GObject *object, guint property_id, GValue *valu static gboolean territorio_comune_conferma_chiusura (TerritorioComune *territorio_comune) { - GtkWidget *dialog; - gboolean ret; TerritorioComunePrivate *priv = TERRITORIO_COMUNE_GET_PRIVATE (territorio_comune); - ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button28"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/provincia.c b/src/provincia.c index 6d6ee66..ea9624a 100644 --- a/src/provincia.c +++ b/src/provincia.c @@ -171,12 +171,12 @@ TerritorioProvincia gtk_widget_show_all (twidget); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (territorio_provincia_on_w_provincia_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (territorio_provincia_on_w_provincia_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button20"), - "clicked", G_CALLBACK (territorio_provincia_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_provincia_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button21"), - "clicked", G_CALLBACK (territorio_provincia_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_provincia_on_btn_salva_clicked), (gpointer)a); priv->id = id; @@ -382,18 +382,16 @@ territorio_provincia_conferma_chiusura (TerritorioProvincia *territorio_provinci TerritorioProvinciaPrivate *priv = TERRITORIO_PROVINCIA_GET_PRIVATE (territorio_provincia); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button21"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/regione.c b/src/regione.c index ac6d9dc..7b7491f 100644 --- a/src/regione.c +++ b/src/regione.c @@ -322,18 +322,16 @@ territorio_regione_conferma_chiusura (TerritorioRegione *territorio_regione) TerritorioRegionePrivate *priv = TERRITORIO_REGIONE_GET_PRIVATE (territorio_regione); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button14"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/stato.c b/src/stato.c index 02fb64f..85d9910 100644 --- a/src/stato.c +++ b/src/stato.c @@ -315,25 +315,21 @@ territorio_stato_get_property (GObject *object, guint property_id, GValue *value static gboolean territorio_stato_conferma_chiusura (TerritorioStato *territorio_stato) { - GtkWidget *dialog; - gboolean ret; TerritorioStatoPrivate *priv = TERRITORIO_STATO_GET_PRIVATE (territorio_stato); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button7"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/tipoaggregazioneterritoriale.c b/src/tipoaggregazioneterritoriale.c index c1fe355..fd5f9e3 100644 --- a/src/tipoaggregazioneterritoriale.c +++ b/src/tipoaggregazioneterritoriale.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Andrea Zagli + * Copyright (C) 2010-2011 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -143,12 +143,12 @@ TerritorioTipoAggregazioneTerritoriale NULL); g_signal_connect (priv->w, - "delete-event", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_w_tipo_aggregazione_territoriale_delete_event), (gpointer *)a); + "delete-event", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_w_tipo_aggregazione_territoriale_delete_event), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button34"), - "clicked", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_btn_annulla_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_btn_annulla_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button35"), - "clicked", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_btn_salva_clicked), (gpointer *)a); + "clicked", G_CALLBACK (territorio_tipo_aggregazione_territoriale_on_btn_salva_clicked), (gpointer)a); priv->id = id; @@ -265,7 +265,6 @@ static void territorio_tipo_aggregazione_territoriale_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { TerritorioTipoAggregazioneTerritoriale *territorio_tipo_aggregazione_territoriale = TERRITORIO_TIPO_AGGREGAZIONE_TERRITORIALE (object); - TerritorioTipoAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPO_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_tipo_aggregazione_territoriale); switch (property_id) @@ -280,7 +279,6 @@ static void territorio_tipo_aggregazione_territoriale_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { TerritorioTipoAggregazioneTerritoriale *territorio_tipo_aggregazione_territoriale = TERRITORIO_TIPO_AGGREGAZIONE_TERRITORIALE (object); - TerritorioTipoAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPO_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_tipo_aggregazione_territoriale); switch (property_id) @@ -294,25 +292,21 @@ territorio_tipo_aggregazione_territoriale_get_property (GObject *object, guint p static gboolean territorio_tipo_aggregazione_territoriale_conferma_chiusura (TerritorioTipoAggregazioneTerritoriale *territorio_tipo_aggregazione_territoriale) { - GtkWidget *dialog; - gboolean ret; TerritorioTipoAggregazioneTerritorialePrivate *priv = TERRITORIO_TIPO_AGGREGAZIONE_TERRITORIALE_GET_PRIVATE (territorio_tipo_aggregazione_territoriale); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button35"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret; diff --git a/src/via.c b/src/via.c index d5242ec..c5b56a8 100644 --- a/src/via.c +++ b/src/via.c @@ -296,7 +296,6 @@ static void territorio_via_salva (TerritorioVia *territorio_via) { gchar *sql; - GtkWidget *dialog; AutozIResource *ires1; TerritorioViaClass *klass = TERRITORIO_VIA_GET_CLASS (territorio_via); @@ -339,13 +338,10 @@ territorio_via_salva (TerritorioVia *territorio_via) priv->id = strtol (gtk_label_get_text (GTK_LABEL (priv->objects[LBL_ID])), NULL, 10); } - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, - GTK_BUTTONS_OK, - "Salvataggio eseguito con successo."); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + solipa_message_dialog (priv->w, + GTK_MESSAGE_INFO, + GTK_BUTTONS_OK, + "Salvataggio eseguito con successo."); } else { @@ -354,13 +350,10 @@ territorio_via_salva (TerritorioVia *territorio_via) gtk_label_set_text (GTK_LABEL (priv->objects[LBL_ID]), ""); } - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - "Errore durante il salvataggio."); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + solipa_message_dialog (priv->w, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + "Errore durante il salvataggio."); } } @@ -395,25 +388,21 @@ territorio_via_get_property (GObject *object, guint property_id, GValue *value, static gboolean territorio_via_conferma_chiusura (TerritorioVia *territorio_via) { - GtkWidget *dialog; - gboolean ret; TerritorioViaPrivate *priv = TERRITORIO_VIA_GET_PRIVATE (territorio_via); ret = TRUE; - if (gtk_form_is_changed (priv->form)) + if (gtk_widget_get_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "button52"))) + && gtk_form_is_changed (priv->form)) { - dialog = gtk_message_dialog_new (GTK_WINDOW (priv->w), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "Sicuro di voler chiudere senza salvare?"); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_NO) + if (solipa_message_dialog (priv->w, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "Sicuro di voler chiudere senza salvare?") == GTK_RESPONSE_NO) { ret = FALSE; } - gtk_widget_destroy (dialog); } return ret;