gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r11819 - gnunet gnunet-gtk/contrib gnunet-gtk/src


From: gnunet
Subject: [GNUnet-SVN] r11819 - gnunet gnunet-gtk/contrib gnunet-gtk/src
Date: Sun, 20 Jun 2010 11:00:36 +0200

Author: grothoff
Date: 2010-06-20 11:00:36 +0200 (Sun, 20 Jun 2010)
New Revision: 11819

Modified:
   gnunet-gtk/contrib/publish_dialog.glade
   gnunet-gtk/contrib/publish_edit_dialog.glade
   gnunet-gtk/src/fs_event_handler.c
   gnunet-gtk/src/main_window_file_publish.c
   gnunet/TODO
Log:
publish start implementation

Modified: gnunet/TODO
===================================================================
--- gnunet/TODO 2010-06-19 21:32:33 UTC (rev 11818)
+++ gnunet/TODO 2010-06-20 09:00:36 UTC (rev 11819)
@@ -17,8 +17,12 @@
   - only connect() sockets that are ready (select()) [Nils]
     [On W32, we need to select after calling socket before doing connect etc.]
 * GNUNET-GTK:
-  - implement publish dialog
-    + execute (publish)
+  - handle publish events
+    + start 
+    + progress
+    + completed
+    + stopped
+    + suspend
   - directory support:
     + download start: recursive/directory (!) & from-URI only
     + handle download lost-parent (move to 'from-URI only' tab)
@@ -86,6 +90,8 @@
     + search error
     + download error
     + download resume
+    + publish resume
+    + publish error
   - implement open directory dialog
   - implement new-pseudonym dialog
   - namespace search
@@ -137,7 +143,6 @@
 
 0.9.0:
 * new webpage:
-  - expand bibliography
   - convert documentation pages to books
   - update books (especially for developers)
   - create good Drupal theme for GNUnet

Modified: gnunet-gtk/contrib/publish_dialog.glade
===================================================================
--- gnunet-gtk/contrib/publish_dialog.glade     2010-06-19 21:32:33 UTC (rev 
11818)
+++ gnunet-gtk/contrib/publish_dialog.glade     2010-06-20 09:00:36 UTC (rev 
11819)
@@ -2,24 +2,40 @@
 <interface>
   <requires lib="gtk+" version="2.20"/>
   <!-- interface-naming-policy project-wide -->
-  <object class="GtkTreeStore" id="GNUNET_GTK_pseudonym_tree_store">
+  <object class="GtkImage" id="right_stock_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-go-forward</property>
+  </object>
+  <object class="GtkImage" id="left_stock_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-go-back</property>
+  </object>
+  <object class="GtkImage" id="add_stock_image_2">
+    <property name="visible">True</property>
+    <property name="stock">gtk-add</property>
+  </object>
+  <object class="GtkImage" id="new_stock_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-new</property>
+  </object>
+  <object class="GtkImage" id="add_stock_image">
+    <property name="visible">True</property>
+    <property name="stock">gtk-add</property>
+  </object>
+  <object class="GtkTreeStore" 
id="GNUNET_GTK_file_sharing_publishing_tree_store">
     <columns>
-      <!-- column-name local_name -->
+      <!-- column-name filesize -->
       <column type="gchararray"/>
-      <!-- column-name namespace_handle -->
-      <column type="gpointer"/>
-      <!-- column-name last_id -->
+      <!-- column-name do_index -->
+      <column type="gboolean"/>
+      <!-- column-name filename -->
       <column type="gchararray"/>
-      <!-- column-name last_uri -->
-      <column type="gchararray"/>
-      <!-- column-name last_meta -->
+      <!-- column-name anonymity_level -->
+      <column type="guint"/>
+      <!-- column-name priority -->
+      <column type="guint"/>
+      <!-- column-name file_information_struct -->
       <column type="gpointer"/>
