aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2008-06-02 02:01:06 +0000
committerChristian Grothoff <christian@grothoff.org>2008-06-02 02:01:06 +0000
commit17efccce0ea04d7f28d1ff9d7f9baea837b215b6 (patch)
tree5b5bf568438fb99b77d62ef2aff20fecabfea9d7
parent542a20b6e8b84060a3a77f6f7df7d8331e4a0268 (diff)
downloadgnunet-gtk-17efccce0ea04d7f28d1ff9d7f9baea837b215b6.tar.gz
gnunet-gtk-17efccce0ea04d7f28d1ff9d7f9baea837b215b6.zip
getting minimal chat to work with new API
-rw-r--r--TODO7
-rw-r--r--gnunet-gtk.glade850
-rw-r--r--src/plugins/chat/chat.c24
3 files changed, 444 insertions, 437 deletions
diff --git a/TODO b/TODO
index 6960becd..af1cdfed 100644
--- a/TODO
+++ b/TODO
@@ -5,12 +5,17 @@ Annotations:
5 5
60.8.0pre1 (new core features): 60.8.0pre1 (new core features):
7- adapt to new chat API 7- adapt to new chat API
8 + show chatroom members
9 + clean up ../fs/meta.* includes
8- test new pseudonym/namespace APIs 10- test new pseudonym/namespace APIs
9- show chatroom members 11- test recursive downloads (fix mmap error for dirs!)
12- test uploads
13- test recursive uploads (Mantis #1320!)
10 14
110.8.0 (new core features): 150.8.0 (new core features):
12- better uritracker support (currently flaky?) 16- better uritracker support (currently flaky?)
13- much more testing!!! 17- much more testing!!!
18 + find & fix GTK assertion errors
14- chat improvements: 19- chat improvements:
15 * add various options for sending messages 20 * add various options for sending messages
16 * show chatroom member metadata (right-click pop-up) 21 * show chatroom member metadata (right-click pop-up)
diff --git a/gnunet-gtk.glade b/gnunet-gtk.glade
index c5b2a500..5467c956 100644
--- a/gnunet-gtk.glade
+++ b/gnunet-gtk.glade
@@ -569,43 +569,115 @@ This release adds context-menus (right-click) which allow copying the URI of sea
569 <placeholder/> 569 <placeholder/>
570 </child> 570 </child>
571 <child> 571 <child>
572 <widget class="GtkVBox" id="vbox21"> 572 <widget class="GtkScrolledWindow" id="scrolledwindow9">
573 <property name="visible">True</property>
574 <property name="can_focus">False</property>
575 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
576 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
577 <property name="shadow_type">GTK_SHADOW_IN</property>
578 <child>
579 <widget class="GtkTreeView" id="activeSearchesSummary">
580 <property name="visible">True</property>
581 <property name="can_focus">True</property>
582 <property name="reorderable">True</property>
583 <property name="rules_hint">True</property>
584 </widget>
585 </child>
586 </widget>
587 <packing>
588 <property name="top_attach">1</property>
589 <property name="bottom_attach">2</property>
590 </packing>
591 </child>
592 <child>
593 <widget class="GtkLabel" id="label16">
594 <property name="visible">True</property>
595 <property name="xalign">0</property>
596 <property name="yalign">1</property>
597 <property name="xpad">5</property>
598 <property name="ypad">5</property>
599 <property name="label" translatable="yes">&lt;b&gt;Search Overview&lt;/b&gt;</property>
600 <property name="use_markup">True</property>
601 </widget>
602 <packing>
603 <property name="right_attach">2</property>
604 <property name="y_options">GTK_FILL</property>
605 </packing>
606 </child>
607 <child>
608 <widget class="GtkScrolledWindow" id="scrolledwindow10">
609 <property name="visible">True</property>
610 <property name="can_focus">True</property>
611 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
612 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
613 <property name="shadow_type">GTK_SHADOW_IN</property>
614 <child>
615 <widget class="GtkTreeView" id="activeDownloadsList">
616 <property name="visible">True</property>
617 <property name="can_focus">True</property>
618 <property name="reorderable">True</property>
619 <property name="rules_hint">True</property>
620 </widget>
621 </child>
622 </widget>
623 <packing>
624 <property name="top_attach">3</property>
625 <property name="bottom_attach">4</property>
626 </packing>
627 </child>
628 <child>
629 <widget class="GtkVBox" id="vbox8">
573 <property name="visible">True</property> 630 <property name="visible">True</property>
574 <property name="homogeneous">True</property> 631 <property name="homogeneous">True</property>
575 <child> 632 <child>
576 <widget class="GtkButton" id="stopUploadButton"> 633 <widget class="GtkButton" id="abortDownloadButton">
577 <property name="visible">True</property> 634 <property name="visible">True</property>
578 <property name="sensitive">False</property> 635 <property name="sensitive">False</property>
579 <property name="can_focus">True</property> 636 <property name="can_focus">True</property>
580 <property name="tooltip" translatable="yes">Cancel the selected upload (and all sub-uploads) and remove them from the list</property> 637 <property name="tooltip" translatable="yes">Cancel the selected download (and all sub-downloads) and delete incomplete downloads</property>
638 <property name="label">gtk-delete</property>
639 <property name="use_stock">True</property>
640 <property name="response_id">0</property>
641 <signal name="clicked" handler="on_abortDownloadButton_clicked_"/>
642 </widget>
643 <packing>
644 <property name="fill">False</property>
645 </packing>
646 </child>
647 <child>
648 <widget class="GtkButton" id="stopDownloadButton">
649 <property name="visible">True</property>
650 <property name="sensitive">False</property>
651 <property name="can_focus">True</property>
652 <property name="tooltip" translatable="yes">Stop the selected download (and all sub-downloads) and remove them from the list. This will NOT cause the deletion of files from incomplete downloads.</property>
581 <property name="label">gtk-stop</property> 653 <property name="label">gtk-stop</property>
582 <property name="use_stock">True</property> 654 <property name="use_stock">True</property>
583 <property name="response_id">0</property> 655 <property name="response_id">0</property>
584 <signal name="clicked" handler="on_stopUploadButton_clicked_" object="activeUploadsList"/> 656 <signal name="clicked" handler="on_stopDownloadButton_clicked_"/>
585 </widget> 657 </widget>
586 <packing> 658 <packing>
587 <property name="expand">False</property>
588 <property name="fill">False</property> 659 <property name="fill">False</property>
660 <property name="position">1</property>
589 </packing> 661 </packing>
590 </child> 662 </child>
591 <child> 663 <child>
592 <widget class="GtkButton" id="clearCompletedUploadsButton"> 664 <widget class="GtkButton" id="clearCompletedDownloadsButton">
593 <property name="visible">True</property> 665 <property name="visible">True</property>
594 <property name="can_focus">True</property> 666 <property name="can_focus">True</property>
595 <property name="tooltip" translatable="yes">Clear completed uploads from the list</property> 667 <property name="tooltip" translatable="yes">Clear completed downloads from the list</property>
596 <property name="response_id">0</property> 668 <property name="response_id">0</property>
597 <signal name="clicked" handler="on_clearCompletedUploadsButton_clicked_"/> 669 <signal name="clicked" handler="on_clearCompletedDownloadsButton_clicked_"/>
598 <child> 670 <child>
599 <widget class="GtkAlignment" id="alignment4"> 671 <widget class="GtkAlignment" id="alignment3">
600 <property name="visible">True</property> 672 <property name="visible">True</property>
601 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 673 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
602 <property name="xscale">0</property> 674 <property name="xscale">0</property>
603 <child> 675 <child>
604 <widget class="GtkHBox" id="hbox5"> 676 <widget class="GtkHBox" id="hbox4">
605 <property name="visible">True</property> 677 <property name="visible">True</property>
606 <property name="spacing">2</property> 678 <property name="spacing">2</property>
607 <child> 679 <child>
608 <widget class="GtkImage" id="image4"> 680 <widget class="GtkImage" id="image3">
609 <property name="visible">True</property> 681 <property name="visible">True</property>
610 <property name="stock">gtk-clear</property> 682 <property name="stock">gtk-clear</property>
611 </widget> 683 </widget>
@@ -615,7 +687,7 @@ This release adds context-menus (right-click) which allow copying the URI of sea
615 </packing> 687 </packing>
616 </child> 688 </child>
617 <child> 689 <child>
618 <widget class="GtkLabel" id="label2"> 690 <widget class="GtkLabel" id="label5">
619 <property name="visible">True</property> 691 <property name="visible">True</property>
620 <property name="label" translatable="yes">_Clean</property> 692 <property name="label" translatable="yes">_Clean</property>
621 <property name="use_underline">True</property> 693 <property name="use_underline">True</property>
@@ -632,107 +704,22 @@ This release adds context-menus (right-click) which allow copying the URI of sea
632 </child> 704 </child>
633 </widget> 705 </widget>
634 <packing> 706 <packing>
707 <property name="expand">False</property>
635 <property name="fill">False</property> 708 <property name="fill">False</property>
636 <property name="position">1</property> 709 <property name="position">2</property>
637 </packing> 710 </packing>
638 </child> 711 </child>
639 </widget> 712 </widget>
640 <packing> 713 <packing>
641 <property name="left_attach">1</property> 714 <property name="left_attach">1</property>
642 <property name="right_attach">2</property> 715 <property name="right_attach">2</property>
643 <property name="top_attach">6</property> 716 <property name="top_attach">3</property>
644 <property name="bottom_attach">7</property> 717 <property name="bottom_attach">4</property>
645 <property name="x_options">GTK_FILL</property> 718 <property name="x_options">GTK_FILL</property>
646 <property name="x_padding">5</property> 719 <property name="x_padding">5</property>
647 </packing> 720 </packing>
648 </child> 721 </child>
649 <child> 722 <child>
650 <widget class="GtkButton" id="stopSearchButton">
651 <property name="visible">True</property>
652 <property name="sensitive">False</property>
653 <property name="can_focus">True</property>
654 <property name="tooltip" translatable="yes">Cancel the selected search and remove it from the list</property>
655 <property name="border_width">4</property>
656 <property name="label">gtk-stop</property>
657 <property name="use_stock">True</property>
658 <property name="response_id">0</property>
659 <signal name="clicked" handler="on_closeSearchSummaryButton_clicked_" object="activeSearchesSummary"/>
660 </widget>
661 <packing>
662 <property name="left_attach">1</property>
663 <property name="right_attach">2</property>
664 <property name="top_attach">1</property>
665 <property name="bottom_attach">2</property>
666 <property name="x_options">GTK_FILL</property>
667 <property name="y_options"></property>
668 </packing>
669 </child>
670 <child>
671 <widget class="GtkAlignment" id="alignment14">
672 <property name="visible">True</property>
673 <property name="top_padding">5</property>
674 <child>
675 <widget class="GtkLabel" id="label46">
676 <property name="visible">True</property>
677 <property name="xalign">0</property>
678 <property name="xpad">5</property>
679 <property name="ypad">5</property>
680 <property name="label" translatable="yes">&lt;b&gt;Publications&lt;/b&gt;</property>
681 <property name="use_markup">True</property>
682 </widget>
683 </child>
684 </widget>
685 <packing>
686 <property name="right_attach">2</property>
687 <property name="top_attach">5</property>
688 <property name="bottom_attach">6</property>
689 <property name="y_options">GTK_FILL</property>
690 </packing>
691 </child>
692 <child>
693 <widget class="GtkAlignment" id="alignment11">
694 <property name="visible">True</property>
695 <property name="top_padding">5</property>
696 <child>
697 <widget class="GtkLabel" id="label45">
698 <property name="visible">True</property>
699 <property name="xalign">0</property>
700 <property name="xpad">5</property>
701 <property name="ypad">5</property>
702 <property name="label" translatable="yes">&lt;b&gt;Downloads&lt;/b&gt;</property>
703 <property name="use_markup">True</property>
704 </widget>
705 </child>
706 </widget>
707 <packing>
708 <property name="right_attach">2</property>
709 <property name="top_attach">2</property>
710 <property name="bottom_attach">3</property>
711 <property name="y_options">GTK_FILL</property>
712 </packing>
713 </child>
714 <child>
715 <widget class="GtkScrolledWindow" id="scrolledwindow8">
716 <property name="visible">True</property>
717 <property name="can_focus">False</property>
718 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
719 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
720 <property name="shadow_type">GTK_SHADOW_IN</property>
721 <child>
722 <widget class="GtkTreeView" id="activeUploadsList">
723 <property name="visible">True</property>
724 <property name="can_focus">True</property>
725 <property name="reorderable">True</property>
726 <property name="rules_hint">True</property>
727 </widget>
728 </child>
729 </widget>
730 <packing>
731 <property name="top_attach">6</property>
732 <property name="bottom_attach">7</property>
733 </packing>
734 </child>
735 <child>
736 <widget class="GtkHBox" id="hbox1"> 723 <widget class="GtkHBox" id="hbox1">
737 <property name="visible">True</property> 724 <property name="visible">True</property>
738 <child> 725 <child>
@@ -848,58 +835,129 @@ This release adds context-menus (right-click) which allow copying the URI of sea
848 </packing> 835 </packing>
849 </child> 836 </child>
850 <child> 837 <child>
851 <widget class="GtkVBox" id="vbox8"> 838 <widget class="GtkScrolledWindow" id="scrolledwindow8">
852 <property name="visible">True</property> 839 <property name="visible">True</property>
853 <property name="homogeneous">True</property> 840 <property name="can_focus">False</property>
841 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
842 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
843 <property name="shadow_type">GTK_SHADOW_IN</property>
854 <child> 844 <child>
855 <widget class="GtkButton" id="abortDownloadButton"> 845 <widget class="GtkTreeView" id="activeUploadsList">
856 <property name="visible">True</property> 846 <property name="visible">True</property>
857 <property name="sensitive">False</property>
858 <property name="can_focus">True</property> 847 <property name="can_focus">True</property>
859 <property name="tooltip" translatable="yes">Cancel the selected download (and all sub-downloads) and delete incomplete downloads</property> 848 <property name="reorderable">True</property>
860 <property name="label">gtk-delete</property> 849 <property name="rules_hint">True</property>
861 <property name="use_stock">True</property> 850 </widget>
862 <property name="response_id">0</property> 851 </child>
863 <signal name="clicked" handler="on_abortDownloadButton_clicked_"/> 852 </widget>
853 <packing>
854 <property name="top_attach">6</property>
855 <property name="bottom_attach">7</property>
856 </packing>
857 </child>
858 <child>
859 <widget class="GtkAlignment" id="alignment11">
860 <property name="visible">True</property>
861 <property name="top_padding">5</property>
862 <child>
863 <widget class="GtkLabel" id="label45">
864 <property name="visible">True</property>
865 <property name="xalign">0</property>
866 <property name="xpad">5</property>
867 <property name="ypad">5</property>
868 <property name="label" translatable="yes">&lt;b&gt;Downloads&lt;/b&gt;</property>
869 <property name="use_markup">True</property>
864 </widget> 870 </widget>
865 <packing>
866 <property name="fill">False</property>
867 </packing>
868 </child> 871 </child>
872 </widget>
873 <packing>
874 <property name="right_attach">2</property>
875 <property name="top_attach">2</property>
876 <property name="bottom_attach">3</property>
877 <property name="y_options">GTK_FILL</property>
878 </packing>
879 </child>
880 <child>
881 <widget class="GtkAlignment" id="alignment14">
882 <property name="visible">True</property>
883 <property name="top_padding">5</property>
869 <child> 884 <child>
870 <widget class="GtkButton" id="stopDownloadButton"> 885 <widget class="GtkLabel" id="label46">
886 <property name="visible">True</property>
887 <property name="xalign">0</property>
888 <property name="xpad">5</property>
889 <property name="ypad">5</property>
890 <property name="label" translatable="yes">&lt;b&gt;Publications&lt;/b&gt;</property>
891 <property name="use_markup">True</property>
892 </widget>
893 </child>
894 </widget>
895 <packing>
896 <property name="right_attach">2</property>
897 <property name="top_attach">5</property>
898 <property name="bottom_attach">6</property>
899 <property name="y_options">GTK_FILL</property>
900 </packing>
901 </child>
902 <child>
903 <widget class="GtkButton" id="stopSearchButton">
904 <property name="visible">True</property>
905 <property name="sensitive">False</property>
906 <property name="can_focus">True</property>
907 <property name="tooltip" translatable="yes">Cancel the selected search and remove it from the list</property>
908 <property name="border_width">4</property>
909 <property name="label">gtk-stop</property>
910 <property name="use_stock">True</property>
911 <property name="response_id">0</property>
912 <signal name="clicked" handler="on_closeSearchSummaryButton_clicked_" object="activeSearchesSummary"/>
913 </widget>
914 <packing>
915 <property name="left_attach">1</property>
916 <property name="right_attach">2</property>
917 <property name="top_attach">1</property>
918 <property name="bottom_attach">2</property>
919 <property name="x_options">GTK_FILL</property>
920 <property name="y_options"></property>
921 </packing>
922 </child>
923 <child>
924 <widget class="GtkVBox" id="vbox21">
925 <property name="visible">True</property>
926 <property name="homogeneous">True</property>
927 <child>
928 <widget class="GtkButton" id="stopUploadButton">
871 <property name="visible">True</property> 929 <property name="visible">True</property>
872 <property name="sensitive">False</property> 930 <property name="sensitive">False</property>
873 <property name="can_focus">True</property> 931 <property name="can_focus">True</property>
874 <property name="tooltip" translatable="yes">Stop the selected download (and all sub-downloads) and remove them from the list. This will NOT cause the deletion of files from incomplete downloads.</property> 932 <property name="tooltip" translatable="yes">Cancel the selected upload (and all sub-uploads) and remove them from the list</property>
875 <property name="label">gtk-stop</property> 933 <property name="label">gtk-stop</property>
876 <property name="use_stock">True</property> 934 <property name="use_stock">True</property>
877 <property name="response_id">0</property> 935 <property name="response_id">0</property>
878 <signal name="clicked" handler="on_stopDownloadButton_clicked_"/> 936 <signal name="clicked" handler="on_stopUploadButton_clicked_" object="activeUploadsList"/>
879 </widget> 937 </widget>
880 <packing> 938 <packing>
939 <property name="expand">False</property>
881 <property name="fill">False</property> 940 <property name="fill">False</property>
882 <property name="position">1</property>
883 </packing> 941 </packing>
884 </child> 942 </child>
885 <child> 943 <child>
886 <widget class="GtkButton" id="clearCompletedDownloadsButton"> 944 <widget class="GtkButton" id="clearCompletedUploadsButton">
887 <property name="visible">True</property> 945 <property name="visible">True</property>
888 <property name="can_focus">True</property> 946 <property name="can_focus">True</property>
889 <property name="tooltip" translatable="yes">Clear completed downloads from the list</property> 947 <property name="tooltip" translatable="yes">Clear completed uploads from the list</property>
890 <property name="response_id">0</property> 948 <property name="response_id">0</property>
891 <signal name="clicked" handler="on_clearCompletedDownloadsButton_clicked_"/> 949 <signal name="clicked" handler="on_clearCompletedUploadsButton_clicked_"/>
892 <child> 950 <child>
893 <widget class="GtkAlignment" id="alignment3"> 951 <widget class="GtkAlignment" id="alignment4">
894 <property name="visible">True</property> 952 <property name="visible">True</property>
895 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 953 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
896 <property name="xscale">0</property> 954 <property name="xscale">0</property>
897 <child> 955 <child>
898 <widget class="GtkHBox" id="hbox4"> 956 <widget class="GtkHBox" id="hbox5">
899 <property name="visible">True</property> 957 <property name="visible">True</property>
900 <property name="spacing">2</property> 958 <property name="spacing">2</property>
901 <child> 959 <child>
902 <widget class="GtkImage" id="image3"> 960 <widget class="GtkImage" id="image4">
903 <property name="visible">True</property> 961 <property name="visible">True</property>
904 <property name="stock">gtk-clear</property> 962 <property name="stock">gtk-clear</property>
905 </widget> 963 </widget>
@@ -909,7 +967,7 @@ This release adds context-menus (right-click) which allow copying the URI of sea
909 </packing> 967 </packing>
910 </child> 968 </child>
911 <child> 969 <child>
912 <widget class="GtkLabel" id="label5"> 970 <widget class="GtkLabel" id="label2">
913 <property name="visible">True</property> 971 <property name="visible">True</property>
914 <property name="label" translatable="yes">_Clean</property> 972 <property name="label" translatable="yes">_Clean</property>
915 <property name="use_underline">True</property> 973 <property name="use_underline">True</property>
@@ -926,78 +984,20 @@ This release adds context-menus (right-click) which allow copying the URI of sea
926 </child> 984 </child>
927 </widget> 985 </widget>
928 <packing> 986 <packing>
929 <property name="expand">False</property>
930 <property name="fill">False</property> 987 <property name="fill">False</property>
931 <property name="position">2</property> 988 <property name="position">1</property>
932 </packing> 989 </packing>
933 </child> 990 </child>
934 </widget> 991 </widget>
935 <packing> 992 <packing>
936 <property name="left_attach">1</property> 993 <property name="left_attach">1</property>
937 <property name="right_attach">2</property> 994 <property name="right_attach">2</property>
938 <property name="top_attach">3</property> 995 <property name="top_attach">6</property>
939 <property name="bottom_attach">4</property> 996 <property name="bottom_attach">7</property>
940 <property name="x_options">GTK_FILL</property> 997 <property name="x_options">GTK_FILL</property>
941 <property name="x_padding">5</property> 998 <property name="x_padding">5</property>
942 </packing> 999 </packing>
943 </child> 1000 </child>
944 <child>
945 <widget class="GtkScrolledWindow" id="scrolledwindow10">
946 <property name="visible">True</property>
947 <property name="can_focus">True</property>
948 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
949 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
950 <property name="shadow_type">GTK_SHADOW_IN</property>
951 <child>
952 <widget class="GtkTreeView" id="activeDownloadsList">
953 <property name="visible">True</property>
954 <property name="can_focus">True</property>
955 <property name="reorderable">True</property>
956 <property name="rules_hint">True</property>
957 </widget>
958 </child>
959 </widget>
960 <packing>
961 <property name="top_attach">3</property>
962 <property name="bottom_attach">4</property>
963 </packing>
964 </child>
965 <child>
966 <widget class="GtkLabel" id="label16">
967 <property name="visible">True</property>
968 <property name="xalign">0</property>
969 <property name="yalign">1</property>
970 <property name="xpad">5</property>
971 <property name="ypad">5</property>
972 <property name="label" translatable="yes">&lt;b&gt;Search Overview&lt;/b&gt;</property>
973 <property name="use_markup">True</property>
974 </widget>
975 <packing>
976 <property name="right_attach">2</property>
977 <property name="y_options">GTK_FILL</property>
978 </packing>
979 </child>
980 <child>
981 <widget class="GtkScrolledWindow" id="scrolledwindow9">
982 <property name="visible">True</property>
983 <property name="can_focus">False</property>
984 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
985 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
986 <property name="shadow_type">GTK_SHADOW_IN</property>
987 <child>
988 <widget class="GtkTreeView" id="activeSearchesSummary">
989 <property name="visible">True</property>
990 <property name="can_focus">True</property>
991 <property name="reorderable">True</property>
992 <property name="rules_hint">True</property>
993 </widget>
994 </child>
995 </widget>
996 <packing>
997 <property name="top_attach">1</property>
998 <property name="bottom_attach">2</property>
999 </packing>
1000 </child>
1001 </widget> 1001 </widget>
1002 </child> 1002 </child>
1003 <child> 1003 <child>
@@ -1285,52 +1285,80 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1285 <placeholder/> 1285 <placeholder/>
1286 </child> 1286 </child>
1287 <child> 1287 <child>
1288 <widget class="GtkAlignment" id="alignment8"> 1288 <widget class="GtkLabel" id="methodLabel">
1289 <property name="visible">True</property> 1289 <property name="visible">True</property>
1290 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1291 <property name="xalign">0</property> 1290 <property name="xalign">0</property>
1292 <property name="xscale">0</property> 1291 <property name="xpad">5</property>
1293 <child> 1292 <property name="label" translatable="yes">Method:</property>
1294 <widget class="GtkSpinButton" id="contentPrioritySpinButton1"> 1293 <property name="use_underline">True</property>
1295 <property name="width_request">94</property> 1294 <property name="mnemonic_widget">indexbutton</property>
1296 <property name="visible">True</property> 1295 </widget>
1297 <property name="can_focus">True</property> 1296 <packing>
1298 <property name="tooltip" translatable="yes">How important is the file (used to prioritize data in the local datastore).</property> 1297 <property name="x_options">GTK_FILL</property>
1299 <property name="adjustment">950 0 100000000 50 500 500</property> 1298 <property name="y_options"></property>
1300 <property name="climb_rate">500</property> 1299 </packing>
1301 <property name="numeric">True</property> 1300 </child>
1302 </widget> 1301 <child>
1303 </child> 1302 <widget class="GtkRadioButton" id="indexbutton">
1303 <property name="visible">True</property>
1304 <property name="can_focus">True</property>
1305 <property name="tooltip" translatable="yes">Indexing will avoid copying the file into the GNUnet database. Instead, GNUnet will try to add a symbolic link to the specified file. If that fails, a copy of the file will be created. Indexing should be used if the local machine is unlikely to ever be compromised by an adversary and if the uploaded file will not be modified or moved in the future. Indexing is more efficient than insertion.</property>
1306 <property name="label" translatable="yes">Inde_x</property>
1307 <property name="use_underline">True</property>
1308 <property name="response_id">0</property>
1309 <property name="active">True</property>
1310 <property name="draw_indicator">True</property>
1304 </widget> 1311 </widget>
1305 <packing> 1312 <packing>
1306 <property name="left_attach">1</property> 1313 <property name="left_attach">1</property>
1307 <property name="right_attach">2</property> 1314 <property name="right_attach">2</property>
1308 <property name="top_attach">3</property>
1309 <property name="bottom_attach">4</property>
1310 <property name="x_options">GTK_FILL</property> 1315 <property name="x_options">GTK_FILL</property>
1311 <property name="y_options"></property> 1316 <property name="y_options"></property>
1312 </packing> 1317 </packing>
1313 </child> 1318 </child>
1314 <child> 1319 <child>
1315 <widget class="GtkAlignment" id="alignment7"> 1320 <widget class="GtkRadioButton" id="insertButton">
1321 <property name="visible">True</property>
1322 <property name="can_focus">True</property>
1323 <property name="tooltip" translatable="yes">Inserting a file means that an encrypted copy will be added to the GNUnet database. Without the proper key (which is not stored in plaintext anywhere) the file cannot be decrypted. Use this option for small files, files that will be modified soon, files that maybe moved or if you are afraid that an adversary may detect the file in plaintext on your machine (after compromising your machine).</property>
1324 <property name="label" translatable="yes">I_nsert</property>
1325 <property name="use_underline">True</property>
1326 <property name="response_id">0</property>
1327 <property name="draw_indicator">True</property>
1328 <property name="group">indexbutton</property>
1329 </widget>
1330 <packing>
1331 <property name="left_attach">2</property>
1332 <property name="right_attach">3</property>
1333 <property name="x_options">GTK_FILL</property>
1334 <property name="y_options"></property>
1335 </packing>
1336 </child>
1337 <child>
1338 <widget class="GtkLabel" id="scopeLabel">
1316 <property name="visible">True</property> 1339 <property name="visible">True</property>
1317 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1318 <property name="xalign">0</property> 1340 <property name="xalign">0</property>
1319 <property name="xscale">0</property> 1341 <property name="xpad">5</property>
1320 <child> 1342 <property name="label" translatable="yes">Scope:</property>
1321 <widget class="GtkSpinButton" id="uploadAnonymityLevelSpinButton1"> 1343 <property name="use_underline">True</property>
1322 <property name="visible">True</property> 1344 <property name="mnemonic_widget">scopeFileOnlyButton</property>
1323 <property name="can_focus">True</property> 1345 </widget>
1324 <property name="tooltip" translatable="yes">What level of sender-anonymity is desired when sharing this particular file? 0 allows direct connections (no anonymity). Higher levels require increasing amounts of cover traffic per shared block, increasing your privacy at the expense of efficiency.</property> 1346 <packing>
1325 <property name="adjustment">1 0 10000 1 10 10</property> 1347 <property name="top_attach">1</property>
1326 <property name="climb_rate">1</property> 1348 <property name="bottom_attach">2</property>
1327 <property name="numeric">True</property> 1349 <property name="x_options">GTK_FILL</property>
1328 </widget> 1350 <property name="y_options"></property>
1329 </child> 1351 </packing>
1352 </child>
1353 <child>
1354 <widget class="GtkLabel" id="anonymityUploadLabel">
1355 <property name="visible">True</property>
1356 <property name="xalign">0</property>
1357 <property name="xpad">5</property>
1358 <property name="label" translatable="yes">_Anonymity:</property>
1359 <property name="use_underline">True</property>
1330 </widget> 1360 </widget>
1331 <packing> 1361 <packing>
1332 <property name="left_attach">1</property>
1333 <property name="right_attach">2</property>
1334 <property name="top_attach">2</property> 1362 <property name="top_attach">2</property>
1335 <property name="bottom_attach">3</property> 1363 <property name="bottom_attach">3</property>
1336 <property name="x_options">GTK_FILL</property> 1364 <property name="x_options">GTK_FILL</property>
@@ -1338,24 +1366,43 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1338 </packing> 1366 </packing>
1339 </child> 1367 </child>
1340 <child> 1368 <child>
1341 <widget class="GtkCheckButton" id="doExtractCheckButton"> 1369 <widget class="GtkRadioButton" id="scopeRecursiveButton">
1342 <property name="visible">True</property> 1370 <property name="visible">True</property>
1343 <property name="can_focus">True</property> 1371 <property name="can_focus">True</property>
1344 <property name="tooltip" translatable="yes">Controls if GNUnet should (automatically) extract metadata for files. If unchecked, the default metadata for the upload will only contain the filename. If checked, GNU libextractor will be used to provide additional metadata (such as thumbnails). The option only applies when a directory is uploaded. For individual files, GNU libextractor is always used (you will have a chance to edit the extracted metadata in a dialog).</property> 1372 <property name="tooltip" translatable="yes">Recursively publish an entire directory tree</property>
1373 <property name="label" translatable="yes">_Recursive (for entire directories)</property>
1374 <property name="use_underline">True</property>
1375 <property name="response_id">0</property>
1376 <property name="draw_indicator">True</property>
1377 </widget>
1378 <packing>
1379 <property name="left_attach">2</property>
1380 <property name="right_attach">3</property>
1381 <property name="top_attach">1</property>
1382 <property name="bottom_attach">2</property>
1383 <property name="x_options">GTK_FILL</property>
1384 <property name="y_options"></property>
1385 </packing>
1386 </child>
1387 <child>
1388 <widget class="GtkCheckButton" id="deepIndexCheckButton">
1389 <property name="visible">True</property>
1390 <property name="can_focus">True</property>
1391 <property name="tooltip" translatable="yes">Should it be possible to directly find files in the directory? If unchecked, it will only be possible for the directory itself to be found with a normal keyword search. This option only really makes a difference for uploads of directories.</property>
1345 <property name="response_id">0</property> 1392 <property name="response_id">0</property>
1346 <property name="active">True</property> 1393 <property name="active">True</property>
1347 <property name="draw_indicator">True</property> 1394 <property name="draw_indicator">True</property>
1348 <child> 1395 <child>
1349 <widget class="GtkAlignment" id="alignment24"> 1396 <widget class="GtkAlignment" id="alignment15">
1350 <property name="visible">True</property> 1397 <property name="visible">True</property>
1351 <property name="xscale">0</property> 1398 <property name="xscale">0</property>
1352 <property name="yscale">0</property> 1399 <property name="yscale">0</property>
1353 <child> 1400 <child>
1354 <widget class="GtkHBox" id="hbox66"> 1401 <widget class="GtkHBox" id="hbox52">
1355 <property name="visible">True</property> 1402 <property name="visible">True</property>
1356 <property name="spacing">2</property> 1403 <property name="spacing">2</property>
1357 <child> 1404 <child>
1358 <widget class="GtkImage" id="image49"> 1405 <widget class="GtkImage" id="image40">
1359 <property name="visible">True</property> 1406 <property name="visible">True</property>
1360 <property name="stock">gtk-index</property> 1407 <property name="stock">gtk-index</property>
1361 </widget> 1408 </widget>
@@ -1365,9 +1412,9 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1365 </packing> 1412 </packing>
1366 </child> 1413 </child>
1367 <child> 1414 <child>
1368 <widget class="GtkLabel" id="label151"> 1415 <widget class="GtkLabel" id="label128">
1369 <property name="visible">True</property> 1416 <property name="visible">True</property>
1370 <property name="label" translatable="yes">Use libextractor for files in directories</property> 1417 <property name="label" translatable="yes">Add keywords for files in directories</property>
1371 <property name="use_underline">True</property> 1418 <property name="use_underline">True</property>
1372 </widget> 1419 </widget>
1373 <packing> 1420 <packing>
@@ -1384,48 +1431,28 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1384 <packing> 1431 <packing>
1385 <property name="left_attach">2</property> 1432 <property name="left_attach">2</property>
1386 <property name="right_attach">3</property> 1433 <property name="right_attach">3</property>
1387 <property name="top_attach">3</property> 1434 <property name="top_attach">2</property>
1388 <property name="bottom_attach">4</property> 1435 <property name="bottom_attach">3</property>
1389 <property name="x_options">GTK_FILL</property>
1390 <property name="y_options"></property>
1391 </packing>
1392 </child>
1393 <child>
1394 <widget class="GtkRadioButton" id="scopeFileOnlyButton">
1395 <property name="visible">True</property>
1396 <property name="can_focus">True</property>
1397 <property name="tooltip" translatable="yes">Only publish a single file</property>
1398 <property name="label" translatable="yes">File onl_y</property>
1399 <property name="use_underline">True</property>
1400 <property name="response_id">0</property>
1401 <property name="active">True</property>
1402 <property name="draw_indicator">True</property>
1403 <property name="group">scopeRecursiveButton</property>
1404 </widget>
1405 <packing>
1406 <property name="left_attach">1</property>
1407 <property name="right_attach">2</property>
1408 <property name="top_attach">1</property>
1409 <property name="bottom_attach">2</property>
1410 <property name="x_options">GTK_FILL</property> 1436 <property name="x_options">GTK_FILL</property>
1411 <property name="y_options"></property> 1437 <property name="y_options"></property>
1412 </packing> 1438 </packing>
1413 </child> 1439 </child>
1414 <child> 1440 <child>
1415 <widget class="GtkButton" id="mainFileSharingInsertBrowseButton"> 1441 <widget class="GtkButton" id="fsinsertuploadbutton">
1416 <property name="visible">True</property> 1442 <property name="visible">True</property>
1443 <property name="sensitive">False</property>
1417 <property name="can_focus">True</property> 1444 <property name="can_focus">True</property>
1418 <property name="tooltip" translatable="yes">Browse local computer for files (or directories) to publish</property> 1445 <property name="tooltip" translatable="yes">Share the specified file with the selected options (you will then be prompted to enter meta-data and keywords)</property>
1419 <property name="response_id">0</property> 1446 <property name="response_id">0</property>
1420 <signal name="clicked" handler="on_mainFileSharingInsertBrowseButton_clicked_" object="fsinsertfilenamecombo"/> 1447 <signal name="clicked" handler="on_fsinsertuploadbutton_clicked_"/>
1421 <child> 1448 <child>
1422 <widget class="GtkHBox" id="hbox60"> 1449 <widget class="GtkHBox" id="hbox55">
1423 <property name="visible">True</property> 1450 <property name="visible">True</property>
1424 <property name="spacing">2</property> 1451 <property name="spacing">2</property>
1425 <child> 1452 <child>
1426 <widget class="GtkImage" id="image46"> 1453 <widget class="GtkImage" id="image42">
1427 <property name="visible">True</property> 1454 <property name="visible">True</property>
1428 <property name="stock">gtk-open</property> 1455 <property name="stock">gtk-go-up</property>
1429 </widget> 1456 </widget>
1430 <packing> 1457 <packing>
1431 <property name="expand">False</property> 1458 <property name="expand">False</property>
@@ -1433,9 +1460,9 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1433 </packing> 1460 </packing>
1434 </child> 1461 </child>
1435 <child> 1462 <child>
1436 <widget class="GtkLabel" id="label143"> 1463 <widget class="GtkLabel" id="label137">
1437 <property name="visible">True</property> 1464 <property name="visible">True</property>
1438 <property name="label" translatable="yes">_Browse</property> 1465 <property name="label" translatable="yes">Pub_lish</property>
1439 <property name="use_underline">True</property> 1466 <property name="use_underline">True</property>
1440 </widget> 1467 </widget>
1441 <packing> 1468 <packing>
@@ -1450,32 +1477,26 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1450 <packing> 1477 <packing>
1451 <property name="left_attach">2</property> 1478 <property name="left_attach">2</property>
1452 <property name="right_attach">3</property> 1479 <property name="right_attach">3</property>
1453 <property name="top_attach">4</property> 1480 <property name="top_attach">5</property>
1454 <property name="bottom_attach">5</property> 1481 <property name="bottom_attach">6</property>
1455 <property name="x_options">GTK_FILL</property> 1482 <property name="x_options">GTK_FILL</property>
1456 <property name="y_options"></property> 1483 <property name="y_options"></property>
1457 </packing> 1484 </packing>
1458 </child> 1485 </child>
1459 <child> 1486 <child>
1460 <widget class="GtkAlignment" id="uploadFilenameAlignment"> 1487 <widget class="GtkLabel" id="uploadFilenameLabel">
1461 <property name="visible">True</property> 1488 <property name="visible">True</property>
1462 <child> 1489 <property name="xalign">0</property>
1463 <widget class="GtkComboBoxEntry" id="uploadFilenameComboBoxEntry"> 1490 <property name="xpad">5</property>
1464 <property name="visible">True</property> 1491 <property name="label" translatable="yes">_Filename:</property>
1465 <property name="can_focus">True</property> 1492 <property name="use_underline">True</property>
1466 <signal name="changed" handler="on_uploadFilenameComboBoxEntry_changed_"/> 1493 <property name="justify">GTK_JUSTIFY_CENTER</property>
1467 <child internal-child="entry"> 1494 <property name="mnemonic_widget">uploadFilenameComboBoxEntry</property>
1468 <widget class="GtkEntry" id="comboboxentry-entry3">
1469 </widget>
1470 </child>
1471 </widget>
1472 </child>
1473 </widget> 1495 </widget>
1474 <packing> 1496 <packing>
1475 <property name="left_attach">1</property>
1476 <property name="right_attach">2</property>
1477 <property name="top_attach">4</property> 1497 <property name="top_attach">4</property>
1478 <property name="bottom_attach">5</property> 1498 <property name="bottom_attach">5</property>
1499 <property name="x_options">GTK_FILL</property>
1479 <property name="y_options"></property> 1500 <property name="y_options"></property>
1480 </packing> 1501 </packing>
1481 </child> 1502 </child>
@@ -1495,38 +1516,43 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1495 </packing> 1516 </packing>
1496 </child> 1517 </child>
1497 <child> 1518 <child>
1498 <widget class="GtkLabel" id="uploadFilenameLabel"> 1519 <widget class="GtkAlignment" id="uploadFilenameAlignment">
1499 <property name="visible">True</property> 1520 <property name="visible">True</property>
1500 <property name="xalign">0</property> 1521 <child>
1501 <property name="xpad">5</property> 1522 <widget class="GtkComboBoxEntry" id="uploadFilenameComboBoxEntry">
1502 <property name="label" translatable="yes">_Filename:</property> 1523 <property name="visible">True</property>
1503 <property name="use_underline">True</property> 1524 <property name="can_focus">True</property>
1504 <property name="justify">GTK_JUSTIFY_CENTER</property> 1525 <signal name="changed" handler="on_uploadFilenameComboBoxEntry_changed_"/>
1505 <property name="mnemonic_widget">uploadFilenameComboBoxEntry</property> 1526 <child internal-child="entry">
1527 <widget class="GtkEntry" id="comboboxentry-entry3">
1528 </widget>
1529 </child>
1530 </widget>
1531 </child>
1506 </widget> 1532 </widget>
1507 <packing> 1533 <packing>
1534 <property name="left_attach">1</property>
1535 <property name="right_attach">2</property>
1508 <property name="top_attach">4</property> 1536 <property name="top_attach">4</property>
1509 <property name="bottom_attach">5</property> 1537 <property name="bottom_attach">5</property>
1510 <property name="x_options">GTK_FILL</property>
1511 <property name="y_options"></property> 1538 <property name="y_options"></property>
1512 </packing> 1539 </packing>
1513 </child> 1540 </child>
1514 <child> 1541 <child>
1515 <widget class="GtkButton" id="fsinsertuploadbutton"> 1542 <widget class="GtkButton" id="mainFileSharingInsertBrowseButton">
1516 <property name="visible">True</property> 1543 <property name="visible">True</property>
1517 <property name="sensitive">False</property>
1518 <property name="can_focus">True</property> 1544 <property name="can_focus">True</property>
1519 <property name="tooltip" translatable="yes">Share the specified file with the selected options (you will then be prompted to enter meta-data and keywords)</property> 1545 <property name="tooltip" translatable="yes">Browse local computer for files (or directories) to publish</property>
1520 <property name="response_id">0</property> 1546 <property name="response_id">0</property>
1521 <signal name="clicked" handler="on_fsinsertuploadbutton_clicked_"/> 1547 <signal name="clicked" handler="on_mainFileSharingInsertBrowseButton_clicked_" object="fsinsertfilenamecombo"/>
1522 <child> 1548 <child>
1523 <widget class="GtkHBox" id="hbox55"> 1549 <widget class="GtkHBox" id="hbox60">
1524 <property name="visible">True</property> 1550 <property name="visible">True</property>
1525 <property name="spacing">2</property> 1551 <property name="spacing">2</property>
1526 <child> 1552 <child>
1527 <widget class="GtkImage" id="image42"> 1553 <widget class="GtkImage" id="image46">
1528 <property name="visible">True</property> 1554 <property name="visible">True</property>
1529 <property name="stock">gtk-go-up</property> 1555 <property name="stock">gtk-open</property>
1530 </widget> 1556 </widget>
1531 <packing> 1557 <packing>
1532 <property name="expand">False</property> 1558 <property name="expand">False</property>
@@ -1534,9 +1560,9 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1534 </packing> 1560 </packing>
1535 </child> 1561 </child>
1536 <child> 1562 <child>
1537 <widget class="GtkLabel" id="label137"> 1563 <widget class="GtkLabel" id="label143">
1538 <property name="visible">True</property> 1564 <property name="visible">True</property>
1539 <property name="label" translatable="yes">Pub_lish</property> 1565 <property name="label" translatable="yes">_Browse</property>
1540 <property name="use_underline">True</property> 1566 <property name="use_underline">True</property>
1541 </widget> 1567 </widget>
1542 <packing> 1568 <packing>
@@ -1551,31 +1577,52 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1551 <packing> 1577 <packing>
1552 <property name="left_attach">2</property> 1578 <property name="left_attach">2</property>
1553 <property name="right_attach">3</property> 1579 <property name="right_attach">3</property>
1554 <property name="top_attach">5</property> 1580 <property name="top_attach">4</property>
1555 <property name="bottom_attach">6</property> 1581 <property name="bottom_attach">5</property>
1556 <property name="x_options">GTK_FILL</property> 1582 <property name="x_options">GTK_FILL</property>
1557 <property name="y_options"></property> 1583 <property name="y_options"></property>
1558 </packing> 1584 </packing>
1559 </child> 1585 </child>
1560 <child> 1586 <child>
1561 <widget class="GtkCheckButton" id="deepIndexCheckButton"> 1587 <widget class="GtkRadioButton" id="scopeFileOnlyButton">
1562 <property name="visible">True</property> 1588 <property name="visible">True</property>
1563 <property name="can_focus">True</property> 1589 <property name="can_focus">True</property>
1564 <property name="tooltip" translatable="yes">Should it be possible to directly find files in the directory? If unchecked, it will only be possible for the directory itself to be found with a normal keyword search. This option only really makes a difference for uploads of directories.</property> 1590 <property name="tooltip" translatable="yes">Only publish a single file</property>
1591 <property name="label" translatable="yes">File onl_y</property>
1592 <property name="use_underline">True</property>
1593 <property name="response_id">0</property>
1594 <property name="active">True</property>
1595 <property name="draw_indicator">True</property>
1596 <property name="group">scopeRecursiveButton</property>
1597 </widget>
1598 <packing>
1599 <property name="left_attach">1</property>
1600 <property name="right_attach">2</property>
1601 <property name="top_attach">1</property>
1602 <property name="bottom_attach">2</property>
1603 <property name="x_options">GTK_FILL</property>
1604 <property name="y_options"></property>
1605 </packing>
1606 </child>
1607 <child>
1608 <widget class="GtkCheckButton" id="doExtractCheckButton">
1609 <property name="visible">True</property>
1610 <property name="can_focus">True</property>
1611 <property name="tooltip" translatable="yes">Controls if GNUnet should (automatically) extract metadata for files. If unchecked, the default metadata for the upload will only contain the filename. If checked, GNU libextractor will be used to provide additional metadata (such as thumbnails). The option only applies when a directory is uploaded. For individual files, GNU libextractor is always used (you will have a chance to edit the extracted metadata in a dialog).</property>
1565 <property name="response_id">0</property> 1612 <property name="response_id">0</property>
1566 <property name="active">True</property> 1613 <property name="active">True</property>
1567 <property name="draw_indicator">True</property> 1614 <property name="draw_indicator">True</property>
1568 <child> 1615 <child>
1569 <widget class="GtkAlignment" id="alignment15"> 1616 <widget class="GtkAlignment" id="alignment24">
1570 <property name="visible">True</property> 1617 <property name="visible">True</property>
1571 <property name="xscale">0</property> 1618 <property name="xscale">0</property>
1572 <property name="yscale">0</property> 1619 <property name="yscale">0</property>
1573 <child> 1620 <child>
1574 <widget class="GtkHBox" id="hbox52"> 1621 <widget class="GtkHBox" id="hbox66">
1575 <property name="visible">True</property> 1622 <property name="visible">True</property>
1576 <property name="spacing">2</property> 1623 <property name="spacing">2</property>
1577 <child> 1624 <child>
1578 <widget class="GtkImage" id="image40"> 1625 <widget class="GtkImage" id="image49">
1579 <property name="visible">True</property> 1626 <property name="visible">True</property>
1580 <property name="stock">gtk-index</property> 1627 <property name="stock">gtk-index</property>
1581 </widget> 1628 </widget>
@@ -1585,9 +1632,9 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1585 </packing> 1632 </packing>
1586 </child> 1633 </child>
1587 <child> 1634 <child>
1588 <widget class="GtkLabel" id="label128"> 1635 <widget class="GtkLabel" id="label151">
1589 <property name="visible">True</property> 1636 <property name="visible">True</property>
1590 <property name="label" translatable="yes">Add keywords for files in directories</property> 1637 <property name="label" translatable="yes">Use libextractor for files in directories</property>
1591 <property name="use_underline">True</property> 1638 <property name="use_underline">True</property>
1592 </widget> 1639 </widget>
1593 <packing> 1640 <packing>
@@ -1604,40 +1651,32 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1604 <packing> 1651 <packing>
1605 <property name="left_attach">2</property> 1652 <property name="left_attach">2</property>
1606 <property name="right_attach">3</property> 1653 <property name="right_attach">3</property>
1607 <property name="top_attach">2</property> 1654 <property name="top_attach">3</property>
1608 <property name="bottom_attach">3</property> 1655 <property name="bottom_attach">4</property>
1609 <property name="x_options">GTK_FILL</property>
1610 <property name="y_options"></property>
1611 </packing>
1612 </child>
1613 <child>
1614 <widget class="GtkRadioButton" id="scopeRecursiveButton">
1615 <property name="visible">True</property>
1616 <property name="can_focus">True</property>
1617 <property name="tooltip" translatable="yes">Recursively publish an entire directory tree</property>
1618 <property name="label" translatable="yes">_Recursive (for entire directories)</property>
1619 <property name="use_underline">True</property>
1620 <property name="response_id">0</property>
1621 <property name="draw_indicator">True</property>
1622 </widget>
1623 <packing>
1624 <property name="left_attach">2</property>
1625 <property name="right_attach">3</property>
1626 <property name="top_attach">1</property>
1627 <property name="bottom_attach">2</property>
1628 <property name="x_options">GTK_FILL</property> 1656 <property name="x_options">GTK_FILL</property>
1629 <property name="y_options"></property> 1657 <property name="y_options"></property>
1630 </packing> 1658 </packing>
1631 </child> 1659 </child>
1632 <child> 1660 <child>
1633 <widget class="GtkLabel" id="anonymityUploadLabel"> 1661 <widget class="GtkAlignment" id="alignment7">
1634 <property name="visible">True</property> 1662 <property name="visible">True</property>
1663 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1635 <property name="xalign">0</property> 1664 <property name="xalign">0</property>
1636 <property name="xpad">5</property> 1665 <property name="xscale">0</property>
1637 <property name="label" translatable="yes">_Anonymity:</property> 1666 <child>
1638 <property name="use_underline">True</property> 1667 <widget class="GtkSpinButton" id="uploadAnonymityLevelSpinButton1">
1668 <property name="visible">True</property>
1669 <property name="can_focus">True</property>
1670 <property name="tooltip" translatable="yes">What level of sender-anonymity is desired when sharing this particular file? 0 allows direct connections (no anonymity). Higher levels require increasing amounts of cover traffic per shared block, increasing your privacy at the expense of efficiency.</property>
1671 <property name="adjustment">1 0 10000 1 10 10</property>
1672 <property name="climb_rate">1</property>
1673 <property name="numeric">True</property>
1674 </widget>
1675 </child>
1639 </widget> 1676 </widget>
1640 <packing> 1677 <packing>
1678 <property name="left_attach">1</property>
1679 <property name="right_attach">2</property>
1641 <property name="top_attach">2</property> 1680 <property name="top_attach">2</property>
1642 <property name="bottom_attach">3</property> 1681 <property name="bottom_attach">3</property>
1643 <property name="x_options">GTK_FILL</property> 1682 <property name="x_options">GTK_FILL</property>
@@ -1645,67 +1684,28 @@ This release adds context-menus (right-click) which allow copying the URI of sea
1645 </packing> 1684 </packing>
1646 </child> 1685 </child>
1647 <child> 1686 <child>
1648 <widget class="GtkLabel" id="scopeLabel"> 1687 <widget class="GtkAlignment" id="alignment8">
1649 <property name="visible">True</property> 1688 <property name="visible">True</property>
1689 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1650 <property name="xalign">0</property> 1690 <property name="xalign">0</property>
1651 <property name="xpad">5</property> 1691 <property name="xscale">0</property>
1652 <property name="label" translatable="yes">Scope:</property> 1692 <child>
1653 <property name="use_underline">True</property> 1693 <widget class="GtkSpinButton" id="contentPrioritySpinButton1">
1654 <property name="mnemonic_widget">scopeFileOnlyButton</property> 1694 <property name="width_request">94</property>
1655 </widget> 1695 <property name="visible">True</property>
1656 <packing> 1696 <property name="can_focus">True</property>
1657 <property name="top_attach">1</property> 1697 <property name="tooltip" translatable="yes">How important is the file (used to prioritize data in the local datastore).</property>
1658 <property name="bottom_attach">2</property> 1698 <property name="adjustment">950 0 100000000 50 500 500</property>
1659 <property name="x_options">GTK_FILL</property> 1699 <property name="climb_rate">500</property>
1660 <property name="y_options"></property> 1700 <property name="numeric">True</property>
1661 </packing> 1701 </widget>
1662 </child> 1702 </child>
1663 <child>
1664 <widget class="GtkRadioButton" id="insertButton">
1665 <property name="visible">True</property>
1666 <property name="can_focus">True</property>
1667 <property name="tooltip" translatable="yes">Inserting a file means that an encrypted copy will be added to the GNUnet database. Without the proper key (which is not stored in plaintext anywhere) the file cannot be decrypted. Use this option for small files, files that will be modified soon, files that maybe moved or if you are afraid that an adversary may detect the file in plaintext on your machine (after compromising your machine).</property>
1668 <property name="label" translatable="yes">I_nsert</property>
1669 <property name="use_underline">True</property>
1670 <property name="response_id">0</property>
1671 <property name="draw_indicator">True</property>
1672 <property name="group">indexbutton</property>
1673 </widget>
1674 <packing>
1675 <property name="left_attach">2</property>
1676 <property name="right_attach">3</property>
1677 <property name="x_options">GTK_FILL</property>
1678 <property name="y_options"></property>
1679 </packing>
1680 </child>
1681 <child>
1682 <widget class="GtkRadioButton" id="indexbutton">
1683 <property name="visible">True</property>
1684 <property name="can_focus">True</property>
1685 <property name="tooltip" translatable="yes">Indexing will avoid copying the file into the GNUnet database. Instead, GNUnet will try to add a symbolic link to the specified file. If that fails, a copy of the file will be created. Indexing should be used if the local machine is unlikely to ever be compromised by an adversary and if the uploaded file will not be modified or moved in the future. Indexing is more efficient than insertion.</property>
1686 <property name="label" translatable="yes">Inde_x</property>
1687 <property name="use_underline">True</property>
1688 <property name="response_id">0</property>
1689 <property name="active">True</property>
1690 <property name="draw_indicator">True</property>
1691 </widget> 1703 </widget>
1692 <packing> 1704 <packing>
1693 <property name="left_attach">1</property> 1705 <property name="left_attach">1</property>
1694 <property name="right_attach">2</property> 1706 <property name="right_attach">2</property>
1695 <property name="x_options">GTK_FILL</property> 1707 <property name="top_attach">3</property>
1696 <property name="y_options"></property> 1708 <property name="bottom_attach">4</property>
1697 </packing>
1698 </child>
1699 <child>
1700 <widget class="GtkLabel" id="methodLabel">
1701 <property name="visible">True</property>
1702 <property name="xalign">0</property>
1703 <property name="xpad">5</property>
1704 <property name="label" translatable="yes">Method:</property>
1705 <property name="use_underline">True</property>
1706 <property name="mnemonic_widget">indexbutton</property>
1707 </widget>
1708 <packing>
1709 <property name="x_options">GTK_FILL</property> 1709 <property name="x_options">GTK_FILL</property>
1710 <property name="y_options"></property> 1710 <property name="y_options"></property>
1711 </packing> 1711 </packing>
@@ -2103,51 +2103,6 @@ This release adds context-menus (right-click) which allow copying the URI of sea
2103 <placeholder/> 2103 <placeholder/>
2104 </child> 2104 </child>
2105 <child> 2105 <child>
2106 <widget class="GtkLabel" id="label1">
2107 <property name="visible">True</property>
2108 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2109 <property name="label" translatable="yes">_Room Name</property>
2110 <property name="use_underline">True</property>
2111 <property name="mnemonic_widget">chatRoomNameEntry</property>
2112 </widget>
2113 </child>
2114 <child>
2115 <widget class="GtkLabel" id="label4">
2116 <property name="visible">True</property>
2117 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2118 <property name="label" translatable="yes">_Moniker</property>
2119 <property name="use_underline">True</property>
2120 </widget>
2121 <packing>
2122 <property name="left_attach">1</property>
2123 <property name="right_attach">2</property>
2124 </packing>
2125 </child>
2126 <child>
2127 <widget class="GtkEntry" id="chatRoomNameEntry">
2128 <property name="visible">True</property>
2129 <property name="can_focus">True</property>
2130 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2131 </widget>
2132 <packing>
2133 <property name="top_attach">1</property>
2134 <property name="bottom_attach">2</property>
2135 </packing>
2136 </child>
2137 <child>
2138 <widget class="GtkEntry" id="chatRoomMonikerEntry">
2139 <property name="visible">True</property>
2140 <property name="can_focus">True</property>
2141 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2142 </widget>
2143 <packing>
2144 <property name="left_attach">1</property>
2145 <property name="right_attach">2</property>
2146 <property name="top_attach">1</property>
2147 <property name="bottom_attach">2</property>
2148 </packing>
2149 </child>
2150 <child>
2151 <widget class="GtkButton" id="on_chat_room_name_button"> 2106 <widget class="GtkButton" id="on_chat_room_name_button">
2152 <property name="visible">True</property> 2107 <property name="visible">True</property>
2153 <property name="can_focus">True</property> 2108 <property name="can_focus">True</property>
@@ -2193,6 +2148,51 @@ This release adds context-menus (right-click) which allow copying the URI of sea
2193 <property name="y_options"></property> 2148 <property name="y_options"></property>
2194 </packing> 2149 </packing>
2195 </child> 2150 </child>
2151 <child>
2152 <widget class="GtkEntry" id="chatRoomMonikerEntry">
2153 <property name="visible">True</property>
2154 <property name="can_focus">True</property>
2155 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2156 </widget>
2157 <packing>
2158 <property name="left_attach">1</property>
2159 <property name="right_attach">2</property>
2160 <property name="top_attach">1</property>
2161 <property name="bottom_attach">2</property>
2162 </packing>
2163 </child>
2164 <child>
2165 <widget class="GtkEntry" id="chatRoomNameEntry">
2166 <property name="visible">True</property>
2167 <property name="can_focus">True</property>
2168 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2169 </widget>
2170 <packing>
2171 <property name="top_attach">1</property>
2172 <property name="bottom_attach">2</property>
2173 </packing>
2174 </child>
2175 <child>
2176 <widget class="GtkLabel" id="label4">
2177 <property name="visible">True</property>
2178 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2179 <property name="label" translatable="yes">_Moniker</property>
2180 <property name="use_underline">True</property>
2181 </widget>
2182 <packing>
2183 <property name="left_attach">1</property>
2184 <property name="right_attach">2</property>
2185 </packing>
2186 </child>
2187 <child>
2188 <widget class="GtkLabel" id="label1">
2189 <property name="visible">True</property>
2190 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
2191 <property name="label" translatable="yes">_Room Name</property>
2192 <property name="use_underline">True</property>
2193 <property name="mnemonic_widget">chatRoomNameEntry</property>
2194 </widget>
2195 </child>
2196 </widget> 2196 </widget>
2197 <packing> 2197 <packing>
2198 <property name="expand">False</property> 2198 <property name="expand">False</property>
@@ -2868,8 +2868,8 @@ Press ENTER to add the data.</atkproperty>
2868 <property name="response_id">-5</property> 2868 <property name="response_id">-5</property>
2869 <signal name="clicked" handler="gtk_widget_destroy" object="metaDisplayDialog"/> 2869 <signal name="clicked" handler="gtk_widget_destroy" object="metaDisplayDialog"/>
2870 <signal name="activate" handler="gtk_widget_destroy" object="metaDisplayDialog"/> 2870 <signal name="activate" handler="gtk_widget_destroy" object="metaDisplayDialog"/>
2871 <accelerator key="Return" modifiers="" signal="activate"/>
2872 <accelerator key="Escape" modifiers="" signal="activate"/> 2871 <accelerator key="Escape" modifiers="" signal="activate"/>
2872 <accelerator key="Return" modifiers="" signal="activate"/>
2873 </widget> 2873 </widget>
2874 </child> 2874 </child>
2875 </widget> 2875 </widget>
@@ -3359,14 +3359,16 @@ Press ENTER to add the data.</atkproperty>
3359 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> 3359 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
3360 <property name="shadow_type">GTK_SHADOW_IN</property> 3360 <property name="shadow_type">GTK_SHADOW_IN</property>
3361 <child> 3361 <child>
3362 <widget class="GtkTextView" id="chatNickList"> 3362 <widget class="GtkTreeView" id="roomMembersTreeView">
3363 <property name="visible">True</property> 3363 <property name="visible">True</property>
3364 <property name="can_focus">True</property> 3364 <property name="can_focus">True</property>
3365 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 3365 <property name="headers_clickable">True</property>
3366 </widget> 3366 </widget>
3367 </child> 3367 </child>
3368 </widget> 3368 </widget>
3369 <packing> 3369 <packing>
3370 <property name="expand">False</property>
3371 <property name="fill">False</property>
3370 <property name="position">1</property> 3372 <property name="position">1</property>
3371 </packing> 3373 </packing>
3372 </child> 3374 </child>
diff --git a/src/plugins/chat/chat.c b/src/plugins/chat/chat.c
index 159627f0..fb3b609a 100644
--- a/src/plugins/chat/chat.c
+++ b/src/plugins/chat/chat.c
@@ -49,6 +49,7 @@ struct GNUNET_CHAT_safe_nick_write_struct
49struct GNUNET_CHAT_gui_chat_client 49struct GNUNET_CHAT_gui_chat_client
50{ 50{
51 struct GNUNET_CHAT_gui_chat_client *next; 51 struct GNUNET_CHAT_gui_chat_client *next;
52 GtkWidget * send_button;
52 GtkWidget * text_view; 53 GtkWidget * text_view;
53 GtkListStore * nick_model; 54 GtkListStore * nick_model;
54 GtkWidget *chatFrame; 55 GtkWidget *chatFrame;
@@ -90,18 +91,18 @@ write_save_call (void *arg)
90 buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (cls->text_view)); 91 buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (cls->text_view));
91 message_buf_size = 92 message_buf_size =
92 snprintf (NULL, 0, 93 snprintf (NULL, 0,
93 "<%s> %s\n", 94 "<%s>: %s\n",
94 cls->sender, 95 cls->sender,
95 cls->message); 96 cls->message);
96 message_buf = GNUNET_malloc (message_buf_size + 1); 97 message_buf = GNUNET_malloc (message_buf_size + 1);
97 GNUNET_snprintf (message_buf, 98 GNUNET_snprintf (message_buf,
98 message_buf_size + 1, 99 message_buf_size + 1,
99 "<%s> %s\n", 100 "<%s>: %s\n",
100 cls->sender, 101 cls->sender,
101 cls->message); 102 cls->message);
102 gtk_text_buffer_insert_at_cursor (buffer, 103 gtk_text_buffer_insert_at_cursor (buffer,
103 message_buf, 104 message_buf,
104 message_buf_size + 1); 105 message_buf_size);
105 GNUNET_free(message_buf); 106 GNUNET_free(message_buf);
106 return NULL; 107 return NULL;
107} 108}
@@ -116,7 +117,7 @@ add_nick_save_call (void *arg)
116 GtkListStore * model; 117 GtkListStore * model;
117 GtkTreeIter iter; 118 GtkTreeIter iter;
118 GNUNET_HashCode * pid; 119 GNUNET_HashCode * pid;
119 120
120 model = GTK_LIST_STORE (cls->model); 121 model = GTK_LIST_STORE (cls->model);
121 gtk_list_store_append (model, &iter); 122 gtk_list_store_append (model, &iter);
122 pid = GNUNET_malloc(sizeof(GNUNET_HashCode)); 123 pid = GNUNET_malloc(sizeof(GNUNET_HashCode));
@@ -238,16 +239,14 @@ member_list_callback (void *cls,
238void 239void
239on_chat_frame_send_button_click_event_chat (GtkWidget * widget, gpointer data) 240on_chat_frame_send_button_click_event_chat (GtkWidget * widget, gpointer data)
240{ 241{
241 GtkWidget *chatnotebook;
242 unsigned int seq; 242 unsigned int seq;
243 const char *message; 243 const char *message;
244 struct GNUNET_CHAT_gui_chat_client *pos; 244 struct GNUNET_CHAT_gui_chat_client *pos;
245 245
246 chatnotebook = gtk_widget_get_ancestor (widget, GTK_TYPE_NOTEBOOK);
247 GNUNET_mutex_lock(lock); 246 GNUNET_mutex_lock(lock);
248 pos = list; 247 pos = list;
249 while ( (pos != NULL) && 248 while ( (pos != NULL) &&
250 (pos->chatFrame != chatnotebook) ) 249 (pos->send_button != widget) )
251 pos = pos->next; 250 pos = pos->next;
252 GNUNET_GE_ASSERT(NULL, pos != NULL); 251 GNUNET_GE_ASSERT(NULL, pos != NULL);
253 252
@@ -257,6 +256,7 @@ on_chat_frame_send_button_click_event_chat (GtkWidget * widget, gpointer data)
257 GNUNET_CHAT_MSG_OPTION_NONE, 256 GNUNET_CHAT_MSG_OPTION_NONE,
258 NULL, &seq); 257 NULL, &seq);
259 gtk_entry_set_text (GTK_ENTRY(pos->chat_entry), ""); 258 gtk_entry_set_text (GTK_ENTRY(pos->chat_entry), "");
259 GNUNET_mutex_unlock(lock);
260} 260}
261 261
262/** FIXME: move to gtkcommon! */ 262/** FIXME: move to gtkcommon! */
@@ -299,21 +299,21 @@ create_chat_room_tab (const char *room_name,
299 client->chatFrame = extractMainWidgetFromWindow (client->chatXML, 299 client->chatFrame = extractMainWidgetFromWindow (client->chatXML,
300 "chatFrame"); 300 "chatFrame");
301 chatLabel = gtk_label_new (room_name); 301 chatLabel = gtk_label_new (room_name);
302 gtk_notebook_insert_page (GTK_NOTEBOOK (chatnotebook), 302 gtk_notebook_append_page (GTK_NOTEBOOK (chatnotebook),
303 client->chatFrame, 303 client->chatFrame,
304 chatLabel, 1); 304 chatLabel);
305 gtk_widget_show (client->chatFrame); 305 gtk_widget_show (chatnotebook);
306 gtk_widget_show (chatLabel);
307 306
308 client->nick_model = gtk_list_store_new (CHAT_NUM, 307 client->nick_model = gtk_list_store_new (CHAT_NUM,
309 G_TYPE_STRING, /* nickname */ 308 G_TYPE_STRING, /* nickname */
310 G_TYPE_POINTER, /* metadata */ 309 G_TYPE_POINTER, /* metadata */
311 GDK_TYPE_PIXBUF, /* icon */ 310 GDK_TYPE_PIXBUF, /* icon */
312 G_TYPE_POINTER); /* pid */ 311 G_TYPE_POINTER); /* pid */
312 client->send_button = glade_xml_get_widget (client->chatXML, "chatSendButton");
313 client->text_view = glade_xml_get_widget (client->chatXML, "chatLogViewer"); 313 client->text_view = glade_xml_get_widget (client->chatXML, "chatLogViewer");
314 client->chat_entry = glade_xml_get_widget (client->chatXML, "chatLineTextEntry"); 314 client->chat_entry = glade_xml_get_widget (client->chatXML, "chatLineTextEntry");
315 treeview = GTK_TREE_VIEW(glade_xml_get_widget (client->chatXML, "roomMembersTreeView")); 315 treeview = GTK_TREE_VIEW(glade_xml_get_widget (client->chatXML, "roomMembersTreeView"));
316 gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (list->nick_model)); 316 gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (client->nick_model));
317 317
318 renderer = gtk_cell_renderer_text_new (); 318 renderer = gtk_cell_renderer_text_new ();
319 col = gtk_tree_view_insert_column_with_attributes (treeview, 319 col = gtk_tree_view_insert_column_with_attributes (treeview,