/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2009 Free Software Foundation
+ Copyright (C) 2009, 2010 Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <gtk/gtkmain.h>
#include <stdlib.h>
+#include <xalloc.h>
#include <gettext.h>
#define _(msgid) gettext (msgid)
name = g_value_get_string (&def);
}
- candidate_name = strdup (name);
+ candidate_name = xstrdup (name);
while ( psppire_window_register_lookup (reg, candidate_name))
{
candidate_name = uniquify (name, &x);
}
- window->basename = g_path_get_basename (candidate_name);
+ window->basename = g_filename_display_basename (candidate_name);
g_value_unset (&def);
}
}
-static gboolean
-on_configure (GtkWidget *window, GdkEventConfigure *event, gpointer data)
-{
- const gchar *base = G_OBJECT_TYPE_NAME (window);
-
- PsppireConf *conf = psppire_conf_new ();
-
- psppire_conf_save_window_geometry (conf, base, event);
-
- return FALSE;
-}
-
-
static void
psppire_window_finalize (GObject *object)
{
static void
insert_menuitem_into_menu (PsppireWindow *window, gpointer key)
{
- GtkWidget *item = gtk_check_menu_item_new_with_label (key);
+ gchar *filename = g_filename_display_name (key);
+ GtkWidget *item = gtk_check_menu_item_new_with_label (filename);
+
+ g_free (filename);
g_signal_connect (item, "toggled", G_CALLBACK (menu_toggled), NULL);
g_signal_connect (item, "activate", G_CALLBACK (menu_activate), key);
{
PsppireWindowRegister *reg = psppire_window_register_new ();
+ const gchar *base = G_OBJECT_TYPE_NAME (w);
+
+ PsppireConf *conf = psppire_conf_new ();
+
+ psppire_conf_save_window_geometry (conf, base, GTK_WINDOW (w));
+
+
if ( w->dirty )
{
gint response = psppire_window_query_save (w);
switch (response)
{
+ default:
case GTK_RESPONSE_CANCEL:
return TRUE;
break;
psppire_window_save (w);
break;
case GTK_RESPONSE_REJECT:
- default:
break;
}
}
{
window->name = NULL;
window->menu = NULL;
+ window->description = xstrdup ("");
window->menuitem_table = g_hash_table_new (g_str_hash, g_str_equal);
g_object_set (window, "icon-name", "psppicon", NULL);
- g_signal_connect (window, "configure-event",
- G_CALLBACK (on_configure), window);
-
g_signal_connect (window, "realize",
G_CALLBACK (on_realize), window);
gint
psppire_window_query_save (PsppireWindow *se)
{
+ gchar *fn;
gint response;
GtkWidget *dialog;
GtkWidget *cancel_button;
g_return_val_if_fail (filename != NULL, GTK_RESPONSE_NONE);
+ fn = g_filename_display_basename (filename);
+
dialog =
gtk_message_dialog_new (GTK_WINDOW (se),
GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING,
GTK_BUTTONS_NONE,
_("Save the changes to \"%s\" before closing?"),
- filename);
+ fn);
+ g_free (fn);
g_object_set (dialog, "icon-name", "psppicon", NULL);
if ( ok )
{
+ psppire_window_set_filename (w, file);
add_most_recent (file, the_recent_mgr);
w->dirty = FALSE;
}