gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r6214 - in gnunet-gtk: . src/plugins/daemon src/plugins/fs src/plugins/stats
Date: Sat, 9 Feb 2008 19:42:07 -0700 (MST)

Author: grothoff
Date: 2008-02-09 19:42:02 -0700 (Sat, 09 Feb 2008)
New Revision: 6214

Modified:
   gnunet-gtk/ChangeLog
   gnunet-gtk/gnunet-gtk.glade
   gnunet-gtk/src/plugins/daemon/daemon.c
   gnunet-gtk/src/plugins/fs/fs.c
   gnunet-gtk/src/plugins/fs/fs.h
   gnunet-gtk/src/plugins/fs/search.c
   gnunet-gtk/src/plugins/stats/functions.c
   gnunet-gtk/src/plugins/stats/functions.h
Log:
UI updates

Modified: gnunet-gtk/ChangeLog
===================================================================
--- gnunet-gtk/ChangeLog        2008-02-10 02:37:33 UTC (rev 6213)
+++ gnunet-gtk/ChangeLog        2008-02-10 02:42:02 UTC (rev 6214)
@@ -1,3 +1,13 @@
+Sat Feb  9 19:39:24 MST 2008
+       Fixed lifelock caused by buggy semaphore operations
+       in event thread handler.  Added suspend/resume for
+       searches.  Added visual changes on aborted searches.
+       Removed timeout and max-result options from search
+       dialog (no longer required by ECRS/FSUI).  Fixed
+       signed/unsigned type issues in stats.  Migrated
+       gnunet-gtk GLADE file to GLADE-3 GUI (still getting
+       warnings).
+       
 Thu Dec 20 19:54:19 MST 2007
        Releasing gnunet-gtk 0.7.3.
 

Modified: gnunet-gtk/gnunet-gtk.glade
===================================================================
--- gnunet-gtk/gnunet-gtk.glade 2008-02-10 02:37:33 UTC (rev 6213)
+++ gnunet-gtk/gnunet-gtk.glade 2008-02-10 02:42:02 UTC (rev 6214)
@@ -719,38 +719,31 @@
                                         <property 
name="response_id">0</property>
                                         <signal name="clicked" 
handler="on_statusDownloadURIEntry_editing_done_" 
object="statusDownloadURIEntry"/>
                                         <child>
-                                          <widget class="GtkAlignment" 
id="alignment19">
+                                          <widget class="GtkHBox" 
id="downloadButtonHbox">
                                             <property 
name="visible">True</property>
-                                            <property 
name="xscale">0</property>
-                                            <property 
name="yscale">0</property>
+                                            <property 
name="spacing">2</property>
                                             <child>
-                                              <widget class="GtkHBox" 
id="hbox54">
+                                              <widget class="GtkImage" 
id="downloadButtonImage">
                                                 <property 
name="visible">True</property>
-                                                <property 
name="spacing">2</property>
-                                                <child>
-                                                  <widget class="GtkImage" 
id="image41">
-                                                    <property 
name="visible">True</property>
-                                                    <property 
name="stock">gtk-go-down</property>
-                                                  </widget>
-                                                  <packing>
-                                                    <property 
name="expand">False</property>
-                                                    <property 
name="fill">False</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <widget class="GtkLabel" 
id="label135">
-                                                    <property 
name="visible">True</property>
-                                                    <property name="label" 
translatable="yes">D_ownload</property>
-                                                    <property 
name="use_underline">True</property>
-                                                  </widget>
-                                                  <packing>
-                                                    <property 
name="expand">False</property>
-                                                    <property 
name="fill">False</property>
-                                                    <property 
name="position">1</property>
-                                                  </packing>
-                                                </child>
+                                                <property 
name="stock">gtk-go-down</property>
                                               </widget>
+                                              <packing>
+                                                <property 
name="expand">False</property>
+                                                <property 
name="fill">False</property>
+                                              </packing>
                                             </child>
+                                            <child>
+                                              <widget class="GtkLabel" 
id="downloadButtonLabel">
+                                                <property 
name="visible">True</property>
+                                                <property name="label" 
translatable="yes">D_ownload</property>
+                                                <property 
name="use_underline">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property 
name="expand">False</property>
+                                                <property 
name="fill">False</property>
+                                                <property 
name="position">1</property>
+                                              </packing>
+                                            </child>
                                           </widget>
                                         </child>
                                       </widget>
