[glade] Added glade_project_save_verify()
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] Added glade_project_save_verify()
- Date: Thu, 11 Apr 2013 17:46:22 +0000 (UTC)
commit 7eae117bfdce55992a168566c85ae41ab9bd5309
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Fri Apr 12 02:17:54 2013 +0900
Added glade_project_save_verify()
A version of glade_project_save() with control on what types of
verifications should be run
gladeui/glade-project.c | 88 ++++++++++++++++++++++++++++++++---------------
gladeui/glade-project.h | 17 +++++++++
2 files changed, 77 insertions(+), 28 deletions(-)
---
diff --git a/gladeui/glade-project.c b/gladeui/glade-project.c
index ef1d364..2a1af9d 100644
--- a/gladeui/glade-project.c
+++ b/gladeui/glade-project.c
@@ -208,7 +208,7 @@ static void glade_project_set_readonly (GladeProject *project,
gboolean readonly);
-static gboolean glade_project_verify (GladeProject *project, gboolean saving);
+static gboolean glade_project_verify (GladeProject *project, gboolean saving, GladeVerifyFlags flags);
static void glade_project_verify_properties (GladeWidget *widget);
static void glade_project_verify_project_for_ui (GladeProject *project);
@@ -216,7 +216,7 @@ static void glade_project_verify_adaptor (GladeProject *project,
GladeWidgetAdaptor *adaptor,
const gchar *path_name,
GString *string,
- gboolean saving,
+ GladeVerifyFlags flags,
gboolean forwidget,
GladeSupportMask *mask);
@@ -2156,14 +2156,18 @@ glade_project_autosave (GladeProject *project,
* glade_project_save:
* @project: a #GladeProject
* @path: location to save glade file
- * @error: an error from the G_FILE_ERROR domain.
+ * @flags: the #GladeVerifyFlags to warn about
+ * @error: an error from the %G_FILE_ERROR domain.
*
* Saves @project to the given path.
*
* Returns: %TRUE on success, %FALSE on failure
*/
gboolean
-glade_project_save (GladeProject *project, const gchar *path, GError **error)
+glade_project_save_verify (GladeProject *project,
+ const gchar *path,
+ GladeVerifyFlags flags,
+ GError **error)
{
GladeXmlContext *context;
GladeXmlDoc *doc;
@@ -2176,7 +2180,7 @@ glade_project_save (GladeProject *project, const gchar *path, GError **error)
if (glade_project_is_loading (project))
return FALSE;
- if (!glade_project_verify (project, TRUE))
+ if (!glade_project_verify (project, TRUE, flags))
return FALSE;
/* Delete any autosaves at this point, if they exist */
@@ -2227,6 +2231,25 @@ glade_project_save (GladeProject *project, const gchar *path, GError **error)
}
/**
+ * glade_project_save:
+ * @project: a #GladeProject
+ * @path: location to save glade file
+ * @error: an error from the %G_FILE_ERROR domain.
+ *
+ * Saves @project to the given path.
+ *
+ * Returns: %TRUE on success, %FALSE on failure
+ */
+gboolean
+glade_project_save (GladeProject *project, const gchar *path, GError **error)
+{
+ return glade_project_save_verify (project, path,
+ GLADE_VERIFY_VERSIONS |
+ GLADE_VERIFY_UNRECOGNIZED,
+ error);
+}
+
+/**
* glade_project_preview:
* @project: a #GladeProject
* @gwidget: a #GladeWidget
@@ -2349,7 +2372,7 @@ glade_project_verify_property_internal (GladeProject *project,
const gchar *path_name,
GString *string,
gboolean forwidget,
- gboolean saving)
+ GladeVerifyFlags flags)
{
GladeWidgetAdaptor *adaptor, *prop_adaptor;
GladePropertyClass *pclass;
@@ -2369,7 +2392,8 @@ glade_project_verify_property_internal (GladeProject *project,
glade_project_target_version_for_adaptor (project, adaptor,
&target_major, &target_minor);
- if (!GPC_VERSION_CHECK (pclass, target_major, target_minor))
+ if ((flags & GLADE_VERIFY_VERSIONS) != 0 &&
+ !GPC_VERSION_CHECK (pclass, target_major, target_minor))
{
if (forwidget)
{
@@ -2394,7 +2418,8 @@ glade_project_verify_property_internal (GladeProject *project,
glade_property_class_since_major (pclass),
glade_property_class_since_minor (pclass));
}
- else if (!saving && glade_property_class_deprecated (pclass))
+ else if ((flags & GLADE_VERIFY_DEPRECATIONS) != 0 &&
+ glade_property_class_deprecated (pclass))
{
if (forwidget)
glade_property_set_support_warning (property, FALSE, PROP_DEPRECATED_MSG);
@@ -2416,7 +2441,7 @@ glade_project_verify_properties_internal (GladeWidget *widget,
const gchar *path_name,
GString *string,
gboolean forwidget,
- gboolean saving)
+ GladeVerifyFlags flags)
{
GList *list;
GladeProperty *property;
@@ -2426,7 +2451,7 @@ glade_project_verify_properties_internal (GladeWidget *widget,
property = list->data;
glade_project_verify_property_internal (glade_widget_get_project (widget),
property, path_name,
- string, forwidget, saving);
+ string, forwidget, flags);
}
/* Sometimes widgets on the clipboard have packing props with no parent */
@@ -2436,7 +2461,7 @@ glade_project_verify_properties_internal (GladeWidget *widget,
{
property = list->data;
glade_project_verify_property_internal (glade_widget_get_project (widget),
- property, path_name, string, forwidget, saving);
+ property, path_name, string, forwidget, flags);
}
}
}
@@ -2447,7 +2472,7 @@ glade_project_verify_signal_internal (GladeWidget *widget,
const gchar *path_name,
GString *string,
gboolean forwidget,
- gboolean saving)
+ GladeVerifyFlags flags)
{
GladeSignalClass *signal_class;
GladeWidgetAdaptor *adaptor;
@@ -2468,7 +2493,8 @@ glade_project_verify_signal_internal (GladeWidget *widget,
adaptor,
&target_major, &target_minor);
- if (!GSC_VERSION_CHECK (signal_class, target_major, target_minor))
+ if ((flags & GLADE_VERIFY_VERSIONS) != 0 &&
+ !GSC_VERSION_CHECK (signal_class, target_major, target_minor))
{
if (forwidget)
{
@@ -2492,7 +2518,8 @@ glade_project_verify_signal_internal (GladeWidget *widget,
glade_signal_class_since_major (signal_class),
glade_signal_class_since_minor (signal_class));
}
- else if (!saving && glade_signal_class_deprecated (signal_class))
+ else if ((flags & GLADE_VERIFY_DEPRECATIONS) != 0 &&
+ glade_signal_class_deprecated (signal_class))
{
if (forwidget)
glade_signal_set_support_warning (signal, SIGNAL_DEPRECATED_MSG);
@@ -2535,7 +2562,7 @@ glade_project_verify_signals (GladeWidget *widget,
const gchar *path_name,
GString *string,
gboolean forwidget,
- gboolean saving)
+ GladeVerifyFlags flags)
{
GladeSignal *signal;
GList *signals, *list;
@@ -2546,7 +2573,7 @@ glade_project_verify_signals (GladeWidget *widget,
{
signal = list->data;
glade_project_verify_signal_internal (widget, signal, path_name,
- string, forwidget, saving);
+ string, forwidget, flags);
}
g_list_free (signals);
}
@@ -2581,7 +2608,7 @@ glade_project_verify_properties (GladeWidget *widget)
static gboolean
glade_project_verify_dialog (GladeProject *project,
GString *string,
- gboolean saving)
+ gboolean saving)
{
GtkWidget *swindow;
GtkWidget *textview;
@@ -2618,7 +2645,7 @@ glade_project_verify_dialog (GladeProject *project,
static gboolean
-glade_project_verify (GladeProject *project, gboolean saving)
+glade_project_verify (GladeProject *project, gboolean saving, GladeVerifyFlags flags)
{
GString *string = g_string_new (NULL);
GList *list;
@@ -2628,13 +2655,13 @@ glade_project_verify (GladeProject *project, gboolean saving)
{
GladeWidget *widget = glade_widget_get_from_gobject (list->data);
- if (GLADE_IS_OBJECT_STUB (list->data))
+ if ((flags & GLADE_VERIFY_UNRECOGNIZED) != 0 &&
+ GLADE_IS_OBJECT_STUB (list->data))
{
gchar *type;
g_object_get (list->data, "object-type", &type, NULL);
- /* translators: refers to an unknown object named '%s' of type '%s' */
- g_string_append_printf (string, _("Unknown object %s with type %s\n"),
+ g_string_append_printf (string, _("Object %s has unrecognized type %s\n"),
glade_widget_get_name (widget), type);
g_free (type);
}
@@ -2643,9 +2670,9 @@ glade_project_verify (GladeProject *project, gboolean saving)
gchar *path_name = glade_widget_generate_path_name (widget);
glade_project_verify_adaptor (project, glade_widget_get_adaptor (widget),
- path_name, string, saving, FALSE, NULL);
- glade_project_verify_properties_internal (widget, path_name, string, FALSE, saving);
- glade_project_verify_signals (widget, path_name, string, FALSE, saving);
+ path_name, string, flags, FALSE, NULL);
+ glade_project_verify_properties_internal (widget, path_name, string, FALSE, flags);
+ glade_project_verify_signals (widget, path_name, string, FALSE, flags);
g_free (path_name);
}
@@ -2682,7 +2709,7 @@ glade_project_verify_adaptor (GladeProject *project,
GladeWidgetAdaptor *adaptor,
const gchar *path_name,
GString *string,
- gboolean saving,
+ GladeVerifyFlags flags,
gboolean forwidget,
GladeSupportMask *mask)
{
@@ -2701,7 +2728,8 @@ glade_project_verify_adaptor (GladeProject *project,
/* Only one versioning message (builder or otherwise)...
*/
- if (!GWA_VERSION_CHECK (adaptor_iter, target_major, target_minor))
+ if ((flags & GLADE_VERIFY_VERSIONS) != 0 &&
+ !GWA_VERSION_CHECK (adaptor_iter, target_major, target_minor))
{
if (forwidget)
g_string_append_printf (string,
@@ -2722,7 +2750,8 @@ glade_project_verify_adaptor (GladeProject *project,
support_mask |= GLADE_SUPPORT_MISMATCH;
}
- if (!saving && GWA_DEPRECATED (adaptor_iter))
+ if ((flags & GLADE_VERIFY_DEPRECATIONS) != 0 &&
+ GWA_DEPRECATED (adaptor_iter))
{
if (forwidget)
{
@@ -4034,7 +4063,10 @@ target_button_clicked (GtkWidget *widget, GladeProject *project)
static void
verify_clicked (GtkWidget *button, GladeProject *project)
{
- if (glade_project_verify (project, FALSE))
+ if (glade_project_verify (project, FALSE,
+ GLADE_VERIFY_VERSIONS |
+ GLADE_VERIFY_DEPRECATIONS |
+ GLADE_VERIFY_UNRECOGNIZED))
{
gchar *name = glade_project_get_name (project);
glade_util_ui_message (glade_app_get_window (),
diff --git a/gladeui/glade-project.h b/gladeui/glade-project.h
index 0d90bb5..e11b425 100644
--- a/gladeui/glade-project.h
+++ b/gladeui/glade-project.h
@@ -70,6 +70,19 @@ typedef enum
GLADE_PROJECT_MODEL_N_COLUMNS
} GladeProjectModelColumns;
+/**
+ * GladeVerifyFlags:
+ * @GLADE_VERIFY_VERSIONS: Verify version mismatches
+ * @GLADE_VERIFY_DEPRECATIONS: Verify deprecations
+ * @GLADE_VERIFY_UNRECOGNIZED: Verify unrecognized types
+ *
+ */
+typedef enum {
+ GLADE_VERIFY_VERSIONS,
+ GLADE_VERIFY_DEPRECATIONS,
+ GLADE_VERIFY_UNRECOGNIZED
+} GladeVerifyFlags;
+
struct _GladeProject
{
GObject parent_instance;
@@ -125,6 +138,10 @@ gboolean glade_project_load_from_file (GladeProject *proj
gboolean glade_project_save (GladeProject *project,
const gchar *path,
GError **error);
+gboolean glade_project_save_verify (GladeProject *project,
+ const gchar *path,
+ GladeVerifyFlags flags,
+ GError **error);
gboolean glade_project_autosave (GladeProject *project,
GError **error);
gboolean glade_project_backup (GladeProject *project,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]