gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r1886 - in gnunet-gtk: . src/plugins/fs


From: grothoff
Subject: [GNUnet-SVN] r1886 - in gnunet-gtk: . src/plugins/fs
Date: Wed, 24 Aug 2005 00:10:21 -0700 (PDT)

Author: grothoff
Date: 2005-08-24 00:10:19 -0700 (Wed, 24 Aug 2005)
New Revision: 1886

Modified:
   gnunet-gtk/gnunet-gtk.glade
   gnunet-gtk/src/plugins/fs/meta.c
   gnunet-gtk/src/plugins/fs/meta.h
   gnunet-gtk/src/plugins/fs/namespace.c
   gnunet-gtk/src/plugins/fs/search.c
   gnunet-gtk/src/plugins/fs/upload.c
Log:
towards working namespace update

Modified: gnunet-gtk/gnunet-gtk.glade
===================================================================
--- gnunet-gtk/gnunet-gtk.glade 2005-08-24 07:08:19 UTC (rev 1885)
+++ gnunet-gtk/gnunet-gtk.glade 2005-08-24 07:10:19 UTC (rev 1886)
@@ -4651,8 +4651,8 @@
            </widget>
            <packing>
              <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
            </packing>
          </child>
        </widget>
@@ -4893,7 +4893,7 @@
            </widget>
            <packing>
              <property name="padding">0</property>
-             <property name="expand">True</property>
+             <property name="expand">False</property>
              <property name="fill">True</property>
            </packing>
          </child>
@@ -5300,8 +5300,8 @@
            </widget>
            <packing>
              <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
            </packing>
          </child>
        </widget>
@@ -5538,7 +5538,7 @@
              <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_namespaceUpdateMetaDataDialogMetaDataAddButton_clicked" 
last_modification_time="Tue, 23 Aug 2005 08:41:20 GMT"/>
+             <signal name="clicked" 
handler="on_namespaceInsertMetaDataDialogMetaDataAddButton_clicked" 
last_modification_time="Wed, 24 Aug 2005 05:39:50 GMT"/>
            </widget>
            <packing>
              <property name="padding">0</property>
@@ -6152,4 +6152,581 @@
   </child>
 </widget>
 