@@ -1043,44 +1036,11 @@
                             <property name="can_focus">True</property>
                             <property name="has_default">True</property>
                             <property name="tooltip" translatable="yes">Search 
GNUnet for content under the specified keyword (and, if applicable, restrict 
the search to the given namespace)</property>
+                            <property name="label" 
translatable="yes">gtk-find</property>
+                            <property name="use_stock">True</property>
                             <property name="response_id">0</property>
                             <signal name="clicked" 
handler="on_fssearchbutton_clicked_"/>
                             <accelerator key="Return" modifiers="" 
signal="activate"/>
-                            <child>
-                              <widget class="GtkAlignment" id="alignment8">
-                                <property name="visible">True</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
-                                <child>
-                                  <widget class="GtkHBox" id="hbox21">
-                                    <property name="visible">True</property>
-                                    <property name="spacing">2</property>
-                                    <child>
-                                      <widget class="GtkImage" id="image8">
-                                        <property 
name="visible">True</property>
-                                        <property 
name="stock">gtk-find</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label71">
-                                        <property 
name="visible">True</property>
-                                        <property name="label" 
translatable="yes">Sea_rch</property>
-                                        <property 
name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
                           </widget>
                           <packing>
                             <property name="expand">False</property>
@@ -1151,69 +1111,6 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox65">
-                        <property name="visible">True</property>
-                        <child>
-                          <widget class="GtkLabel" id="label148">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="xpad">6</property>
-                            <property name="label" translatable="yes">_Maximum 
results:</property>
-                            <property name="use_underline">True</property>
-                            <property name="selectable">True</property>
-                            <property 
name="mnemonic_widget">maxResultsSpinButton</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkSpinButton" 
id="maxResultsSpinButton">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">1000 1 100000000 50 
500 500</property>
-                            <property name="climb_rate">500</property>
-                            <property name="numeric">True</property>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label149">
-                            <property name="visible">True</property>
-                            <property name="xpad">3</property>
-                            <property name="label" 
translatable="yes">Aut_omatically abort search after (s):</property>
-                            <property name="use_underline">True</property>
-                            <property 
name="mnemonic_widget">searchDelaySpinButton</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkSpinButton" 
id="searchDelaySpinButton">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">300 0 100000000 10 100 
100</property>
-                            <property name="climb_rate">100</property>
-                            <property name="numeric">True</property>
-                          </widget>
-                          <packing>
-                            <property name="position">3</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
                       <widget class="GtkHBox" id="hbox53">
                         <property name="visible">True</property>
                         <child>
@@ -1268,7 +1165,7 @@
                       </widget>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="position">2</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
@@ -1291,7 +1188,7 @@
                         </child>
                       </widget>
                       <packing>
-                        <property name="position">3</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
                   </widget>
@@ -1447,38 +1344,31 @@
                             <property name="response_id">0</property>
                             <signal name="clicked" 
handler="on_mainFileSharingInsertBrowseButton_clicked_" 
object="fsinsertfilenamecombo"/>
                             <child>
-                              <widget class="GtkAlignment" id="alignment24">
+                              <widget class="GtkHBox" id="hbox60">
                                 <property name="visible">True</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
+                                <property name="spacing">2</property>
                                 <child>
-                                  <widget class="GtkHBox" id="hbox60">
+                                  <widget class="GtkImage" id="image46">
                                     <property name="visible">True</property>
-                                    <property name="spacing">2</property>
-                                    <child>
-                                      <widget class="GtkImage" id="image46">
-                                        <property 
name="visible">True</property>
-                                        <property 
name="stock">gtk-open</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label143">
-                                        <property 
name="visible">True</property>
-                                        <property name="label" 
translatable="yes">_Browse</property>
-                                        <property 
name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="stock">gtk-open</property>
                                   </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
                                 </child>
+                                <child>
+                                  <widget class="GtkLabel" id="label143">
+                                    <property name="visible">True</property>
+                                    <property name="label" 
translatable="yes">_Browse</property>
+                                    <property 
name="use_underline">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
                               </widget>
                             </child>
                           </widget>
@@ -1556,38 +1446,31 @@
                             <property name="response_id">0</property>
                             <signal name="clicked" 
handler="on_fsinsertuploadbutton_clicked_"/>
                             <child>
