[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11967 - in gnunet-gtk: contrib src
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11967 - in gnunet-gtk: contrib src |
Date: |
Sun, 27 Jun 2010 12:02:50 +0200 |
Author: grothoff
Date: 2010-06-27 12:02:50 +0200 (Sun, 27 Jun 2010)
New Revision: 11967
Added:
gnunet-gtk/contrib/open_url_dialog.glade
Modified:
gnunet-gtk/contrib/Makefile.am
gnunet-gtk/contrib/Makefile.in
gnunet-gtk/contrib/main-window.glade
gnunet-gtk/src/download.c
gnunet-gtk/src/download.h
gnunet-gtk/src/fs_event_handler.c
gnunet-gtk/src/main_window_file_download.c
gnunet-gtk/src/main_window_open_directory.c
Log:
adding open-URI support, works for search, download URIs need more work
Modified: gnunet-gtk/contrib/Makefile.am
===================================================================
--- gnunet-gtk/contrib/Makefile.am 2010-06-26 17:17:07 UTC (rev 11966)
+++ gnunet-gtk/contrib/Makefile.am 2010-06-27 10:02:50 UTC (rev 11967)
@@ -13,6 +13,7 @@
main_tab_new_frame.glade \
main-window.glade \
open_directory_dialog.glade \
+ open_url_dialog.glade \
publish_dialog.glade \
publish-directory-dialog.glade \
publish_edit_dialog.glade \
Modified: gnunet-gtk/contrib/Makefile.in
===================================================================
--- gnunet-gtk/contrib/Makefile.in 2010-06-26 17:17:07 UTC (rev 11966)
+++ gnunet-gtk/contrib/Makefile.in 2010-06-27 10:02:50 UTC (rev 11967)
@@ -264,6 +264,7 @@
main_tab_new_frame.glade \
main-window.glade \
open_directory_dialog.glade \
+ open_url_dialog.glade \
publish_dialog.glade \
publish-directory-dialog.glade \
publish_edit_dialog.glade \
Modified: gnunet-gtk/contrib/main-window.glade
===================================================================
--- gnunet-gtk/contrib/main-window.glade 2010-06-26 17:17:07 UTC (rev
11966)
+++ gnunet-gtk/contrib/main-window.glade 2010-06-27 10:02:50 UTC (rev
11967)
@@ -2,26 +2,34 @@
<interface>
<requires lib="gtk+" version="2.20"/>
<!-- interface-naming-policy project-wide -->
- <object class="GtkImage" id="image5">
- <property name="visible">True</property>
- <property name="stock">gtk-go-down</property>
+ <object class="GtkListStore" id="GNUNET_GTK_peer_info_list_store">
+ <columns>
+ <!-- column-name peer_identity -->
+ <column type="gchararray"/>
+ <!-- column-name trust -->
+ <column type="guint"/>
+ <!-- column-name number_of_known_addresses -->
+ <column type="guint"/>
+ <!-- column-name country_name -->
+ <column type="gchararray"/>
+ <!-- column-name country_flag -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name bandwidth -->
+ <column type="guint64"/>
+ </columns>
</object>
- <object class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="stock">gtk-find</property>
+ <object class="GtkListStore" id="GNUNET_GTK_meta_data_list_store">
+ <columns>
+ <!-- column-name extractor_meta_type -->
+ <column type="guint"/>
+ <!-- column-name extractor_meta_format -->
+ <column type="guint"/>
+ <!-- column-name extractor_meta_type_string -->
+ <column type="gchararray"/>
+ <!-- column-name extracotr_meta_value -->
+ <column type="gchararray"/>
+ </columns>
</object>
- <object class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-open</property>
- </object>
- <object class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="stock">gtk-new</property>
- </object>
- <object class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-go-up</property>
- </object>
<object class="GtkWindow" id="GNUNET_GTK_main_window">
<property name="title" translatable="yes">gnunet-gtk</property>
<property name="window_position">center</property>
@@ -47,7 +55,6 @@
<child>
<object class="GtkImageMenuItem"
id="GNUNET_GTK_main_menu_file_create_pseudonym">
<property name="label" translatable="yes">_Create
pseudonym</property>
- <property name="visible">True</property>
<property name="tooltip_text"
translatable="yes">Create a pseudonym for publishing content. Note that you
can also publish content anonymously (without using a pseudonym).</property>
<property name="use_action_appearance">False</property>
<property name="accel_path"><gnunet-gtk>/File
sharing/Create pseudonym</property>
@@ -351,7 +358,6 @@
</child>
<child>
<object class="GtkNotebook"
id="GNUNET_GTK_statistics_notebook">
- <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="scrollable">True</property>
</object>
@@ -465,32 +471,24 @@
</object>
</child>
</object>
- <object class="GtkListStore" id="GNUNET_GTK_meta_data_list_store">
- <columns>
- <!-- column-name extractor_meta_type -->
- <column type="guint"/>
- <!-- column-name extractor_meta_format -->
- <column type="guint"/>
- <!-- column-name extractor_meta_type_string -->
- <column type="gchararray"/>
- <!-- column-name extracotr_meta_value -->
- <column type="gchararray"/>
- </columns>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="stock">gtk-go-up</property>
</object>
- <object class="GtkListStore" id="GNUNET_GTK_peer_info_list_store">
- <columns>
- <!-- column-name peer_identity -->
- <column type="gchararray"/>
- <!-- column-name trust -->
- <column type="guint"/>
- <!-- column-name number_of_known_addresses -->
- <column type="guint"/>
- <!-- column-name country_name -->
- <column type="gchararray"/>
- <!-- column-name country_flag -->
- <column type="GdkPixbuf"/>
- <!-- column-name bandwidth -->
- <column type="guint64"/>
- </columns>
+ <object class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="stock">gtk-new</property>
</object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-open</property>
+ </object>
+ <object class="GtkImage" id="image4">
+ <property name="visible">True</property>
+ <property name="stock">gtk-find</property>
+ </object>
+ <object class="GtkImage" id="image5">
+ <property name="visible">True</property>
+ <property name="stock">gtk-go-down</property>
+ </object>
</interface>
Added: gnunet-gtk/contrib/open_url_dialog.glade
===================================================================
--- gnunet-gtk/contrib/open_url_dialog.glade (rev 0)
+++ gnunet-gtk/contrib/open_url_dialog.glade 2010-06-27 10:02:50 UTC (rev
11967)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.20"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkDialog" id="GNUNET_GTK_open_url_dialog">
+ <property name="width_request">500</property>
+ <property name="height_request">350</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Download from URI</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="icon_name">dialog-password</property>
+ <property name="type_hint">dialog</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="GNUNET_GTK_open_url_dialog_main_vbox">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkHBox" id="GNUNET_GTK_open_url_dialog_query_hbox">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkLabel"
id="GNUNET_GTK_open_url_dialog_url_label">
+ <property name="visible">True</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_entry</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry"
id="GNUNET_GTK_open_url_dialog_url_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="activates_default">True</property>
+ <property name="caps_lock_warning">False</property>
+ <property
name="primary_icon_stock">gtk-dialog-authentication</property>
+ <property name="primary_icon_tooltip_text"
translatable="yes">Separate multiple keywords with spaces, prefix mandatory
keywords with "+"</property>
+ <signal name="changed"
handler="GNUNET_GTK_open_url_dialog_url_entry_changed_cb" swapped="no"/>
+ <signal name="activate"
handler="GNUNET_GTK_search_dialog_search_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <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="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_spin_button</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton"
id="GNUNET_GTK_open_url_dialog_anonymity_spin_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="caps_lock_warning">False</property>
+ <property
name="adjustment">GNUNET_GTK_open_url_anonymity_adjustment</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value-changed"
handler="GNUNET_GTK_anonymity_spin_button_value_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox"
id="GNUNET_GTK_open_url_dialog_action_area">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton"
id="GNUNET_GTK_open_url_dialog_cancel_button">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton"
id="GNUNET_GTK_open_url_dialog_execute_button">
+ <property name="label">_Execute</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="use_action_appearance">False</property>
+ <property name="image">execute_stock_image</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget
response="-6">GNUNET_GTK_open_url_dialog_cancel_button</action-widget>
+ <action-widget
response="-5">GNUNET_GTK_open_url_dialog_execute_button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkAdjustment" id="GNUNET_GTK_open_url_anonymity_adjustment">
+ <property name="upper">100000</property>
+ <property name="value">1</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkImage" id="execute_stock_image">
+ <property name="visible">True</property>
+ <property name="stock">gtk-execute</property>
+ </object>
+</interface>
Modified: gnunet-gtk/src/download.c
===================================================================
--- gnunet-gtk/src/download.c 2010-06-26 17:17:07 UTC (rev 11966)
+++ gnunet-gtk/src/download.c 2010-06-27 10:02:50 UTC (rev 11967)
@@ -88,15 +88,31 @@
len = GNUNET_FS_uri_chk_get_file_size (dc->uri);
gtk_widget_destroy (ad);
g_object_unref (G_OBJECT (builder));
- GNUNET_FS_download_start_from_search (fs,
- dc->sr,
- dc->filename,
- NULL /* tempname */,
- 0 /* offset */,
- len,
- anonymity,
- opt,
- dc);
+ if (dc->sr != NULL)
+ GNUNET_break (NULL !=
+ GNUNET_FS_download_start_from_search (fs,
+ dc->sr,
+ dc->filename,
+ NULL /* tempname */,
+ 0 /* offset */,
+ len,
+ anonymity,
+ opt,
+ dc));
+ else
+ GNUNET_break (NULL !=
+ GNUNET_FS_download_start (fs,
+ dc->uri,
+ NULL,
+ dc->filename,
+ NULL /* tempname */,
+ 0 /* offset */,
+ len,
+ anonymity,
+ opt,
+ dc,
+ NULL));
+
}
/* end of download.c */
Modified: gnunet-gtk/src/download.h
===================================================================
--- gnunet-gtk/src/download.h 2010-06-26 17:17:07 UTC (rev 11966)
+++ gnunet-gtk/src/download.h 2010-06-27 10:02:50 UTC (rev 11967)
@@ -63,6 +63,10 @@
*/
int is_recursive;
+ /**
+ * Desired (default) anonymity level.
+ */
+ int anonymity;
};
Modified: gnunet-gtk/src/fs_event_handler.c
===================================================================
--- gnunet-gtk/src/fs_event_handler.c 2010-06-26 17:17:07 UTC (rev 11966)
+++ gnunet-gtk/src/fs_event_handler.c 2010-06-27 10:02:50 UTC (rev 11967)
@@ -259,9 +259,10 @@
}
else
{
- /* find or create tab with just download results and
+ /* FIXME: find or create tab with just download results and
create new entry! */
GNUNET_break (0);
+ return de;
}
path = gtk_tree_row_reference_get_path (de->rr);
if (TRUE != gtk_tree_model_get_iter (GTK_TREE_MODEL (de->ts),
@@ -318,6 +319,7 @@
dlc->filename = GNUNET_FS_meta_data_suggest_filename (meta);
dlc->rr = gtk_tree_row_reference_new (tm, path);
dlc->sr = sr->result;
+ dlc->anonymity = 1; /* FIXME: grab from search? */
GNUNET_GTK_open_download_as_dialog (dlc);
}
@@ -1115,6 +1117,8 @@
GNUNET_YES);
break;
case GNUNET_FS_STATUS_SEARCH_START:
+ fprintf (stderr,
+ "Search started!\n");
if (info->value.search.pctx != NULL)
{
GNUNET_break (0);
Modified: gnunet-gtk/src/main_window_file_download.c
===================================================================
--- gnunet-gtk/src/main_window_file_download.c 2010-06-26 17:17:07 UTC (rev
11966)
+++ gnunet-gtk/src/main_window_file_download.c 2010-06-27 10:02:50 UTC (rev
11967)
@@ -23,16 +23,108 @@
* @author Christian Grothoff
*/
#include "common.h"
+#include "download.h"
+
+static GtkBuilder *builder;
+
+void
+GNUNET_GTK_open_url_dialog_url_entry_changed_cb (GtkEditable *editable,
+ gpointer user_data)
+{
+ struct GNUNET_FS_Uri *uri;
+ char *perr;
+ const char *uris;
+
+ 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);
+}
+
+
/**
- * Thumbnail view is toggled.
+ * User selected "Open URI" in main window.
*/
void
GNUNET_GTK_main_menu_file_download_uri_activate_cb (GtkWidget * dummy,
gpointer data)
{
- /* not implemented */
+ GtkWidget *ad;
+ const char *uris;
+ uint32_t anonymity;
+ struct GNUNET_FS_Uri *uri;
+ char *perr;
+ struct DownloadContext *dc;
+
+ GNUNET_assert (builder == NULL);
+ builder = GNUNET_GTK_get_new_builder ("open_url_dialog.glade");
+ if (builder == NULL)
+ {
+ GNUNET_break (0);
+ 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;
+ if (uri == NULL)
+ {
+ GNUNET_free (perr);
+ /* Why was "execute" button sensitive!? */
+ GNUNET_break (0);
+ return;
+ }
+ if (GNUNET_FS_uri_test_sks (uri) ||
+ GNUNET_FS_uri_test_ksk (uri))
+ {
+ fprintf (stderr,
+ "Starting search!\n");
+ GNUNET_break (NULL !=
+ GNUNET_FS_search_start (GNUNET_GTK_get_fs_handle (),
+ uri,
+ anonymity,
+ 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))
+ {
+ dc = GNUNET_malloc (sizeof (struct DownloadContext));
+ dc->uri = uri;
+ dc->anonymity = anonymity;
+ GNUNET_GTK_open_download_as_dialog (dc);
+ return;
+ }
GNUNET_break (0);
+ GNUNET_FS_uri_destroy (uri);
}
/* end of main_window_file_download.c */
Modified: gnunet-gtk/src/main_window_open_directory.c
===================================================================
--- gnunet-gtk/src/main_window_open_directory.c 2010-06-26 17:17:07 UTC (rev
11966)
+++ gnunet-gtk/src/main_window_open_directory.c 2010-06-27 10:02:50 UTC (rev
11967)
@@ -25,14 +25,37 @@
#include "common.h"
/**
- * Thumbnail view is toggled.
+ * User selected "Open directory" in menu. Display dialog, open
+ * file and then display a new tab with its contents.
*/
void
GNUNET_GTK_main_menu_file_open_gnunet_directory_activate_cb (GtkWidget *
dummy,
gpointer data)
{
- /* not implemented */
+ GtkWidget *ad;
+ GtkBuilder *builder;
+ char *filename;
+
+ builder = GNUNET_GTK_get_new_builder ("open_directory_dialog.glade");
+ if (builder == NULL)
+ {
+ GNUNET_break (0);
+ return;
+ }
+ ad = GTK_WIDGET (gtk_builder_get_object (builder,
+ "GNUNET_GTK_open_directory_dialog"));
+ if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad)))
+ {
+ gtk_widget_destroy (ad);
+ g_object_unref (G_OBJECT (builder));
+ return;
+ }
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(ad));
+ gtk_widget_destroy (ad);
+ g_object_unref (G_OBJECT (builder));
+
GNUNET_break (0);
+ g_free (filename);
}
/* end of main_window_open_directory.c */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11967 - in gnunet-gtk: contrib src,
gnunet <=