+<widget class="GtkDialog" id="namespaceUpdateDialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Enter Meta-Information about 
Namespace Content</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">True</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox5">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area4">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="cancelbutton1">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-cancel</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-6</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="okbutton1">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-ok</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-5</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkVBox" id="vbox19">
+         <property name="visible">True</property>
+         <property name="homogeneous">False</property>
+         <property name="spacing">0</property>
+
+         <child>
+           <widget class="GtkLabel" id="label127">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Please provide 
information about the update to the content in the namespace.</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="hbox51">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">0</property>
+
+             <child>
+               <widget class="GtkLabel" id="label118">
+                 <property name="visible">True</property>
+                 <property name="label" 
translatable="yes">Identifier:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">8</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="identifierLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">BUG: SET 
ME!</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label125">
+                 <property name="visible">True</property>
+                 <property name="label" 
translatable="yes">Anonymit_y:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">5</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkSpinButton" 
id="namespaceUpdateAnonymitySpinButton">
+                 <property agent="glademm" 
name="cxx_visibility">public</property>
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="climb_rate">1</property>
+                 <property name="digits">0</property>
+                 <property name="numeric">True</property>
+                 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+                 <property name="snap_to_ticks">False</property>
+                 <property name="wrap">False</property>
+                 <property name="adjustment">1 0 10000 1 10 10</property>
+               </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>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="hbox48">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">0</property>
+
+             <child>
+               <widget class="GtkLabel" id="label120">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Next 
Identifier:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">6</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkComboBoxEntry" 
id="nextIdentifierComboBoxEntry">
+                 <property name="visible">True</property>
+                 <property name="add_tearoffs">False</property>
+                 <property name="has_frame">True</property>
+                 <property name="focus_on_click">True</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label126">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Update 
Interval:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">5</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkComboBoxEntry" 
id="namespaceUpdateIntervalComboBoxEntry">
+                 <property agent="glademm" 
name="cxx_visibility">public</property>
+                 <property name="visible">True</property>
+                 <property name="items" translatable="yes">--no update--
+--sporadic update--
+1 day
+2 days
+1 week
+1 month
+1 year
+</property>
+                 <property name="add_tearoffs">False</property>
+                 <property name="has_frame">True</property>
+                 <property name="focus_on_click">True</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="hbox49">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">0</property>
+
+             <child>
+               <widget class="GtkLabel" id="label121">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Type:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">5</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkAlignment" id="alignment14">
+                 <property name="border_width">1</property>
+                 <property name="visible">True</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xscale">1</property>
+                 <property name="yscale">1</property>
+                 <property name="top_padding">0</property>
+                 <property name="bottom_padding">0</property>
+                 <property name="left_padding">0</property>
+                 <property name="right_padding">0</property>
+
+                 <child>
+                   <widget class="GtkComboBox" 
id="namespaceUpdateMetaTypeComboBox">
+                     <property agent="glademm" 
name="cxx_visibility">public</property>
+                     <property name="visible">True</property>
+                     <property name="add_tearoffs">False</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">5</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label122">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Value:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_CENTER</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">5</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="namespaceUpdateMetaValueEntry">
+                 <property agent="glademm" 
name="cxx_visibility">public</property>
+                 <property name="visible">True</property>
+                 <property name="tooltip" translatable="yes">Enter metadata 
about the upload</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+                 <accelerator key="Return" modifiers="0" signal="activate"/>
+               </widget>
+               <packing>
+                 <property name="padding">5</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkButton" id="button14">
+                 <property name="visible">True</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>
+                 <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_namespaceUpdateMetaDataDialogMetaDataAddButton_clicked" 
last_modification_time="Tue, 23 Aug 2005 08:41:20 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>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkFrame" id="frame20">
+             <property name="visible">True</property>
+             <property name="label_xalign">0</property>
+             <property name="label_yalign">0.5</property>
+             <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+             <child>
+               <widget class="GtkScrolledWindow" id="scrolledwindow30">
+                 <property name="visible">True</property>
+                 <property 
name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="shadow_type">GTK_SHADOW_IN</property>
+                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+                 <child>
+                   <widget class="GtkTreeView" 
id="namespaceUpdateMetaDataTreeView">
+                     <property agent="glademm" 
name="cxx_visibility">public</property>
+                     <property name="visible">True</property>
+                     <property name="tooltip" translatable="yes">Select 
entries and use the context menu (right click) in order to delete 
keywords.</property>
+                     <property name="can_focus">True</property>
+                     <property name="headers_visible">True</property>
+                     <property name="rules_hint">True</property>
+                     <property name="reorderable">True</property>
+                     <property name="enable_search">True</property>
+                     <property name="fixed_height_mode">False</property>
+                     <property name="hover_selection">False</property>
+                     <property name="hover_expand">False</property>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label123">
+                 <property name="visible">True</property>
+                 <property name="label" 
translatable="yes">&lt;b&gt;Meta-data&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">5</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="type">label_item</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">True</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="hbox50">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">0</property>
+
+             <child>
+               <widget class="GtkLabel" id="label124">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Preview:</property>
+                 <property name="use_underline">True</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">5</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkScrolledWindow" id="scrolledwindow31">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property 
name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="shadow_type">GTK_SHADOW_IN</property>
+                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+                 <child>
+                   <widget class="GtkViewport" id="viewport9">
+                     <property name="visible">True</property>
+                     <property name="shadow_type">GTK_SHADOW_IN</property>
+
+                     <child>
+                       <widget class="GtkImage" 
id="namespaceUpdatePreviewImage">
+                         <property agent="glademm" 
name="cxx_visibility">public</property>
+                         <property name="visible">True</property>
+                         <property name="xalign">0.5</property>
+                         <property name="yalign">0.5</property>
+                         <property name="xpad">0</property>
+                         <property name="ypad">0</property>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>

Modified: gnunet-gtk/src/plugins/fs/meta.c
===================================================================
--- gnunet-gtk/src/plugins/fs/meta.c    2005-08-24 07:08:19 UTC (rev 1885)
+++ gnunet-gtk/src/plugins/fs/meta.c    2005-08-24 07:10:19 UTC (rev 1886)
@@ -25,6 +25,8 @@
  */
 
 #include "platform.h"
+#include "gnunetgtk_common.h"
+#include "helper.h"
 #include "meta.h"
 #include "fs.h"
 #include <extractor.h>
@@ -383,4 +385,39 @@
   return keywordURI;
 }
 