-                              <widget class="GtkAlignment" id="alignment20">
+                              <widget class="GtkHBox" id="hbox55">
                                 <property name="visible">True</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
+                                <property name="spacing">2</property>
                                 <child>
-                                  <widget class="GtkHBox" id="hbox55">
+                                  <widget class="GtkImage" id="image42">
                                     <property name="visible">True</property>
-                                    <property name="spacing">2</property>
-                                    <child>
-                                      <widget class="GtkImage" id="image42">
-                                        <property 
name="visible">True</property>
-                                        <property 
name="stock">gtk-go-up</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label137">
-                                        <property 
name="visible">True</property>
-                                        <property name="label" 
translatable="yes">Pub_lish</property>
-                                        <property 
name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="stock">gtk-go-up</property>
                                   </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
                                 </child>
+                                <child>
+                                  <widget class="GtkLabel" id="label137">
+                                    <property name="visible">True</property>
+                                    <property name="label" 
translatable="yes">Pub_lish</property>
+                                    <property 
name="use_underline">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
                               </widget>
                             </child>
                           </widget>
@@ -1846,8 +1729,9 @@
                         <child>
                           <widget class="GtkImageMenuItem" 
id="createNamespace">
                             <property name="visible">True</property>
-                            <property name="label" 
translatable="yes">C_reate</property>
+                            <property name="label" 
translatable="yes">gtk-new</property>
                             <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
                             <child>
                               <widget class="GtkMenu" 
id="createNamespace_menu">
                                 <child>
@@ -1868,20 +1752,14 @@
                                 </child>
                               </widget>
                             </child>
-                            <child internal-child="image">
-                              <widget class="GtkImage" id="image62">
-                                <property name="visible">True</property>
-                                <property name="stock">gtk-new</property>
-                                <property name="icon_size">1</property>
-                              </widget>
-                            </child>
                           </widget>
                         </child>
                         <child>
                           <widget class="GtkImageMenuItem" id="delete1">
                             <property name="visible">True</property>
-                            <property name="label" 
translatable="yes">D_elete</property>
+                            <property name="label" 
translatable="yes">gtk-delete</property>
                             <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
                             <child>
                               <widget class="GtkMenu" id="delete1_menu">
                                 <child>
@@ -1906,13 +1784,6 @@
                                 </child>
                               </widget>
                             </child>
-                            <child internal-child="image">
-                              <widget class="GtkImage" id="image63">
-                                <property name="visible">True</property>
-                                <property name="stock">gtk-delete</property>
-                                <property name="icon_size">1</property>
-                              </widget>
-                            </child>
                           </widget>
                         </child>
                       </widget>
@@ -3008,6 +2879,67 @@
                       </packing>
                     </child>
                     <child>
+                      <widget class="GtkButton" id="searchPauseButton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="tooltip_text">Pause the 
search</property>
+                        <property name="tooltip" translatable="yes">Pause the 
search</property>
+                        <property name="label" 
translatable="yes">gtk-media-pause</property>
+                        <property name="use_stock">True</property>
+                        <property name="response_id">0</property>
+                        <signal name="clicked" 
handler="on_searchPauseButton_clicked_" object="searchPageScrolledWindow"/>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">7</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkButton" id="searchResumeButton">
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="tooltip_text">Resume the 
search</property>
+                        <property name="tooltip" translatable="yes">Resume the 
search</property>
+                        <property name="response_id">0</property>
+                        <signal name="clicked" 
handler="on_searchResumeButton_clicked_" object="searchPageScrolledWindow"/>
+                        <child>
+                          <widget class="GtkHBox" id="hbox3">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
+                            <child>
+                              <widget class="GtkImage" id="resumeButtonImage">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="stock">gtk-redo</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="resumeButtonLabel">
+                                <property name="visible">True</property>
+                                <property 
name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="label" 
translatable="yes">_Resume</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">8</property>
+                      </packing>
+                    </child>
+                    <child>
                       <widget class="GtkButton" id="searchCancelButton">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
@@ -3021,7 +2953,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
-                        <property name="position">7</property>
+                        <property name="position">9</property>
                       </packing>
                     </child>
                     <child>
@@ -3038,7 +2970,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
-                        <property name="position">8</property>
+                        <property name="position">10</property>
                       </packing>
                     </child>
                   </widget>
