[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20466 - gnunet-gtk/src/gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20466 - gnunet-gtk/src/gns |
Date: |
Mon, 12 Mar 2012 18:38:42 +0100 |
Author: wachs
Date: 2012-03-12 18:38:42 +0100 (Mon, 12 Mar 2012)
New Revision: 20466
Modified:
gnunet-gtk/src/gns/gnunet-gns-gtk.c
Log:
- open dialog
Modified: gnunet-gtk/src/gns/gnunet-gns-gtk.c
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-12 16:18:05 UTC (rev 20465)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-12 17:38:42 UTC (rev 20466)
@@ -56,7 +56,13 @@
*/
static char *zone_as_string;
+/**
+ * Default directory of zone files as a string.
+ */
+static char *zonefile_directory;
+GtkWidget *main_window;
+
/**
* Get cfg.
*/
@@ -124,7 +130,7 @@
}
/**
- * The user selected 'NEW' in the menu. Open a dialog to select
+ * The user selected 'OPEN' in the menu. Open a dialog to select
* a different zonefile (for editing).
*
* @param checkmenuitem the menu item
@@ -134,7 +140,45 @@
GNUNET_GNS_GTK_open_imagemenuitem_activate_cb (GtkMenuItem *menuitem,
gpointer user_data)
{
- GNUNET_break (0); // FIXME, not implemented
+ GtkWidget *dialog;
+ dialog = gtk_file_chooser_dialog_new ("Open zone file...",
+ main_window,
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ NULL);
+ if (NULL != zonefile_directory)
+ gtk_file_chooser_set_current_folder (dialog, zonefile_directory);
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+ {
+ char *filename;
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ _("Opening `%s'\n"), filename);
+ if (NULL != zone_pkey)
+ {
+ GNUNET_CRYPTO_rsa_key_free(zone_pkey);
+ zone_pkey = GNUNET_CRYPTO_rsa_key_create_from_file(filename);
+ if (NULL == zone_pkey)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Not a valid zone file `%s'\n"), filename);
+
+ GtkWidget *err_dialog;
+ err_dialog = gtk_message_dialog_new (main_window,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ _("Error loading file '%s':\n not a
valid zone file"),
+ filename);
+ gtk_dialog_run (GTK_DIALOG (err_dialog));
+ gtk_widget_destroy (err_dialog);
+ }
+ //if (zone_pkey = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);)
+ }
+ g_free (filename);
+ }
+ gtk_widget_destroy (dialog);
}
@@ -175,6 +219,11 @@
GNUNET_CRYPTO_rsa_key_free (zone_pkey);
zone_pkey = NULL;
}
+ if (NULL != zonefile_directory)
+ {
+ GNUNET_free (zonefile_directory);
+ zonefile_directory = NULL;
+ }
}
@@ -223,12 +272,23 @@
run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pub;
- GtkWidget *main_window;
+
char *keyfile;
char *label;
ml = cls;
if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (get_configuration
(),
+ "namestore",
+
"ZONEFILE_DIRECTORY",
+
&zonefile_directory))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Option `%s' missing in section `%s'\n"),
+ "ZONEFILE_DIRECTORY", "namestore");
+ return;
+ }
+
+ if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (get_configuration
(),
"gns",
"ZONEKEY",
&keyfile))
@@ -276,7 +336,7 @@
GNUNET_GTK_setup_nls ();
/* setup main window */
main_window = GTK_WIDGET (get_object ("GNUNET_GNS_GTK_main_window"));
- gtk_window_maximize (GTK_WINDOW (main_window));
+ //gtk_window_maximize (GTK_WINDOW (main_window));
GNUNET_GTK_tray_icon_create (GTK_WINDOW (main_window),
"gnunet-gtk" /* FIXME: different icon? */ ,
"gnunet-gns-gtk");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20466 - gnunet-gtk/src/gns,
gnunet <=