[glade] Revert "Make GladeProject change gtk target to 3.0 and warn the user if there are"
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] Revert "Make GladeProject change gtk target to 3.0 and warn the user if there are"
- Date: Wed, 21 Sep 2011 14:27:43 +0000 (UTC)
commit 5f7a5f2a4e00820fc41442bb28ff864a9a0034ee
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date: Wed Sep 21 11:26:24 2011 -0300
Revert "Make GladeProject change gtk target to 3.0 and warn the user if there are"
This reverts commit 49d6fdb33f95334ee8b741f92476efe24c02ef0b.
ChangeLog | 16 ---
gladeui/Makefile.am | 2 -
gladeui/glade-object-stub.c | 224 ---------------------------------
gladeui/glade-object-stub.h | 57 ---------
gladeui/glade-project.c | 287 ++++++++++---------------------------------
gladeui/glade-utils.c | 17 +--
gladeui/glade-widget.c | 28 +----
gladeui/glade-xml-utils.c | 11 --
gladeui/glade-xml-utils.h | 1 -
9 files changed, 77 insertions(+), 566 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 7f58f19..c100d92 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,19 +1,3 @@
-2011-09-19 Juan Pablo Ugarte <juanpablougarte gmail com>
-
- * gladeui/glade-object-stub.[ch]: Added new object type used to remember
- unknown objects in xml files.
-
- * gladeui/glade-utils.c: made glade_util_ui_message () accept markup strings.
-
- * gladeui/glade-xml-utils.[ch]: added new function glade_xml_node_copy()
-
- * gladeui/glade-widget.c:
- o glade_widget_read() create object stub if class is unknown.
- o glade_widget_write() used saved xml to dump stub objects.
-
- * glade/gladeui/glade-project.c: make GladeProject remember unknown catalogs
- to avoid loosing requirements when loading/saving a file with unknown objects.
-
2011-09-19 Ignacio Casal Quinteiro <icq gnome org>
* configure.ac, plugins/python/glade-python.c:
diff --git a/gladeui/Makefile.am b/gladeui/Makefile.am
index 5e35469..5860d03 100644
--- a/gladeui/Makefile.am
+++ b/gladeui/Makefile.am
@@ -49,7 +49,6 @@ EXTRA_DIST = glade-marshallers.list gladeui.rc.in icon-naming-spec.c glade-previ
# The glade core library
libgladeui_2_la_SOURCES = \
glade-debug.c \
- glade-object-stub.c \
glade-xml-utils.c \
glade-catalog.c \
glade-widget-adaptor.c \
@@ -145,7 +144,6 @@ libgladeuiinclude_HEADERS = \
noinst_HEADERS = \
glade-marshallers.h \
glade-design-layout.h \
- glade-object-stub.h \
glade-popup.h \
glade-accumulators.h \
glade-design-private.h \
diff --git a/gladeui/glade-project.c b/gladeui/glade-project.c
index 51dfccb..79605a1 100644
--- a/gladeui/glade-project.c
+++ b/gladeui/glade-project.c
@@ -50,7 +50,7 @@
#include "glade-project.h"
#include "glade-command.h"
#include "glade-name-context.h"
-#include "glade-object-stub.h"
+
#define VALID_ITER(project, iter) ((iter)!= NULL && G_IS_OBJECT ((iter)->user_data) && ((GladeProject*)(project))->priv->stamp == (iter)->stamp)
@@ -131,8 +131,6 @@ struct _GladeProjectPrivate
* (full or relative path, null means project directory).
*/
- GList *unknown_catalogs; /* List of CatalogInfo catalogs */
-
/* Control on the properties dialog to update buttons etc when properties change */
GtkWidget *prefs_dialog;
GtkWidget *project_wide_radio;
@@ -166,11 +164,11 @@ struct _GladeProjectPrivate
guint pointer_mode : 2; /* The currently effective GladePointerMode */
};
-typedef struct
+typedef struct
{
- gchar *catalog;
- gint position;
-} CatalogInfo;
+ gchar *stock;
+ gchar *filename;
+} StockFilePair;
GType
glade_pointer_mode_get_type (void)
@@ -288,30 +286,29 @@ static void
glade_project_dispose (GObject *object)
{
GladeProject *project = GLADE_PROJECT (object);
- GladeProjectPrivate *priv = project->priv;
GList *list, *tree;
/* Emit close signal */
g_signal_emit (object, glade_project_signals[CLOSE], 0);
/* Destroy running previews */
- if (priv->previews)
+ if (project->priv->previews)
{
- g_hash_table_destroy (priv->previews);
- priv->previews = NULL;
+ g_hash_table_destroy (project->priv->previews);
+ project->priv->previews = NULL;
}
- if (priv->selection_changed_id > 0)
- priv->selection_changed_id =
- (g_source_remove (priv->selection_changed_id), 0);
+ if (project->priv->selection_changed_id > 0)
+ project->priv->selection_changed_id =
+ (g_source_remove (project->priv->selection_changed_id), 0);
glade_project_selection_clear (project, TRUE);
- glade_project_list_unref (priv->undo_stack);
- priv->undo_stack = NULL;
+ glade_project_list_unref (project->priv->undo_stack);
+ project->priv->undo_stack = NULL;
/* Remove objects from the project */
- tree = g_list_copy (priv->tree);
+ tree = g_list_copy (project->priv->tree);
for (list = tree; list; list = list->next)
{
GladeWidget *gwidget = glade_widget_get_from_gobject (list->data);
@@ -320,29 +317,14 @@ glade_project_dispose (GObject *object)
}
g_list_free (tree);
- while (priv->tree)
- glade_project_remove_object (project, priv->tree->data);
-
- while (priv->objects)
- glade_project_remove_object (project, priv->objects->data);
+ while (project->priv->tree)
+ glade_project_remove_object (project, project->priv->tree->data);
- g_assert (priv->tree == NULL);
- g_assert (priv->objects == NULL);
+ while (project->priv->objects)
+ glade_project_remove_object (project, project->priv->objects->data);
- if (priv->unknown_catalogs)
- {
- GList *l;
-
- for (l = priv->unknown_catalogs; l; l = g_list_next (l))
- {
- CatalogInfo *data = l->data;
- g_free (data->catalog);
- g_free (data);
- }
-
- g_list_free (priv->unknown_catalogs);
- priv->unknown_catalogs = NULL;
- }
+ g_assert (project->priv->tree == NULL);
+ g_assert (project->priv->objects == NULL);
G_OBJECT_CLASS (glade_project_parent_class)->dispose (object);
}
@@ -733,7 +715,6 @@ glade_project_init (GladeProject *project)
priv->prev_redo_item = NULL;
priv->first_modification = NULL;
priv->first_modification_is_na = FALSE;
- priv->unknown_catalogs = NULL;
priv->previews = g_hash_table_new_full (g_str_hash,
g_str_equal,
@@ -1123,7 +1104,6 @@ glade_project_read_requires (GladeProject *project,
gchar *required_lib = NULL;
gboolean loadable = TRUE;
guint16 major, minor;
- gint position = 0;
for (node = glade_xml_node_get_children_with_comments (root_node);
node; node = glade_xml_node_next_with_comments (node))
@@ -1151,17 +1131,6 @@ glade_project_read_requires (GladeProject *project,
*/
if (!glade_catalog_is_loaded (required_lib))
{
- CatalogInfo *data = g_new0(CatalogInfo, 1);
-
- data->catalog = required_lib;
- data->position = position;
-
- /* Keep a list of unknown catalogs to avoid loosing the requirement */
- project->priv->unknown_catalogs = g_list_append (project->priv->unknown_catalogs,
- data);
- /* Also keep the version */
- glade_project_set_target_version (project, required_lib, major, minor);
-
if (!loadable)
g_string_append (string, ", ");
@@ -1175,10 +1144,9 @@ glade_project_read_requires (GladeProject *project,
glade_project_set_target_version
(project, required_lib, major, minor);
- g_free (required_lib);
}
- position++;
+ g_free (required_lib);
}
if (!loadable)
@@ -1465,94 +1433,9 @@ glade_project_push_progress (GladeProject *project)
project->priv->progress_full, project->priv->progress_step);
}
-
-/* translators: reffers to project name '%s' that targets gtk version '%d.%d' */
-#define PROJECT_TARGET_DIALOG_TITLE_FMT _("%s targets Gtk+ %d.%d")
-
-static void
-glade_project_check_target_version (GladeProject *project)
-{
- GladeProjectPrivate *priv;
- GHashTable *unknown_classes;
- gint unknown_objects;
- gint major, minor;
- GtkWidget *dialog;
- GString *text;
- GList *l;
-
- glade_project_get_target_version (project, "gtk+", &major, &minor);
-
- /* Glade >= 3.10 only targets Gtk 3 */
- if (major >= 3) return;
-
- priv = project->priv;
- unknown_classes = g_hash_table_new (g_str_hash, g_str_equal);
- unknown_objects = 0;
-
- for (l = priv->objects; l; l = g_list_next (l))
- {
- if (GLADE_IS_OBJECT_STUB (l->data))
- {
- gchar *type;
- g_object_get (l->data, "object-type", &type, NULL);
- g_hash_table_insert (unknown_classes, type, NULL);
- unknown_objects++;
- }
- }
-
- if (unknown_objects)
- {
- GList *classes = g_hash_table_get_keys (unknown_classes);
-
- if (unknown_objects == 1)
- {
- text = g_string_new (_("Specially because there is an object that can not be build with type "));
- }
- else
- {
- text = g_string_new ("");
- g_string_printf (text, _("Specially because there are %d objects that can not be build with types "),
- unknown_objects);
- }
-
- for (l = classes; l; l = g_list_next (l))
- {
- if (g_list_previous (l))
- g_string_append (text, (g_list_next (l)) ? ", " : _(" and "));
-
- g_string_append (text, l->data);
- }
-
- g_list_free (classes);
- }
- else
- text = NULL;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (glade_app_get_window ()),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
- PROJECT_TARGET_DIALOG_TITLE_FMT,
- glade_project_get_name (project),
- major, minor);
-
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
- _("But this version of Glade is for GTK+ 3 only.\n"
- "Make sure you can run this project with Glade 3.8 with no deprecated widgets first.\n"
- "%s"), (text) ? text->str : "");
-
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
-
- glade_project_set_target_version (project, "gtk+", 3, 0);
-
- g_hash_table_destroy (unknown_classes);
- if (text) g_string_free (text, TRUE);
-}
-
static gboolean
glade_project_load_internal (GladeProject *project)
{
- GladeProjectPrivate *priv = project->priv;
GladeXmlContext *context;
GladeXmlDoc *doc;
GladeXmlNode *root;
@@ -1561,20 +1444,20 @@ glade_project_load_internal (GladeProject *project)
gboolean has_gtk_dep = FALSE;
gint count;
- priv->selection = NULL;
- priv->objects = NULL;
- priv->loading = TRUE;
+ project->priv->selection = NULL;
+ project->priv->objects = NULL;
+ project->priv->loading = TRUE;
/* get the context & root node of the catalog file */
if (!(context =
- glade_xml_context_new_from_path (priv->path, NULL, NULL)))
+ glade_xml_context_new_from_path (project->priv->path, NULL, NULL)))
{
- g_warning ("Couldn't open glade file [%s].", priv->path);
- priv->loading = FALSE;
+ g_warning ("Couldn't open glade file [%s].", project->priv->path);
+ project->priv->loading = FALSE;
return FALSE;
}
- priv->mtime = glade_util_get_file_mtime (priv->path, NULL);
+ project->priv->mtime = glade_util_get_file_mtime (project->priv->path, NULL);
doc = glade_xml_context_get_doc (context);
root = glade_xml_doc_get_root (doc);
@@ -1582,9 +1465,9 @@ glade_project_load_internal (GladeProject *project)
if (!glade_xml_node_verify_silent (root, GLADE_XML_TAG_PROJECT))
{
g_warning ("Couldnt recognize GtkBuilder xml, skipping %s",
- priv->path);
+ project->priv->path);
glade_xml_context_free (context);
- priv->loading = FALSE;
+ project->priv->loading = FALSE;
return FALSE;
}
@@ -1594,18 +1477,21 @@ glade_project_load_internal (GladeProject *project)
/* XXX Need to load project->priv->comment ! */
glade_project_read_comment (project, doc);
- /* Read requieres, and do not abort load if there are missing catalog since
- * GladeObjectStub is created to keep the original xml for unknown object classes
- */
- glade_project_read_requires (project, root, priv->path, &has_gtk_dep);
+ if (glade_project_read_requires
+ (project, root, project->priv->path, &has_gtk_dep) == FALSE)
+ {
+ project->priv->loading = FALSE;
+ glade_xml_context_free (context);
+ return FALSE;
+ }
glade_project_read_resource_path (project, root);
/* Launch a dialog if it's going to take enough time to be
* worth showing at all */
count = glade_project_count_xml_objects (project, root, 0);
- priv->progress_full = count;
- priv->progress_step = 0;
+ project->priv->progress_full = count;
+ project->priv->progress_step = 0;
for (node = glade_xml_node_get_children (root);
node; node = glade_xml_node_next (node))
@@ -1617,23 +1503,23 @@ glade_project_load_internal (GladeProject *project)
if ((widget = glade_widget_read (project, NULL, node, NULL)) != NULL)
glade_project_add_object (project, glade_widget_get_object (widget));
- if (priv->load_cancel)
+ if (project->priv->load_cancel)
break;
}
/* Finished with the xml context */
glade_xml_context_free (context);
- if (priv->load_cancel)
+ if (project->priv->load_cancel)
{
- priv->loading = FALSE;
+ project->priv->loading = FALSE;
return FALSE;
}
if (!has_gtk_dep)
glade_project_introspect_gtk_version (project);
- if (glade_util_file_is_writeable (priv->path) == FALSE)
+ if (glade_util_file_is_writeable (project->priv->path) == FALSE)
glade_project_set_readonly (project, TRUE);
/* Now we have to loop over all the object properties
@@ -1644,8 +1530,8 @@ glade_project_load_internal (GladeProject *project)
/* Reset project status here too so that you get a clean
* slate after calling glade_project_open().
*/
- priv->modified = FALSE;
- priv->loading = FALSE;
+ project->priv->modified = FALSE;
+ project->priv->loading = FALSE;
/* Emit "parse-finished" signal */
g_signal_emit (project, glade_project_signals[PARSE_FINISHED], 0);
@@ -1654,8 +1540,6 @@ glade_project_load_internal (GladeProject *project)
*/
glade_project_verify_project_for_ui (project);
- glade_project_check_target_version (project);
-
return TRUE;
}
@@ -2337,35 +2221,24 @@ static gboolean
glade_project_verify (GladeProject *project, gboolean saving)
{
GString *string = g_string_new (NULL);
+ GladeWidget *widget;
GList *list;
gboolean ret = TRUE;
-
+ gchar *path_name;
+
for (list = project->priv->objects; list; list = list->next)
{
- GladeWidget *widget = glade_widget_get_from_gobject (list->data);
-
- if (GLADE_IS_OBJECT_STUB (list->data))
- {
- gchar *type;
- g_object_get (list->data, "object-type", &type, NULL);
-
- /* translators: reffers to an unknow object named '%s' of type '%s' */
- g_string_append_printf (string, _("Unknow object %s with type %s\n"),
- glade_widget_get_name (widget), type);
- g_free (type);
- }
- else
- {
- gchar *path_name = glade_widget_generate_path_name (widget);
+ widget = glade_widget_get_from_gobject (list->data);
- 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);
- glade_project_verify_signals (widget, path_name, string, FALSE);
+ path_name = glade_widget_generate_path_name (widget);
- g_free (path_name);
- }
+ 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);
+ glade_project_verify_signals (widget, path_name, string, FALSE);
+
+ g_free (path_name);
}
if (string->len > 0)
@@ -3375,16 +3248,7 @@ glade_project_required_libs (GladeProject *project)
if (!required)
required = g_list_prepend (required, g_strdup ("gtk+"));
- required = g_list_reverse (required);
-
- for (l = project->priv->unknown_catalogs; l; l = g_list_next (l))
- {
- CatalogInfo *data = l->data;
- /* Keep position to make sure we do not create a diff when saving */
- required = g_list_insert (required, g_strdup (data->catalog), data->position);
- }
-
- return required;
+ return g_list_reverse (required);
}
/**
@@ -4687,8 +4551,8 @@ gtk_tree_model_iface_init (GtkTreeModelIface *iface)
void
glade_project_copy_selection (GladeProject *project)
{
- GList *widgets = NULL, *list;
- gboolean has_unknown = FALSE;
+ GList *widgets = NULL, *list;
+ GladeWidget *widget;
g_return_if_fail (GLADE_IS_PROJECT (project));
@@ -4704,19 +4568,12 @@ glade_project_copy_selection (GladeProject *project)
for (list = project->priv->selection; list && list->data; list = list->next)
{
- if (GLADE_IS_OBJECT_STUB (list->data))
- has_unknown = TRUE;
- else
- {
- GladeWidget *widget = glade_widget_get_from_gobject (list->data);
- widgets = g_list_prepend (widgets, glade_widget_dup (widget, FALSE));
- }
+ widget = glade_widget_get_from_gobject (list->data);
+ widget = glade_widget_dup (widget, FALSE);
+
+ widgets = g_list_prepend (widgets, widget);
}
- if (has_unknown)
- glade_util_ui_message (glade_app_get_window (),
- GLADE_UI_INFO, NULL, _("Unknown widgets ignored."));
-
glade_clipboard_add (glade_app_get_clipboard (), widgets);
g_list_free (widgets);
}
@@ -4725,7 +4582,7 @@ void
glade_project_command_cut (GladeProject *project)
{
GList *widgets = NULL, *list;
- gboolean has_unknown = FALSE;
+ GladeWidget *widget;
gboolean failed = FALSE;
g_return_if_fail (GLADE_IS_PROJECT (project));
@@ -4735,20 +4592,12 @@ glade_project_command_cut (GladeProject *project)
for (list = project->priv->selection; list && list->data; list = list->next)
{
- if (GLADE_IS_OBJECT_STUB (list->data))
- has_unknown = TRUE;
- else
- {
- GladeWidget *widget = glade_widget_get_from_gobject (list->data);
- widgets = g_list_prepend (widgets, widget);
- }
+ widget = glade_widget_get_from_gobject (list->data);
+ widgets = g_list_prepend (widgets, widget);
}
-
+
if (failed == FALSE && widgets != NULL)
glade_command_cut (widgets);
- else if (has_unknown)
- glade_util_ui_message (glade_app_get_window (),
- GLADE_UI_INFO, NULL, _("Unknown widgets ignored."));
else if (widgets == NULL)
glade_util_ui_message (glade_app_get_window (),
GLADE_UI_INFO, NULL, _("No widget selected."));
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index 140854d..358c5e6 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -249,18 +249,15 @@ glade_util_ui_message (GtkWidget * parent,
dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
GTK_DIALOG_DESTROY_WITH_PARENT,
- message_type, buttons_type, NULL);
-
- gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), string);
+ message_type, buttons_type, "%s", string);
+
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
if (widget)
- {
- gtk_box_pack_end (GTK_BOX
- (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
- widget, TRUE, TRUE, 2);
- gtk_widget_show (widget);
- }
-
+ gtk_box_pack_end (GTK_BOX
+ (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+ widget, TRUE, TRUE, 2);
+
response = gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
diff --git a/gladeui/glade-widget.c b/gladeui/glade-widget.c
index 1130d3f..b28b94c 100644
--- a/gladeui/glade-widget.c
+++ b/gladeui/glade-widget.c
@@ -56,7 +56,7 @@
#include "glade-design-view.h"
#include "glade-widget-action.h"
#include "glade-signal-model.h"
-#include "glade-object-stub.h"
+
static void glade_widget_set_adaptor (GladeWidget * widget,
GladeWidgetAdaptor * adaptor);
@@ -3779,22 +3779,7 @@ glade_widget_read (GladeProject * project,
}
glade_widget_adaptor_read_widget (adaptor, widget, node);
- }
- else
- {
- GObject *stub = g_object_new (GLADE_TYPE_OBJECT_STUB,
- "object-type", klass,
- "xml-node", node,
- NULL);
-
- widget = glade_widget_adaptor_create_widget (glade_widget_adaptor_get_by_type (GTK_TYPE_WIDGET),
- FALSE,
- "parent", parent,
- "project", project,
- "reason", GLADE_CREATE_LOAD,
- "object", stub,
- "name", id,
- NULL);
+
}
g_free (id);
}
@@ -3918,18 +3903,9 @@ void
glade_widget_write (GladeWidget * widget,
GladeXmlContext * context, GladeXmlNode * node)
{
- GObject *object = glade_widget_get_object (widget);
GladeXmlNode *widget_node;
GList *l, *list;
- /* Check if its an unknown object, and use saved xml if so */
- if (GLADE_IS_OBJECT_STUB (object))
- {
- g_object_get (object, "xml-node", &widget_node, NULL);
- glade_xml_node_append_child (node, widget_node);
- return;
- }
-
widget_node = glade_xml_node_new (context, GLADE_XML_TAG_WIDGET);
glade_xml_node_append_child (node, widget_node);
diff --git a/gladeui/glade-xml-utils.c b/gladeui/glade-xml-utils.c
index 29fb2ae..558adcd 100644
--- a/gladeui/glade-xml-utils.c
+++ b/gladeui/glade-xml-utils.c
@@ -750,17 +750,6 @@ glade_xml_node_new_comment (GladeXmlContext * context, const gchar * comment)
BAD_CAST (comment));
}
-GladeXmlNode *
-glade_xml_node_copy (GladeXmlNode *node)
-{
- if (node)
- {
- xmlNodePtr xnode = (xmlNodePtr) node;
- return (GladeXmlNode *) xmlDocCopyNode (xnode, NULL, 1);
- }
- else
- return NULL;
-}
void
glade_xml_node_delete (GladeXmlNode * node)
diff --git a/gladeui/glade-xml-utils.h b/gladeui/glade-xml-utils.h
index c7b116f..c07da74 100644
--- a/gladeui/glade-xml-utils.h
+++ b/gladeui/glade-xml-utils.h
@@ -219,7 +219,6 @@ void glade_xml_node_set_property_boolean (GladeXmlNode *node_in, const gchar *na
/* Node operations */
GladeXmlNode * glade_xml_node_new (GladeXmlContext *context, const gchar *name);
GladeXmlNode * glade_xml_node_new_comment (GladeXmlContext *context, const gchar *comment);
-GladeXmlNode * glade_xml_node_copy (GladeXmlNode *node);
void glade_xml_node_delete (GladeXmlNode *node);
GladeXmlNode * glade_xml_node_get_children (GladeXmlNode *node);
GladeXmlNode * glade_xml_node_get_parent (GladeXmlNode *node_in);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]