@@ -3287,7 +3219,7 @@
     <property name="tooltip" translatable="yes">The gnunet-gtk about 
dialog</property>
     <property name="border_width">5</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-    <property name="copyright" translatable="yes">(C) 2001-2007 Christian 
Grothoff (and other contributing authors)</property>
+    <property name="copyright" translatable="yes">(C) 2001-2008 Christian 
Grothoff (and other contributing authors)</property>
     <property name="comments" translatable="yes">https://gnunet.org/</property>
     <property name="website">http://www.gnu.org/software/gnunet/</property>
     <property name="website_label" translatable="yes">GNUnet Website</property>
@@ -4970,9 +4902,9 @@
     <property name="modal">True</property>
     <property name="icon_name">gtk-save-as</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="do_overwrite_confirmation">True</property>
-    <property name="show_hidden">True</property>
     <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
+    <property name="show_hidden">True</property>
+    <property name="do_overwrite_confirmation">True</property>
     <child internal-child="vbox">
       <widget class="GtkVBox" id="dialog-vbox7">
         <property name="visible">True</property>

Modified: gnunet-gtk/src/plugins/daemon/daemon.c
===================================================================
--- gnunet-gtk/src/plugins/daemon/daemon.c      2008-02-10 02:37:33 UTC (rev 
6213)
+++ gnunet-gtk/src/plugins/daemon/daemon.c      2008-02-10 02:42:02 UTC (rev 
6214)
@@ -240,18 +240,6 @@
   return NULL;
 }
 
-static int
-statsProcessor (const char *optName, unsigned long long value, void *data)
-{
-  unsigned long long * ret = data;
-
-  if (0 == strcmp ("# of connected peers",
-                  optName))
-    *ret = value;
-  return GNUNET_OK;
-}
-
-
 static void
 cronCheckDaemon (void *dummy)
 {

Modified: gnunet-gtk/src/plugins/fs/fs.c
===================================================================
--- gnunet-gtk/src/plugins/fs/fs.c      2008-02-10 02:37:33 UTC (rev 6213)
+++ gnunet-gtk/src/plugins/fs/fs.c      2008-02-10 02:42:02 UTC (rev 6214)
@@ -145,7 +145,6 @@
       fs_search_aborted (event->data.SearchAborted.sc.cctx);
       break;
     case GNUNET_FSUI_search_completed:
-      // FIXME...
       fs_search_aborted (event->data.SearchCompleted.sc.cctx);
       break;
     case GNUNET_FSUI_search_suspended:

Modified: gnunet-gtk/src/plugins/fs/fs.h
===================================================================
--- gnunet-gtk/src/plugins/fs/fs.h      2008-02-10 02:37:33 UTC (rev 6213)
+++ gnunet-gtk/src/plugins/fs/fs.h      2008-02-10 02:42:02 UTC (rev 6214)
@@ -210,6 +210,11 @@
   struct GNUNET_FSUI_SearchList *fsui_list;
 
   /**
+   * Maximum runtime for the search.
+   */
+  GNUNET_CronTime max_delay;
+
+  /**
    * Number of results received so far.
    */
   unsigned int resultsReceived;
@@ -224,6 +229,21 @@
    */
   unsigned int last_y;
 
+  /**
+   * Did the user just ask to pause the search?
+   */
+  int is_paused;
+
+  /**
+   * Desired anonymity level.
+   */
+  unsigned int anonymityLevel;
+
+  /**
+   * Maximum number of results.
+   */
+  unsigned int max_results;
+
 } SearchList;
 
 