+
+int tryParseTimeInterval(GladeXML * xml,
+                        const char * intervalComboBoxEntry,
+                        TIME_T * interval) {
+  GtkWidget * update;
+  const char * timeSpec;
+
+  update = glade_xml_get_widget(xml,
+                               intervalComboBoxEntry);
+  timeSpec = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(update))));
+  if (timeSpec == NULL)
+    return SYSERR;
+  if (0 == strcmp(_("--sporadic update--"),
+                 timeSpec))
+    *interval = ECRS_SBLOCK_UPDATE_SPORADIC;
+  else if (0 == strcmp(_("--no update--"),
+                      timeSpec))
+    *interval = ECRS_SBLOCK_UPDATE_NONE;
+  else 
+    return parseTime(timeSpec,
+                    interval);
+  return OK;
+}
+
+unsigned int getAnonymityLevel(GladeXML * xml,
+                              const char * spinButtonName) {
+  GtkWidget * spin;
+
+  spin = glade_xml_get_widget(xml,
+                             spinButtonName);
+  return gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
+}
+
+
+
 /* end of meta.c */

Modified: gnunet-gtk/src/plugins/fs/meta.h
===================================================================
--- gnunet-gtk/src/plugins/fs/meta.h    2005-08-24 07:08:19 UTC (rev 1885)
+++ gnunet-gtk/src/plugins/fs/meta.h    2005-08-24 07:10:19 UTC (rev 1886)
@@ -59,5 +59,12 @@
                                        const char * name);
 
 
+int tryParseTimeInterval(GladeXML * xml,
+                        const char * intervalComboBoxEntry,
+                        TIME_T * interval);
+
+unsigned int getAnonymityLevel(GladeXML * xml,
+                              const char * spinButtonName);
+
 /* end of meta.h */
 #endif

Modified: gnunet-gtk/src/plugins/fs/namespace.c
===================================================================
--- gnunet-gtk/src/plugins/fs/namespace.c       2005-08-24 07:08:19 UTC (rev 
1885)
+++ gnunet-gtk/src/plugins/fs/namespace.c       2005-08-24 07:10:19 UTC (rev 
1886)
@@ -660,7 +660,7 @@
   }
 } 
 