-      <!-- column-name next_id -->
-      <column type="gchararray"/>
-      <!-- column-name last_description_from_meta -->
-      <column type="gchararray"/>
-      <!-- column-name next_id_editable -->
-      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkDialog" id="GNUNET_GTK_master_publish_dialog">
@@ -92,26 +108,27 @@
                 <property name="visible">True</property>
                 <property name="n_rows">2</property>
                 <property name="n_columns">3</property>
-                <property name="homogeneous">True</property>
                 <child>
                   <object class="GtkButton" 
id="GNUNET_GTK_master_publish_dialog_add_button">
-                    <property name="label">gtk-add</property>
+                    <property name="label">Add _File</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>
+                    <property name="image">add_stock_image</property>
+                    <property name="use_underline">True</property>
                     <signal name="clicked" 
handler="GNUNET_GTK_master_publish_dialog_add_button_clicked_cb" swapped="no"/>
                   </object>
                 </child>
                 <child>
                   <object class="GtkButton" 
id="GNUNET_GTK_master_publish_dialog_open_button">
-                    <property name="label">gtk-open</property>
+                    <property name="label">Add _Directory</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>
+                    <property name="image">add_stock_image_2</property>
+                    <property name="use_underline">True</property>
                     <signal name="clicked" 
handler="GNUNET_GTK_master_publish_dialog_open_button_clicked_cb" swapped="no"/>
                   </object>
                   <packing>
@@ -157,26 +174,24 @@
                 </child>
                 <child>
                   <object class="GtkButton" 
id="GNUNET_GTK_master_publish_dialog_new_button">
-                    <property name="label">gtk-new</property>
+                    <property name="label">_Create empty directory</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>
+                    <property name="image">new_stock_image</property>
+                    <property name="use_underline">True</property>
                     <signal name="clicked" 
handler="GNUNET_GTK_master_publish_dialog_new_button_clicked_cb" swapped="no"/>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
+                    <property name="right_attach">3</property>
                   </packing>
                 </child>
-                <child>
-                  <placeholder/>
-                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="padding">50</property>
+                <property name="padding">25</property>
                 <property name="position">0</property>
               </packing>
             </child>
@@ -222,13 +237,14 @@
                 </child>
                 <child>
                   <object class="GtkButton" 
id="GNUNET_GTK_master_publish_dialog_left_button">
-                    <property name="label">gtk-go-back</property>
+                    <property name="label">_Left</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="use_stock">True</property>
+                    <property name="image">left_stock_image</property>
+                    <property name="use_underline">True</property>
                     <signal name="clicked" 
handler="GNUNET_GTK_master_publish_dialog_left_button_clicked_cb" swapped="no"/>
                   </object>
                   <packing>
@@ -238,13 +254,14 @@
                 </child>
                 <child>
                   <object class="GtkButton" 
id="GNUNET_GTK_master_publish_dialog_right_button">
-                    <property name="label">gtk-go-forward</property>
+                    <property name="label">_Right</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="use_stock">True</property>
+                    <property name="image">right_stock_image</property>
+                    <property name="use_underline">True</property>
                     <signal name="clicked" 
handler="GNUNET_GTK_master_publish_dialog_right_button_clicked_cb" 
swapped="no"/>
                   </object>
                   <packing>
@@ -263,7 +280,7 @@
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="padding">50</property>
+                <property name="padding">25</property>
                 <property name="position">1</property>
               </packing>
             </child>
@@ -394,20 +411,24 @@
       <action-widget 
response="-5">GNUNET_GTK_master_publish_dialog_execute_button</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkTreeStore" 
id="GNUNET_GTK_file_sharing_publishing_tree_store">
+  <object class="GtkTreeStore" id="GNUNET_GTK_pseudonym_tree_store">
     <columns>
-      <!-- column-name filesize -->
+      <!-- column-name local_name -->
       <column type="gchararray"/>
-      <!-- column-name do_index -->
-      <column type="gboolean"/>
-      <!-- column-name filename -->
+      <!-- column-name namespace_handle -->
+      <column type="gpointer"/>
+      <!-- column-name last_id -->
       <column type="gchararray"/>