Modified: gnunet-gtk/src/plugins/fs/search.c
===================================================================
--- gnunet-gtk/src/plugins/fs/search.c  2008-02-10 02:37:33 UTC (rev 6213)
+++ gnunet-gtk/src/plugins/fs/search.c  2008-02-10 02:42:02 UTC (rev 6214)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2005, 2006, 2007 Christian Grothoff (and other contributing authors)
+     (C) 2005, 2006, 2007, 2008 Christian Grothoff (and other contributing 
authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -164,6 +164,7 @@
   GtkTreeStore *model;
   GtkTreeIter iter;
   enum GNUNET_URITRACK_STATE state;
+  struct GNUNET_ECRS_URI * have;
 
   state = GNUNET_URITRACK_get_state (ectx, cfg, info->uri);
   if ((state & (GNUNET_URITRACK_INSERTED |
@@ -174,6 +175,20 @@
                                                               GNUNET_YES)))
     return;
   model = GTK_TREE_STORE (gtk_tree_view_get_model (searchContext->treeview));
+  /* Check that the entry does not already exist (for resume!) */  
+  if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter))
+    {
+      do
+       {
+         have = NULL;
+         gtk_tree_model_get (GTK_TREE_MODEL(model),
+                             &iter, SEARCH_URI, &have, -1);
+         if ( (have != NULL) &&
+              (GNUNET_ECRS_uri_test_equal(have, uri)) )
+           return; /* duplicate */
+       }
+      while (gtk_tree_model_iter_next (GTK_TREE_MODEL(model), &iter));
+    }  
   gtk_tree_store_append (model, &iter, NULL);
   addEntryToSearchTree (searchContext, NULL, info, &iter);
   searchContext->resultsReceived++;
@@ -384,6 +399,28 @@
   int col;
   int i;
 
+  /* check that search does not already exist
+     with fsui_list == NULL; 
+     (and if so, hijack!) */
+  list = search_head;
+  while (list != NULL)
+    {
+      if ( (list->fsui_list == NULL) &&
+          (list->uri != NULL) &&
+          (GNUNET_ECRS_uri_test_equal(list->uri,
+                                      uri)) )
+       {
+         list->fsui_list = fsui_list;
+         for (i = 0; i < resultCount; i++)
+           fs_search_result_received (list, &results[i], uri);
+         if (resultCount == 0)  /* otherwise already done! */
+           updateSearchSummary (list);
+         return list;
+       }
+      list = list->next;
+    }
+
+  /* build new entry */
   description = GNUNET_ECRS_uri_to_string (uri);
   if (description == NULL)
     {
@@ -407,6 +444,8 @@
   list->uri = GNUNET_ECRS_uri_duplicate (uri);
   list->fsui_list = fsui_list;
   list->next = search_head;
+  list->anonymityLevel = anonymityLevel;
+
   search_head = list;
   list->searchXML
     =
@@ -604,7 +643,12 @@
 void
 fs_search_aborted (SearchList * list)
 {
-  /* FIXME: show aborted status somehow! */
+  gtk_widget_show(glade_xml_get_widget(list->searchXML,
+                                      "searchResumeButton"));
+  gtk_widget_show(glade_xml_get_widget(list->searchXML,
+                                      "searchAbortButton"));
+  gtk_widget_show(glade_xml_get_widget(list->searchXML,
+                                      "searchPauseButton"));
 }
 
 /**
@@ -622,6 +666,14 @@
   int index;
   int i;
 
+  if (list->is_paused == GNUNET_YES)
+    {
+      /* if this was just a request to pause,
+        then simply ignore the FS-stopped event */
+      list->fsui_list = NULL;
+      list->is_paused = GNUNET_NO;
+      return;
+    }
   /* remove from linked list */
   if (search_head == list)
     {
@@ -701,8 +753,6 @@
 typedef struct
 {
   unsigned int anonymity;
-  unsigned int max;
-  GNUNET_CronTime delay;
   struct GNUNET_ECRS_URI *uri;
 } FSSS;
 
@@ -710,7 +760,7 @@
 search_start_helper (void *cls)
 {
   FSSS *fsss = cls;
-  GNUNET_FSUI_search_start (ctx, fsss->anonymity, fsss->max, fsss->delay,
+  GNUNET_FSUI_search_start (ctx, fsss->anonymity,
                             fsss->uri);
   return NULL;
 }
@@ -846,13 +896,7 @@
       list = list->next;
     }
   fsss.anonymity = getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
-                                       "searchAnonymitySelectionSpinButton");
-  fsss.max =
-    getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
-                        "maxResultsSpinButton");
-  fsss.delay =
-    getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
-                        "searchDelaySpinButton") * GNUNET_CRON_SECONDS;
+                                      "searchAnonymitySelectionSpinButton");
   GNUNET_GTK_run_with_save_calls (search_start_helper, &fsss);
   GNUNET_ECRS_uri_destroy (fsss.uri);
 }
@@ -897,7 +941,8 @@
   GNUNET_GE_ASSERT (ectx, list != NULL);
   if (list->fsui_list == NULL)
     {
-      /* open directory - close directly */
+      /* open directory or paused search; 
+        close directly */
       fs_search_stopped (list);
     }
   else