-void on_namespaceUpdateMetaDataDialogMetaDataAddButton_clicked(GtkWidget * 
dummy1,
+void on_namespaceInsertMetaDataDialogMetaDataAddButton_clicked(GtkWidget * 
dummy1,
                                                               GtkWidget * 
dummy2) {
   handleMetaDataListUpdate(metaXML,
                           "namespaceInsertMetaTypeComboBox",
@@ -671,14 +671,11 @@
 void on_namespaceInsertButton_clicked(GtkWidget * dummy1,
                                      GtkWidget * dummy2) {
   const char * identifierName;
-  const char * timeSpec;
   NamespaceList * list;
   GtkWidget * nameLine;
   GtkWidget * page;
   GtkWidget * notebook;
   GtkWidget * dialog;
-  GtkWidget * spin;
-  GtkWidget * update;
   struct ECRS_MetaData * meta;
   HashCode512 nextId;
   GtkWidget * contentList;
@@ -738,19 +735,9 @@
   gtk_dialog_set_default_response(GTK_DIALOG(dialog),
                                  GTK_RESPONSE_OK);
   if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
-    update = glade_xml_get_widget(metaXML,
-                                 "updateIntervalComboBoxEntry");
-    timeSpec = 
gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(update))));
-    if (timeSpec == NULL)
-      timeSpec = "";
-    if (0 == strcmp(_("--sporadic update--"),
-                   timeSpec))
-      cls.updateInterval = ECRS_SBLOCK_UPDATE_SPORADIC;
-    else if (0 == strcmp(_("--no update--"),
-                        timeSpec))
-      cls.updateInterval = ECRS_SBLOCK_UPDATE_NONE;
-    else if (OK != parseTime(timeSpec,
-                            &cls.updateInterval)) {
+    if (OK != tryParseTimeInterval(metaXML,
+                                  "updateIntervalComboBoxEntry",
+                                  &cls.updateInterval)) {
       gtk_widget_destroy(dialog);
       UNREF(metaXML);
       metaXML = NULL;
@@ -768,10 +755,9 @@
     meta = getMetaDataFromList(metaXML,
                               "metaDataTreeView",
                               "namespaceInsertPreview");
-    spin = glade_xml_get_widget(metaXML,
-                               "anonymitySpinButton");    
     cls.anonymityLevel
-      = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
+      = getAnonymityLevel(metaXML,
+                         "anonymitySpinButton");    
     nameLine = glade_xml_get_widget(metaXML,
                                    "namespaceContentIdentifierEntry");
     identifierName = gtk_entry_get_text(GTK_ENTRY(nameLine));
@@ -807,21 +793,171 @@
   metaXML = NULL;
 }
 
+typedef struct {
+  unsigned int anonymityLevel;
+  char * namespaceName;
+  TIME_T updateInterval;
+  HashCode512 lastId;
+  HashCode512 thisId;
+  HashCode512 * nextId;  
+  struct ECRS_MetaData * meta;
+} UUC;
 
 
 void on_namespaceUpdateButton_clicked(GtkWidget * dummy1,
                                      GtkWidget * dummy2) {
+  const char * identifierName;
+  NamespaceList * list;
+  GtkWidget * nameLine;
+  GtkWidget * page;
+  GtkWidget * notebook;
   GtkWidget * dialog;
+  GtkWidget * spin;
+  GtkWidget * update;
+  struct ECRS_MetaData * meta;
+  HashCode512 nextId;
+  GtkWidget * contentList;
+  GtkTreeSelection * selection;
+  GtkTreeSelection * selectionNamespace;
+  UUC cls;
+  gint num;
+  char * oldName;
+  struct ECRS_URI * uri;
 
-  /* FIXME: implement update! */
-  dialog = gtk_message_dialog_new 
-    (NULL,
-     GTK_DIALOG_MODAL,
-     GTK_MESSAGE_ERROR,
-     GTK_BUTTONS_CLOSE,
-     _("Not implemented!"));
-  gtk_dialog_run(GTK_DIALOG(dialog));
-  gtk_widget_destroy(dialog);      
+  contentList
+    = glade_xml_get_widget(getMainXML(),
+                          "availableContentList");
+  selection 
+    = gtk_tree_view_get_selection(GTK_TREE_VIEW(contentList));
+  if (0 == gtk_tree_selection_count_selected_rows(selection)) {
+    /* IMPROVE-ME: disable the menu item
+       as long as this may happen! */
+    dialog = gtk_message_dialog_new 
+      (NULL,
+       GTK_DIALOG_MODAL,
+       GTK_MESSAGE_ERROR,
+       GTK_BUTTONS_CLOSE,
+       _("You must select some available content for publication first!"));
+    gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);      
+    return;    
+  }
+
+  notebook
+    = glade_xml_get_widget(getMainXML(),
+                          "localNamespacesNotebook");
+  num = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
+  GNUNET_ASSERT(num != -1);
+  page =gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook),
+                                 num);
+  list = head;
+  while ( (list != NULL) &&
+         (list->namespacepage != page) )
+    list = list->next;
+  if (list == NULL) {
+    BREAK();
+    return;
+  }
+  cls.namespaceName = list->name;
+
+  /* check that in namespace (updateable) content is selected! */
+  selectionNamespace
+    = gtk_tree_view_get_selection(GTK_TREE_VIEW(list->treeview));
+  if (0 == gtk_tree_selection_count_selected_rows(selectionNamespace)) {
+   /* IMPROVE-ME: disable the menu item
+      as long as this may happen! */
+    dialog = gtk_message_dialog_new 
+      (NULL,
+       GTK_DIALOG_MODAL,
+       GTK_MESSAGE_ERROR,
+       GTK_BUTTONS_CLOSE,
+       _("You must select some existing namespace content to be updated 
first!"));
+    gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);      
+    return;    
+  }
+
+  metaXML
+    = glade_xml_new(getGladeFileName(),
+                   "namespaceUpdateDialog",
+                   PACKAGE_NAME);
+  connectGladeWithPlugins(metaXML);
+
+  
+  uri = NULL; // FIXME
+  oldName = STRDUP("FIXME"); // ECRS_uriToString(uri);
+  nameLine = glade_xml_get_widget(metaXML,
+                                 "identifierLabel");
+  gtk_label_set_text(GTK_LABEL(nameLine),
+                    oldName);
+  FREE(oldName);
+  /* FIXME: set next identifier label! */
+
+  update = glade_xml_get_widget(metaXML,
+                               "namespaceUpdateIntervalComboBoxEntry");
+  /* FIXME: set update interval! */
+
+
+  createMetaDataListTreeView(metaXML,
+                            "namespaceUpdateMetaDataTreeView",
+                            "namespaceUpdatePreviewImage",
+                            NULL);
+  createMetaTypeComboBox(metaXML,
+                        "namespaceUpdateMetaTypeComboBox");
+  dialog = glade_xml_get_widget(metaXML,
+                               "namespaceUpdateDialog");
+  gtk_dialog_set_default_response(GTK_DIALOG(dialog),
+                                 GTK_RESPONSE_OK);
+  if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
+    if (OK != tryParseTimeInterval(metaXML,
+                                  "namespaceUpdateIntervalComboBoxEntry",
+                                  &cls.updateInterval)) {
+      gtk_widget_destroy(dialog);
+      UNREF(metaXML);
+      metaXML = NULL;
+      dialog = gtk_message_dialog_new 
+       (NULL,
+        GTK_DIALOG_MODAL,
+        GTK_MESSAGE_ERROR,
+        GTK_BUTTONS_CLOSE,
+        _("Failed to parse given time interval!"));
+      gtk_dialog_run(GTK_DIALOG(dialog));
+      gtk_widget_destroy(dialog);      
+      return;
+    }
+
+    meta = getMetaDataFromList(metaXML,
+                              "namespaceUpdateMetaDataTreeView",
+                              "namespaceUpdatePreviewImage");
+    spin = glade_xml_get_widget(metaXML,
+                               "namespaceUpdateAnonymitySpinButton");    
+    cls.anonymityLevel
+      = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
+    nameLine = glade_xml_get_widget(metaXML,
+                                   "nextIdentifierComboBoxEntry");
+    identifierName = gtk_entry_get_text(GTK_ENTRY(nameLine));
+    if ( (identifierName == NULL) ||
+        (strlen(identifierName) == 0)) {
+      cls.nextId = NULL;
+    } else {      
+      hash(identifierName,
+          strlen(identifierName),
+          &nextId);
+      cls.nextId = &nextId;
+    }
+    cls.meta = meta;
+    /*
+      FIXME:
+      gtk_tree_selection_selected_foreach
+      (selection,
+       &initiateUpload,
+       &cls);
+    */
+    ECRS_freeMetaData(meta);
+  }
+  gtk_widget_destroy(dialog);
+  UNREF(metaXML);
+  metaXML = NULL;
 }
 
 void on_clearAvailableContentButton_clicked(GtkWidget * dummy1,

Modified: gnunet-gtk/src/plugins/fs/search.c
===================================================================
--- gnunet-gtk/src/plugins/fs/search.c  2005-08-24 07:08:19 UTC (rev 1885)
+++ gnunet-gtk/src/plugins/fs/search.c  2005-08-24 07:10:19 UTC (rev 1886)
@@ -28,6 +28,7 @@
 #include "gnunetgtk_common.h"
 #include "search.h"
 #include "fs.h"
+#include "meta.h"
 #include <extractor.h>
 
 
@@ -591,11 +592,9 @@
   gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),
                                pages);
   gtk_widget_show(notebook);
