aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2008-02-10 02:42:02 +0000
committerChristian Grothoff <christian@grothoff.org>2008-02-10 02:42:02 +0000
commit4fa3ec4652893e572814f2e1d121adb139b74ea7 (patch)
tree081c9c73ad6e0ee7631eda23fcc98c1b24f6c091
parent493abd9ee5db4f77178557d82b427f48ac98c62c (diff)
downloadgnunet-gtk-4fa3ec4652893e572814f2e1d121adb139b74ea7.tar.gz
gnunet-gtk-4fa3ec4652893e572814f2e1d121adb139b74ea7.zip
UI updates
-rw-r--r--ChangeLog10
-rw-r--r--gnunet-gtk.glade336
-rw-r--r--src/plugins/daemon/daemon.c12
-rw-r--r--src/plugins/fs/fs.c1
-rw-r--r--src/plugins/fs/fs.h20
-rw-r--r--src/plugins/fs/search.c133
-rw-r--r--src/plugins/stats/functions.c92
-rw-r--r--src/plugins/stats/functions.h4
8 files changed, 331 insertions, 277 deletions
diff --git a/ChangeLog b/ChangeLog
index 207036b1..8daf256f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
1Sat Feb 9 19:39:24 MST 2008
2 Fixed lifelock caused by buggy semaphore operations
3 in event thread handler. Added suspend/resume for
4 searches. Added visual changes on aborted searches.
5 Removed timeout and max-result options from search
6 dialog (no longer required by ECRS/FSUI). Fixed
7 signed/unsigned type issues in stats. Migrated
8 gnunet-gtk GLADE file to GLADE-3 GUI (still getting
9 warnings).
10
1Thu Dec 20 19:54:19 MST 2007 11Thu Dec 20 19:54:19 MST 2007
2 Releasing gnunet-gtk 0.7.3. 12 Releasing gnunet-gtk 0.7.3.
3 13
diff --git a/gnunet-gtk.glade b/gnunet-gtk.glade
index b128c0e3..c747806e 100644
--- a/gnunet-gtk.glade
+++ b/gnunet-gtk.glade
@@ -719,37 +719,30 @@ This release fixes downloads of files from directories. The previous version ha
719 <property name="response_id">0</property> 719 <property name="response_id">0</property>
720 <signal name="clicked" handler="on_statusDownloadURIEntry_editing_done_" object="statusDownloadURIEntry"/> 720 <signal name="clicked" handler="on_statusDownloadURIEntry_editing_done_" object="statusDownloadURIEntry"/>
721 <child> 721 <child>
722 <widget class="GtkAlignment" id="alignment19"> 722 <widget class="GtkHBox" id="downloadButtonHbox">
723 <property name="visible">True</property> 723 <property name="visible">True</property>
724 <property name="xscale">0</property> 724 <property name="spacing">2</property>
725 <property name="yscale">0</property>
726 <child> 725 <child>
727 <widget class="GtkHBox" id="hbox54"> 726 <widget class="GtkImage" id="downloadButtonImage">
728 <property name="visible">True</property> 727 <property name="visible">True</property>
729 <property name="spacing">2</property> 728 <property name="stock">gtk-go-down</property>
730 <child>
731 <widget class="GtkImage" id="image41">
732 <property name="visible">True</property>
733 <property name="stock">gtk-go-down</property>
734 </widget>
735 <packing>
736 <property name="expand">False</property>
737 <property name="fill">False</property>
738 </packing>
739 </child>
740 <child>
741 <widget class="GtkLabel" id="label135">
742 <property name="visible">True</property>
743 <property name="label" translatable="yes">D_ownload</property>
744 <property name="use_underline">True</property>
745 </widget>
746 <packing>
747 <property name="expand">False</property>
748 <property name="fill">False</property>
749 <property name="position">1</property>
750 </packing>
751 </child>
752 </widget> 729 </widget>
730 <packing>
731 <property name="expand">False</property>
732 <property name="fill">False</property>
733 </packing>
734 </child>
735 <child>
736 <widget class="GtkLabel" id="downloadButtonLabel">
737 <property name="visible">True</property>
738 <property name="label" translatable="yes">D_ownload</property>
739 <property name="use_underline">True</property>
740 </widget>
741 <packing>
742 <property name="expand">False</property>
743 <property name="fill">False</property>
744 <property name="position">1</property>
745 </packing>
753 </child> 746 </child>
754 </widget> 747 </widget>
755 </child> 748 </child>
@@ -1043,44 +1036,11 @@ This release fixes downloads of files from directories. The previous version ha
1043 <property name="can_focus">True</property> 1036 <property name="can_focus">True</property>
1044 <property name="has_default">True</property> 1037 <property name="has_default">True</property>
1045 <property name="tooltip" translatable="yes">Search GNUnet for content under the specified keyword (and, if applicable, restrict the search to the given namespace)</property> 1038 <property name="tooltip" translatable="yes">Search GNUnet for content under the specified keyword (and, if applicable, restrict the search to the given namespace)</property>
1039 <property name="label" translatable="yes">gtk-find</property>
1040 <property name="use_stock">True</property>
1046 <property name="response_id">0</property> 1041 <property name="response_id">0</property>
1047 <signal name="clicked" handler="on_fssearchbutton_clicked_"/> 1042 <signal name="clicked" handler="on_fssearchbutton_clicked_"/>
1048 <accelerator key="Return" modifiers="" signal="activate"/> 1043 <accelerator key="Return" modifiers="" signal="activate"/>
1049 <child>
1050 <widget class="GtkAlignment" id="alignment8">
1051 <property name="visible">True</property>
1052 <property name="xscale">0</property>
1053 <property name="yscale">0</property>
1054 <child>
1055 <widget class="GtkHBox" id="hbox21">
1056 <property name="visible">True</property>
1057 <property name="spacing">2</property>
1058 <child>
1059 <widget class="GtkImage" id="image8">
1060 <property name="visible">True</property>
1061 <property name="stock">gtk-find</property>
1062 </widget>
1063 <packing>
1064 <property name="expand">False</property>
1065 <property name="fill">False</property>
1066 </packing>
1067 </child>
1068 <child>
1069 <widget class="GtkLabel" id="label71">
1070 <property name="visible">True</property>
1071 <property name="label" translatable="yes">Sea_rch</property>
1072 <property name="use_underline">True</property>
1073 </widget>
1074 <packing>
1075 <property name="expand">False</property>
1076 <property name="fill">False</property>
1077 <property name="position">1</property>
1078 </packing>
1079 </child>
1080 </widget>
1081 </child>
1082 </widget>
1083 </child>
1084 </widget> 1044 </widget>
1085 <packing> 1045 <packing>
1086 <property name="expand">False</property> 1046 <property name="expand">False</property>
@@ -1151,69 +1111,6 @@ This release fixes downloads of files from directories. The previous version ha
1151 </packing> 1111 </packing>
1152 </child> 1112 </child>
1153 <child> 1113 <child>
1154 <widget class="GtkHBox" id="hbox65">
1155 <property name="visible">True</property>
1156 <child>
1157 <widget class="GtkLabel" id="label148">
1158 <property name="visible">True</property>
1159 <property name="can_focus">True</property>
1160 <property name="xpad">6</property>
1161 <property name="label" translatable="yes">_Maximum results:</property>
1162 <property name="use_underline">True</property>
1163 <property name="selectable">True</property>
1164 <property name="mnemonic_widget">maxResultsSpinButton</property>
1165 </widget>
1166 <packing>
1167 <property name="expand">False</property>
1168 <property name="fill">False</property>
1169 </packing>
1170 </child>
1171 <child>
1172 <widget class="GtkSpinButton" id="maxResultsSpinButton">
1173 <property name="visible">True</property>
1174 <property name="can_focus">True</property>
1175 <property name="adjustment">1000 1 100000000 50 500 500</property>
1176 <property name="climb_rate">500</property>
1177 <property name="numeric">True</property>
1178 </widget>
1179 <packing>
1180 <property name="position">1</property>
1181 </packing>
1182 </child>
1183 <child>
1184 <widget class="GtkLabel" id="label149">
1185 <property name="visible">True</property>
1186 <property name="xpad">3</property>
1187 <property name="label" translatable="yes">Aut_omatically abort search after (s):</property>
1188 <property name="use_underline">True</property>
1189 <property name="mnemonic_widget">searchDelaySpinButton</property>
1190 </widget>
1191 <packing>
1192 <property name="expand">False</property>
1193 <property name="fill">False</property>
1194 <property name="position">2</property>
1195 </packing>
1196 </child>
1197 <child>
1198 <widget class="GtkSpinButton" id="searchDelaySpinButton">
1199 <property name="visible">True</property>
1200 <property name="can_focus">True</property>
1201 <property name="adjustment">300 0 100000000 10 100 100</property>
1202 <property name="climb_rate">100</property>
1203 <property name="numeric">True</property>
1204 </widget>
1205 <packing>
1206 <property name="position">3</property>
1207 </packing>
1208 </child>
1209 </widget>
1210 <packing>
1211 <property name="expand">False</property>
1212 <property name="fill">False</property>
1213 <property name="position">1</property>
1214 </packing>
1215 </child>
1216 <child>
1217 <widget class="GtkHBox" id="hbox53"> 1114 <widget class="GtkHBox" id="hbox53">
1218 <property name="visible">True</property> 1115 <property name="visible">True</property>
1219 <child> 1116 <child>
@@ -1268,7 +1165,7 @@ This release fixes downloads of files from directories. The previous version ha
1268 </widget> 1165 </widget>
1269 <packing> 1166 <packing>
1270 <property name="expand">False</property> 1167 <property name="expand">False</property>
1271 <property name="position">2</property> 1168 <property name="position">1</property>
1272 </packing> 1169 </packing>
1273 </child> 1170 </child>
1274 <child> 1171 <child>
@@ -1291,7 +1188,7 @@ This release fixes downloads of files from directories. The previous version ha
1291 </child> 1188 </child>
1292 </widget> 1189 </widget>
1293 <packing> 1190 <packing>
1294 <property name="position">3</property> 1191 <property name="position">2</property>
1295 </packing> 1192 </packing>
1296 </child> 1193 </child>
1297 </widget> 1194 </widget>
@@ -1447,37 +1344,30 @@ This release fixes downloads of files from directories. The previous version ha
1447 <property name="response_id">0</property> 1344 <property name="response_id">0</property>
1448 <signal name="clicked" handler="on_mainFileSharingInsertBrowseButton_clicked_" object="fsinsertfilenamecombo"/> 1345 <signal name="clicked" handler="on_mainFileSharingInsertBrowseButton_clicked_" object="fsinsertfilenamecombo"/>
1449 <child> 1346 <child>
1450 <widget class="GtkAlignment" id="alignment24"> 1347 <widget class="GtkHBox" id="hbox60">
1451 <property name="visible">True</property> 1348 <property name="visible">True</property>
1452 <property name="xscale">0</property> 1349 <property name="spacing">2</property>
1453 <property name="yscale">0</property>
1454 <child> 1350 <child>
1455 <widget class="GtkHBox" id="hbox60"> 1351 <widget class="GtkImage" id="image46">
1456 <property name="visible">True</property> 1352 <property name="visible">True</property>
1457 <property name="spacing">2</property> 1353 <property name="stock">gtk-open</property>
1458 <child> 1354 </widget>
1459 <widget class="GtkImage" id="image46"> 1355 <packing>
1460 <property name="visible">True</property> 1356 <property name="expand">False</property>
1461 <property name="stock">gtk-open</property> 1357 <property name="fill">False</property>
1462 </widget> 1358 </packing>
1463 <packing> 1359 </child>
1464 <property name="expand">False</property> 1360 <child>
1465 <property name="fill">False</property> 1361 <widget class="GtkLabel" id="label143">
1466 </packing> 1362 <property name="visible">True</property>
1467 </child> 1363 <property name="label" translatable="yes">_Browse</property>
1468 <child> 1364 <property name="use_underline">True</property>
1469 <widget class="GtkLabel" id="label143">
1470 <property name="visible">True</property>
1471 <property name="label" translatable="yes">_Browse</property>
1472 <property name="use_underline">True</property>
1473 </widget>
1474 <packing>
1475 <property name="expand">False</property>
1476 <property name="fill">False</property>
1477 <property name="position">1</property>
1478 </packing>
1479 </child>
1480 </widget> 1365 </widget>
1366 <packing>
1367 <property name="expand">False</property>
1368 <property name="fill">False</property>
1369 <property name="position">1</property>
1370 </packing>
1481 </child> 1371 </child>
1482 </widget> 1372 </widget>
1483 </child> 1373 </child>
@@ -1556,37 +1446,30 @@ This release fixes downloads of files from directories. The previous version ha
1556 <property name="response_id">0</property> 1446 <property name="response_id">0</property>
1557 <signal name="clicked" handler="on_fsinsertuploadbutton_clicked_"/> 1447 <signal name="clicked" handler="on_fsinsertuploadbutton_clicked_"/>
1558 <child> 1448 <child>
1559 <widget class="GtkAlignment" id="alignment20"> 1449 <widget class="GtkHBox" id="hbox55">
1560 <property name="visible">True</property> 1450 <property name="visible">True</property>
1561 <property name="xscale">0</property> 1451 <property name="spacing">2</property>
1562 <property name="yscale">0</property>
1563 <child> 1452 <child>
1564 <widget class="GtkHBox" id="hbox55"> 1453 <widget class="GtkImage" id="image42">
1565 <property name="visible">True</property> 1454 <property name="visible">True</property>
1566 <property name="spacing">2</property> 1455 <property name="stock">gtk-go-up</property>
1567 <child>
1568 <widget class="GtkImage" id="image42">
1569 <property name="visible">True</property>
1570 <property name="stock">gtk-go-up</property>
1571 </widget>
1572 <packing>
1573 <property name="expand">False</property>
1574 <property name="fill">False</property>
1575 </packing>
1576 </child>
1577 <child>
1578 <widget class="GtkLabel" id="label137">
1579 <property name="visible">True</property>
1580 <property name="label" translatable="yes">Pub_lish</property>
1581 <property name="use_underline">True</property>
1582 </widget>
1583 <packing>
1584 <property name="expand">False</property>
1585 <property name="fill">False</property>
1586 <property name="position">1</property>
1587 </packing>
1588 </child>
1589 </widget> 1456 </widget>
1457 <packing>
1458 <property name="expand">False</property>
1459 <property name="fill">False</property>
1460 </packing>
1461 </child>
1462 <child>
1463 <widget class="GtkLabel" id="label137">
1464 <property name="visible">True</property>
1465 <property name="label" translatable="yes">Pub_lish</property>
1466 <property name="use_underline">True</property>
1467 </widget>
1468 <packing>
1469 <property name="expand">False</property>
1470 <property name="fill">False</property>
1471 <property name="position">1</property>
1472 </packing>
1590 </child> 1473 </child>
1591 </widget> 1474 </widget>
1592 </child> 1475 </child>
@@ -1846,8 +1729,9 @@ This release fixes downloads of files from directories. The previous version ha
1846 <child> 1729 <child>
1847 <widget class="GtkImageMenuItem" id="createNamespace"> 1730 <widget class="GtkImageMenuItem" id="createNamespace">
1848 <property name="visible">True</property> 1731 <property name="visible">True</property>
1849 <property name="label" translatable="yes">C_reate</property> 1732 <property name="label" translatable="yes">gtk-new</property>
1850 <property name="use_underline">True</property> 1733 <property name="use_underline">True</property>
1734 <property name="use_stock">True</property>
1851 <child> 1735 <child>
1852 <widget class="GtkMenu" id="createNamespace_menu"> 1736 <widget class="GtkMenu" id="createNamespace_menu">
1853 <child> 1737 <child>
@@ -1868,20 +1752,14 @@ This release fixes downloads of files from directories. The previous version ha
1868 </child> 1752 </child>
1869 </widget> 1753 </widget>
1870 </child> 1754 </child>
1871 <child internal-child="image">
1872 <widget class="GtkImage" id="image62">
1873 <property name="visible">True</property>
1874 <property name="stock">gtk-new</property>
1875 <property name="icon_size">1</property>
1876 </widget>
1877 </child>
1878 </widget> 1755 </widget>
1879 </child> 1756 </child>
1880 <child> 1757 <child>
1881 <widget class="GtkImageMenuItem" id="delete1"> 1758 <widget class="GtkImageMenuItem" id="delete1">
1882 <property name="visible">True</property> 1759 <property name="visible">True</property>
1883 <property name="label" translatable="yes">D_elete</property> 1760 <property name="label" translatable="yes">gtk-delete</property>
1884 <property name="use_underline">True</property> 1761 <property name="use_underline">True</property>
1762 <property name="use_stock">True</property>
1885 <child> 1763 <child>
1886 <widget class="GtkMenu" id="delete1_menu"> 1764 <widget class="GtkMenu" id="delete1_menu">
1887 <child> 1765 <child>
@@ -1906,13 +1784,6 @@ This release fixes downloads of files from directories. The previous version ha
1906 </child> 1784 </child>
1907 </widget> 1785 </widget>
1908 </child> 1786 </child>
1909 <child internal-child="image">
1910 <widget class="GtkImage" id="image63">
1911 <property name="visible">True</property>
1912 <property name="stock">gtk-delete</property>
1913 <property name="icon_size">1</property>
1914 </widget>
1915 </child>
1916 </widget> 1787 </widget>
1917 </child> 1788 </child>
1918 </widget> 1789 </widget>
@@ -3008,6 +2879,67 @@ Press ENTER to add the data.</atkproperty>
3008 </packing> 2879 </packing>
3009 </child> 2880 </child>
3010 <child> 2881 <child>
2882 <widget class="GtkButton" id="searchPauseButton">
2883 <property name="visible">True</property>
2884 <property name="can_focus">True</property>
2885 <property name="receives_default">True</property>
2886 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2887 <property name="tooltip_text">Pause the search</property>
2888 <property name="tooltip" translatable="yes">Pause the search</property>
2889 <property name="label" translatable="yes">gtk-media-pause</property>
2890 <property name="use_stock">True</property>
2891 <property name="response_id">0</property>
2892 <signal name="clicked" handler="on_searchPauseButton_clicked_" object="searchPageScrolledWindow"/>
2893 </widget>
2894 <packing>
2895 <property name="expand">False</property>
2896 <property name="fill">False</property>
2897 <property name="position">7</property>
2898 </packing>
2899 </child>
2900 <child>
2901 <widget class="GtkButton" id="searchResumeButton">
2902 <property name="can_focus">True</property>
2903 <property name="receives_default">True</property>
2904 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2905 <property name="tooltip_text">Resume the search</property>
2906 <property name="tooltip" translatable="yes">Resume the search</property>
2907 <property name="response_id">0</property>
2908 <signal name="clicked" handler="on_searchResumeButton_clicked_" object="searchPageScrolledWindow"/>
2909 <child>
2910 <widget class="GtkHBox" id="hbox3">
2911 <property name="visible">True</property>
2912 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2913 <child>
2914 <widget class="GtkImage" id="resumeButtonImage">
2915 <property name="visible">True</property>
2916 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2917 <property name="stock">gtk-redo</property>
2918 </widget>
2919 </child>
2920 <child>
2921 <widget class="GtkLabel" id="resumeButtonLabel">
2922 <property name="visible">True</property>
2923 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2924 <property name="label" translatable="yes">_Resume</property>
2925 <property name="use_underline">True</property>
2926 </widget>
2927 <packing>
2928 <property name="expand">False</property>
2929 <property name="fill">False</property>
2930 <property name="position">1</property>
2931 </packing>
2932 </child>
2933 </widget>
2934 </child>
2935 </widget>
2936 <packing>
2937 <property name="expand">False</property>
2938 <property name="fill">False</property>
2939 <property name="position">8</property>
2940 </packing>
2941 </child>
2942 <child>
3011 <widget class="GtkButton" id="searchCancelButton"> 2943 <widget class="GtkButton" id="searchCancelButton">
3012 <property name="visible">True</property> 2944 <property name="visible">True</property>
3013 <property name="can_focus">True</property> 2945 <property name="can_focus">True</property>
@@ -3021,7 +2953,7 @@ Press ENTER to add the data.</atkproperty>
3021 <packing> 2953 <packing>
3022 <property name="expand">False</property> 2954 <property name="expand">False</property>
3023 <property name="fill">False</property> 2955 <property name="fill">False</property>
3024 <property name="position">7</property> 2956 <property name="position">9</property>
3025 </packing> 2957 </packing>
3026 </child> 2958 </child>
3027 <child> 2959 <child>
@@ -3038,7 +2970,7 @@ Press ENTER to add the data.</atkproperty>
3038 <packing> 2970 <packing>
3039 <property name="expand">False</property> 2971 <property name="expand">False</property>
3040 <property name="fill">False</property> 2972 <property name="fill">False</property>
3041 <property name="position">8</property> 2973 <property name="position">10</property>
3042 </packing> 2974 </packing>
3043 </child> 2975 </child>
3044 </widget> 2976 </widget>
@@ -3287,7 +3219,7 @@ Press ENTER to add the data.</atkproperty>
3287 <property name="tooltip" translatable="yes">The gnunet-gtk about dialog</property> 3219 <property name="tooltip" translatable="yes">The gnunet-gtk about dialog</property>
3288 <property name="border_width">5</property> 3220 <property name="border_width">5</property>
3289 <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> 3221 <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
3290 <property name="copyright" translatable="yes">(C) 2001-2007 Christian Grothoff (and other contributing authors)</property> 3222 <property name="copyright" translatable="yes">(C) 2001-2008 Christian Grothoff (and other contributing authors)</property>
3291 <property name="comments" translatable="yes">https://gnunet.org/</property> 3223 <property name="comments" translatable="yes">https://gnunet.org/</property>
3292 <property name="website">http://www.gnu.org/software/gnunet/</property> 3224 <property name="website">http://www.gnu.org/software/gnunet/</property>
3293 <property name="website_label" translatable="yes">GNUnet Website</property> 3225 <property name="website_label" translatable="yes">GNUnet Website</property>
@@ -4970,9 +4902,9 @@ Alex Jones &lt;alexrjones@ntlworld.com&gt;</property>
4970 <property name="modal">True</property> 4902 <property name="modal">True</property>
4971 <property name="icon_name">gtk-save-as</property> 4903 <property name="icon_name">gtk-save-as</property>
4972 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> 4904 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4973 <property name="do_overwrite_confirmation">True</property>
4974 <property name="show_hidden">True</property>
4975 <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property> 4905 <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
4906 <property name="show_hidden">True</property>
4907 <property name="do_overwrite_confirmation">True</property>
4976 <child internal-child="vbox"> 4908 <child internal-child="vbox">
4977 <widget class="GtkVBox" id="dialog-vbox7"> 4909 <widget class="GtkVBox" id="dialog-vbox7">
4978 <property name="visible">True</property> 4910 <property name="visible">True</property>
diff --git a/src/plugins/daemon/daemon.c b/src/plugins/daemon/daemon.c
index 721f28bd..304a6cbb 100644
--- a/src/plugins/daemon/daemon.c
+++ b/src/plugins/daemon/daemon.c
@@ -240,18 +240,6 @@ doUpdateMenus (void *arg)
240 return NULL; 240 return NULL;
241} 241}
242 242
243static int
244statsProcessor (const char *optName, unsigned long long value, void *data)
245{
246 unsigned long long * ret = data;
247
248 if (0 == strcmp ("# of connected peers",
249 optName))
250 *ret = value;
251 return GNUNET_OK;
252}
253
254
255static void 243static void
256cronCheckDaemon (void *dummy) 244cronCheckDaemon (void *dummy)
257{ 245{
diff --git a/src/plugins/fs/fs.c b/src/plugins/fs/fs.c
index 1eda8a50..4fea764b 100644
--- a/src/plugins/fs/fs.c
+++ b/src/plugins/fs/fs.c
@@ -145,7 +145,6 @@ saveEventProcessor (void *cls)
145 fs_search_aborted (event->data.SearchAborted.sc.cctx); 145 fs_search_aborted (event->data.SearchAborted.sc.cctx);
146 break; 146 break;
147 case GNUNET_FSUI_search_completed: 147 case GNUNET_FSUI_search_completed:
148 // FIXME...
149 fs_search_aborted (event->data.SearchCompleted.sc.cctx); 148 fs_search_aborted (event->data.SearchCompleted.sc.cctx);
150 break; 149 break;
151 case GNUNET_FSUI_search_suspended: 150 case GNUNET_FSUI_search_suspended:
diff --git a/src/plugins/fs/fs.h b/src/plugins/fs/fs.h
index 9a00a24f..1bfadc42 100644
--- a/src/plugins/fs/fs.h
+++ b/src/plugins/fs/fs.h
@@ -210,6 +210,11 @@ typedef struct SL
210 struct GNUNET_FSUI_SearchList *fsui_list; 210 struct GNUNET_FSUI_SearchList *fsui_list;
211 211
212 /** 212 /**
213 * Maximum runtime for the search.
214 */
215 GNUNET_CronTime max_delay;
216
217 /**
213 * Number of results received so far. 218 * Number of results received so far.
214 */ 219 */
215 unsigned int resultsReceived; 220 unsigned int resultsReceived;
@@ -224,6 +229,21 @@ typedef struct SL
224 */ 229 */
225 unsigned int last_y; 230 unsigned int last_y;
226 231
232 /**
233 * Did the user just ask to pause the search?
234 */
235 int is_paused;
236
237 /**
238 * Desired anonymity level.
239 */
240 unsigned int anonymityLevel;
241
242 /**
243 * Maximum number of results.
244 */
245 unsigned int max_results;
246
227} SearchList; 247} SearchList;
228 248
229 249
diff --git a/src/plugins/fs/search.c b/src/plugins/fs/search.c
index ea21c639..a78dd430 100644
--- a/src/plugins/fs/search.c
+++ b/src/plugins/fs/search.c
@@ -1,6 +1,6 @@
1/* 1/*
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 (C) 2005, 2006, 2007 Christian Grothoff (and other contributing authors) 3 (C) 2005, 2006, 2007, 2008 Christian Grothoff (and other contributing authors)
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published 6 it under the terms of the GNU General Public License as published
@@ -164,6 +164,7 @@ fs_search_result_received (SearchList * searchContext,
164 GtkTreeStore *model; 164 GtkTreeStore *model;
165 GtkTreeIter iter; 165 GtkTreeIter iter;
166 enum GNUNET_URITRACK_STATE state; 166 enum GNUNET_URITRACK_STATE state;
167 struct GNUNET_ECRS_URI * have;
167 168
168 state = GNUNET_URITRACK_get_state (ectx, cfg, info->uri); 169 state = GNUNET_URITRACK_get_state (ectx, cfg, info->uri);
169 if ((state & (GNUNET_URITRACK_INSERTED | 170 if ((state & (GNUNET_URITRACK_INSERTED |
@@ -174,6 +175,20 @@ fs_search_result_received (SearchList * searchContext,
174 GNUNET_YES))) 175 GNUNET_YES)))
175 return; 176 return;
176 model = GTK_TREE_STORE (gtk_tree_view_get_model (searchContext->treeview)); 177 model = GTK_TREE_STORE (gtk_tree_view_get_model (searchContext->treeview));
178 /* Check that the entry does not already exist (for resume!) */
179 if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter))
180 {
181 do
182 {
183 have = NULL;
184 gtk_tree_model_get (GTK_TREE_MODEL(model),
185 &iter, SEARCH_URI, &have, -1);
186 if ( (have != NULL) &&
187 (GNUNET_ECRS_uri_test_equal(have, uri)) )
188 return; /* duplicate */
189 }
190 while (gtk_tree_model_iter_next (GTK_TREE_MODEL(model), &iter));
191 }
177 gtk_tree_store_append (model, &iter, NULL); 192 gtk_tree_store_append (model, &iter, NULL);
178 addEntryToSearchTree (searchContext, NULL, info, &iter); 193 addEntryToSearchTree (searchContext, NULL, info, &iter);
179 searchContext->resultsReceived++; 194 searchContext->resultsReceived++;
@@ -384,6 +399,28 @@ fs_search_started (struct GNUNET_FSUI_SearchList * fsui_list,
384 int col; 399 int col;
385 int i; 400 int i;
386 401
402 /* check that search does not already exist
403 with fsui_list == NULL;
404 (and if so, hijack!) */
405 list = search_head;
406 while (list != NULL)
407 {
408 if ( (list->fsui_list == NULL) &&
409 (list->uri != NULL) &&
410 (GNUNET_ECRS_uri_test_equal(list->uri,
411 uri)) )
412 {
413 list->fsui_list = fsui_list;
414 for (i = 0; i < resultCount; i++)
415 fs_search_result_received (list, &results[i], uri);
416 if (resultCount == 0) /* otherwise already done! */
417 updateSearchSummary (list);
418 return list;
419 }
420 list = list->next;
421 }
422
423 /* build new entry */
387 description = GNUNET_ECRS_uri_to_string (uri); 424 description = GNUNET_ECRS_uri_to_string (uri);
388 if (description == NULL) 425 if (description == NULL)
389 { 426 {
@@ -407,6 +444,8 @@ fs_search_started (struct GNUNET_FSUI_SearchList * fsui_list,
407 list->uri = GNUNET_ECRS_uri_duplicate (uri); 444 list->uri = GNUNET_ECRS_uri_duplicate (uri);
408 list->fsui_list = fsui_list; 445 list->fsui_list = fsui_list;
409 list->next = search_head; 446 list->next = search_head;
447 list->anonymityLevel = anonymityLevel;
448
410 search_head = list; 449 search_head = list;
411 list->searchXML 450 list->searchXML
412 = 451 =
@@ -604,7 +643,12 @@ freeIterSubtree (GtkTreeModel * tree, GtkTreeIter * iter)
604void 643void
605fs_search_aborted (SearchList * list) 644fs_search_aborted (SearchList * list)
606{ 645{
607 /* FIXME: show aborted status somehow! */ 646 gtk_widget_show(glade_xml_get_widget(list->searchXML,
647 "searchResumeButton"));
648 gtk_widget_show(glade_xml_get_widget(list->searchXML,
649 "searchAbortButton"));
650 gtk_widget_show(glade_xml_get_widget(list->searchXML,
651 "searchPauseButton"));
608} 652}
609 653
610/** 654/**
@@ -622,6 +666,14 @@ fs_search_stopped (SearchList * list)
622 int index; 666 int index;
623 int i; 667 int i;
624 668
669 if (list->is_paused == GNUNET_YES)
670 {
671 /* if this was just a request to pause,
672 then simply ignore the FS-stopped event */
673 list->fsui_list = NULL;
674 list->is_paused = GNUNET_NO;
675 return;
676 }
625 /* remove from linked list */ 677 /* remove from linked list */
626 if (search_head == list) 678 if (search_head == list)
627 { 679 {
@@ -701,8 +753,6 @@ on_fssearchKeywordComboBoxEntry_changed_fs (gpointer dummy2,
701typedef struct 753typedef struct
702{ 754{
703 unsigned int anonymity; 755 unsigned int anonymity;
704 unsigned int max;
705 GNUNET_CronTime delay;
706 struct GNUNET_ECRS_URI *uri; 756 struct GNUNET_ECRS_URI *uri;
707} FSSS; 757} FSSS;
708 758
@@ -710,7 +760,7 @@ static void *
710search_start_helper (void *cls) 760search_start_helper (void *cls)
711{ 761{
712 FSSS *fsss = cls; 762 FSSS *fsss = cls;
713 GNUNET_FSUI_search_start (ctx, fsss->anonymity, fsss->max, fsss->delay, 763 GNUNET_FSUI_search_start (ctx, fsss->anonymity,
714 fsss->uri); 764 fsss->uri);
715 return NULL; 765 return NULL;
716} 766}
@@ -846,13 +896,7 @@ on_fssearchbutton_clicked_fs (gpointer dummy2, GtkWidget * searchButton)
846 list = list->next; 896 list = list->next;
847 } 897 }
848 fsss.anonymity = getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (), 898 fsss.anonymity = getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
849 "searchAnonymitySelectionSpinButton"); 899 "searchAnonymitySelectionSpinButton");
850 fsss.max =
851 getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
852 "maxResultsSpinButton");
853 fsss.delay =
854 getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
855 "searchDelaySpinButton") * GNUNET_CRON_SECONDS;
856 GNUNET_GTK_run_with_save_calls (search_start_helper, &fsss); 900 GNUNET_GTK_run_with_save_calls (search_start_helper, &fsss);
857 GNUNET_ECRS_uri_destroy (fsss.uri); 901 GNUNET_ECRS_uri_destroy (fsss.uri);
858} 902}
@@ -897,7 +941,8 @@ on_closeSearchButton_clicked_fs (GtkWidget * searchPage,
897 GNUNET_GE_ASSERT (ectx, list != NULL); 941 GNUNET_GE_ASSERT (ectx, list != NULL);
898 if (list->fsui_list == NULL) 942 if (list->fsui_list == NULL)
899 { 943 {
900 /* open directory - close directly */ 944 /* open directory or paused search;
945 close directly */
901 fs_search_stopped (list); 946 fs_search_stopped (list);
902 } 947 }
903 else 948 else
@@ -911,12 +956,70 @@ on_closeSearchButton_clicked_fs (GtkWidget * searchPage,
911 } 956 }
912} 957}
913 958
959
960/**
961 * The abort button in the search summary was clicked.
962 */
963void
964on_searchPauseButton_clicked_fs (GtkWidget * searchPage,
965 GtkWidget * pauseButton)
966{
967 SearchList *list;
968 struct FCBC fcbc;
969
970 list = search_head;
971 while (list != NULL)
972 {
973 if (list->searchpage == searchPage)
974 break;
975 list = list->next;
976 }
977 GNUNET_GE_ASSERT (ectx, list != NULL);
978 gtk_widget_hide(pauseButton);
979 gtk_widget_show(glade_xml_get_widget(list->searchXML,
980 "searchResumeButton"));
981 if (list->fsui_list != NULL)
982 {
983 list->is_paused = GNUNET_YES;
984 fcbc.method = &GNUNET_FSUI_search_stop;
985 fcbc.argument = list->fsui_list;
986 GNUNET_GTK_run_with_save_calls (&fsui_callback, &fcbc);
987 }
988}
989
990/**
991 * The abort button in the search summary was clicked.
992 */
993void
994on_searchResumeButton_clicked_fs (GtkWidget * searchPage,
995 GtkWidget * resumeButton)
996{
997 FSSS fsss;
998 SearchList *list;
999
1000 list = search_head;
1001 while (list != NULL)
1002 {
1003 if (list->searchpage == searchPage)
1004 break;
1005 list = list->next;
1006 }
1007 GNUNET_GE_ASSERT (ectx, list != NULL);
1008 gtk_widget_hide(resumeButton);
1009 gtk_widget_show(glade_xml_get_widget(list->searchXML,
1010 "searchPauseButton"));
1011 fsss.anonymity = getSpinButtonValue (GNUNET_GTK_get_main_glade_XML (),
1012 "searchAnonymitySelectionSpinButton");
1013 fsss.uri = list->uri;
1014 GNUNET_GTK_run_with_save_calls (search_start_helper, &fsss);
1015}
1016
914/** 1017/**
915 * The abort button was clicked. Abort the search. 1018 * The abort button was clicked. Abort the search.
916 */ 1019 */
917void 1020void
918on_abortSearchButton_clicked_fs (GtkWidget * searchPage, 1021on_abortSearchButton_clicked_fs (GtkWidget * searchPage,
919 GtkWidget * closeButton) 1022 GtkWidget * abortButton)
920{ 1023{
921 SearchList *list; 1024 SearchList *list;
922 struct FCBC fcbc; 1025 struct FCBC fcbc;
@@ -929,6 +1032,7 @@ on_abortSearchButton_clicked_fs (GtkWidget * searchPage,
929 list = list->next; 1032 list = list->next;
930 } 1033 }
931 GNUNET_GE_ASSERT (ectx, list != NULL); 1034 GNUNET_GE_ASSERT (ectx, list != NULL);
1035 gtk_widget_hide(abortButton);
932 if (list->fsui_list != NULL) 1036 if (list->fsui_list != NULL)
933 { 1037 {
934 fcbc.method = &GNUNET_FSUI_search_abort; 1038 fcbc.method = &GNUNET_FSUI_search_abort;
@@ -1007,4 +1111,5 @@ on_abortSearchSummaryButton_clicked_fs (GtkWidget * treeview,
1007 GNUNET_GTK_tree_selection_selected_foreach (selection, &abortSearch, NULL); 1111 GNUNET_GTK_tree_selection_selected_foreach (selection, &abortSearch, NULL);
1008} 1112}
1009 1113
1114
1010/* end of search.c */ 1115/* end of search.c */
diff --git a/src/plugins/stats/functions.c b/src/plugins/stats/functions.c
index f566f45e..f7faaf0e 100644
--- a/src/plugins/stats/functions.c
+++ b/src/plugins/stats/functions.c
@@ -1,6 +1,6 @@
1/* 1/*
2 This file is part of GNUnet 2 This file is part of GNUnet
3 (C) 2004, 2005, 2006 Christian Grothoff (and other contributing authors) 3 (C) 2004, 2005, 2006, 2008 Christian Grothoff (and other contributing authors)
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published 6 it under the terms of the GNU General Public License as published
@@ -39,9 +39,9 @@ static struct GNUNET_Mutex *lock;
39 39
40static long connectionGoal; 40static long connectionGoal;
41 41
42static long long banddown; 42static unsigned long long banddown;
43 43
44static long long bandup; 44static unsigned long long bandup;
45 45
46static struct GNUNET_GE_Context *ectx; 46static struct GNUNET_GE_Context *ectx;
47 47
@@ -50,8 +50,8 @@ static struct GNUNET_GC_Configuration *cfg;
50static struct GNUNET_CronManager *cron; 50static struct GNUNET_CronManager *cron;
51 51
52static int 52static int
53getStatValue (long long *value, 53getStatValue (unsigned long long *value,
54 long long *lvalue, 54 unsigned long long *lvalue,
55 GNUNET_CronTime * dtime, const char *optName, int monotone) 55 GNUNET_CronTime * dtime, const char *optName, int monotone)
56{ 56{
57 unsigned int i; 57 unsigned int i;
@@ -120,8 +120,8 @@ updateConnectionGoal (void *unused)
120static int 120static int
121getConnectedNodesStat (const void *closure, gfloat ** data) 121getConnectedNodesStat (const void *closure, gfloat ** data)
122{ 122{
123 long long val; 123 unsigned long long val;
124 124
125 if (connectionGoal == 0) 125 if (connectionGoal == 0)
126 return GNUNET_SYSERR; 126 return GNUNET_SYSERR;
127 if (GNUNET_OK != 127 if (GNUNET_OK !=
@@ -134,10 +134,10 @@ getConnectedNodesStat (const void *closure, gfloat ** data)
134static int 134static int
135getLoadStat (const void *closure, gfloat ** data) 135getLoadStat (const void *closure, gfloat ** data)
136{ 136{
137 long long valc; 137 unsigned long long valc;
138 long long vali; 138 unsigned long long vali;
139 long long valu; 139 unsigned long long valu;
140 long long vald; 140 unsigned long long vald;
141 141
142 if (GNUNET_OK != 142 if (GNUNET_OK !=
143 getStatValue (&valc, NULL, NULL, "% of allowed cpu load", GNUNET_NO)) 143 getStatValue (&valc, NULL, NULL, "% of allowed cpu load", GNUNET_NO))
@@ -164,8 +164,8 @@ getLoadStat (const void *closure, gfloat ** data)
164static int 164static int
165getQuotaStat (const void *closure, gfloat ** data) 165getQuotaStat (const void *closure, gfloat ** data)
166{ 166{
167 long long allowed; 167 unsigned long long allowed;
168 long long have; 168 unsigned long long have;
169 169
170 if (GNUNET_OK != getStatValue (&allowed, 170 if (GNUNET_OK != getStatValue (&allowed,
171 NULL, NULL, "# bytes allowed in datastore", 171 NULL, NULL, "# bytes allowed in datastore",
@@ -183,18 +183,18 @@ getQuotaStat (const void *closure, gfloat ** data)
183static int 183static int
184getTrafficRecvStats (const void *closure, gfloat ** data) 184getTrafficRecvStats (const void *closure, gfloat ** data)
185{ 185{
186 long long total; 186 unsigned long long total;
187 long long noise; 187 unsigned long long noise;
188 long long content; 188 unsigned long long content;
189 long long queries; 189 unsigned long long queries;
190 long long hellos; 190 unsigned long long hellos;
191 long long rlimit; 191 unsigned long long rlimit;
192 long long ltotal; 192 unsigned long long ltotal;
193 long long lnoise; 193 unsigned long long lnoise;
194 long long lcontent; 194 unsigned long long lcontent;
195 long long lqueries; 195 unsigned long long lqueries;
196 long long lhellos; 196 unsigned long long lhellos;
197 long long lrlimit; 197 unsigned long long lrlimit;
198 GNUNET_CronTime dtime; 198 GNUNET_CronTime dtime;
199 char *buffer; 199 char *buffer;
200 200
@@ -272,18 +272,18 @@ getTrafficRecvStats (const void *closure, gfloat ** data)
272static int 272static int
273getTrafficSendStats (const void *closure, gfloat ** data) 273getTrafficSendStats (const void *closure, gfloat ** data)
274{ 274{
275 long long total; 275 unsigned long long total;
276 long long noise; 276 unsigned long long noise;
277 long long content; 277 unsigned long long content;
278 long long queries; 278 unsigned long long queries;
279 long long hellos; 279 unsigned long long hellos;
280 long long slimit; 280 unsigned long long slimit;
281 long long ltotal; 281 unsigned long long ltotal;
282 long long lnoise; 282 unsigned long long lnoise;
283 long long lcontent; 283 unsigned long long lcontent;
284 long long lqueries; 284 unsigned long long lqueries;
285 long long lhellos; 285 unsigned long long lhellos;
286 long long lslimit; 286 unsigned long long lslimit;
287 GNUNET_CronTime dtime; 287 GNUNET_CronTime dtime;
288 char *buffer; 288 char *buffer;
289 289
@@ -365,12 +365,12 @@ getEffectivenessStats (const void *closure, gfloat ** data)
365 static GNUNET_CronTime last; 365 static GNUNET_CronTime last;
366 static double lastdata; 366 static double lastdata;
367 static double lastavg; 367 static double lastavg;
368 long long total; 368 unsigned long long total;
369 long long success; 369 unsigned long long success;
370 long long local; 370 unsigned long long local;
371 long long ltotal; 371 unsigned long long ltotal;
372 long long lsuccess; 372 unsigned long long lsuccess;
373 long long llocal; 373 unsigned long long llocal;
374 GNUNET_CronTime now; 374 GNUNET_CronTime now;
375 375
376 now = GNUNET_get_time (); 376 now = GNUNET_get_time ();
@@ -474,7 +474,7 @@ updateDaemonStatus (void *delta)
474{ 474{
475 static gboolean once = TRUE; 475 static gboolean once = TRUE;
476 static int last_status = -5; 476 static int last_status = -5;
477 long long connected_peers; 477 unsigned long long connected_peers;
478 char *label; 478 char *label;
479 static GtkWidget *statusConnexionsLabel; 479 static GtkWidget *statusConnexionsLabel;
480 static GtkWidget *statusConnexionsPic; 480 static GtkWidget *statusConnexionsPic;
@@ -522,8 +522,8 @@ updateDaemonStatus (void *delta)
522 } 522 }
523 if (GNUNET_OK == GNUNET_test_daemon_running (ectx, cfg)) 523 if (GNUNET_OK == GNUNET_test_daemon_running (ectx, cfg))
524 { 524 {
525 if (GNUNET_OK != getStatValue (&connected_peers, (GNUNET_CronTime *) delta, 525 if (GNUNET_OK != getStatValue (&connected_peers, (GNUNET_CronTime *) delta,
526 NULL, "# of connected peers", GNUNET_NO)) 526 NULL, "# of connected peers", GNUNET_NO))
527 { 527 {
528 if (last_status != -1) 528 if (last_status != -1)
529 { 529 {
diff --git a/src/plugins/stats/functions.h b/src/plugins/stats/functions.h
index 6c3b2c24..6d05ce26 100644
--- a/src/plugins/stats/functions.h
+++ b/src/plugins/stats/functions.h
@@ -27,8 +27,8 @@
27typedef struct 27typedef struct
28{ 28{
29 char *statName; 29 char *statName;
30 long long value; 30 unsigned long long value;
31 long long lvalue; 31 unsigned long long lvalue;
32 GNUNET_CronTime delta; 32 GNUNET_CronTime delta;
33} StatPair; 33} StatPair;
34 34