@@ -911,12 +956,70 @@
     }
 }
 
+
 /**
+ * The abort button in the search summary was clicked.
+ */
+void
+on_searchPauseButton_clicked_fs (GtkWidget * searchPage,
+                                GtkWidget * pauseButton)
+{
+  SearchList *list;
+  struct FCBC fcbc;
+
+  list = search_head;
+  while (list != NULL)
+    {
+      if (list->searchpage == searchPage)
+        break;
+      list = list->next;
+    }
+  GNUNET_GE_ASSERT (ectx, list != NULL);
+  gtk_widget_hide(pauseButton);
+  gtk_widget_show(glade_xml_get_widget(list->searchXML,
+                                      "searchResumeButton"));
+  if (list->fsui_list != NULL)
+    {
+      list->is_paused = GNUNET_YES;
+      fcbc.method = &GNUNET_FSUI_search_stop;
+      fcbc.argument = list->fsui_list;
+      GNUNET_GTK_run_with_save_calls (&fsui_callback, &fcbc);
+    }
+}
+
+/**
+ * The abort button in the search summary was clicked.
+ */
+void
+on_searchResumeButton_clicked_fs (GtkWidget * searchPage,
+                                 GtkWidget * resumeButton)
+{
+  FSSS fsss;
+  SearchList *list;
+
+  list = search_head;
+  while (list != NULL)
+    {
+      if (list->searchpage == searchPage)
+        break;
+      list = list->next;
+    }
+  GNUNET_GE_ASSERT (ectx, list != NULL);
+  gtk_widget_hide(resumeButton);
+  gtk_widget_show(glade_xml_get_widget(list->searchXML,
+                                      "searchPauseButton"));
+  fsss.anonymity = getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
+                                       "searchAnonymitySelectionSpinButton");
+  fsss.uri = list->uri;
+  GNUNET_GTK_run_with_save_calls (search_start_helper, &fsss);
+}
+
+/**
  * The abort button was clicked.  Abort the search.
  */
 void
 on_abortSearchButton_clicked_fs (GtkWidget * searchPage,
-                                 GtkWidget * closeButton)
+                                 GtkWidget * abortButton)
 {
   SearchList *list;
   struct FCBC fcbc;
@@ -929,6 +1032,7 @@
       list = list->next;
     }
   GNUNET_GE_ASSERT (ectx, list != NULL);
+  gtk_widget_hide(abortButton);
   if (list->fsui_list != NULL)
     {
       fcbc.method = &GNUNET_FSUI_search_abort;
@@ -1007,4 +1111,5 @@
   GNUNET_GTK_tree_selection_selected_foreach (selection, &abortSearch, NULL);
 }
 
+
 /* end of search.c */

