[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r3869 - in gnunet-gtk: . src/plugins/fs
From: |
grothoff |
Subject: |
[GNUnet-SVN] r3869 - in gnunet-gtk: . src/plugins/fs |
Date: |
Sun, 3 Dec 2006 14:02:08 -0800 (PST) |
Author: grothoff
Date: 2006-12-03 14:02:03 -0800 (Sun, 03 Dec 2006)
New Revision: 3869
Modified:
gnunet-gtk/ChangeLog
gnunet-gtk/TODO
gnunet-gtk/configure.ac
gnunet-gtk/gnunet-gtk.glade
gnunet-gtk/src/plugins/fs/meta.c
gnunet-gtk/src/plugins/fs/meta.h
gnunet-gtk/src/plugins/fs/upload.c
Log:
removing of metadata and more button enabling/disabling code
Modified: gnunet-gtk/ChangeLog
===================================================================
--- gnunet-gtk/ChangeLog 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/ChangeLog 2006-12-03 22:02:03 UTC (rev 3869)
@@ -5,7 +5,9 @@
Completed downloads are marked using a green
background. When manually entering a path
for uploads, switch between recursive and
- file-only is now automatic.
+ file-only is now automatic. It is now possible
+ to remove keywords and metadata in the upload
+ dialog.
Wed Nov 15 23:17:36 MST 2006
Updated to GNUnet 0.7.1pre0 APIs. Disabled
Modified: gnunet-gtk/TODO
===================================================================
--- gnunet-gtk/TODO 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/TODO 2006-12-03 22:02:03 UTC (rev 3869)
@@ -1,6 +1,5 @@
0.7.1:
-- allow deletion of keywords and metadata [pre1]
-
+- fix addition of previews for uploads [pre2]
- create directory from known file IDs [ medium ] [pre2]
in Assemble Directory's Files Available/Selected
+ have sortability
@@ -29,6 +28,10 @@
* clean, short namespace search URIs
- fix custom gtk logger (via memory logger?)
- show content of current collection
+- color-coding of pending/completion of search results
+ should be made persistent (currently reverts to white
+ when gnunet-gtk is stopped and restarted); also need
+ to add color for results previously downloaded
0.7.3:
- pop-up dialogs / context menus (show extra information,
Modified: gnunet-gtk/configure.ac
===================================================================
--- gnunet-gtk/configure.ac 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/configure.ac 2006-12-03 22:02:03 UTC (rev 3869)
@@ -20,8 +20,8 @@
# Process this file with autoconf to produce a configure script.
#
AC_PREREQ(2.57)
-AC_INIT([gnunet-gtk],[0.7.1pre0],address@hidden)
-AM_INIT_AUTOMAKE([gnunet-gtk], [0.7.1pre0])
+AC_INIT([gnunet-gtk],[0.7.1pre1],address@hidden)
+AM_INIT_AUTOMAKE([gnunet-gtk], [0.7.1pre1])
AM_CONFIG_HEADER(config.h)
AH_TOP([#define _GNU_SOURCE 1])
Modified: gnunet-gtk/gnunet-gtk.glade
===================================================================
--- gnunet-gtk/gnunet-gtk.glade 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/gnunet-gtk.glade 2006-12-03 22:02:03 UTC (rev 3869)
@@ -3832,6 +3832,7 @@
<atkproperty name="AtkObject::accessible_description"
translatable="yes">Enter the value for the meta-data of the specified type here.
Press ENTER to add the data.</atkproperty>
</accessibility>
+ <signal name="changed"
handler="on_metaDataDialogValueEntry_changed_" last_modification_time="Sun, 03
Dec 2006 22:18:00 GMT"/>
<accelerator key="Return" modifiers="0" signal="activate"/>
</widget>
<packing>
@@ -3844,6 +3845,7 @@
<child>
<widget class="GtkButton" id="metaDataDialogMetaDataAddButton">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Add the given
description to the meta-data describing the uploaded file.</property>
<property name="can_focus">True</property>
<property name="label">gtk-add</property>
@@ -3858,6 +3860,25 @@
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkButton" id="metaDataDialogMetaDataRemoveButton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="tooltip" translatable="yes">Remove the selected
descriptions from the meta-data describing the uploaded file.</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked"
handler="on_metaDataDialogMetaDataRemoveButton_clicked_"
last_modification_time="Sun, 03 Dec 2006 22:03:32 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -3974,6 +3995,7 @@
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
+ <signal name="changed"
handler="on_fileInformationKeywordEntry_changed_" last_modification_time="Sun,
03 Dec 2006 22:20:08 GMT"/>
<accelerator key="Return" modifiers="0" signal="activate"/>
</widget>
<packing>
@@ -3986,6 +4008,7 @@
<child>
<widget class="GtkButton" id="metaDataDialogKeywordAddButton">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="tooltip" translatable="yes">Add the specified
keyword to the list of keywords under which the file or directory will be
found.</property>
<property name="can_focus">True</property>
<property name="label">gtk-add</property>
@@ -4000,6 +4023,25 @@
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkButton" id="metaDataDialogKeywordRemoveButton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="tooltip" translatable="yes">Remove the selected
keywords from the list of keywords under which the file or directory will be
found.</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked"
handler="on_metaDataDialogKeywordRemoveButton_clicked_"
last_modification_time="Sun, 03 Dec 2006 22:02:02 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
Modified: gnunet-gtk/src/plugins/fs/meta.c
===================================================================
--- gnunet-gtk/src/plugins/fs/meta.c 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/src/plugins/fs/meta.c 2006-12-03 22:02:03 UTC (rev 3869)
@@ -56,7 +56,7 @@
const char * name,
const char * previewName,
const struct ECRS_MetaData * init) {
- GtkWidget * metaList;
+ GtkTreeView * metaList;
GtkListStore * metamodel;
GtkCellRenderer * renderer;
GtkWidget * preview;
@@ -73,47 +73,39 @@
G_TYPE_INT,
G_TYPE_STRING,
G_TYPE_STRING);
- metaList = glade_xml_get_widget(xml,
- name);
+ metaList = GTK_TREE_VIEW(glade_xml_get_widget(xml,
+ name));
+ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(metaList),
+ GTK_SELECTION_MULTIPLE);
renderer = gtk_cell_renderer_text_new();
- col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
- -1,
- _("Category"),
- renderer,
- "text", META_STYPE,
- NULL);
- column = gtk_tree_view_get_column(GTK_TREE_VIEW(metaList),
+ col = gtk_tree_view_insert_column_with_attributes(metaList,
+ -1,
+ _("Category"),
+ renderer,
+ "text", META_STYPE,
+ NULL);
+ column = gtk_tree_view_get_column(metaList,
col - 1);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_clickable(column, TRUE);
gtk_tree_view_column_set_reorderable(column, TRUE);
gtk_tree_view_column_set_sort_column_id(column, META_STYPE);
- /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
-
-
gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(metaList),
- col - 1),
- TRUE);
renderer = gtk_cell_renderer_text_new();
- col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
- -1,
- _("Value"),
- renderer,
- "text", META_VALUE,
- NULL);
- column = gtk_tree_view_get_column(GTK_TREE_VIEW(metaList),
+ col = gtk_tree_view_insert_column_with_attributes(metaList,
+ -1,
+ _("Value"),
+ renderer,
+ "text", META_VALUE,
+ NULL);
+ column = gtk_tree_view_get_column(metaList,
col - 1);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_clickable(column, TRUE);
gtk_tree_view_column_set_reorderable(column, TRUE);
gtk_tree_view_column_set_sort_column_id(column, META_VALUE);
- /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
-
gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(metaList),
- col - 1),
- TRUE);
- gtk_tree_view_set_model(GTK_TREE_VIEW(metaList),
+ gtk_tree_view_set_model(metaList,
GTK_TREE_MODEL(metamodel));
-
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(metaList)),
- GTK_SELECTION_MULTIPLE);
+
if (init != NULL)
ECRS_getMetaData(init,
&publishMetaData,
@@ -168,7 +160,7 @@
void createKeywordListTreeView(GladeXML * xml,
const char * name,
const struct ECRS_URI * init) {
- GtkWidget * keywordList;
+ GtkTreeView * keywordList;
GtkListStore * keymodel;
GtkCellRenderer * renderer;
GtkTreeViewColumn * column;
@@ -177,26 +169,25 @@
keymodel
= gtk_list_store_new(1,
G_TYPE_STRING);
- keywordList = glade_xml_get_widget(xml,
- name);
+ keywordList = GTK_TREE_VIEW(glade_xml_get_widget(xml,
+ name));
+ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(keywordList),
+ GTK_SELECTION_MULTIPLE);
renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(keywordList),
+ gtk_tree_view_insert_column_with_attributes(keywordList,
-1,
_("Keyword"),
renderer,
"text", 0,
NULL);
- column = gtk_tree_view_get_column(GTK_TREE_VIEW(keywordList),
+ column = gtk_tree_view_get_column(keywordList,
0);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_clickable(column, TRUE);
gtk_tree_view_column_set_reorderable(column, TRUE);
gtk_tree_view_column_set_sort_column_id(column, 0);
- /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
- gtk_tree_view_set_model(GTK_TREE_VIEW(keywordList),
+ gtk_tree_view_set_model(keywordList,
GTK_TREE_MODEL(keymodel));
-
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(keywordList)),
- GTK_SELECTION_MULTIPLE);
if (init != NULL)
ECRS_getKeywordsFromUri(init,
&publishKeyword,
@@ -322,6 +313,26 @@
DEBUG_END();
}
+static void removeRow(GtkTreeModel * model,
+ GtkTreePath * path,
+ GtkTreeIter * iter,
+ gpointer unused) {
+ gtk_list_store_remove(GTK_LIST_STORE(model),
+ iter);
+}
+
+void handleListRemove(GladeXML * xml,
+ const char * listName) {
+ GtkWidget * list;
+
+ list = glade_xml_get_widget(xml,
+ listName);
+ ggc_tree_selection_selected_foreach
+ (gtk_tree_view_get_selection(GTK_TREE_VIEW(list)),
+ &removeRow,
+ NULL);
+}
+
struct ECRS_MetaData * getMetaDataFromList(GladeXML * xml,
const char * name,
const char * previewName) {
@@ -587,7 +598,7 @@
const char * widgetName) {
GtkBin * line;
GtkEntry * entry;
-
+
line = GTK_BIN(glade_xml_get_widget(xml,
widgetName));
entry = GTK_ENTRY(gtk_bin_get_child(line));
Modified: gnunet-gtk/src/plugins/fs/meta.h
===================================================================
--- gnunet-gtk/src/plugins/fs/meta.h 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/src/plugins/fs/meta.h 2006-12-03 22:02:03 UTC (rev 3869)
@@ -51,6 +51,9 @@
const char * valueInputLineName,
const char * metaDataListName);
+void handleListRemove(GladeXML * xml,
+ const char * listName);
+
struct ECRS_MetaData *
getMetaDataFromList(GladeXML * xml,
const char * name,
Modified: gnunet-gtk/src/plugins/fs/upload.c
===================================================================
--- gnunet-gtk/src/plugins/fs/upload.c 2006-12-03 21:11:19 UTC (rev 3868)
+++ gnunet-gtk/src/plugins/fs/upload.c 2006-12-03 22:02:03 UTC (rev 3869)
@@ -214,20 +214,108 @@
}
void on_metaDataDialogKeywordAddButton_clicked_fs(gpointer dummy,
- GtkWidget * uploadButton) {
+ GtkWidget * button) {
handleKeywordListUpdate(metaXML,
"fileInformationKeywordEntry",
"metaDataDialogKeywordList");
}
void on_metaDataDialogMetaDataAddButton_clicked_fs(gpointer dummy,
- GtkWidget * uploadButton) {
+ GtkWidget * button) {
handleMetaDataListUpdate(metaXML,
"metaDataDialogMetaTypeComboBox",
"metaDataDialogValueEntry",
"metaDataDialogMetaDataList");
}
+void on_metaDataDialogKeywordRemoveButton_clicked_fs(gpointer dummy,
+ GtkWidget * button) {
+ handleListRemove(metaXML,
+ "metaDataDialogKeywordList");
+}
+
+void on_metaDataDialogMetaDataRemoveButton_clicked_fs(gpointer dummy,
+ GtkWidget * button) {
+ handleListRemove(metaXML,
+ "metaDataDialogMetaDataList");
+}
+
+/**
+ * The selection of the keyword list changed.
+ * Update button status.
+ */
+static void on_keyword_list_selection_changed(gpointer signal,
+ gpointer cls) {
+ GtkTreeSelection * selection;
+ GtkWidget * button;
+
+ selection =
gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(metaXML,
+
"metaDataDialogKeywordList")));
+ button
+ = glade_xml_get_widget(metaXML,
+ "metaDataDialogKeywordRemoveButton");
+ gtk_widget_set_sensitive(button,
+ gtk_tree_selection_count_selected_rows(selection) >
0);
+}
+
+/**
+ * The selection of the metadata list changed.
+ * Update button status.
+ */
+static void on_metadata_list_selection_changed(gpointer signal,
+ gpointer cls) {
+ GtkTreeSelection * selection;
+ GtkWidget * button;
+
+ selection =
gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(metaXML,
+
"metaDataDialogMetaDataList")));
+ button
+ = glade_xml_get_widget(metaXML,
+ "metaDataDialogMetaDataRemoveButton");
+ gtk_widget_set_sensitive(button,
+ gtk_tree_selection_count_selected_rows(selection) >
0);
+}
+
+/**
+ * The user has edited the metadata entry.
+ * Update add button status.
+ */
+void on_metaDataDialogValueEntry_changed_fs(gpointer dummy2,
+ GtkWidget * searchEntry) {
+ const char * input;
+ GtkWidget * button;
+
+ input = gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(metaXML,
+
"metaDataDialogValueEntry")));
+ if (input == NULL)
+ return;
+ button
+ = glade_xml_get_widget(metaXML,
+ "metaDataDialogMetaDataAddButton");
+ gtk_widget_set_sensitive(button,
+ strlen(input) > 0);
+}
+
+/**
+ * The user has edited the keyword entry.
+ * Update add button status.
+ */
+void on_fileInformationKeywordEntry_changed_fs(gpointer dummy2,
+ GtkWidget * searchEntry) {
+ const char * input;
+ GtkWidget * button;
+
+ input = gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(metaXML,
+
"fileInformationKeywordEntry")));
+ if (input == NULL)
+ return;
+ button
+ = glade_xml_get_widget(metaXML,
+ "metaDataDialogKeywordAddButton");
+ gtk_widget_set_sensitive(button,
+ strlen(input) > 0);
+}
+
void on_fsinsertuploadbutton_clicked_fs(gpointer dummy,
GtkWidget * uploadButton) {
const char * filenamerest;
@@ -286,6 +374,26 @@
ECRS_freeUri(keywordURI);
createMetaTypeComboBox(metaXML,
"metaDataDialogMetaTypeComboBox");
+
+
+
g_signal_connect_data(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(metaXML,
+
"metaDataDialogKeywordList"))),
+ "changed",
+ G_CALLBACK(&on_keyword_list_selection_changed),
+ NULL,
+ NULL,
+ 0);
+
g_signal_connect_data(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(metaXML,
+
"metaDataDialogMetaDataList"))),
+ "changed",
+ G_CALLBACK(&on_metadata_list_selection_changed),
+ NULL,
+ NULL,
+ 0);
+
+
+
+
gtk_dialog_set_default_response(GTK_DIALOG(dialog),
GTK_RESPONSE_OK);
if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r3869 - in gnunet-gtk: . src/plugins/fs,
grothoff <=