[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18669 - in gnunet-gtk: contrib src/fs src/lib
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18669 - in gnunet-gtk: contrib src/fs src/lib |
Date: |
Sun, 18 Dec 2011 11:46:48 +0100 |
Author: grothoff
Date: 2011-12-18 11:46:48 +0100 (Sun, 18 Dec 2011)
New Revision: 18669
Modified:
gnunet-gtk/contrib/gnunet_fs_gtk_main_window.glade
gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_download.c
gnunet-gtk/src/fs/gnunet-fs-gtk.c
gnunet-gtk/src/fs/gnunet-fs-gtk.h
gnunet-gtk/src/lib/about.c
Log:
LRN: Make download-by-uri dialogue-less
Modified: gnunet-gtk/contrib/gnunet_fs_gtk_main_window.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_fs_gtk_main_window.glade 2011-12-18 10:20:01 UTC
(rev 18668)
+++ gnunet-gtk/contrib/gnunet_fs_gtk_main_window.glade 2011-12-18 10:46:48 UTC
(rev 18669)
@@ -677,6 +677,189 @@
<column type="gchararray"/>
</columns>
</object>
+ <object class="GtkTextBuffer"
id="GNUNET_GTK_open_url_dialog_url_textview_buffer">
+ <signal name="changed"
handler="GNUNET_GTK_open_url_dialog_url_textview_buffer_changed_cb"
swapped="no"/>
+ </object>
+ <object class="GtkWindow" id="GNUNET_GTK_open_url_window">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Enter the URI to be
downloaded</property>
+ <property name="modal">True</property>
+ <property name="default_width">640</property>
+ <property name="default_height">240</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="deletable">False</property>
+ <property name="transient_for">GNUNET_GTK_main_window</property>
+ <child>
+ <object class="GtkVBox" id="GNUNET_GTK_open_url_dialog_main_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkHBox" id="GNUNET_GTK_open_url_dialog_query_hbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel"
id="GNUNET_GTK_open_url_dialog_url_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_URI:</property>
+ <property name="use_underline">True</property>
+ <property name="selectable">True</property>
+ <property
name="mnemonic_widget">GNUNET_GTK_open_url_dialog_url_textview</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkTextView"
id="GNUNET_GTK_open_url_dialog_url_textview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_KEY_PRESS_MASK |
GDK_STRUCTURE_MASK</property>
+ <property name="wrap_mode">char</property>
+ <property name="indent">20</property>
+ <property
name="buffer">GNUNET_GTK_open_url_dialog_url_textview_buffer</property>
+ <property name="accepts_tab">False</property>
+ <signal name="key-press-event"
handler="GNUNET_GTK_open_url_dialog_url_textview_key_press_event_cb"
swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label_item">
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel"
id="GNUNET_GTK_open_url_dialog_anonymity_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">_Anonymity:</property>
+ <property name="use_underline">True</property>
+ <property name="selectable">True</property>
+ <property
name="mnemonic_widget">GNUNET_GTK_open_url_dialog_anonymity_combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment"
id="GNUNET_GTK_open_url_dialog_anonymity_combobox_alignment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkComboBox"
id="GNUNET_GTK_open_url_dialog_anonymity_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property
name="model">main_window_search_anonymity_liststore</property>
+ <property name="active">1</property>
+ <child>
+ <object class="GtkCellRendererText"
id="GNUNET_GTK_open_url_dialog_anonymity_combobox_renderer"/>
+ <attributes>
+ <attribute name="foreground">2</attribute>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText"
id="GNUNET_GTK_open_url_dialog_anonymity_combobox_renerer_level"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkButton"
id="GNUNET_GTK_open_url_dialog_execute_button">
+ <property name="label">_Execute</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="image">execute_stock_image2</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="GNUNET_GTK_open_url_dialog_execute_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton"
id="GNUNET_GTK_open_url_dialog_cancel_button">
+ <property name="label">gtk-cancel</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <signal name="clicked"
handler="GNUNET_GTK_open_url_dialog_cancel_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">4</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
<object class="GtkListStore" id="GNUNET_GTK_peer_info_list_store">
<columns>
<!-- column-name peer_identity -->
@@ -715,6 +898,21 @@
<property name="page_increment">10</property>
<property name="page_size">10</property>
</object>
+ <object class="GtkImage" id="execute_stock_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-execute</property>
+ </object>
+ <object class="GtkImage" id="execute_stock_image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-execute</property>
+ </object>
+ <object class="GtkImage" id="execute_stock_image2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-execute</property>
+ </object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_download.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_download.c 2011-12-18
10:20:01 UTC (rev 18668)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_download.c 2011-12-18
10:46:48 UTC (rev 18669)
@@ -25,82 +25,66 @@
#include "gnunet-fs-gtk-common.h"
#include "gnunet-fs-gtk-download.h"
#include "gnunet-fs-gtk.h"
+#include <gdk/gdkkeysyms.h>
-static GtkBuilder *builder;
-
+/**
+ * User selected "Open URI" in main window.
+ */
void
-GNUNET_GTK_open_url_dialog_url_entry_changed_cb (GtkEditable * editable,
- gpointer user_data)
+GNUNET_GTK_main_menu_file_download_uri_activate_cb (GtkWidget * dummy,
+ gpointer user_data)
{
- struct GNUNET_FS_Uri *uri;
- char *perr;
- const char *uris;
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkTextBuffer *tb;
+ GtkTextIter ti_start, ti_end;
- perr = NULL;
- uris =
- gtk_entry_get_text (GTK_ENTRY
- (gtk_builder_get_object
- (builder, "GNUNET_GTK_open_url_dialog_url_entry")));
- if (uris != NULL)
- uri = GNUNET_FS_uri_parse (uris, &perr);
- else
- uri = NULL;
- gtk_widget_set_sensitive (GTK_WIDGET
- (gtk_builder_get_object
- (builder,
- "GNUNET_GTK_open_url_dialog_execute_button")),
- (uri == NULL) ? FALSE : TRUE);
- if (uri != NULL)
- GNUNET_FS_uri_destroy (uri);
- else
- GNUNET_free_non_null (perr);
+ builder = GTK_BUILDER (user_data);
+
+ dialog = GTK_WIDGET (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_window"));
+
+ tb = GTK_TEXT_BUFFER (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_dialog_url_textview_buffer"));
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_start, 0);
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_end, -1);
+ gtk_text_buffer_delete (tb, &ti_start, &ti_end);
+
+ /* TODO: queue the clipboard, maybe there's valid URI in there?
+ * If so, get it. */
+
+ gtk_widget_show (dialog);
}
-
-/**
- * User selected "Open URI" in main window.
- */
void
-GNUNET_GTK_main_menu_file_download_uri_activate_cb (GtkWidget * dummy,
- gpointer data)
+GNUNET_GTK_open_url_dialog_execute_button_clicked_cb (GtkButton *button,
+ gpointer user_data)
{
- GtkWidget *ad;
- const char *uris;
- uint32_t anonymity;
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkTextBuffer *tb;
+ GtkTextIter ti_start, ti_end;
+ guint anonymity_level;
+ char *perr;
+ char *uris;
struct GNUNET_FS_Uri *uri;
- char *perr;
- struct DownloadContext *dc;
- GNUNET_assert (builder == NULL);
- builder = GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_open_url_dialog.glade");
- if (builder == NULL)
- {
- GNUNET_break (0);
+ builder = GTK_BUILDER (user_data);
+
+ dialog = GTK_WIDGET (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_window"));
+
+ gtk_widget_hide (dialog);
+
+ tb = GTK_TEXT_BUFFER (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_dialog_url_textview_buffer"));
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_start, 0);
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_end, -1);
+
+ uris = gtk_text_buffer_get_text (tb, &ti_start, &ti_end, FALSE);
+
+ if (!GNUNET_GTK_get_selected_anonymity_level (builder,
+ "main_window_search_anonymity_combobox", &anonymity_level))
return;
- }
- ad = GTK_WIDGET (gtk_builder_get_object
- (builder, "GNUNET_GTK_open_url_dialog"));
- if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad)))
- {
- gtk_widget_destroy (ad);
- g_object_unref (G_OBJECT (builder));
- builder = NULL;
- fprintf (stderr, "Dialog closed!\n");
- return;
- }
- uris =
- gtk_entry_get_text (GTK_ENTRY
- (gtk_builder_get_object
- (builder, "GNUNET_GTK_open_url_dialog_url_entry")));
- anonymity =
- gtk_spin_button_get_value (GTK_SPIN_BUTTON
- (gtk_builder_get_object
- (builder,
-
"GNUNET_GTK_open_url_dialog_anonymity_spin_button")));
+
uri = GNUNET_FS_uri_parse (uris, &perr);
- gtk_widget_destroy (ad);
- g_object_unref (G_OBJECT (builder));
- builder = NULL;
+ g_free (uris);
if (uri == NULL)
{
GNUNET_free (perr);
@@ -113,16 +97,17 @@
fprintf (stderr, "Starting search!\n");
GNUNET_break (NULL !=
GNUNET_FS_search_start (GNUNET_FS_GTK_get_fs_handle (), uri,
- anonymity,
+ anonymity_level,
GNUNET_FS_SEARCH_OPTION_NONE, NULL));
GNUNET_FS_uri_destroy (uri);
return;
}
if (GNUNET_FS_uri_test_chk (uri) || GNUNET_FS_uri_test_loc (uri))
{
+ struct DownloadContext *dc;
dc = GNUNET_malloc (sizeof (struct DownloadContext));
dc->uri = uri;
- dc->anonymity = anonymity;
+ dc->anonymity = anonymity_level;
GNUNET_FS_GTK_open_download_as_dialog (dc);
return;
}
@@ -130,4 +115,69 @@
GNUNET_FS_uri_destroy (uri);
}
+void
+GNUNET_GTK_open_url_dialog_cancel_button_clicked_cb (GtkButton *button,
+ gpointer user_data)
+{
+ GtkBuilder *builder;
+ builder = GTK_BUILDER (user_data);
+
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_window")));
+ return;
+}
+
+gboolean
+GNUNET_GTK_open_url_dialog_url_textview_key_press_event_cb (GtkWidget *widget,
+ GdkEventKey *event, gpointer user_data)
+{
+ GtkBuilder *builder;
+ builder = GTK_BUILDER (user_data);
+
+ if (event->keyval == GDK_KEY_Return)
+ {
+ GtkWidget *execute = GTK_WIDGET (gtk_builder_get_object (builder,
+ "GNUNET_GTK_open_url_dialog_execute_button"));
+ if (gtk_widget_get_sensitive (execute))
+ GNUNET_GTK_open_url_dialog_execute_button_clicked_cb (
+ GTK_BUTTON (execute), user_data);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void
+GNUNET_GTK_open_url_dialog_url_textview_buffer_changed_cb (
+ GtkTextBuffer *textbuffer, gpointer user_data)
+{
+ struct GNUNET_FS_Uri *uri;
+ GtkTextBuffer *tb;
+ GtkTextIter ti_start, ti_end;
+ GtkBuilder *builder;
+ char *perr;
+ char *uris;
+
+ builder = GTK_BUILDER (user_data);
+
+ perr = NULL;
+ tb = GTK_TEXT_BUFFER (gtk_builder_get_object (builder,
"GNUNET_GTK_open_url_dialog_url_textview_buffer"));
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_start, 0);
+ gtk_text_buffer_get_iter_at_offset (tb, &ti_end, -1);
+
+ uris = gtk_text_buffer_get_text (tb, &ti_start, &ti_end, FALSE);
+ if (uris != NULL)
+ uri = GNUNET_FS_uri_parse (uris, &perr);
+ else
+ uri = NULL;
+ g_free (uris);
+ gtk_widget_set_sensitive (GTK_WIDGET
+ (gtk_builder_get_object
+ (builder,
+ "GNUNET_GTK_open_url_dialog_execute_button")),
+ (uri == NULL) ? FALSE : TRUE);
+ if (uri != NULL)
+ GNUNET_FS_uri_destroy (uri);
+ else
+ GNUNET_free_non_null (perr);
+}
+
/* end of gnunet-fs-gtk-main_window_file_download.c */
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk.c 2011-12-18 10:20:01 UTC (rev 18668)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk.c 2011-12-18 10:46:48 UTC (rev 18669)
@@ -240,15 +240,14 @@
}
gboolean
-get_selected_anonymity_level (GtkBuilder *builder, guint *p_level)
+GNUNET_GTK_get_selected_anonymity_level (GtkBuilder *builder, gchar
*combo_name, guint *p_level)
{
GtkComboBox *combo;
GtkTreeIter iter;
GtkTreeModel *model;
guint level;
- combo = GTK_COMBO_BOX(gtk_builder_get_object (builder,
- "main_window_search_anonymity_combobox"));
+ combo = GTK_COMBO_BOX(gtk_builder_get_object (builder, combo_name));
if (!combo)
return FALSE;
@@ -447,7 +446,8 @@
toggle_button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"main_window_search_namespace_dropdown_button"));
- if (!get_selected_anonymity_level (builder, &anonymity_level))
+ if (!GNUNET_GTK_get_selected_anonymity_level (builder,
+ "main_window_search_anonymity_combobox", &anonymity_level))
return;
mime_combo = GTK_COMBO_BOX (GNUNET_FS_GTK_get_main_window_object
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk.h
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk.h 2011-12-18 10:20:01 UTC (rev 18668)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk.h 2011-12-18 10:46:48 UTC (rev 18669)
@@ -63,6 +63,18 @@
GNUNET_FS_GTK_get_main_window_object (const char *name);
+/**
+ * Get the selected anonymity level.
+ *
+ * @param builder builder object for the window
+ * @param combo_name name of the combobox widget to get anonymity from
+ * @param p_level pointer to a guint to receive the level value
+ * @return TRUE on success, FALSE on error
+ */
+gboolean
+GNUNET_GTK_get_selected_anonymity_level (GtkBuilder *builder,
+ gchar *combo_name, guint *p_level);
+
#endif
/* end of gnunet-fs-gtk.h */
Modified: gnunet-gtk/src/lib/about.c
===================================================================
--- gnunet-gtk/src/lib/about.c 2011-12-18 10:20:01 UTC (rev 18668)
+++ gnunet-gtk/src/lib/about.c 2011-12-18 10:46:48 UTC (rev 18669)
@@ -121,11 +121,6 @@
ad = GTK_WIDGET (gtk_builder_get_object (builder, "about_window"));
g_object_set_data (G_OBJECT (ad), "gnunet-gtk-builder", builder);
gtk_widget_show (ad);
- /*
- gtk_dialog_run (GTK_DIALOG (ad));
- gtk_widget_destroy (ad);
- g_object_unref (G_OBJECT (builder));
- */
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18669 - in gnunet-gtk: contrib src/fs src/lib,
gnunet <=