Modified: gnunet-gtk/src/plugins/stats/functions.c
===================================================================
--- gnunet-gtk/src/plugins/stats/functions.c    2008-02-10 02:37:33 UTC (rev 
6213)
+++ gnunet-gtk/src/plugins/stats/functions.c    2008-02-10 02:42:02 UTC (rev 
6214)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet
-     (C) 2004, 2005, 2006 Christian Grothoff (and other contributing authors)
+     (C) 2004, 2005, 2006, 2008 Christian Grothoff (and other contributing 
authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -39,9 +39,9 @@
 
 static long connectionGoal;
 
-static long long banddown;
+static unsigned long long banddown;
 
-static long long bandup;
+static unsigned long long bandup;
 
 static struct GNUNET_GE_Context *ectx;
 
@@ -50,8 +50,8 @@
 static struct GNUNET_CronManager *cron;
 
 static int
-getStatValue (long long *value,
-              long long *lvalue,
+getStatValue (unsigned long long *value,
+              unsigned long long *lvalue,
               GNUNET_CronTime * dtime, const char *optName, int monotone)
 {
   unsigned int i;
@@ -120,8 +120,8 @@
 static int
 getConnectedNodesStat (const void *closure, gfloat ** data)
 {
-  long long val;
-
+  unsigned long long val;
+  
   if (connectionGoal == 0)
     return GNUNET_SYSERR;
   if (GNUNET_OK !=
@@ -134,10 +134,10 @@
 static int
 getLoadStat (const void *closure, gfloat ** data)
 {
-  long long valc;
-  long long vali;
-  long long valu;
-  long long vald;
+  unsigned long long valc;
+  unsigned long long vali;
+  unsigned long long valu;
+  unsigned long long vald;
 
   if (GNUNET_OK !=
       getStatValue (&valc, NULL, NULL, "% of allowed cpu load", GNUNET_NO))
@@ -164,8 +164,8 @@
 static int
 getQuotaStat (const void *closure, gfloat ** data)
 {
-  long long allowed;
-  long long have;
+  unsigned long long allowed;
+  unsigned long long have;
 
   if (GNUNET_OK != getStatValue (&allowed,
                                  NULL, NULL, "# bytes allowed in datastore",
@@ -183,18 +183,18 @@
 static int
 getTrafficRecvStats (const void *closure, gfloat ** data)
 {
-  long long total;
-  long long noise;
-  long long content;
-  long long queries;
-  long long hellos;
-  long long rlimit;
-  long long ltotal;
-  long long lnoise;
-  long long lcontent;
-  long long lqueries;
-  long long lhellos;
-  long long lrlimit;
+  unsigned long long total;
+  unsigned long long noise;
+  unsigned long long content;
+  unsigned long long queries;
+  unsigned long long hellos;
+  unsigned long long rlimit;
+  unsigned long long ltotal;
+  unsigned long long lnoise;
+  unsigned long long lcontent;
+  unsigned long long lqueries;
+  unsigned long long lhellos;
+  unsigned long long lrlimit;
   GNUNET_CronTime dtime;
   char *buffer;
 
@@ -272,18 +272,18 @@
 static int
 getTrafficSendStats (const void *closure, gfloat ** data)
 {
-  long long total;
-  long long noise;
-  long long content;
-  long long queries;
-  long long hellos;
-  long long slimit;
-  long long ltotal;
-  long long lnoise;
-  long long lcontent;
-  long long lqueries;
-  long long lhellos;
-  long long lslimit;
+  unsigned long long total;
+  unsigned long long noise;
+  unsigned long long content;
+  unsigned long long queries;
+  unsigned long long hellos;
+  unsigned long long slimit;
+  unsigned long long ltotal;
+  unsigned long long lnoise;
+  unsigned long long lcontent;
+  unsigned long long lqueries;
+  unsigned long long lhellos;
+  unsigned long long lslimit;
   GNUNET_CronTime dtime;
   char *buffer;
 
@@ -365,12 +365,12 @@
   static GNUNET_CronTime last;
   static double lastdata;
   static double lastavg;
-  long long total;
-  long long success;
-  long long local;
-  long long ltotal;
-  long long lsuccess;
-  long long llocal;
+  unsigned long long total;
+  unsigned long long success;
+  unsigned long long local;
+  unsigned long long ltotal;
+  unsigned long long lsuccess;
+  unsigned long long llocal;
   GNUNET_CronTime now;
 
   now = GNUNET_get_time ();
@@ -474,7 +474,7 @@
 {
   static gboolean once = TRUE;
   static int last_status = -5;
-  long long connected_peers;
+  unsigned long long connected_peers;
   char *label;
   static GtkWidget *statusConnexionsLabel;
   static GtkWidget *statusConnexionsPic;
@@ -522,8 +522,8 @@
   }
   if (GNUNET_OK == GNUNET_test_daemon_running (ectx, cfg))
     {      
-        if (GNUNET_OK != getStatValue (&connected_peers, (GNUNET_CronTime *) 
delta,
-                                       NULL, "# of connected peers", 
GNUNET_NO))
+      if (GNUNET_OK != getStatValue (&connected_peers, (GNUNET_CronTime *) 
delta,
+                                    NULL, "# of connected peers", GNUNET_NO))
        {
       if (last_status != -1)
         {

Modified: gnunet-gtk/src/plugins/stats/functions.h
===================================================================
--- gnunet-gtk/src/plugins/stats/functions.h    2008-02-10 02:37:33 UTC (rev 
6213)
+++ gnunet-gtk/src/plugins/stats/functions.h    2008-02-10 02:42:02 UTC (rev 
6214)
@@ -27,8 +27,8 @@
 typedef struct
 {
   char *statName;
-  long long value;
-  long long lvalue;
+  unsigned long long value;
+  unsigned long long lvalue;
   GNUNET_CronTime delta;
 } StatPair;
 





reply via email to

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