-  spin = glade_xml_get_widget(getMainXML(),
-                             "searchAnonymitySelectionSpinButton");
   FSUI_startSearch(ctx,
-                  gtk_spin_button_get_value_as_int
-                  (GTK_SPIN_BUTTON(spin)),
+                  getAnonymityLevel(getMainXML(),
+                                    "searchAnonymitySelectionSpinButton"),
                   uri);
   FREE(tabtxt);
 }

Modified: gnunet-gtk/src/plugins/fs/upload.c
===================================================================
--- gnunet-gtk/src/plugins/fs/upload.c  2005-08-24 07:08:19 UTC (rev 1885)
+++ gnunet-gtk/src/plugins/fs/upload.c  2005-08-24 07:10:19 UTC (rev 1886)
@@ -364,8 +364,6 @@
                               "previewImage");   
     keywordURI = getKeywordURIFromList(metaXML,
                                       "metaDataDialogKeywordList");
-    spin = glade_xml_get_widget(getMainXML(),
-                               "uploadAnonymityLevelSpinButton");  
     if (doRec) {
       gkeywordURI = ECRS_stringToUri(ECRS_URI_PREFIX
                                     ECRS_SEARCH_INFIX);      
@@ -381,8 +379,8 @@
     } else {
       FSUI_upload(ctx,
                  filename,
-                 gtk_spin_button_get_value_as_int
-                 (GTK_SPIN_BUTTON(spin)),
+                 getAnonymityLevel(metaXML,
+                                   "uploadAnonymityLevelSpinButton"),    
                  doIndex,
                  NO,
                  meta,





reply via email to

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