-      <!-- column-name anonymity_level -->
-      <column type="guint"/>
-      <!-- column-name priority -->
-      <column type="guint"/>
-      <!-- column-name file_information_struct -->
+      <!-- column-name last_uri -->
+      <column type="gchararray"/>
+      <!-- column-name last_meta -->
       <column type="gpointer"/>
+      <!-- column-name next_id -->
+      <column type="gchararray"/>
+      <!-- column-name last_description_from_meta -->
+      <column type="gchararray"/>
+      <!-- column-name next_id_editable -->
+      <column type="gboolean"/>
     </columns>
   </object>
 </interface>

Modified: gnunet-gtk/contrib/publish_edit_dialog.glade
===================================================================
--- gnunet-gtk/contrib/publish_edit_dialog.glade        2010-06-19 21:32:33 UTC 
(rev 11818)
+++ gnunet-gtk/contrib/publish_edit_dialog.glade        2010-06-20 09:00:36 UTC 
(rev 11819)
@@ -2,26 +2,22 @@
 <interface>
   <requires lib="gtk+" version="2.20"/>
   <!-- interface-naming-policy project-wide -->
-  <object class="GtkListStore" id="GNUNET_GTK_metatype_list_store">
-    <columns>
-      <!-- column-name description -->
-      <column type="gchararray"/>
-      <!-- column-name guint1 -->
-      <column type="guint"/>
-      <!-- column-name helptext -->
-      <column type="gchararray"/>
-    </columns>
+  <object class="GtkAdjustment" id="priority_adjustment">
+    <property name="upper">10000000</property>
+    <property name="value">1000</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
   </object>
-  <object class="GtkListStore" id="GNUNET_GTK_meta_data_list_store">
+  <object class="GtkAdjustment" id="GNUNET_GTK_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="GtkListStore" id="GNUNET_GTK_keyword_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-name keyword -->
       <column type="gchararray"/>
-      <!-- column-name extracotr_meta_value -->
-      <column type="gchararray"/>
     </columns>
   </object>
   <object class="GtkDialog" id="GNUNET_GTK_edit_file_information_dialog">
@@ -362,6 +358,7 @@
                           <object class="GtkButton" 
id="GNUNET_GTK_edit_file_information_keyword_list_del_button">
                             <property name="label">gtk-delete</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>
@@ -629,22 +626,26 @@
       <action-widget 
response="-5">GNUNET_GTK_edit_file_information_confirm_button</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkListStore" id="GNUNET_GTK_keyword_list_store">
+  <object class="GtkListStore" id="GNUNET_GTK_meta_data_list_store">
     <columns>
-      <!-- column-name keyword -->
+      <!-- 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="GtkAdjustment" id="GNUNET_GTK_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 class="GtkListStore" id="GNUNET_GTK_metatype_list_store">
+    <columns>
+      <!-- column-name description -->
+      <column type="gchararray"/>
+      <!-- column-name guint1 -->
+      <column type="guint"/>
+      <!-- column-name helptext -->
+      <column type="gchararray"/>
+    </columns>
   </object>
-  <object class="GtkAdjustment" id="priority_adjustment">
-    <property name="upper">10000000</property>
-    <property name="value">1000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
 </interface>

