gnunet-svn
[Top][All Lists]
Advanced

[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) {





reply via email to

[Prev in Thread] Current Thread [Next in Thread]