From 6ebabce7b50702ef8f49653f8d6d2bcde424c027 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sat, 2 Feb 2013 05:34:31 +0000 Subject: Move the GUI-independent window geometry stuff to ui/recent.c, so we only have one copy. svn path=/trunk/; revision=47440 --- ui/qt/qt_ui_utils.cpp | 128 -------------------------------------------------- 1 file changed, 128 deletions(-) (limited to 'ui/qt/qt_ui_utils.cpp') diff --git a/ui/qt/qt_ui_utils.cpp b/ui/qt/qt_ui_utils.cpp index 5a5677cb1a..b41f9a2c07 100644 --- a/ui/qt/qt_ui_utils.cpp +++ b/ui/qt/qt_ui_utils.cpp @@ -31,134 +31,6 @@ #include -// XXX - Copied from ui/gtk/gui_utils.c - -#define WINDOW_GEOM_KEY "window_geom" - -/* load the geometry values for a window from previously saved values */ -static gboolean window_geom_load(const gchar *name, window_geometry_t *geom); - -/* the geometry hashtable for all known window classes, - * the window name is the key, and the geometry struct is the value */ -static GHashTable *window_geom_hash = NULL; - -/* save the window and it's current geometry into the geometry hashtable */ -static void -window_geom_save(const gchar *name, window_geometry_t *geom) -{ - gchar *key; - window_geometry_t *work; - - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new (g_str_hash, g_str_equal); - } - /* if we have an old one, remove and free it first */ - work = (window_geometry_t *) g_hash_table_lookup(window_geom_hash, name); - if(work) { - g_hash_table_remove(window_geom_hash, name); - g_free(work->key); - g_free(work); - } - - /* g_malloc and insert the new one */ - work = (window_geometry_t *) g_malloc(sizeof(*geom)); - *work = *geom; - key = g_strdup(name); - work->key = key; - g_hash_table_insert(window_geom_hash, key, work); -} - - -/* load the desired geometry for this window from the geometry hashtable */ -static gboolean -window_geom_load(const gchar *name, window_geometry_t *geom) -{ - window_geometry_t *p; - - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new (g_str_hash, g_str_equal); - } - - p = (window_geometry_t *) g_hash_table_lookup(window_geom_hash, name); - if(p) { - *geom = *p; - return TRUE; - } else { - return FALSE; - } -} - - -/* read in a single key value pair from the recent file into the geometry hashtable */ -extern "C" void -window_geom_recent_read_pair(const char *name, const char *key, const char *value) -{ - window_geometry_t geom; - - - /* find window geometry maybe already in hashtable */ - if(!window_geom_load(name, &geom)) { - /* not in table, init geom with "basic" values */ - geom.key = NULL; /* Will be set in window_geom_save () */ - geom.set_pos = FALSE; - geom.x = -1; - geom.y = -1; - geom.set_size = FALSE; - geom.width = -1; - geom.height = -1; - - geom.set_maximized = FALSE;/* this is valid in GTK2 only */ - geom.maximized = FALSE; /* this is valid in GTK2 only */ - } - - if (strcmp(key, "x") == 0) { - geom.x = strtol(value, NULL, 10); - geom.set_pos = TRUE; - } else if (strcmp(key, "y") == 0) { - geom.y = strtol(value, NULL, 10); - geom.set_pos = TRUE; - } else if (strcmp(key, "width") == 0) { - geom.width = strtol(value, NULL, 10); - geom.set_size = TRUE; - } else if (strcmp(key, "height") == 0) { - geom.height = strtol(value, NULL, 10); - geom.set_size = TRUE; - } else if (strcmp(key, "maximized") == 0) { - if (g_ascii_strcasecmp(value, "true") == 0) { - geom.maximized = TRUE; - } - else { - geom.maximized = FALSE; - } - geom.set_maximized = TRUE; - } else { - /* - * Silently ignore the bogus key. We shouldn't abort here, - * as this could be due to a corrupt recent file. - * - * XXX - should we print a message about this? - */ - return; - } - - /* save / replace geometry in hashtable */ - window_geom_save(name, &geom); -} - -/* write all geometry values of all windows from the hashtable to the recent file */ -extern "C" void -window_geom_recent_write_all(gpointer rf) -{ - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new (g_str_hash, g_str_equal); - } - - g_hash_table_foreach(window_geom_hash, write_recent_geom, rf); -} - /* Make the format_size_flags_e enum usable in C++ */ format_size_flags_e operator|(format_size_flags_e lhs, format_size_flags_e rhs) { return (format_size_flags_e) ((int)lhs| (int)rhs); -- cgit v1.2.3