Modified: gnunet-gtk/src/fs_event_handler.c
===================================================================
--- gnunet-gtk/src/fs_event_handler.c   2010-06-19 21:32:33 UTC (rev 11818)
+++ gnunet-gtk/src/fs_event_handler.c   2010-06-20 09:00:36 UTC (rev 11819)
@@ -814,13 +814,20 @@
 {
   switch (info->status)
     {
-    case GNUNET_FS_STATUS_PUBLISH_START: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_RESUME: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_SUSPEND: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_PROGRESS: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_ERROR: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_COMPLETED: GNUNET_break (0); break;
-    case GNUNET_FS_STATUS_PUBLISH_STOPPED: GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_START: 
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_RESUME:
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_SUSPEND:
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_PROGRESS:
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_ERROR: 
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_COMPLETED: 
+      GNUNET_break (0); break;
+    case GNUNET_FS_STATUS_PUBLISH_STOPPED: 
+      GNUNET_break (0); break;
     case GNUNET_FS_STATUS_DOWNLOAD_START: 
       return setup_download (info->value.download.pctx,
                             info->value.download.sctx,

Modified: gnunet-gtk/src/main_window_file_publish.c
===================================================================
--- gnunet-gtk/src/main_window_file_publish.c   2010-06-19 21:32:33 UTC (rev 
11818)
+++ gnunet-gtk/src/main_window_file_publish.c   2010-06-20 09:00:36 UTC (rev 
11819)
@@ -854,7 +854,44 @@
 
 
 /**
+ * Get the file information struct corresponding to the
+ * given iter in the publish dialog tree model.  Recursively
+ * builds the file information struct from the subtree.
+ *
+ * @param tm model to grab fi from
+ * @param iter position to grab fi from
+ * @return file information from the given position (never NULL)
  */
+static struct GNUNET_FS_FileInformation *
+get_file_information (GtkTreeModel *tm,
+                     GtkTreeIter *iter)
+{
+  struct GNUNET_FS_FileInformation *fi;
+  struct GNUNET_FS_FileInformation *fic;
+  struct GtkTreeIter child;
+  
+  gtk_tree_model_get (tm, iter,
+                     5, &fi,
+                     -1);
+  GNUNET_assert (fi != NULL);
+  if (gtk_tree_model_iter_children (tm, &child, iter))
+    {
+      GNUNET_break (GNUNET_YES ==
+                   GNUNET_FS_file_information_is_directory (fi));
+      do
+       {
+         fic = get_file_information (tm, &child);
+         GNUNET_break (GNUNET_OK ==
+                       GNUNET_FS_file_information_add (fi, fic));
+       }
+      while (gtk_tree_model_iter_next (tm, &child));
+    }
+  return fi;
+}
+
+
+/**
+ */
 void
 GNUNET_GTK_main_menu_file_publish_activate_cb (GtkWidget * dummy, 
                                               gpointer data)
@@ -864,6 +901,9 @@
   gint ret;
   GtkTreeView *tv;
   GtkTreeSelection *sel;
+  GtkTreeIter iter;
+  struct GNUNET_FS_FileInformation *fi;
+  GtkTreeModel *tm;
   
   GNUNET_assert (master_builder == NULL);
   master_builder = GNUNET_GTK_get_new_builder ("publish_dialog.glade");
@@ -879,18 +919,26 @@
   ls = GTK_TREE_STORE (gtk_builder_get_object (master_builder,
                                               
"GNUNET_GTK_pseudonym_tree_store"));
   /* FIXME: populate 'ls' */
-#if WTF
-  GtkTreeStore *pts;
-  pts = GTK_TREE_STORE (gtk_builder_get_object (master_builder,
-                                               
"GNUNET_GTK_file_sharing_publishing_tree_store"));
-#endif
   ret = gtk_dialog_run (GTK_DIALOG (ad));
   if (ret == GTK_RESPONSE_OK)
     {
-      /* FIXME: trigger publication! */
-      GNUNET_break (0);
+      /* FIXME: grab namespace from ls! */
+      tm = GTK_TREE_MODEL (gtk_builder_get_object (master_builder,
+                                                  
"GNUNET_GTK_file_sharing_publishing_tree_store"));
+      if (gtk_tree_model_get_iter_first (tm, &iter))
+       do
+         {
+           fi = get_file_information (tm, &iter);
+           GNUNET_FS_publish_start (fs,
+                                    fi,
+                                    NULL /* FIXME: namespace */,
+                                    NULL /* FIXME: namespace id */,
+                                    NULL /* FIXME: namespace uid */,
+                                    GNUNET_FS_PUBLISH_OPTION_NONE);
+         }
+       while (gtk_tree_model_iter_next (tm, &iter));
     }
-  /* FIXME: free state from 'ls' and pts */  
+  /* FIXME: free state from 'ls' */
   gtk_widget_destroy (ad);
   g_object_unref (G_OBJECT (master_builder));
   master_builder = NULL;




reply via email to

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