Merge branch 'master' into gxs_mail_experiments
@ -1,5 +1,172 @@
|
||||
retroshare06 (0.6.2-1.XXXXXX~YYYYYY) YYYYYY; urgency=low
|
||||
|
||||
9714409 csoler Mon, 8 May 2017 10:57:00 +0200 Merge pull request #802 from csoler/v0.6-ImprovedGUI
|
||||
de0f8b9 csoler Mon, 8 May 2017 10:51:15 +0200 moved passphrase box into start dialog, and removed blank logo, replaced it by RS splash logo
|
||||
6cb4990 csoler Mon, 8 May 2017 10:06:40 +0200 fixed compilation with qt4
|
||||
84c8158 csoler Mon, 8 May 2017 09:38:33 +0200 disabled show OpMode status on default
|
||||
24eca4a defnax Sun, 7 May 2017 19:39:20 +0200 Moved status icon column to the last position
|
||||
b18a186 csoler Sat, 6 May 2017 18:20:48 +0200 fixed ftExtraList to accept e2e encrypted transfers in addition to direct transfers. This fixed the drag+drop of shared files in a distant chat
|
||||
59ac5a5 csoler Sat, 6 May 2017 16:51:38 +0200 added on-the-fly fix of group privacy flags, so that edited groups with old un-set flags will be set automatically. Also fixes the bug preventing to grant membership on old circles
|
||||
868c046 csoler Sat, 6 May 2017 13:23:26 +0200 fixed bug in serializer caused to not updating the size parameter. Also fixes unittests
|
||||
f7f0d8d csoler Fri, 5 May 2017 23:10:07 +0200 Merge pull request #800 from sehraf/pr-openssl-chacha20
|
||||
00c80b1 csoler Fri, 5 May 2017 23:06:25 +0200 Merge pull request #797 from PhenomRetroShare/Fix_WindowsCompilation
|
||||
e4dde95 csoler Fri, 5 May 2017 23:04:28 +0200 Merge pull request #798 from PhenomRetroShare/Fix_TravisCompilation
|
||||
7371fdc sehraf Fri, 5 May 2017 18:50:40 +0200 add openssl chacha20 support
|
||||
96b4a1b sehraf Fri, 5 May 2017 15:40:02 +0200 add openssl chacha20-poly1305 support
|
||||
e913f36 csoler Thu, 4 May 2017 21:40:32 +0200 fixed crash when trying to deserialize an empty buffer in rsrecogn
|
||||
2f2715b csoler Thu, 4 May 2017 21:23:21 +0200 Merge pull request #799 from csoler/v0.6-ImprovedGUI
|
||||
6484ea6 csoler Thu, 4 May 2017 21:19:23 +0200 improved graph widget
|
||||
e6a7168 csoler Thu, 4 May 2017 16:41:02 +0200 merged upstream/master
|
||||
1c2b43b Phenom Thu, 4 May 2017 15:01:25 +0200 Fix UnitTest compilation
|
||||
d31b80c Phenom Thu, 4 May 2017 11:31:36 +0200 Fix Windows Compilation
|
||||
cac335e csoler Wed, 3 May 2017 23:05:50 +0200 Merge pull request #796 from csoler/v0.6-Serialization
|
||||
4f4240d csoler Wed, 3 May 2017 22:43:16 +0200 fixed bug in history serializer
|
||||
214aaa7 csoler Wed, 3 May 2017 22:20:58 +0200 added safety check for null chunks in TlvMemBlock_proxy deserialization
|
||||
f006146 csoler Tue, 2 May 2017 22:41:01 +0200 merged upstream/master
|
||||
4bee52c csoler Tue, 2 May 2017 22:34:45 +0200 removed old unused serialization code
|
||||
861dc16 csoler Tue, 2 May 2017 22:05:54 +0200 switched VOIP to new serialization
|
||||
c481186 csoler Tue, 2 May 2017 10:14:12 +0200 Merge pull request #793 from PhenomRetroShare/Fix_FriendListExport
|
||||
99d8b7d csoler Mon, 1 May 2017 21:23:34 +0200 switched service control items to new serialization
|
||||
07201e8 Phenom Mon, 1 May 2017 12:48:11 +0200 Fix FriendList Import/Export filename and error message.
|
||||
1f56db5 csoler Sun, 30 Apr 2017 22:45:18 +0200 Merge pull request #790 from PhenomRetroShare/Add_CreateGxsIdentityByDefault
|
||||
0c17570 csoler Sun, 30 Apr 2017 22:44:20 +0200 Merge pull request #792 from PhenomRetroShare/Add_DoubleClickOnTextBrowser
|
||||
3d17d31 csoler Sun, 30 Apr 2017 22:43:10 +0200 Merge pull request #789 from PhenomRetroShare/Add_FriendTimeOffsetNewsFeed
|
||||
8aa9be3 csoler Sun, 30 Apr 2017 22:39:07 +0200 Merge pull request #791 from PhenomRetroShare/Fix_MissingMessageMarkedRead
|
||||
40aff5d csoler Sun, 30 Apr 2017 22:37:54 +0200 Merge pull request #785 from PhenomRetroShare/Add_RelayBandwidthOnServerPage
|
||||
16b8947 csoler Sun, 30 Apr 2017 20:31:43 +0200 improved serializer documentation
|
||||
cecd9a3 csoler Sun, 30 Apr 2017 20:14:23 +0200 merged upstream/master
|
||||
24c7c38 csoler Sun, 30 Apr 2017 20:08:30 +0200 removed old file rssrviceserialiser.h/cc
|
||||
14076de csoler Sun, 30 Apr 2017 19:17:44 +0200 moved code of rsservicerserialiser into rsserializer.h/cc and renamed it into RsRawSerializer
|
||||
e401b90 csoler Sun, 30 Apr 2017 16:05:37 +0200 moved rsserializer and rstypeserializer to serialiser/
|
||||
4f92f48 csoler Sat, 29 Apr 2017 23:02:44 +0200 dwicthed GxsTunnel items to new serialization
|
||||
4fbcc1e Phenom Sat, 29 Apr 2017 19:47:29 +0200 Add Double Click on Name for Chat to add their name in text writer.
|
||||
1159c86 csoler Sat, 29 Apr 2017 21:50:55 +0200 moved wiki and wire items to rsitems/
|
||||
d58c638 csoler Sat, 29 Apr 2017 21:46:54 +0200 switched wiki and wire items to new serialization
|
||||
77adc82 Phenom Sat, 29 Apr 2017 17:32:23 +0200 Fix Missing messages when mark all as read.
|
||||
5cba005 csoler Fri, 28 Apr 2017 23:32:47 +0200 moved recognitems to rsitems/
|
||||
2349269 csoler Fri, 28 Apr 2017 23:28:56 +0200 switch rsrecognitems to new serialization
|
||||
8341c68 csoler Fri, 28 Apr 2017 18:54:07 +0200 removed old code
|
||||
688813f csoler Fri, 28 Apr 2017 18:51:35 +0200 moved photo items to rsitems/
|
||||
634efb6 csoler Fri, 28 Apr 2017 18:42:11 +0200 switched rsphotoitems to new serialization
|
||||
d3c960e csoler Fri, 28 Apr 2017 17:48:54 +0200 removed old code
|
||||
22e2416 csoler Fri, 28 Apr 2017 17:47:41 +0200 moved rsserviceinfo items to rsitems/
|
||||
2d19783 csoler Fri, 28 Apr 2017 17:44:45 +0200 switched serviceinfo items to new serialization
|
||||
c33c34b csoler Fri, 28 Apr 2017 16:44:04 +0200 moved rspluginitems to rsitems/
|
||||
d32a8ca csoler Fri, 28 Apr 2017 16:39:54 +0200 switched PluginItems to new serialization
|
||||
45eaf27 csoler Fri, 28 Apr 2017 16:30:33 +0200 moved rsgxsupdateitems to rsitems/
|
||||
2e67665 csoler Fri, 28 Apr 2017 16:26:59 +0200 switched MsgUpdate items to new serialization
|
||||
5995e50 csoler Thu, 27 Apr 2017 21:24:27 +0200 moved rsstatusitem.h to rsitems/
|
||||
87018ed csoler Thu, 27 Apr 2017 21:20:30 +0200 switched rsstatusitem to new serializer
|
||||
07a93be csoler Thu, 27 Apr 2017 21:11:10 +0200 moved heartbeatitem.h to rsitems/
|
||||
9adbab3 csoler Thu, 27 Apr 2017 21:10:22 +0200 switched heartbeatitems to new serialization
|
||||
8a9edb2 Phenom Thu, 27 Apr 2017 17:03:53 +0200 Create a Gxs Identity by default.
|
||||
19b4fb8 Phenom Thu, 27 Apr 2017 16:42:25 +0200 Add Friend Time Offset news feed.
|
||||
349d14b csoler Thu, 27 Apr 2017 14:44:41 +0200 moved rsposteditems to rsitems/
|
||||
35ecc19 csoler Thu, 27 Apr 2017 14:41:31 +0200 switched rsposteditems to new serialization
|
||||
22f6d15 csoler Thu, 27 Apr 2017 14:21:46 +0200 moved rsnxsitems.cc to rsitems/
|
||||
3c20a85 csoler Thu, 27 Apr 2017 14:16:57 +0200 switched RsNxsItems to new serialization
|
||||
f6e59f7 csoler Thu, 27 Apr 2017 11:59:18 +0200 moved gxsforumitems to rsitems/
|
||||
449a420 csoler Thu, 27 Apr 2017 11:56:56 +0200 dwitched gxsforum items to new serialization
|
||||
f50670f csoler Wed, 26 Apr 2017 20:59:59 +0200 moved circle items to rsitems/
|
||||
559137d csoler Wed, 26 Apr 2017 20:57:28 +0200 switched gxscircleitems to new serialization
|
||||
db64523 csoler Wed, 26 Apr 2017 20:15:54 +0200 moved rsgxschannel items to rsitems
|
||||
69729ad csoler Wed, 26 Apr 2017 18:55:23 +0200 switch Channel items to new serialization
|
||||
77c2e6d csoler Wed, 26 Apr 2017 18:14:10 +0200 improved error handlign in pqistore
|
||||
8f97647 csoler Wed, 26 Apr 2017 15:43:00 +0200 fixed bug in RsGxsId deserialization
|
||||
c31396a csoler Wed, 26 Apr 2017 14:31:15 +0200 moved dsdv code to unused directory
|
||||
508a2e2 csoler Wed, 26 Apr 2017 14:28:25 +0200 moved gxs comment and Id items to rsitems/
|
||||
97d0df0 csoler Wed, 26 Apr 2017 14:19:34 +0200 added comment about serialization hack
|
||||
c0d8735 csoler Wed, 26 Apr 2017 14:17:38 +0200 switched RsGxsIdItems to new serialization
|
||||
fb34fa1 csoler Wed, 26 Apr 2017 13:44:09 +0200 switch GxsComment item to new serialization
|
||||
9c610a7 csoler Wed, 26 Apr 2017 11:40:46 +0200 cleaned the hierarchy of serialization classes
|
||||
77e809e csoler Tue, 25 Apr 2017 21:21:46 +0200 switched GRouter to new serialization
|
||||
9e246c9 Phenom Tue, 25 Apr 2017 18:39:30 +0200 Add warning about relays bandwidth.
|
||||
4d7bd83 csoler Tue, 25 Apr 2017 10:14:50 +0200 Merge pull request #786 from PhenomRetroShare/Fix_RelaySettingValues
|
||||
540a8b9 csoler Tue, 25 Apr 2017 10:01:00 +0200 Merge pull request #788 from csoler/v0.6-PRTest
|
||||
078913f Phenom Fri, 21 Apr 2017 21:29:20 +0200 Fix GCC warnings: enumeration value ‘TYPE_IDENTITY’ not handled in switch
|
||||
3592d5b Phenom Fri, 21 Apr 2017 19:55:37 +0200 Fix GCC warnings: unused parameter ‘names’
|
||||
593c0cb Phenom Wed, 19 Apr 2017 14:19:54 +0200 Fix CSA warnings: Called C++ object pointer is null
|
||||
90aaace Phenom Wed, 19 Apr 2017 14:18:35 +0200 Fix CSA warnings: Called C++ object pointer is null
|
||||
1f16f46 Phenom Wed, 19 Apr 2017 14:15:34 +0200 Fix CSA warnings: Called C++ object pointer is null
|
||||
30632dc Phenom Wed, 19 Apr 2017 14:06:56 +0200 Fix CSA warnings: Called C++ object pointer is null
|
||||
90cd623 Phenom Wed, 19 Apr 2017 14:04:50 +0200 Fix CAS warnings: Potential leak of memory pointed to by 'toaster'
|
||||
b2b7d00 Phenom Wed, 19 Apr 2017 14:01:35 +0200 Fix CSA warnings: Called C++ object pointer is null
|
||||
ff1908e Phenom Wed, 19 Apr 2017 11:50:24 +0200 Fix Clang Static Analyser: Undefined allocation of 0 bytes
|
||||
f22dc0f Phenom Tue, 18 Apr 2017 12:02:34 +0200 Fix Clang warnings: unused variable 'action'
|
||||
490f8d2 Phenom Tue, 18 Apr 2017 12:00:00 +0200 Fix Clang warnings: 'TYPE_IDENTITY' not handled
|
||||
6e42cf4 Phenom Tue, 18 Apr 2017 11:56:25 +0200 Fix Clang warnings: field 'mPassword' will be initialized after field 'mPrevIsBad'
|
||||
0d7df56 csoler Mon, 24 Apr 2017 22:47:08 +0200 moved rsconfigitems and rshistoryitems to rsitems/
|
||||
f7338d4 csoler Mon, 24 Apr 2017 22:39:05 +0200 removed old code
|
||||
43b3b87 csoler Mon, 24 Apr 2017 22:36:03 +0200 fixed a few bugs in config items
|
||||
fcabe63 csoler Mon, 24 Apr 2017 18:51:51 +0200 switch RsConfigItems to new serialization
|
||||
be9f126 electr Mon, 24 Apr 2017 18:43:17 +0200 Merge pull request #781 from Sonetio/libresapi_requests
|
||||
af4fcf7 csoler Mon, 24 Apr 2017 17:33:30 +0200 switched rshistoryitems to new serialization
|
||||
1327582 Phenom Mon, 24 Apr 2017 17:28:25 +0200 Fix Relay setting values
|
||||
8ae6541 csoler Mon, 24 Apr 2017 17:10:01 +0200 added two new classes for config/service serialisers and a base generic serialiser class
|
||||
8da5e15 Konrad Mon, 24 Apr 2017 16:00:23 +0200 Changed: difference time to absolute time.
|
||||
dc2df07 csoler Mon, 24 Apr 2017 14:14:34 +0200 renamed RsSerializer into RsServiceSerializer
|
||||
976a80a csoler Mon, 24 Apr 2017 13:30:18 +0200 switch rsfilelistitems to new serialization
|
||||
26e9541 csoler Mon, 24 Apr 2017 11:06:51 +0200 moved RTT items to rsitems/
|
||||
f6aaee7 csoler Mon, 24 Apr 2017 11:01:45 +0200 converted RTT items to new serialization
|
||||
5071c4b csoler Mon, 24 Apr 2017 11:00:57 +0200 moved msgitems to rsitems/
|
||||
fc82b20 csoler Mon, 24 Apr 2017 10:36:22 +0200 removed old serialization code in msgs
|
||||
0886794 csoler Mon, 24 Apr 2017 10:29:57 +0200 fixed bug caused by wrong cast in lobby msg signature validation
|
||||
91b0409 csoler Mon, 24 Apr 2017 10:11:24 +0200 fixed two memory bugs in serialization code
|
||||
6313d89 defnax Mon, 24 Apr 2017 01:23:05 +0200 Improved look n feel of Profile Generation Window.
|
||||
31c07f4 csoler Sun, 23 Apr 2017 22:40:26 +0200 converted RsMsgItems to new serialization. Added format and flag members to RsSerialiser and used the later to handle signature and config serialization techniques
|
||||
63b4b3a csoler Sun, 23 Apr 2017 19:07:26 +0200 moved discovery2 items to rsitems/
|
||||
9d9ff56 csoler Sun, 23 Apr 2017 19:02:12 +0200 switched discovery2items to new serialization
|
||||
190a638 csoler Sun, 23 Apr 2017 17:53:25 +0200 added zesty to ubuntu releases
|
||||
06e90e6 csoler Sun, 23 Apr 2017 17:49:07 +0200 added control file for zesty
|
||||
c738026 csoler Sun, 23 Apr 2017 17:48:39 +0200 updated ubuntu changelog
|
||||
2e71270 csoler Sat, 22 Apr 2017 21:36:39 +0200 fixed previous file move
|
||||
bef6db4 csoler Sat, 22 Apr 2017 21:32:57 +0200 moved files
|
||||
311f257 csoler Sat, 22 Apr 2017 21:10:55 +0200 converted GxsReputationItems to new serialization
|
||||
782c027 csoler Sat, 22 Apr 2017 16:00:01 +0200 added names for turtle sub items
|
||||
f571b05 Konrad Sat, 22 Apr 2017 11:06:56 +0200 Added: Checking if the vector is empty; Changed: Grouped values into one member
|
||||
8c0b7ce Konrad Fri, 21 Apr 2017 23:44:00 +0200 Fixed: Responds sends now correct time difference
|
||||
c9f618d Konrad Thu, 20 Apr 2017 19:09:57 +0200 Added: Notification about changed peer status
|
||||
9600359 Konrad Thu, 20 Apr 2017 18:09:19 +0200 Fixed: Password was not stored after creating a new location
|
||||
4a0b51c Konrad Wed, 19 Apr 2017 22:03:24 +0200 Added: to response information whether the identity is a contact
|
||||
b43bedf Konrad Tue, 18 Apr 2017 23:00:59 +0200 Added: Handling requests to set opinion about identity
|
||||
120ca9d Konrad Tue, 18 Apr 2017 22:58:15 +0200 Added: Handling requests to set opinion about identity
|
||||
3f54568 Konrad Tue, 18 Apr 2017 22:56:35 +0200 Added: Handling requests to get details about identity
|
||||
e2d9152 csoler Tue, 18 Apr 2017 21:11:37 +0200 moved converted serialisation files into new directory rsitems/, leaving serialiser/ for the serialisation classes
|
||||
76dd7fe Konrad Tue, 18 Apr 2017 14:02:14 +0200 Added: Handling requests to add and remove contact
|
||||
4a99000 Konrad Tue, 18 Apr 2017 14:00:30 +0200 Added: Handling requests to get and set node options
|
||||
f8fc8b4 csoler Sun, 16 Apr 2017 20:16:59 +0200 removed old code in turtle serialiser
|
||||
2ca46ec csoler Sun, 16 Apr 2017 20:11:54 +0200 fixed bug in serialization of data chunks
|
||||
1211334 csoler Sun, 16 Apr 2017 19:59:22 +0200 fixed bug in serialization for turtle
|
||||
636450f csoler Sat, 15 Apr 2017 18:46:44 +0200 moved turtle and FT to new serialization
|
||||
fd33315 Konrad Fri, 14 Apr 2017 17:44:17 +0200 Added: Handling requests to create lobby
|
||||
93aeae0 Konrad Fri, 14 Apr 2017 17:41:35 +0200 Added: Handling requests to delete identity
|
||||
3453a3e csoler Tue, 11 Apr 2017 23:05:27 +0200 switched FileTransfer items to new serialization
|
||||
80e8769 csoler Tue, 11 Apr 2017 21:37:35 +0200 added missign file and converted BW control items
|
||||
731e20d csoler Mon, 10 Apr 2017 22:09:56 +0200 switch BanListItem classes to new serialization system
|
||||
691ed8d csoler Mon, 10 Apr 2017 20:34:02 +0200 added new template for std::string with type id
|
||||
8b77388 csoler Wed, 5 Apr 2017 21:02:17 +0200 removed all chat serialization code
|
||||
ae9d0b2 csoler Wed, 5 Apr 2017 20:49:32 +0200 fixed a few bugs in chat serialization
|
||||
03c31ce csoler Wed, 5 Apr 2017 18:27:29 +0200 fixed serialization test example
|
||||
6b4fdb4 csoler Wed, 5 Apr 2017 18:25:54 +0200 fixed bug in serialization
|
||||
a941136 csoler Wed, 5 Apr 2017 18:09:45 +0200 fixed a few bugs in new serialization
|
||||
5b3e488 csoler Wed, 5 Apr 2017 16:53:20 +0200 fixed compilation
|
||||
48688ea csoler Wed, 5 Apr 2017 10:27:12 +0200 progress in converting chat items to new serialization
|
||||
9438d60 csoler Tue, 4 Apr 2017 22:53:50 +0200 progress in converting Chat items to new serialization model
|
||||
f2fa70e csoler Tue, 4 Apr 2017 16:37:57 +0200 progress in converting Chat items to new serialization model
|
||||
32ce9ae csoler Tue, 4 Apr 2017 15:33:59 +0200 started converting rschatitems to new serialization
|
||||
f7e3968 csoler Tue, 4 Apr 2017 14:01:33 +0200 added hability to print in the serialization process
|
||||
059dfcf csoler Tue, 4 Apr 2017 14:00:17 +0200 added hability to print in the serialization process
|
||||
75a3cf0 csoler Sun, 2 Apr 2017 15:04:03 +0200 fixed compilation in new serialization test code
|
||||
ddbe2ef csoler Sun, 2 Apr 2017 14:48:17 +0200 created .cc files for serialization
|
||||
b52071d csoler Sat, 1 Apr 2017 18:05:53 +0200 removed RsSerializable and merged it into RsItem
|
||||
1bc4fe5 csoler Sat, 25 Mar 2017 19:01:32 +0100 polished serialisation prototype
|
||||
369621f csoler Mon, 20 Mar 2017 23:31:04 +0100 simplified new serialization prototype
|
||||
4f24b95 csoler Sun, 19 Mar 2017 21:28:28 +0100 added new serialization code test example
|
||||
|
||||
-- Retroshare Dev Team <contact@retroshare.net> Mon, 8 May 2017 18:00:00 +0100
|
||||
|
||||
retroshare06 (0.6.2-1.20170423.190a638c~xenial) xenial; urgency=low
|
||||
|
||||
5b3b903 csoler Sun, 23 Apr 2017 17:33:21 +0200 added missing line for ubuntu zesty
|
||||
73bfc27 csoler Sun, 23 Apr 2017 17:33:50 +0200 Merge pull request #784 from PhenomRetroShare/Fix_RelaySettingsPage
|
||||
4c326f5 Phenom Sun, 23 Apr 2017 10:27:18 +0200 Fix Relay setting page.
|
||||
|
@ -377,8 +377,8 @@ std::string ApiServer::handleRequest(Request &request)
|
||||
if(data.isRawData())
|
||||
return data.getRawData();
|
||||
|
||||
if(!resp.mCallbackName.empty())
|
||||
outstream << resource_api::makeKeyValueReference("callback_name", resp.mCallbackName);
|
||||
if(!resp.mCallbackName.empty())
|
||||
outstream << resource_api::makeKeyValueReference("callback_name", resp.mCallbackName);
|
||||
|
||||
outstream << resource_api::makeKeyValue("debug_msg", debugString.str());
|
||||
outstream << resource_api::makeKeyValueReference("returncode", returncode);
|
||||
|
@ -106,7 +106,7 @@ public:
|
||||
{}
|
||||
|
||||
protected:
|
||||
virtual void gxsDoWork(Request &req, Response &resp)
|
||||
virtual void gxsDoWork(Request &req, Response & /* resp */)
|
||||
{
|
||||
RsGxsIdGroup group;
|
||||
std::string gxs_id;
|
||||
@ -545,7 +545,7 @@ ResponseTask* IdentityHandler::handleCreateIdentity(Request & /* req */, Respons
|
||||
return new CreateIdentityTask(mRsIdentity);
|
||||
}
|
||||
|
||||
ResponseTask* IdentityHandler::handleDeleteIdentity(Request& req, Response& resp)
|
||||
ResponseTask* IdentityHandler::handleDeleteIdentity(Request& /* req */, Response& /* resp */)
|
||||
{
|
||||
return new DeleteIdentityTask(mRsIdentity);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <util/rsthreads.h>
|
||||
#include <util/cxx11retrocompat.h>
|
||||
#include <retroshare/rsnotify.h>
|
||||
#include "api/ResourceRouter.h"
|
||||
|
||||
|
@ -428,14 +428,14 @@ bool DistributedChatService::handleRecvItem(RsChatItem *item)
|
||||
{
|
||||
switch(item->PacketSubType())
|
||||
{
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_EVENT: handleRecvChatLobbyEventItem (dynamic_cast<RsChatLobbyEventItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE: handleRecvLobbyInvite (dynamic_cast<RsChatLobbyInviteItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CHALLENGE: handleConnectionChallenge (dynamic_cast<RsChatLobbyConnectChallengeItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_UNSUBSCRIBE: handleFriendUnsubscribeLobby (dynamic_cast<RsChatLobbyUnsubscribeItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST_REQUEST: handleRecvChatLobbyListRequest (dynamic_cast<RsChatLobbyListRequestItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST: handleRecvChatLobbyList (dynamic_cast<RsChatLobbyListItem *>(item)) ; break ;
|
||||
default:
|
||||
return false ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_EVENT: handleRecvChatLobbyEventItem (dynamic_cast<RsChatLobbyEventItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE_DEPRECATED: handleRecvLobbyInvite_Deprecated (dynamic_cast<RsChatLobbyInviteItem_Deprecated*>(item)) ; break ; // to be removed (deprecated since May 2017)
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE: handleRecvLobbyInvite (dynamic_cast<RsChatLobbyInviteItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CHALLENGE: handleConnectionChallenge (dynamic_cast<RsChatLobbyConnectChallengeItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_UNSUBSCRIBE: handleFriendUnsubscribeLobby (dynamic_cast<RsChatLobbyUnsubscribeItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST_REQUEST: handleRecvChatLobbyListRequest (dynamic_cast<RsChatLobbyListRequestItem *>(item)) ; break ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST: handleRecvChatLobbyList (dynamic_cast<RsChatLobbyListItem *>(item)) ; break ;
|
||||
default: return false ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
@ -1233,14 +1233,45 @@ void DistributedChatService::invitePeerToLobby(const ChatLobbyId& lobby_id, cons
|
||||
|
||||
RsChatLobbyInviteItem *item = new RsChatLobbyInviteItem ;
|
||||
|
||||
item->lobby_id = lobby_id ;
|
||||
item->lobby_name = it->second.lobby_name ;
|
||||
item->lobby_topic = it->second.lobby_topic ;
|
||||
item->lobby_flags = connexion_challenge?RS_CHAT_LOBBY_FLAGS_CHALLENGE:(it->second.lobby_flags) ;
|
||||
item->lobby_id = lobby_id ;
|
||||
item->lobby_name = it->second.lobby_name ;
|
||||
item->lobby_topic = it->second.lobby_topic ;
|
||||
item->lobby_flags = connexion_challenge?RS_CHAT_LOBBY_FLAGS_CHALLENGE:(it->second.lobby_flags) ;
|
||||
item->PeerId(peer_id) ;
|
||||
|
||||
sendChatItem(item) ;
|
||||
|
||||
//FOR BACKWARD COMPATIBILITY
|
||||
{// to be removed (deprecated since May 2017)
|
||||
RsChatLobbyInviteItem_Deprecated *item = new RsChatLobbyInviteItem_Deprecated ;
|
||||
|
||||
item->lobby_id = lobby_id ;
|
||||
item->lobby_name = it->second.lobby_name ;
|
||||
item->lobby_topic = it->second.lobby_topic ;
|
||||
item->lobby_flags = connexion_challenge?RS_CHAT_LOBBY_FLAGS_CHALLENGE:(it->second.lobby_flags) ;
|
||||
item->PeerId(peer_id) ;
|
||||
|
||||
sendChatItem(item) ;
|
||||
}
|
||||
}
|
||||
|
||||
// to be removed (deprecated since May 2017)
|
||||
void DistributedChatService::handleRecvLobbyInvite_Deprecated(RsChatLobbyInviteItem_Deprecated *item)
|
||||
{
|
||||
#ifdef DEBUG_CHAT_LOBBIES
|
||||
std::cerr << "Received deprecated invite to lobby from " << item->PeerId() << " to lobby " << std::hex << item->lobby_id << std::dec << ", named " << item->lobby_name << item->lobby_topic << std::endl;
|
||||
#endif
|
||||
RsChatLobbyInviteItem* newItem = new RsChatLobbyInviteItem();
|
||||
|
||||
newItem->lobby_id = item->lobby_id ;
|
||||
newItem->lobby_name = item->lobby_name ;
|
||||
newItem->lobby_topic = item->lobby_topic ;
|
||||
newItem->lobby_flags = item->lobby_flags ;
|
||||
newItem->PeerId( item->PeerId() );
|
||||
|
||||
handleRecvLobbyInvite(newItem);
|
||||
}
|
||||
|
||||
void DistributedChatService::handleRecvLobbyInvite(RsChatLobbyInviteItem *item)
|
||||
{
|
||||
#ifdef DEBUG_CHAT_LOBBIES
|
||||
@ -1259,10 +1290,10 @@ void DistributedChatService::handleRecvLobbyInvite(RsChatLobbyInviteItem *item)
|
||||
{
|
||||
#ifdef DEBUG_CHAT_LOBBIES
|
||||
std::cerr << " Lobby already exists. " << std::endl;
|
||||
std::cerr << " privacy levels: " << item->lobby_flags << " vs. " << it->second.lobby_flags ;
|
||||
std::cerr << " privacy levels: " << item->lobby_flags << " vs. " << it->second.lobby_flags ;
|
||||
#endif
|
||||
|
||||
if((!IS_CONNEXION_CHALLENGE(item->lobby_flags)) && EXTRACT_PRIVACY_FLAGS(item->lobby_flags) != EXTRACT_PRIVACY_FLAGS(it->second.lobby_flags))
|
||||
if ((!IS_CONNEXION_CHALLENGE(item->lobby_flags)) && EXTRACT_PRIVACY_FLAGS(item->lobby_flags) != EXTRACT_PRIVACY_FLAGS(it->second.lobby_flags))
|
||||
{
|
||||
std::cerr << " : Don't match. Cancelling." << std::endl;
|
||||
return ;
|
||||
@ -1274,10 +1305,22 @@ void DistributedChatService::handleRecvLobbyInvite(RsChatLobbyInviteItem *item)
|
||||
std::cerr << " Adding new friend " << item->PeerId() << " to lobby." << std::endl;
|
||||
#endif
|
||||
|
||||
// to be removed (deprecated since May 2017)
|
||||
{ //Update Topics if have received deprecated before (withou topic)
|
||||
if(it->second.lobby_topic.empty() && !item->lobby_topic.empty())
|
||||
it->second.lobby_topic = item->lobby_topic;
|
||||
}
|
||||
|
||||
it->second.participating_friends.insert(item->PeerId()) ;
|
||||
return ;
|
||||
}
|
||||
|
||||
// to be removed (deprecated since May 2017)
|
||||
{//check if invitation is already received by deprecated version
|
||||
std::map<ChatLobbyId,ChatLobbyInvite>::const_iterator it(_lobby_invites_queue.find( item->lobby_id)) ;
|
||||
if(it != _lobby_invites_queue.end())
|
||||
return ;
|
||||
}
|
||||
// Don't record the invitation if it's a challenge response item or a lobby we don't have.
|
||||
//
|
||||
if(IS_CONNEXION_CHALLENGE(item->lobby_flags))
|
||||
@ -1290,7 +1333,7 @@ void DistributedChatService::handleRecvLobbyInvite(RsChatLobbyInviteItem *item)
|
||||
invite.peer_id = item->PeerId() ;
|
||||
invite.lobby_name = item->lobby_name ;
|
||||
invite.lobby_topic = item->lobby_topic ;
|
||||
invite.lobby_flags = item->lobby_flags ;
|
||||
invite.lobby_flags = item->lobby_flags ;
|
||||
|
||||
_lobby_invites_queue[item->lobby_id] = invite ;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ class RsChatLobbyListRequestItem ;
|
||||
class RsChatLobbyListItem ;
|
||||
class RsChatLobbyEventItem ;
|
||||
class RsChatLobbyBouncingObject ;
|
||||
class RsChatLobbyInviteItem_Deprecated ; // to be removed (deprecated since May 2017)
|
||||
class RsChatLobbyInviteItem ;
|
||||
class RsChatLobbyMsgItem ;
|
||||
class RsChatLobbyConnectChallengeItem ;
|
||||
@ -111,6 +112,7 @@ class DistributedChatService
|
||||
|
||||
/// receive and handle chat lobby item
|
||||
bool recvLobbyChat(RsChatLobbyMsgItem*,const RsPeerId& src_peer_id) ;
|
||||
void handleRecvLobbyInvite_Deprecated(RsChatLobbyInviteItem_Deprecated*) ; // to be removed (deprecated since May 2017)
|
||||
void handleRecvLobbyInvite(RsChatLobbyInviteItem*) ;
|
||||
void checkAndRedirectMsgToLobby(RsChatMsgItem*) ;
|
||||
void handleConnectionChallenge(RsChatLobbyConnectChallengeItem *item) ;
|
||||
|
@ -39,23 +39,24 @@ static const uint32_t RS_CHAT_SERIALIZER_FLAGS_NO_SIGNATURE = 0x0001;
|
||||
|
||||
RsItem *RsChatSerialiser::create_item(uint16_t service_id,uint8_t item_sub_id) const
|
||||
{
|
||||
if(service_id != RS_SERVICE_TYPE_CHAT)
|
||||
return NULL ;
|
||||
if (service_id != RS_SERVICE_TYPE_CHAT)
|
||||
return NULL;
|
||||
|
||||
switch(item_sub_id)
|
||||
{
|
||||
case RS_PKT_SUBTYPE_DEFAULT: return new RsChatMsgItem() ;
|
||||
case RS_PKT_SUBTYPE_PRIVATECHATMSG_CONFIG: return new RsPrivateChatMsgConfigItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_STATUS: return new RsChatStatusItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_AVATAR: return new RsChatAvatarItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_MSG: return new RsChatLobbyMsgItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE: return new RsChatLobbyInviteItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CHALLENGE: return new RsChatLobbyConnectChallengeItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_UNSUBSCRIBE: return new RsChatLobbyUnsubscribeItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_EVENT:return new RsChatLobbyEventItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST_REQUEST:return new RsChatLobbyListRequestItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST: return new RsChatLobbyListItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CONFIG: return new RsChatLobbyConfigItem() ;
|
||||
case RS_PKT_SUBTYPE_DEFAULT: return new RsChatMsgItem() ;
|
||||
case RS_PKT_SUBTYPE_PRIVATECHATMSG_CONFIG: return new RsPrivateChatMsgConfigItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_STATUS: return new RsChatStatusItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_AVATAR: return new RsChatAvatarItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_MSG: return new RsChatLobbyMsgItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE_DEPRECATED: return new RsChatLobbyInviteItem_Deprecated() ; // to be removed (deprecated since May 2017)
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE: return new RsChatLobbyInviteItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CHALLENGE: return new RsChatLobbyConnectChallengeItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_UNSUBSCRIBE: return new RsChatLobbyUnsubscribeItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_EVENT: return new RsChatLobbyEventItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST_REQUEST: return new RsChatLobbyListRequestItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_LIST: return new RsChatLobbyListItem() ;
|
||||
case RS_PKT_SUBTYPE_CHAT_LOBBY_CONFIG: return new RsChatLobbyConfigItem() ;
|
||||
default:
|
||||
std::cerr << "Unknown packet type in chat!" << std::endl ;
|
||||
return NULL ;
|
||||
@ -97,12 +98,12 @@ void RsChatLobbyMsgItem::serial_process(RsGenericSerializer::SerializeJob j,RsGe
|
||||
RsChatLobbyBouncingObject::serial_process(j,ctx) ;
|
||||
}
|
||||
|
||||
void RsChatLobbyListRequestItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||
void RsChatLobbyListRequestItem::serial_process(RsGenericSerializer::SerializeJob /*j*/,RsGenericSerializer::SerializeContext& /*ctx*/)
|
||||
{
|
||||
// nothing to do. This is an empty item.
|
||||
}
|
||||
|
||||
template<> void RsTypeSerializer::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx,VisibleChatLobbyInfo& info,const std::string& name)
|
||||
template<> void RsTypeSerializer::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx,VisibleChatLobbyInfo& info,const std::string& /*name*/)
|
||||
{
|
||||
RsTypeSerializer::serial_process<uint64_t>(j,ctx,info.id,"info.id") ;
|
||||
|
||||
@ -135,10 +136,19 @@ void RsChatLobbyConnectChallengeItem::serial_process(RsGenericSerializer::Serial
|
||||
RsTypeSerializer::serial_process<uint64_t>(j,ctx,challenge_code,"challenge_code") ;
|
||||
}
|
||||
|
||||
// to be removed (deprecated since May 2017)
|
||||
void RsChatLobbyInviteItem_Deprecated::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||
{
|
||||
RsTypeSerializer::serial_process<uint64_t>(j,ctx, lobby_id, "lobby_id") ;
|
||||
RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_NAME,lobby_name, "lobby_name") ;
|
||||
RsTypeSerializer::serial_process (j,ctx, lobby_flags,"lobby_flags") ;
|
||||
}
|
||||
|
||||
void RsChatLobbyInviteItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||
{
|
||||
RsTypeSerializer::serial_process<uint64_t>(j,ctx, lobby_id, "lobby_id") ;
|
||||
RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_NAME,lobby_name, "lobby_name") ;
|
||||
RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_NAME,lobby_topic,"lobby_topic") ;
|
||||
RsTypeSerializer::serial_process (j,ctx, lobby_flags,"lobby_flags") ;
|
||||
}
|
||||
|
||||
|
@ -77,8 +77,10 @@ const uint8_t RS_PKT_SUBTYPE_DISTANT_CHAT_DH_PUBLIC_KEY = 0x16 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_MSG = 0x17 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_SIGNED_EVENT = 0x18 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_LIST = 0x19 ;
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE = 0x1A ;
|
||||
const uint8_t RS_PKT_SUBTYPE_OUTGOING_MAP = 0x1B ;
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE_DEPRECATED = 0x1A ; // to be removed (deprecated since May 2017)
|
||||
const uint8_t RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE = 0x1B ;
|
||||
const uint8_t RS_PKT_SUBTYPE_OUTGOING_MAP = 0x1C ;
|
||||
|
||||
typedef uint64_t ChatLobbyId ;
|
||||
typedef uint64_t ChatLobbyMsgId ;
|
||||
@ -94,7 +96,7 @@ class RsChatItem: public RsItem
|
||||
}
|
||||
|
||||
virtual ~RsChatItem() {}
|
||||
virtual std::ostream& print(std::ostream &out, uint16_t indent = 0) { return out; } // derived from RsItem, but should be removed
|
||||
virtual std::ostream& print(std::ostream &out, uint16_t /*indent*/ = 0) { return out; } // derived from RsItem, but should be removed
|
||||
|
||||
virtual void clear() {}
|
||||
};
|
||||
@ -239,6 +241,21 @@ class RsChatLobbyConnectChallengeItem: public RsChatItem
|
||||
uint64_t challenge_code ;
|
||||
};
|
||||
|
||||
// to be removed (deprecated since May 2017)
|
||||
class RsChatLobbyInviteItem_Deprecated: public RsChatItem
|
||||
{
|
||||
public:
|
||||
RsChatLobbyInviteItem_Deprecated() :RsChatItem(RS_PKT_SUBTYPE_CHAT_LOBBY_INVITE_DEPRECATED) {}
|
||||
virtual ~RsChatLobbyInviteItem_Deprecated() {}
|
||||
|
||||
void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
|
||||
|
||||
ChatLobbyId lobby_id ;
|
||||
std::string lobby_name ;
|
||||
std::string lobby_topic ;
|
||||
ChatLobbyFlags lobby_flags ;
|
||||
};
|
||||
|
||||
class RsChatLobbyInviteItem: public RsChatItem
|
||||
{
|
||||
public:
|
||||
@ -250,7 +267,7 @@ class RsChatLobbyInviteItem: public RsChatItem
|
||||
ChatLobbyId lobby_id ;
|
||||
std::string lobby_name ;
|
||||
std::string lobby_topic ;
|
||||
ChatLobbyFlags lobby_flags ;
|
||||
ChatLobbyFlags lobby_flags ;
|
||||
};
|
||||
|
||||
/*!
|
||||
|
@ -44,6 +44,12 @@
|
||||
|
||||
//#define DEBUG_CHACHA20
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x010100000L
|
||||
#define AEAD_chacha20_poly1305_openssl AEAD_chacha20_poly1305
|
||||
#else
|
||||
#define AEAD_chacha20_poly1305_rs AEAD_chacha20_poly1305
|
||||
#endif
|
||||
|
||||
namespace librs {
|
||||
namespace crypto {
|
||||
|
||||
@ -273,6 +279,7 @@ static void quotient(const uint256_32& n,const uint256_32& p,uint256_32& q,uint2
|
||||
q += m ;
|
||||
}
|
||||
}
|
||||
|
||||
static void remainder(const uint256_32& n,const uint256_32& p,uint256_32& r)
|
||||
{
|
||||
// simple algorithm: add up multiples of u while keeping below *this. Once done, substract.
|
||||
@ -356,7 +363,7 @@ static void print(const chacha20_state& s)
|
||||
}
|
||||
#endif
|
||||
|
||||
void chacha20_encrypt(uint8_t key[32], uint32_t block_counter, uint8_t nonce[12], uint8_t *data, uint32_t size)
|
||||
void chacha20_encrypt_rs(uint8_t key[32], uint32_t block_counter, uint8_t nonce[12], uint8_t *data, uint32_t size)
|
||||
{
|
||||
for(uint32_t i=0;i<size/64 + 1;++i)
|
||||
{
|
||||
@ -379,6 +386,50 @@ void chacha20_encrypt(uint8_t key[32], uint32_t block_counter, uint8_t nonce[12]
|
||||
}
|
||||
}
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x010100000L
|
||||
void chacha20_encrypt_openssl(uint8_t key[32], uint32_t block_counter, uint8_t nonce[12], uint8_t *data, uint32_t size)
|
||||
{
|
||||
EVP_CIPHER_CTX *ctx;
|
||||
|
||||
int len;
|
||||
int tmp_len;
|
||||
uint8_t tmp[size];
|
||||
uint8_t iv[16];
|
||||
|
||||
// create iv with nonce and block counter
|
||||
memcpy(iv, &block_counter, 4);
|
||||
memcpy(iv + 4, nonce, 12);
|
||||
|
||||
/* Create and initialise the context */
|
||||
if(!(ctx = EVP_CIPHER_CTX_new())) return;
|
||||
|
||||
/* Initialise the encryption operation. IMPORTANT - ensure you use a key
|
||||
* and IV size appropriate for your cipher
|
||||
* In this example we are using 256 bit AES (i.e. a 256 bit key). The
|
||||
* IV size for *most* modes is the same as the block size. For AES this
|
||||
* is 128 bits */
|
||||
if(1 != EVP_EncryptInit_ex(ctx, EVP_chacha20(), NULL, key, iv)) goto out;
|
||||
|
||||
/* Provide the message to be encrypted, and obtain the encrypted output.
|
||||
* EVP_EncryptUpdate can be called multiple times if necessary
|
||||
*/
|
||||
if(1 != EVP_EncryptUpdate(ctx, tmp, &len, data, size)) goto out;
|
||||
tmp_len = len;
|
||||
|
||||
/* Finalise the encryption. Further ciphertext bytes may be written at
|
||||
* this stage.
|
||||
*/
|
||||
if(1 != EVP_EncryptFinal_ex(ctx, tmp + len, &len)) goto out;
|
||||
tmp_len += len;
|
||||
|
||||
memcpy(data, tmp, tmp_len);
|
||||
|
||||
out:
|
||||
/* Clean up */
|
||||
EVP_CIPHER_CTX_free(ctx);
|
||||
}
|
||||
#endif
|
||||
|
||||
struct poly1305_state
|
||||
{
|
||||
uint256_32 r ;
|
||||
@ -475,7 +526,7 @@ bool constant_time_memory_compare(const uint8_t *m1,const uint8_t *m2,uint32_t s
|
||||
return !CRYPTO_memcmp(m1,m2,size) ;
|
||||
}
|
||||
|
||||
bool AEAD_chacha20_poly1305(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uint32_t data_size,uint8_t *aad,uint32_t aad_size,uint8_t tag[16],bool encrypt)
|
||||
bool AEAD_chacha20_poly1305_rs(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uint32_t data_size,uint8_t *aad,uint32_t aad_size,uint8_t tag[16],bool encrypt)
|
||||
{
|
||||
// encrypt + tag. See RFC7539-2.8
|
||||
|
||||
@ -492,7 +543,7 @@ bool AEAD_chacha20_poly1305(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uin
|
||||
|
||||
if(encrypt)
|
||||
{
|
||||
chacha20_encrypt(key,1,nonce,data,data_size);
|
||||
chacha20_encrypt_rs(key,1,nonce,data,data_size);
|
||||
|
||||
poly1305_state pls ;
|
||||
|
||||
@ -520,19 +571,107 @@ bool AEAD_chacha20_poly1305(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uin
|
||||
|
||||
// decrypt
|
||||
|
||||
chacha20_encrypt(key,1,nonce,data,data_size);
|
||||
chacha20_encrypt_rs(key,1,nonce,data,data_size);
|
||||
|
||||
return constant_time_memory_compare(tag,computed_tag,16) ;
|
||||
}
|
||||
}
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x010100000L
|
||||
#define errorOut {ret = false; goto out;}
|
||||
|
||||
bool AEAD_chacha20_poly1305_openssl(uint8_t key[32], uint8_t nonce[12], uint8_t *data, uint32_t data_size, uint8_t *aad, uint32_t aad_size, uint8_t tag[16], bool encrypt_or_decrypt)
|
||||
{
|
||||
EVP_CIPHER_CTX *ctx;
|
||||
|
||||
bool ret = true;
|
||||
int len;
|
||||
const uint8_t tag_len = 16;
|
||||
int tmp_len;
|
||||
uint8_t tmp[data_size];
|
||||
|
||||
/* Create and initialise the context */
|
||||
if(!(ctx = EVP_CIPHER_CTX_new())) return false;
|
||||
|
||||
if (encrypt_or_decrypt) {
|
||||
/* Initialise the encryption operation. */
|
||||
if(1 != EVP_EncryptInit_ex(ctx, EVP_chacha20_poly1305(), NULL, NULL, NULL)) errorOut
|
||||
|
||||
/* Initialise key and IV */
|
||||
if(1 != EVP_EncryptInit_ex(ctx, NULL, NULL, key, nonce)) errorOut
|
||||
|
||||
/* Provide any AAD data. This can be called zero or more times as
|
||||
* required
|
||||
*/
|
||||
if(1 != EVP_EncryptUpdate(ctx, NULL, &len, aad, aad_size)) errorOut
|
||||
|
||||
/* Provide the message to be encrypted, and obtain the encrypted output.
|
||||
* EVP_EncryptUpdate can be called multiple times if necessary
|
||||
*/
|
||||
if(1 != EVP_EncryptUpdate(ctx, tmp, &len, data, data_size)) errorOut
|
||||
tmp_len = len;
|
||||
|
||||
/* Finalise the encryption. Normally ciphertext bytes may be written at
|
||||
* this stage, but this does not occur in GCM mode
|
||||
*/
|
||||
if(1 != EVP_EncryptFinal_ex(ctx, data + len, &len)) errorOut
|
||||
tmp_len += len;
|
||||
|
||||
/* Get the tag */
|
||||
if(1 != EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG, tag_len, tag)) errorOut
|
||||
} else {
|
||||
/* Initialise the decryption operation. */
|
||||
if(!EVP_DecryptInit_ex(ctx, EVP_chacha20_poly1305(), NULL, key, nonce)) errorOut
|
||||
|
||||
/* Provide any AAD data. This can be called zero or more times as
|
||||
* required
|
||||
*/
|
||||
if(!EVP_DecryptUpdate(ctx, NULL, &len, aad, aad_size)) errorOut
|
||||
|
||||
/* Provide the message to be decrypted, and obtain the plaintext output.
|
||||
* EVP_DecryptUpdate can be called multiple times if necessary
|
||||
*/
|
||||
if(!EVP_DecryptUpdate(ctx, tmp, &len, data, data_size)) errorOut
|
||||
tmp_len = len;
|
||||
|
||||
/* Set expected tag value. Works in OpenSSL 1.0.1d and later */
|
||||
if(!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, tag)) errorOut
|
||||
|
||||
/* Finalise the decryption. A positive return value indicates success,
|
||||
* anything else is a failure - the plaintext is not trustworthy.
|
||||
*/
|
||||
if(EVP_DecryptFinal_ex(ctx, tmp + len, &len) > 0) {
|
||||
/* Success */
|
||||
tmp_len += len;
|
||||
ret = true;
|
||||
} else {
|
||||
/* Verify failed */
|
||||
errorOut
|
||||
}
|
||||
}
|
||||
|
||||
memcpy(data, tmp, tmp_len);
|
||||
|
||||
out:
|
||||
/* Clean up */
|
||||
EVP_CIPHER_CTX_free(ctx);
|
||||
return !!ret;
|
||||
}
|
||||
|
||||
#undef errorOut
|
||||
#endif
|
||||
|
||||
bool AEAD_chacha20_sha256(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uint32_t data_size,uint8_t *aad,uint32_t aad_size,uint8_t tag[16],bool encrypt)
|
||||
{
|
||||
// encrypt + tag. See RFC7539-2.8
|
||||
|
||||
if(encrypt)
|
||||
{
|
||||
chacha20_encrypt(key,1,nonce,data,data_size);
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
chacha20_encrypt_rs(key,1,nonce,data,data_size);
|
||||
#else
|
||||
chacha20_encrypt_openssl(key, 1, nonce, data, data_size);
|
||||
#endif
|
||||
|
||||
uint8_t computed_tag[EVP_MAX_MD_SIZE];
|
||||
unsigned int md_size ;
|
||||
@ -594,7 +733,11 @@ bool AEAD_chacha20_sha256(uint8_t key[32], uint8_t nonce[12],uint8_t *data,uint3
|
||||
|
||||
// decrypt
|
||||
|
||||
chacha20_encrypt(key,1,nonce,data,data_size);
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
chacha20_encrypt_rs(key,1,nonce,data,data_size);
|
||||
#else
|
||||
chacha20_encrypt_openssl(key, 1, nonce, data, data_size);
|
||||
#endif
|
||||
|
||||
return constant_time_memory_compare(tag,computed_tag,16) ;
|
||||
}
|
||||
@ -674,7 +817,7 @@ bool perform_tests()
|
||||
0x74, 0x2e
|
||||
};
|
||||
|
||||
chacha20_encrypt(key,1,nounce2,plaintext,7*16+2) ;
|
||||
chacha20_encrypt_rs(key,1,nounce2,plaintext,7*16+2) ;
|
||||
|
||||
#ifdef DEBUG_CHACHA20
|
||||
fprintf(stdout,"CipherText: \n") ;
|
||||
@ -1154,12 +1297,12 @@ bool perform_tests()
|
||||
uint8_t tag[16] ;
|
||||
uint8_t test_tag[16] = { 0x1a,0xe1,0x0b,0x59,0x4f,0x09,0xe2,0x6a,0x7e,0x90,0x2e,0xcb,0xd0,0x60,0x06,0x91 };
|
||||
|
||||
AEAD_chacha20_poly1305(key,nonce,msg,7*16+2,aad,12,tag,true) ;
|
||||
AEAD_chacha20_poly1305_rs(key,nonce,msg,7*16+2,aad,12,tag,true) ;
|
||||
|
||||
if(!constant_time_memory_compare(msg,test_msg,7*16+2)) return false ;
|
||||
if(!constant_time_memory_compare(tag,test_tag,16)) return false ;
|
||||
|
||||
bool res = AEAD_chacha20_poly1305(key,nonce,msg,7*16+2,aad,12,tag,false) ;
|
||||
bool res = AEAD_chacha20_poly1305_rs(key,nonce,msg,7*16+2,aad,12,tag,false) ;
|
||||
|
||||
if(!res) return false ;
|
||||
}
|
||||
@ -1197,7 +1340,7 @@ bool perform_tests()
|
||||
|
||||
uint8_t received_tag[16] = { 0xee,0xad,0x9d,0x67,0x89,0x0c,0xbb,0x22,0x39,0x23,0x36,0xfe,0xa1,0x85,0x1f,0x38 };
|
||||
|
||||
if(!AEAD_chacha20_poly1305(key,nonce,ciphertext,16*16+9,aad,12,received_tag,false))
|
||||
if(!AEAD_chacha20_poly1305_rs(key,nonce,ciphertext,16*16+9,aad,12,received_tag,false))
|
||||
return false ;
|
||||
|
||||
uint8_t cleartext[16*16+9] = {
|
||||
@ -1243,21 +1386,29 @@ bool perform_tests()
|
||||
|
||||
{
|
||||
RsScopeTimer s("AEAD1") ;
|
||||
chacha20_encrypt(key, 1, nonce, ten_megabyte_data,SIZE) ;
|
||||
chacha20_encrypt_rs(key, 1, nonce, ten_megabyte_data,SIZE) ;
|
||||
|
||||
std::cerr << " Chacha20 encryption speed : " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
std::cerr << " Chacha20 encryption speed : " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
}
|
||||
{
|
||||
RsScopeTimer s("AEAD2") ;
|
||||
AEAD_chacha20_poly1305(key,nonce,ten_megabyte_data,SIZE,aad,12,received_tag,true) ;
|
||||
AEAD_chacha20_poly1305_rs(key,nonce,ten_megabyte_data,SIZE,aad,12,received_tag,true) ;
|
||||
|
||||
std::cerr << " AEAD/poly1305 encryption speed: " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
std::cerr << " AEAD/poly1305 own encryption speed : " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
}
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x010100000L
|
||||
{
|
||||
RsScopeTimer s("AEAD3") ;
|
||||
AEAD_chacha20_poly1305_openssl(key,nonce,ten_megabyte_data,SIZE,aad,12,received_tag,true) ;
|
||||
|
||||
std::cerr << " AEAD/poly1305 openssl encryption speed: " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
}
|
||||
#endif
|
||||
{
|
||||
RsScopeTimer s("AEAD4") ;
|
||||
AEAD_chacha20_sha256(key,nonce,ten_megabyte_data,SIZE,aad,12,received_tag,true) ;
|
||||
|
||||
std::cerr << " AEAD/sha256 encryption speed : " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
std::cerr << " AEAD/sha256 encryption speed : " << SIZE / (1024.0*1024.0) / s.duration() << " MB/s" << std::endl;
|
||||
}
|
||||
|
||||
free(ten_megabyte_data) ;
|
||||
|
@ -75,6 +75,7 @@ static const int32_t INACTIVE_CHUNKS_CHECK_DELAY = 240 ; // time after which an
|
||||
static const int32_t MAX_TIME_INACTIVE_REQUEUED = 120 ; // time after which an inactive ftFileControl is bt-queued
|
||||
|
||||
static const int32_t FT_FILECONTROL_QUEUE_ADD_END = 0 ;
|
||||
static const int32_t FT_FILECONTROL_MAX_UPLOAD_SLOTS_DEFAULT= 0 ;
|
||||
|
||||
const uint32_t FT_CNTRL_STANDARD_RATE = 10 * 1024 * 1024;
|
||||
const uint32_t FT_CNTRL_SLOW_RATE = 100 * 1024;
|
||||
@ -113,6 +114,7 @@ ftController::ftController(ftDataMultiplex *dm, p3ServiceControl *sc, uint32_t f
|
||||
{
|
||||
_max_active_downloads = 5 ; // default queue size
|
||||
mDefaultEncryptionPolicy = RS_FILE_CTRL_ENCRYPTION_POLICY_PERMISSIVE;
|
||||
_max_uploads_per_friend = FT_FILECONTROL_MAX_UPLOAD_SLOTS_DEFAULT ;
|
||||
/* TODO */
|
||||
cnt = 0 ;
|
||||
}
|
||||
@ -239,8 +241,8 @@ void ftController::data_tick()
|
||||
{
|
||||
RsStackMutex stack(ctrlMutex); /******* LOCKED ********/
|
||||
|
||||
for(std::map<RsFileHash,ftFileControl*>::iterator it(mDownloads.begin());it!=mDownloads.end();++it)
|
||||
it->second->mCreator->removeInactiveChunks() ;
|
||||
for(std::map<RsFileHash,ftFileControl*>::iterator it(mDownloads.begin());it!=mDownloads.end();++it)
|
||||
it->second->mCreator->removeInactiveChunks() ;
|
||||
|
||||
last_clean_time = now ;
|
||||
}
|
||||
@ -1723,6 +1725,7 @@ void ftController::statusChange(const std::list<pqiServicePeer> &plist)
|
||||
const std::string active_downloads_size_ss("MAX_ACTIVE_DOWNLOADS");
|
||||
const std::string download_dir_ss("DOWN_DIR");
|
||||
const std::string partial_dir_ss("PART_DIR");
|
||||
const std::string max_uploads_per_friend_ss("MAX_UPLOADS_PER_FRIEND");
|
||||
const std::string default_chunk_strategy_ss("DEFAULT_CHUNK_STRATEGY");
|
||||
const std::string free_space_limit_ss("FREE_SPACE_LIMIT");
|
||||
const std::string default_encryption_policy_ss("DEFAULT_ENCRYPTION_POLICY");
|
||||
@ -1771,6 +1774,9 @@ bool ftController::saveList(bool &cleanup, std::list<RsItem *>& saveData)
|
||||
break ;
|
||||
}
|
||||
|
||||
rs_sprintf(s,"%lu",_max_uploads_per_friend) ;
|
||||
configMap[max_uploads_per_friend_ss] = s ;
|
||||
|
||||
configMap[default_encryption_policy_ss] = (mDefaultEncryptionPolicy==RS_FILE_CTRL_ENCRYPTION_POLICY_PERMISSIVE)?"PERMISSIVE":"STRICT" ;
|
||||
|
||||
rs_sprintf(s, "%lu", RsDiscSpace::freeSpaceLimit());
|
||||
@ -2057,9 +2063,29 @@ bool ftController::loadConfigMap(std::map<std::string, std::string> &configMap)
|
||||
RsDiscSpace::setFreeSpaceLimit(size) ;
|
||||
}
|
||||
}
|
||||
if(configMap.end() != (mit = configMap.find(max_uploads_per_friend_ss)))
|
||||
{
|
||||
uint32_t n ;
|
||||
if (sscanf(mit->second.c_str(), "%u", &n) == 1) {
|
||||
std::cerr << "have read a max upload slots limit of " << n << std::endl ;
|
||||
|
||||
_max_uploads_per_friend = n ;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ftController::setMaxUploadsPerFriend(uint32_t m)
|
||||
{
|
||||
RsStackMutex stack(ctrlMutex); /******* LOCKED ********/
|
||||
_max_uploads_per_friend = m ;
|
||||
IndicateConfigChanged();
|
||||
}
|
||||
uint32_t ftController::getMaxUploadsPerFriend()
|
||||
{
|
||||
RsStackMutex stack(ctrlMutex); /******* LOCKED ********/
|
||||
return _max_uploads_per_friend ;
|
||||
}
|
||||
void ftController::setDefaultEncryptionPolicy(uint32_t p)
|
||||
{
|
||||
RsStackMutex stack(ctrlMutex); /******* LOCKED ********/
|
||||
|
@ -146,6 +146,9 @@ class ftController: public RsTickingThread, public pqiServiceMonitor, public p3C
|
||||
void setFreeDiskSpaceLimit(uint32_t size_in_mb) ;
|
||||
uint32_t defaultEncryptionPolicy();
|
||||
|
||||
void setMaxUploadsPerFriend(uint32_t m) ;
|
||||
uint32_t getMaxUploadsPerFriend() ;
|
||||
|
||||
bool FileCancel(const RsFileHash& hash);
|
||||
bool FileControl(const RsFileHash& hash, uint32_t flags);
|
||||
bool FileClearCompleted();
|
||||
@ -261,7 +264,8 @@ class ftController: public RsTickingThread, public pqiServiceMonitor, public p3C
|
||||
|
||||
FileChunksInfo::ChunkStrategy mDefaultChunkStrategy ;
|
||||
|
||||
uint32_t _max_active_downloads ; // maximum number of simultaneous downloads
|
||||
uint32_t _max_active_downloads ; // maximum number of simultaneous downloads
|
||||
uint32_t _max_uploads_per_friend ; // maximum number of uploads per friend. 0 means unlimited.
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -53,11 +53,6 @@ void ftExtraList::data_tick()
|
||||
bool todo = false;
|
||||
time_t now = time(NULL);
|
||||
|
||||
#ifdef DEBUG_ELIST
|
||||
//std::cerr << "ftExtraList::run() Iteration";
|
||||
//std::cerr << std::endl;
|
||||
#endif
|
||||
|
||||
{
|
||||
RsStackMutex stack(extMutex);
|
||||
|
||||
@ -131,6 +126,7 @@ void ftExtraList::hashAFile()
|
||||
|
||||
/* stick it in the available queue */
|
||||
mFiles[details.info.hash] = details;
|
||||
mHashOfHash[makeEncryptedHash(details.info.hash)] = details.info.hash ;
|
||||
|
||||
/* add to the path->hash map */
|
||||
mHashedList[details.info.path] = details.info.hash;
|
||||
@ -169,6 +165,7 @@ bool ftExtraList::addExtraFile(std::string path, const RsFileHash& hash,
|
||||
|
||||
/* stick it in the available queue */
|
||||
mFiles[details.info.hash] = details;
|
||||
mHashOfHash[makeEncryptedHash(details.info.hash)] = details.info.hash ;
|
||||
|
||||
IndicateConfigChanged();
|
||||
|
||||
@ -190,6 +187,8 @@ bool ftExtraList::removeExtraFile(const RsFileHash& hash, TransferRequestFlags f
|
||||
|
||||
RsStackMutex stack(extMutex);
|
||||
|
||||
mHashOfHash.erase(makeEncryptedHash(hash)) ;
|
||||
|
||||
std::map<RsFileHash, FileDetails>::iterator it;
|
||||
it = mFiles.find(hash);
|
||||
if (it == mFiles.end())
|
||||
@ -242,29 +241,26 @@ bool ftExtraList::cleanupOldFiles()
|
||||
time_t now = time(NULL);
|
||||
|
||||
std::list<RsFileHash> toRemove;
|
||||
std::list<RsFileHash>::iterator rit;
|
||||
|
||||
std::map<RsFileHash, FileDetails>::iterator it;
|
||||
for(it = mFiles.begin(); it != mFiles.end(); ++it)
|
||||
{
|
||||
/* check timestamps */
|
||||
for( std::map<RsFileHash, FileDetails>::iterator it = mFiles.begin(); it != mFiles.end(); ++it) /* check timestamps */
|
||||
if ((time_t)it->second.info.age < now)
|
||||
{
|
||||
toRemove.push_back(it->first);
|
||||
}
|
||||
}
|
||||
|
||||
if (toRemove.size() > 0)
|
||||
{
|
||||
std::map<RsFileHash, FileDetails>::iterator it;
|
||||
|
||||
/* remove items */
|
||||
for(rit = toRemove.begin(); rit != toRemove.end(); ++rit)
|
||||
{
|
||||
for(std::list<RsFileHash>::iterator rit = toRemove.begin(); rit != toRemove.end(); ++rit)
|
||||
{
|
||||
if (mFiles.end() != (it = mFiles.find(*rit)))
|
||||
{
|
||||
cleanupEntry(it->second.info.path, it->second.info.transfer_info_flags);
|
||||
mFiles.erase(it);
|
||||
}
|
||||
}
|
||||
mHashOfHash.erase(makeEncryptedHash(*rit)) ;
|
||||
}
|
||||
|
||||
IndicateConfigChanged();
|
||||
}
|
||||
return true;
|
||||
@ -333,31 +329,71 @@ bool ftExtraList::hashExtraFileDone(std::string path, FileInfo &info)
|
||||
**/
|
||||
bool ftExtraList::search(const RsFileHash &hash, FileSearchFlags /*hintflags*/, FileInfo &info) const
|
||||
{
|
||||
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << "ftExtraList::search()";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "ftExtraList::search() hash=" << hash ;
|
||||
#endif
|
||||
|
||||
/* find hash */
|
||||
std::map<RsFileHash, FileDetails>::const_iterator fit;
|
||||
if (mFiles.end() == (fit = mFiles.find(hash)))
|
||||
{
|
||||
return false;
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " not found in mFiles. Trying encrypted... " ;
|
||||
#endif
|
||||
// File not found. We try to look for encrypted hash.
|
||||
|
||||
std::map<RsFileHash,RsFileHash>::const_iterator hit = mHashOfHash.find(hash) ;
|
||||
|
||||
if(hit == mHashOfHash.end())
|
||||
{
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " not found." << std::endl;
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " found! Reaching data..." ;
|
||||
#endif
|
||||
|
||||
fit = mFiles.find(hit->second) ;
|
||||
|
||||
if(fit == mFiles.end()) // not found. This is an error.
|
||||
{
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " no data. Returning false." << std::endl;
|
||||
#endif
|
||||
return false ;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " ok! Accepting encrypted transfer." << std::endl;
|
||||
#endif
|
||||
info = fit->second.info;
|
||||
info.storage_permission_flags = FileStorageFlags(DIR_FLAGS_ANONYMOUS_DOWNLOAD) ;
|
||||
info.transfer_info_flags |= RS_FILE_REQ_ENCRYPTED ;
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG_ELIST
|
||||
std::cerr << " found! Accepting direct transfer" << std::endl;
|
||||
#endif
|
||||
info = fit->second.info;
|
||||
|
||||
info = fit->second.info;
|
||||
|
||||
// Now setup the file storage flags so that the client can know how to handle permissions
|
||||
//
|
||||
#warning mr-alice: make sure this is right
|
||||
info.storage_permission_flags = FileStorageFlags(0) ;//DIR_FLAGS_BROWSABLE_OTHERS ;
|
||||
// Unencrypted file transfer: We only allow direct transfers. This is not exactly secure since another friend can
|
||||
// swarm the file. But the hash being kept secret, there's no risk here.
|
||||
//
|
||||
info.storage_permission_flags = FileStorageFlags(DIR_FLAGS_BROWSABLE) ;
|
||||
}
|
||||
|
||||
if(info.transfer_info_flags & RS_FILE_REQ_ANONYMOUS_ROUTING) info.storage_permission_flags |= DIR_FLAGS_ANONYMOUS_DOWNLOAD ;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
RsFileHash ftExtraList::makeEncryptedHash(const RsFileHash& hash)
|
||||
{
|
||||
return RsDirUtil::sha1sum(hash.toByteArray(),hash.SIZE_IN_BYTES);
|
||||
}
|
||||
|
||||
/***
|
||||
* Configuration - store extra files.
|
||||
@ -472,6 +508,8 @@ bool ftExtraList::loadList(std::list<RsItem *>& load)
|
||||
|
||||
/* stick it in the available queue */
|
||||
mFiles[details.info.hash] = details;
|
||||
mHashOfHash[makeEncryptedHash(details.info.hash)] = details.info.hash ;
|
||||
|
||||
delete (*it);
|
||||
|
||||
/* short sleep */
|
||||
|
@ -109,66 +109,69 @@ const uint32_t CLEANUP_PERIOD = 600; /* 10 minutes */
|
||||
class ftExtraList: public RsTickingThread, public p3Config, public ftSearch
|
||||
{
|
||||
|
||||
public:
|
||||
public:
|
||||
|
||||
ftExtraList();
|
||||
ftExtraList();
|
||||
|
||||
/***
|
||||
/***
|
||||
* If the File is alreay Hashed, then just add it in.
|
||||
**/
|
||||
|
||||
bool addExtraFile(std::string path, const RsFileHash &hash,
|
||||
uint64_t size, uint32_t period, TransferRequestFlags flags);
|
||||
bool addExtraFile(std::string path, const RsFileHash &hash,
|
||||
uint64_t size, uint32_t period, TransferRequestFlags flags);
|
||||
|
||||
bool removeExtraFile(const RsFileHash& hash, TransferRequestFlags flags);
|
||||
bool moveExtraFile(std::string fname, const RsFileHash& hash, uint64_t size,
|
||||
std::string destpath);
|
||||
bool removeExtraFile(const RsFileHash& hash, TransferRequestFlags flags);
|
||||
bool moveExtraFile(std::string fname, const RsFileHash& hash, uint64_t size,
|
||||
std::string destpath);
|
||||
|
||||
|
||||
/***
|
||||
* Hash file, and add to the files,
|
||||
/***
|
||||
* Hash file, and add to the files,
|
||||
* file is removed after period.
|
||||
**/
|
||||
|
||||
bool hashExtraFile(std::string path, uint32_t period, TransferRequestFlags flags);
|
||||
bool hashExtraFileDone(std::string path, FileInfo &info);
|
||||
bool hashExtraFile(std::string path, uint32_t period, TransferRequestFlags flags);
|
||||
bool hashExtraFileDone(std::string path, FileInfo &info);
|
||||
|
||||
/***
|
||||
* Search Function - used by File Transfer
|
||||
/***
|
||||
* Search Function - used by File Transfer
|
||||
* implementation of ftSearch.
|
||||
*
|
||||
**/
|
||||
virtual bool search(const RsFileHash &hash, FileSearchFlags hintflags, FileInfo &info) const;
|
||||
virtual bool search(const RsFileHash &hash, FileSearchFlags hintflags, FileInfo &info) const;
|
||||
|
||||
/***
|
||||
* Thread Main Loop
|
||||
/***
|
||||
* Thread Main Loop
|
||||
**/
|
||||
virtual void data_tick();
|
||||
virtual void data_tick();
|
||||
|
||||
/***
|
||||
/***
|
||||
* Configuration - store extra files.
|
||||
*
|
||||
**/
|
||||
protected:
|
||||
virtual RsSerialiser *setupSerialiser();
|
||||
virtual bool saveList(bool &cleanup, std::list<RsItem*>&);
|
||||
virtual bool loadList(std::list<RsItem *>& load);
|
||||
protected:
|
||||
virtual RsSerialiser *setupSerialiser();
|
||||
virtual bool saveList(bool &cleanup, std::list<RsItem*>&);
|
||||
virtual bool loadList(std::list<RsItem *>& load);
|
||||
|
||||
private:
|
||||
static RsFileHash makeEncryptedHash(const RsFileHash& hash);
|
||||
|
||||
/* Worker Functions */
|
||||
void hashAFile();
|
||||
bool cleanupOldFiles();
|
||||
bool cleanupEntry(std::string path, TransferRequestFlags flags);
|
||||
private:
|
||||
|
||||
mutable RsMutex extMutex;
|
||||
/* Worker Functions */
|
||||
void hashAFile();
|
||||
bool cleanupOldFiles();
|
||||
bool cleanupEntry(std::string path, TransferRequestFlags flags);
|
||||
|
||||
std::list<FileDetails> mToHash;
|
||||
mutable RsMutex extMutex;
|
||||
|
||||
std::map<std::string, RsFileHash> mHashedList; /* path -> hash ( not saved ) */
|
||||
std::map<RsFileHash, FileDetails> mFiles;
|
||||
std::list<FileDetails> mToHash;
|
||||
|
||||
time_t cleanup ;
|
||||
std::map<std::string, RsFileHash> mHashedList; /* path -> hash ( not saved ) */
|
||||
std::map<RsFileHash, FileDetails> mFiles;
|
||||
std::map<RsFileHash, RsFileHash> mHashOfHash; /* sha1(hash) map so as to answer requests to encrypted transfers */
|
||||
|
||||
time_t cleanup ;
|
||||
};
|
||||
|
||||
|
||||
|
@ -60,7 +60,8 @@ const int ftserverzone = 29539;
|
||||
#define FTSERVER_DEBUG() std::cerr << time(NULL) << " : FILE_SERVER : " << __FUNCTION__ << " : "
|
||||
#define FTSERVER_ERROR() std::cerr << "(EE) FILE_SERVER ERROR : "
|
||||
|
||||
static const time_t FILE_TRANSFER_LOW_PRIORITY_TASKS_PERIOD = 5 ; // low priority tasks handling every 5 seconds
|
||||
static const time_t FILE_TRANSFER_LOW_PRIORITY_TASKS_PERIOD = 5 ; // low priority tasks handling every 5 seconds
|
||||
static const time_t FILE_TRANSFER_MAX_DELAY_BEFORE_DROP_USAGE_RECORD = 10 ; // keep usage records for 10 secs at most.
|
||||
|
||||
/* Setup */
|
||||
ftServer::ftServer(p3PeerMgr *pm, p3ServiceControl *sc)
|
||||
@ -318,6 +319,16 @@ uint32_t ftServer::defaultEncryptionPolicy()
|
||||
{
|
||||
return mFtController->defaultEncryptionPolicy() ;
|
||||
}
|
||||
|
||||
void ftServer::setMaxUploadSlotsPerFriend(uint32_t n)
|
||||
{
|
||||
mFtController->setMaxUploadsPerFriend(n) ;
|
||||
}
|
||||
uint32_t ftServer::getMaxUploadSlotsPerFriend()
|
||||
{
|
||||
return mFtController->getMaxUploadsPerFriend() ;
|
||||
}
|
||||
|
||||
void ftServer::setDefaultEncryptionPolicy(uint32_t s)
|
||||
{
|
||||
mFtController->setDefaultEncryptionPolicy(s) ;
|
||||
@ -1518,6 +1529,83 @@ int ftServer::tick()
|
||||
return moreToTick;
|
||||
}
|
||||
|
||||
bool ftServer::checkUploadLimit(const RsPeerId& pid,const RsFileHash& hash)
|
||||
{
|
||||
// No need for this extra cost if the value means "unlimited"
|
||||
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << "Checking upload limit for friend " << pid << " and hash " << hash << ": " ;
|
||||
#endif
|
||||
|
||||
uint32_t max_ups = mFtController->getMaxUploadsPerFriend() ;
|
||||
|
||||
RS_STACK_MUTEX(srvMutex) ;
|
||||
|
||||
if(max_ups == 0)
|
||||
{
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << " no limit! returning true." << std::endl;
|
||||
#endif
|
||||
return true ;
|
||||
}
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << " max=" << max_ups ;
|
||||
#endif
|
||||
|
||||
// Find the latest records for this pid.
|
||||
|
||||
std::map<RsFileHash,time_t>& tmap(mUploadLimitMap[pid]) ;
|
||||
std::map<RsFileHash,time_t>::iterator it ;
|
||||
|
||||
time_t now = time(NULL) ;
|
||||
|
||||
// If the limit has been decresed, we arbitrarily drop some ongoing slots.
|
||||
|
||||
while(tmap.size() > max_ups)
|
||||
tmap.erase(tmap.begin()) ;
|
||||
|
||||
// Look in the upload record map. If it's not full, directly allocate a slot. If full, re-use an existing slot if a file is already cited.
|
||||
|
||||
if(tmap.size() < max_ups || (tmap.size()==max_ups && tmap.end() != (it = tmap.find(hash))))
|
||||
{
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << " allocated slot for this hash => true" << std::endl;
|
||||
#endif
|
||||
|
||||
tmap[hash] = now ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
// There's no room in the used slots, but maybe some of them are not used anymore, in which case we remove them, which freeze a slot.
|
||||
uint32_t cleaned = 0 ;
|
||||
|
||||
for(it = tmap.begin();it!=tmap.end() && cleaned<2;)
|
||||
if(it->second + FILE_TRANSFER_MAX_DELAY_BEFORE_DROP_USAGE_RECORD < now)
|
||||
{
|
||||
std::map<RsFileHash,time_t>::iterator tmp(it) ;
|
||||
++tmp;
|
||||
tmap.erase(it) ;
|
||||
it = tmp;
|
||||
++cleaned ;
|
||||
}
|
||||
else
|
||||
++it ;
|
||||
|
||||
if(cleaned > 0)
|
||||
{
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << " cleaned up " << cleaned << " old hashes => true" << std::endl;
|
||||
#endif
|
||||
tmap[hash] = now ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << " no slot for this hash => false" << std::endl;
|
||||
#endif
|
||||
return false ;
|
||||
}
|
||||
|
||||
int ftServer::handleIncoming()
|
||||
{
|
||||
// now File Input.
|
||||
@ -1534,7 +1622,8 @@ int ftServer::handleIncoming()
|
||||
case RS_PKT_SUBTYPE_FT_DATA_REQUEST:
|
||||
{
|
||||
RsFileTransferDataRequestItem *f = dynamic_cast<RsFileTransferDataRequestItem*>(item) ;
|
||||
if (f)
|
||||
|
||||
if (f && checkUploadLimit(f->PeerId(),f->file.hash))
|
||||
{
|
||||
#ifdef SERVER_DEBUG
|
||||
FTSERVER_DEBUG() << "ftServer::handleIncoming: received data request for hash " << f->file.hash << ", offset=" << f->fileoffset << ", chunk size=" << f->chunksize << std::endl;
|
||||
|
@ -138,6 +138,8 @@ public:
|
||||
virtual void setFreeDiskSpaceLimit(uint32_t size_in_mb) ;
|
||||
virtual void setDefaultEncryptionPolicy(uint32_t policy) ; // RS_FILE_CTRL_ENCRYPTION_POLICY_STRICT/PERMISSIVE
|
||||
virtual uint32_t defaultEncryptionPolicy() ;
|
||||
virtual void setMaxUploadSlotsPerFriend(uint32_t n) ;
|
||||
virtual uint32_t getMaxUploadSlotsPerFriend() ;
|
||||
|
||||
/***
|
||||
* Control of Downloads Priority.
|
||||
@ -266,6 +268,7 @@ protected:
|
||||
bool findEncryptedHash(const RsPeerId& virtual_peer_id, RsFileHash& encrypted_hash);
|
||||
bool encryptHash(const RsFileHash& hash, RsFileHash& hash_of_hash);
|
||||
|
||||
bool checkUploadLimit(const RsPeerId& pid,const RsFileHash& hash);
|
||||
private:
|
||||
|
||||
/**** INTERNAL FUNCTIONS ***/
|
||||
@ -293,6 +296,7 @@ private:
|
||||
|
||||
std::map<RsFileHash,RsFileHash> mEncryptedHashes ; // This map is such that sha1(it->second) = it->first
|
||||
std::map<RsPeerId,RsFileHash> mEncryptedPeerIds ; // This map holds the hash to be used with each peer id
|
||||
std::map<RsPeerId,std::map<RsFileHash,time_t> > mUploadLimitMap ;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1363,6 +1363,18 @@ bool RsGenExchange::getGroupData(const uint32_t &token, std::vector<RsGxsGrpItem
|
||||
gItem->meta.mPop = 0;
|
||||
gItem->meta.mVisibleMsgCount = 0;
|
||||
}
|
||||
|
||||
// Also check the group privacy flags. A while ago, it as possible to publish a group without privacy flags. Now it is not possible anymore.
|
||||
// As a consequence, it's important to supply a correct value in this flag before the data can be edited/updated.
|
||||
|
||||
if((gItem->meta.mGroupFlags & GXS_SERV::FLAG_PRIVACY_MASK) == 0)
|
||||
{
|
||||
#ifdef GEN_EXCH_DEBUG
|
||||
std::cerr << "(WW) getGroupData(): mGroupFlags for group " << gItem->meta.mGroupId << " has incorrect value " << std::hex << gItem->meta.mGroupFlags << std::dec << ". Setting value to GXS_SERV::FLAG_PRIVACY_PUBLIC." << std::endl;
|
||||
#endif
|
||||
gItem->meta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_PUBLIC;
|
||||
}
|
||||
|
||||
grpItem.push_back(gItem);
|
||||
}
|
||||
else
|
||||
|
@ -82,14 +82,23 @@ bool RsGxsMessageCleanUp::clean()
|
||||
for(; mit != result.end(); ++mit)
|
||||
{
|
||||
std::vector<RsGxsMsgMetaData*>& metaV = mit->second;
|
||||
std::vector<RsGxsMsgMetaData*>::iterator vit = metaV.begin();
|
||||
|
||||
for(; vit != metaV.end(); )
|
||||
// First, make a map of which message have a child message. This allows to only delete messages that dont have child messages.
|
||||
// A more accurate way to go would be to compute the time of the oldest message and possibly delete all the branch, but in the
|
||||
// end the message tree will be deleted slice after slice, which should still be reasonnably fast.
|
||||
//
|
||||
std::set<RsGxsMessageId> messages_with_kids ;
|
||||
|
||||
for( uint32_t i=0;i<metaV.size();++i)
|
||||
if(!metaV[i]->mParentId.isNull())
|
||||
messages_with_kids.insert(metaV[i]->mParentId) ;
|
||||
|
||||
for( uint32_t i=0;i<metaV.size();++i)
|
||||
{
|
||||
RsGxsMsgMetaData* meta = *vit;
|
||||
RsGxsMsgMetaData* meta = metaV[i];
|
||||
|
||||
// check if expired
|
||||
bool remove = store_period > 0 && (meta->mPublishTs + store_period) < now;
|
||||
bool remove = store_period > 0 && ((meta->mPublishTs + store_period) < now) && (messages_with_kids.find(meta->mMsgId)==messages_with_kids.end());
|
||||
|
||||
// check client does not want the message kept regardless of age
|
||||
remove &= !(meta->mMsgStatus & GXS_SERV::GXS_MSG_STATUS_KEEP);
|
||||
@ -106,7 +115,6 @@ bool RsGxsMessageCleanUp::clean()
|
||||
}
|
||||
|
||||
delete meta;
|
||||
vit = metaV.erase(vit);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -532,7 +532,8 @@ HEADERS += util/folderiterator.h \
|
||||
util/rsrecogn.h \
|
||||
util/rsscopetimer.h \
|
||||
util/stacktrace.h \
|
||||
util/rsdeprecate.h
|
||||
util/rsdeprecate.h \
|
||||
util/cxx11retrocompat.h
|
||||
|
||||
SOURCES += ft/ftchunkmap.cc \
|
||||
ft/ftcontroller.cc \
|
||||
|
@ -503,12 +503,15 @@ bool RsPluginManager::loadList(std::list<RsItem*>& list)
|
||||
delete (*it);
|
||||
}
|
||||
|
||||
// Rejected hashes are always kept, so that RS wont ask again if the executable hash has changed.
|
||||
//
|
||||
_rejected_hashes = rejected_hash_candidates ;
|
||||
|
||||
if(reference_executable_hash == _current_executable_hash)
|
||||
{
|
||||
std::cerr << "(II) Executable hash matches. Updating the list of accepted/rejected plugins." << std::endl;
|
||||
|
||||
_accepted_hashes = accepted_hash_candidates ;
|
||||
_rejected_hashes = rejected_hash_candidates ;
|
||||
}
|
||||
else
|
||||
std::cerr << "(WW) Executable hashes do not match. Executable hash has changed. Discarding the list of accepted/rejected plugins." << std::endl;
|
||||
|
@ -815,7 +815,7 @@ X509 *AuthSSLimpl::SignX509ReqWithGPG(X509_REQ *req, long /*days*/)
|
||||
const EVP_MD *type = EVP_sha1();
|
||||
|
||||
EVP_MD_CTX *ctx = EVP_MD_CTX_create();
|
||||
unsigned char *p,*buf_in=NULL;
|
||||
unsigned char *buf_in=NULL;
|
||||
unsigned char *buf_hashout=NULL,*buf_sigout=NULL;
|
||||
int inl=0,hashoutl=0;
|
||||
int sigoutl=0;
|
||||
@ -854,6 +854,7 @@ X509 *AuthSSLimpl::SignX509ReqWithGPG(X509_REQ *req, long /*days*/)
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
inl=i2d(data,NULL);
|
||||
buf_in=(unsigned char *)OPENSSL_malloc((unsigned int)inl);
|
||||
unsigned char *p=NULL;
|
||||
#else
|
||||
inl=i2d_re_X509_tbs(x509,&buf_in) ; // this does the i2d over x509->cert_info
|
||||
#endif
|
||||
@ -977,9 +978,9 @@ bool AuthSSLimpl::AuthX509WithGPG(X509 *x509,uint32_t& diagnostic)
|
||||
/* verify GPG signature */
|
||||
|
||||
/*** NOW The Manual signing bit (HACKED FROM asn1/a_sign.c) ***/
|
||||
int (*i2d)(X509_CINF*, unsigned char**) = i2d_X509_CINF;
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
int (*i2d)(X509_CINF*, unsigned char**) = i2d_X509_CINF;
|
||||
ASN1_BIT_STRING *signature = x509->signature;
|
||||
X509_CINF *data = x509->cert_info;
|
||||
#else
|
||||
@ -993,7 +994,7 @@ bool AuthSSLimpl::AuthX509WithGPG(X509 *x509,uint32_t& diagnostic)
|
||||
const EVP_MD *type = EVP_sha1();
|
||||
|
||||
EVP_MD_CTX *ctx = EVP_MD_CTX_create();
|
||||
unsigned char *p,*buf_in=NULL;
|
||||
unsigned char *buf_in=NULL;
|
||||
unsigned char *buf_hashout=NULL,*buf_sigout=NULL;
|
||||
int inl=0,hashoutl=0;
|
||||
int sigoutl=0;
|
||||
@ -1002,6 +1003,7 @@ bool AuthSSLimpl::AuthX509WithGPG(X509 *x509,uint32_t& diagnostic)
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
inl=i2d(data,NULL);
|
||||
buf_in=(unsigned char *)OPENSSL_malloc((unsigned int)inl);
|
||||
unsigned char *p=NULL;
|
||||
#else
|
||||
inl=i2d_re_X509_tbs(x509,&buf_in) ; // this does the i2d over x509->cert_info
|
||||
#endif
|
||||
@ -1026,13 +1028,13 @@ bool AuthSSLimpl::AuthX509WithGPG(X509 *x509,uint32_t& diagnostic)
|
||||
diagnostic = RS_SSL_HANDSHAKE_DIAGNOSTIC_MALLOC_ERROR ;
|
||||
goto err;
|
||||
}
|
||||
p=buf_in;
|
||||
|
||||
#ifdef AUTHSSL_DEBUG
|
||||
std::cerr << "Buffers Allocated" << std::endl;
|
||||
#endif
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
p=buf_in;
|
||||
i2d(data,&p);
|
||||
#endif
|
||||
/* data in buf_in, ready to be hashed */
|
||||
|
@ -167,6 +167,8 @@ class RsFiles
|
||||
virtual bool FileClearCompleted() = 0;
|
||||
virtual void setDefaultEncryptionPolicy(uint32_t policy)=0 ; // RS_FILE_CTRL_ENCRYPTION_POLICY_STRICT/PERMISSIVE
|
||||
virtual uint32_t defaultEncryptionPolicy()=0 ;
|
||||
virtual void setMaxUploadSlotsPerFriend(uint32_t n)=0 ;
|
||||
virtual uint32_t getMaxUploadSlotsPerFriend()=0 ;
|
||||
|
||||
/***
|
||||
* Control of Downloads Priority.
|
||||
|
@ -192,7 +192,7 @@ void RsPeerStunItem::serial_process(RsGenericSerializer::SerializeJob j,RsGeneri
|
||||
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,stunList,"stunList") ;
|
||||
}
|
||||
|
||||
template<> uint32_t RsTypeSerializer::serial_size(const PeerBandwidthLimits& s)
|
||||
template<> uint32_t RsTypeSerializer::serial_size(const PeerBandwidthLimits& /*s*/)
|
||||
{
|
||||
return 4+4 ;
|
||||
}
|
||||
@ -213,7 +213,7 @@ template<> bool RsTypeSerializer::deserialize(const uint8_t data[], uint32_t siz
|
||||
return ok;
|
||||
}
|
||||
|
||||
template<> void RsTypeSerializer::print_data(const std::string& n, const PeerBandwidthLimits& s)
|
||||
template<> void RsTypeSerializer::print_data(const std::string& /*n*/, const PeerBandwidthLimits& s)
|
||||
{
|
||||
std::cerr << " [Peer BW limit] " << s.max_up_rate_kbs << " / " << s.max_dl_rate_kbs << std::endl;
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include "serialiser/rsserializer.h"
|
||||
#include "util/stacktrace.h"
|
||||
|
||||
#include <typeinfo>
|
||||
|
||||
class RsItem: public RsMemoryManagement::SmallObject
|
||||
{
|
||||
public:
|
||||
|
@ -162,6 +162,19 @@ void RsNxsGrp::clear()
|
||||
meta.TlvClear();
|
||||
}
|
||||
|
||||
RsNxsGrp* RsNxsGrp::clone() const {
|
||||
RsNxsGrp* grp = new RsNxsGrp(this->grp.tlvtype);
|
||||
*grp = *this;
|
||||
|
||||
if(this->metaData)
|
||||
{
|
||||
grp->metaData = new RsGxsGrpMetaData();
|
||||
*(grp->metaData) = *(this->metaData);
|
||||
}
|
||||
|
||||
return grp;
|
||||
}
|
||||
|
||||
void RsNxsSyncGrpReqItem::clear()
|
||||
{
|
||||
flag = 0;
|
||||
|
@ -37,6 +37,8 @@
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <typeinfo>
|
||||
|
||||
|
||||
/***
|
||||
* #define RSSERIAL_DEBUG 1
|
||||
@ -385,7 +387,7 @@ RsItem * RsSerialiser::deserialise(void *data, uint32_t *size)
|
||||
//std::cerr << "RsSerialiser::deserialise() RsItem Type: " << std::hex << getRsItemId(data) << " Size: " << pkt_size;
|
||||
//std::cerr << std::endl;
|
||||
|
||||
if (pkt_size != *size)
|
||||
if (pkt_size > *size)
|
||||
{
|
||||
#ifdef RSSERIAL_ERROR_DEBUG
|
||||
std::cerr << "RsSerialiser::deserialise() ERROR Size mismatch(2)";
|
||||
|
@ -60,12 +60,14 @@ RsItem *RsServiceSerializer::deserialise(void *data, uint32_t *size)
|
||||
|
||||
item->serial_process(RsGenericSerializer::DESERIALIZE, ctx) ;
|
||||
|
||||
if(ctx.mSize != ctx.mOffset)
|
||||
if(ctx.mSize < ctx.mOffset)
|
||||
{
|
||||
std::cerr << "RsSerializer::deserialise(): ERROR. offset does not match expected size!" << std::endl;
|
||||
delete item ;
|
||||
return NULL ;
|
||||
}
|
||||
*size = ctx.mOffset ;
|
||||
|
||||
if(ctx.mOk)
|
||||
return item ;
|
||||
|
||||
@ -96,12 +98,14 @@ RsItem *RsConfigSerializer::deserialise(void *data, uint32_t *size)
|
||||
|
||||
item->serial_process(DESERIALIZE, ctx) ;
|
||||
|
||||
if(ctx.mSize != ctx.mOffset)
|
||||
if(ctx.mSize < ctx.mOffset)
|
||||
{
|
||||
std::cerr << "RsSerializer::deserialise(): ERROR. offset does not match expected size!" << std::endl;
|
||||
delete item ;
|
||||
return NULL ;
|
||||
}
|
||||
*size = ctx.mOffset ;
|
||||
|
||||
if(ctx.mOk)
|
||||
return item ;
|
||||
|
||||
@ -139,6 +143,8 @@ bool RsGenericSerializer::serialise(RsItem *item,void *data,uint32_t *size)
|
||||
std::cerr << "RsSerializer::serialise(): ERROR. offset does not match expected size!" << std::endl;
|
||||
return false ;
|
||||
}
|
||||
*size = ctx.mOffset ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,9 @@
|
||||
#include "util/rsprint.h"
|
||||
|
||||
#include <iomanip>
|
||||
#include <typeinfo>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
static const uint32_t MAX_SERIALIZED_ARRAY_SIZE = 500 ;
|
||||
static const uint32_t MAX_SERIALIZED_CHUNK_SIZE = 10*1024*1024 ; // 10 MB.
|
||||
@ -192,7 +195,7 @@ template<> void RsTypeSerializer::print_data(const std::string& n, uint16_t type
|
||||
// TlvInt with subtype //
|
||||
//=================================================================================================//
|
||||
|
||||
template<> uint32_t RsTypeSerializer::serial_size(uint16_t /* type_subtype */,const uint32_t& s)
|
||||
template<> uint32_t RsTypeSerializer::serial_size(uint16_t /* type_subtype */,const uint32_t& /*s*/)
|
||||
{
|
||||
return GetTlvUInt32Size() ;
|
||||
}
|
||||
|
@ -452,7 +452,6 @@ protected:
|
||||
template<typename T> static void print_data(
|
||||
const std::string& name,uint16_t type_id,const T& member );
|
||||
|
||||
|
||||
template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER>
|
||||
static bool serialize(
|
||||
uint8_t data[], uint32_t size, uint32_t &offset,
|
||||
|
@ -27,6 +27,8 @@
|
||||
#include "rsitems/rsposteditems.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <typeinfo>
|
||||
|
||||
|
||||
/****
|
||||
* #define POSTED_DEBUG 1
|
||||
|
@ -52,12 +52,14 @@ RsSerialType* init_item(RsChatLobbyListItem& cmi)
|
||||
|
||||
cmi.lobby_ids.resize(n) ;
|
||||
cmi.lobby_names.resize(n) ;
|
||||
cmi.lobby_topics.resize(n) ;
|
||||
cmi.lobby_counts.resize(n) ;
|
||||
|
||||
for(int i=0;i<n;++i)
|
||||
{
|
||||
cmi.lobby_ids[i] = RSRandom::random_u64() ;
|
||||
randString(5+(rand()%10), cmi.lobby_names[i]);
|
||||
randString(5+(rand()%10), cmi.lobby_topics[i]);
|
||||
cmi.lobby_counts[i] = RSRandom::random_u32() ;
|
||||
}
|
||||
|
||||
@ -87,6 +89,7 @@ RsSerialType* init_item(RsChatLobbyInviteItem& cmi)
|
||||
{
|
||||
cmi.lobby_id = RSRandom::random_u64() ;
|
||||
cmi.lobby_name = "Name of the lobby" ;
|
||||
cmi.lobby_topic = "Topic of the lobby" ;
|
||||
|
||||
return new RsChatSerialiser();
|
||||
}
|
||||
@ -185,12 +188,14 @@ bool operator ==(const RsChatLobbyListItem& cmiLeft,const RsChatLobbyListItem&
|
||||
{
|
||||
if(cmiLeft.lobby_ids.size() != cmiRight.lobby_ids.size()) return false;
|
||||
if(cmiLeft.lobby_names.size() != cmiRight.lobby_names.size()) return false;
|
||||
if(cmiLeft.lobby_topics.size() != cmiRight.lobby_topics.size()) return false;
|
||||
if(cmiLeft.lobby_counts.size() != cmiRight.lobby_counts.size()) return false;
|
||||
|
||||
for(uint32_t i=0;i<cmiLeft.lobby_ids.size();++i)
|
||||
{
|
||||
if(cmiLeft.lobby_ids[i] != cmiRight.lobby_ids[i]) return false ;
|
||||
if(cmiLeft.lobby_names[i] != cmiRight.lobby_names[i]) return false ;
|
||||
if(cmiLeft.lobby_topics[i] != cmiRight.lobby_topics[i]) return false ;
|
||||
if(cmiLeft.lobby_counts[i] != cmiRight.lobby_counts[i]) return false ;
|
||||
}
|
||||
return true ;
|
||||
@ -254,6 +259,7 @@ bool operator ==(const RsChatLobbyInviteItem& csiLeft, const RsChatLobbyInviteIt
|
||||
{
|
||||
if(csiLeft.lobby_id != csiRight.lobby_id) return false ;
|
||||
if(csiLeft.lobby_name != csiRight.lobby_name) return false ;
|
||||
if(csiLeft.lobby_topic != csiRight.lobby_topic) return false ;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
25
libretroshare/src/util/cxx11retrocompat.h
Normal file
@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
/*
|
||||
* RetroShare
|
||||
* Copyright (C) 2017 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef __GNUC__
|
||||
# if __GNUC__*100 + __GNUC_MINOR__ < 40700
|
||||
# define override
|
||||
# define final
|
||||
# endif //GCC version
|
||||
#endif //defined GNUC
|
@ -552,8 +552,8 @@ RsGxsRecognTagItem *RsRecogn::extractTag(const std::string &encoded)
|
||||
std::vector<uint8_t> buffer = Radix64::decode(encoded);
|
||||
pktsize = buffer.size();
|
||||
|
||||
if(buffer.empty())
|
||||
return NULL ;
|
||||
if( buffer.empty() )
|
||||
return NULL;
|
||||
|
||||
RsGxsRecognSerialiser serialiser;
|
||||
RsItem *item = serialiser.deserialise(buffer.data(), &pktsize);
|
||||
|
@ -6,103 +6,15 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1558</width>
|
||||
<height>703</height>
|
||||
<width>675</width>
|
||||
<height>544</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QFrame" name="addframe">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Did you receive a certificate from a friend?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="addButton">
|
||||
<property name="text">
|
||||
<string>Add friends certificate</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/png/invite.png</normaloff>:/icons/png/invite.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="LoadCertFileButton">
|
||||
<property name="text">
|
||||
<string>Add certificate file</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/svg/folders1.svg</normaloff>:/icons/svg/folders1.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QFrame" name="addFrame">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" colspan="2">
|
||||
<item row="4" column="1" colspan="2">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="topMargin">
|
||||
<number>9</number>
|
||||
@ -245,7 +157,7 @@ private and secure decentralized communication platform.
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="6" column="1">
|
||||
<widget class="QPushButton" name="runStartWizard_PB">
|
||||
<property name="text">
|
||||
<string>Launch startup wizard</string>
|
||||
@ -256,15 +168,149 @@ private and secure decentralized communication platform.
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QPushButton" name="openwebhelp">
|
||||
<property name="text">
|
||||
<string>Open Web Help</string>
|
||||
<item row="3" column="1" colspan="2">
|
||||
<widget class="QFrame" name="addframe">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/settings/webinterface.svg</normaloff>:/icons/settings/webinterface.svg</iconset>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Did you receive a certificate from a friend?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="addButton">
|
||||
<property name="text">
|
||||
<string>Add friends certificate</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/png/invite.png</normaloff>:/icons/png/invite.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="LoadCertFileButton">
|
||||
<property name="text">
|
||||
<string>Add certificate file</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/svg/folders1.svg</normaloff>:/icons/svg/folders1.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QFrame" name="addFrame">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="2">
|
||||
<widget class="QFrame" name="helpframe">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Do you need help with RetroShare?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="openwebhelp">
|
||||
<property name="text">
|
||||
<string>Open Web Help</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="icons.qrc">
|
||||
<normaloff>:/icons/settings/webinterface.svg</normaloff>:/icons/settings/webinterface.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
@ -273,7 +319,8 @@ private and secure decentralized communication platform.
|
||||
<zorder>label_2</zorder>
|
||||
<zorder>addframe</zorder>
|
||||
<zorder>runStartWizard_PB</zorder>
|
||||
<zorder>openwebhelp</zorder>
|
||||
<zorder>frame</zorder>
|
||||
<zorder>helpframe</zorder>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="icons.qrc"/>
|
||||
|
@ -2472,8 +2472,8 @@ void IdDialog::copyRetroshareLink()
|
||||
|
||||
RsIdentityDetails details ;
|
||||
|
||||
if(! rsIdentity->getIdDetails(gxs_id,details))
|
||||
return ;
|
||||
if(! rsIdentity->getIdDetails(gxs_id,details))
|
||||
return ;
|
||||
|
||||
if (!mIdQueue)
|
||||
return;
|
||||
|
@ -265,7 +265,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags)
|
||||
statusBar()->addPermanentWidget(ratesstatus);
|
||||
|
||||
opModeStatus = new OpModeStatus();
|
||||
opModeStatus->setVisible(Settings->valueFromGroup("StatusBar", "ShowOpMode", QVariant(true)).toBool());
|
||||
opModeStatus->setVisible(Settings->valueFromGroup("StatusBar", "ShowOpMode", QVariant(false)).toBool());
|
||||
statusBar()->addPermanentWidget(opModeStatus);
|
||||
|
||||
soundStatus = new SoundStatus();
|
||||
|
@ -600,16 +600,16 @@ void RetroShareLink::check()
|
||||
if(!checkPGPId(_GPGid)) _valid = false ;
|
||||
break ;
|
||||
|
||||
case TYPE_IDENTITY:
|
||||
if(_name.isNull())
|
||||
_valid = false ;
|
||||
case TYPE_IDENTITY:
|
||||
if(_name.isNull())
|
||||
_valid = false ;
|
||||
|
||||
if(_radix_group_data.isNull())
|
||||
_valid = false ;
|
||||
if(_radix_group_data.isNull())
|
||||
_valid = false ;
|
||||
|
||||
if(_hash.isNull())
|
||||
_valid = false ;
|
||||
break ;
|
||||
if(_hash.isNull())
|
||||
_valid = false ;
|
||||
break ;
|
||||
|
||||
case TYPE_PERSON:
|
||||
if(_size != 0)
|
||||
@ -858,8 +858,8 @@ QString RetroShareLink::niceName() const
|
||||
if (type() == TYPE_PERSON)
|
||||
return PeerDefs::rsid(name().toUtf8().constData(), RsPgpId(hash().toStdString()));
|
||||
|
||||
if(type() == TYPE_IDENTITY)
|
||||
return QObject::tr("Identity link (name=%1, ID=%2)").arg(_name).arg(_hash) ;
|
||||
if(type() == TYPE_IDENTITY)
|
||||
return QObject::tr("Identity link (name=%1, ID=%2)").arg(_name).arg(_hash) ;
|
||||
|
||||
if(type() == TYPE_PUBLIC_MSG) {
|
||||
RsPeerDetails detail;
|
||||
|
@ -19,11 +19,13 @@
|
||||
* Boston, MA 02110-1301, USA.
|
||||
****************************************************************/
|
||||
|
||||
#include <rshare.h>
|
||||
#include <retroshare/rsinit.h>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "rshare.h"
|
||||
#include "retroshare/rsinit.h"
|
||||
#include "StartDialog.h"
|
||||
#include "LogoBar.h"
|
||||
#include <QMessageBox>
|
||||
#include "retroshare/rsnotify.h"
|
||||
#include "settings/rsharesettings.h"
|
||||
|
||||
#include <iostream>
|
||||
@ -43,10 +45,6 @@ StartDialog::StartDialog(QWidget *parent)
|
||||
|
||||
Settings->loadWidgetInformation(this);
|
||||
|
||||
ui.loadButton->setFocus();
|
||||
|
||||
connect(ui.loadButton, SIGNAL(clicked()), this, SLOT(loadPerson()));
|
||||
|
||||
/* get all available pgp private certificates....
|
||||
* mark last one as default.
|
||||
*/
|
||||
@ -75,10 +73,22 @@ StartDialog::StartDialog(QWidget *parent)
|
||||
}
|
||||
}
|
||||
|
||||
QObject::connect(ui.loadName,SIGNAL(currentIndexChanged(int)),this,SLOT(updateSelectedProfile(int))) ;
|
||||
QObject::connect(ui.password_input,SIGNAL(returnPressed()),this,SLOT(loadPerson())) ;
|
||||
QObject::connect(ui.loadButton, SIGNAL(clicked()), this, SLOT(loadPerson()));
|
||||
|
||||
if (pidx > 0)
|
||||
{
|
||||
ui.loadName->setCurrentIndex(pidx);
|
||||
}
|
||||
|
||||
ui.password_input->setFocus();
|
||||
}
|
||||
|
||||
void StartDialog::updateSelectedProfile(int)
|
||||
{
|
||||
ui.password_input->clear();
|
||||
ui.password_input->setFocus();
|
||||
}
|
||||
|
||||
void StartDialog::closeEvent (QCloseEvent * event)
|
||||
@ -101,18 +111,22 @@ void StartDialog::loadPerson()
|
||||
QVariant data = ui.loadName->itemData(pgpidx);
|
||||
RsPeerId accountId = RsPeerId((data.toString()).toStdString());
|
||||
|
||||
if (Rshare::loadCertificate(accountId, ui.autologin_checkbox->isChecked())) {
|
||||
// Cache the passphrase, so that it is not asked again.
|
||||
|
||||
rsNotify->cachePgpPassphrase(ui.password_input->text().toUtf8().constData()) ;
|
||||
|
||||
bool res = Rshare::loadCertificate(accountId, ui.autologin_checkbox->isChecked()) ;
|
||||
|
||||
rsNotify->clearPgpPassphrase();
|
||||
|
||||
if(res)
|
||||
accept();
|
||||
}
|
||||
}
|
||||
|
||||
void StartDialog::on_labelProfile_linkActivated(QString /*link*/)
|
||||
{
|
||||
// if ((QMessageBox::question(this, tr("Create a New Profile"),tr("This will generate a new Profile\n Are you sure you want to continue?"),QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes)
|
||||
// {
|
||||
reqNewCert = true;
|
||||
accept();
|
||||
// }
|
||||
}
|
||||
|
||||
bool StartDialog::requestedNewCert()
|
||||
|
@ -39,6 +39,7 @@ protected:
|
||||
|
||||
private slots:
|
||||
void loadPerson();
|
||||
void updateSelectedProfile(int);
|
||||
|
||||
#ifdef RS_AUTOLOGIN
|
||||
/**
|
||||
|
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>430</width>
|
||||
<height>552</height>
|
||||
<width>516</width>
|
||||
<height>569</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -31,7 +31,7 @@
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<layout class="QGridLayout" name="mainGLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
@ -42,77 +42,7 @@
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<layout class="QGridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="toolButton">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QToolButton {
|
||||
border-image: url(:/images/avatar_background.png);
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="images.qrc">
|
||||
<normaloff>:/images/user/personal64.png</normaloff>:/images/user/personal64.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>96</width>
|
||||
<height>96</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<layout class="QGridLayout" name="topGLayout">
|
||||
<item row="0" column="0">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
@ -127,19 +57,13 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QLabel" name="rsTopLogo">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
@ -183,7 +107,10 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Login</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="images.qrc">:/images/logo/logo_spash2.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -202,8 +129,53 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="1" rowspan="2" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<item row="1" column="2" rowspan="2">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0" rowspan="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QGroupBox" name="profilGBox">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
@ -213,21 +185,75 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Profile - Location</string>
|
||||
<string>Profile - Location:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="icons.qrc">:/icons/svg/person.svg</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="loadName"/>
|
||||
</item>
|
||||
<item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="icons.qrc">:/icons/svg/password.svg</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="password_input">
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="autologin_checkbox">
|
||||
<property name="text">
|
||||
<string>Remember Password</string>
|
||||
@ -237,108 +263,70 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="loadButton">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Log In</string>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="4">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="topMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="loadButton">
|
||||
<property name="text">
|
||||
<string>Log In</string>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<spacer>
|
||||
<item row="3" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>61</width>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>71</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="2">
|
||||
<widget class="QLabel" name="labelProfile">
|
||||
<property name="toolTip">
|
||||
<string>Opens a dialog for creating a new profile or
|
||||
<item>
|
||||
<widget class="QLabel" name="labelProfile">
|
||||
<property name="toolTip">
|
||||
<string>Opens a dialog for creating a new profile or
|
||||
adding locations to an existing profile.
|
||||
The current identities/locations will not be affected.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="Create new Profile..."><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">Manage profiles and nodes...</span></a></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="4">
|
||||
<widget class="LogoBar" name="callBarFrame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>16</width>
|
||||
<height>65</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LogoBar</class>
|
||||
<extends>QFrame</extends>
|
||||
<header>gui/LogoBar.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>loadButton</tabstop>
|
||||
<tabstop>toolButton</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="images.qrc"/>
|
||||
<include location="icons.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
@ -19,45 +19,42 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* ccr . 2016 Jan 26
|
||||
*
|
||||
* Play sound on incoming messages.
|
||||
*
|
||||
****************************************************************/
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include <QMessageBox>
|
||||
#include <QInputDialog>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
#include <QWidgetAction>
|
||||
|
||||
#include "ChatLobbyDialog.h"
|
||||
#include "gui/ChatLobbyWidget.h"
|
||||
|
||||
#include "ChatTabWidget.h"
|
||||
#include "gui/settings/rsharesettings.h"
|
||||
#include "gui/settings/RsharePeerSettings.h"
|
||||
#include "gui/MainWindow.h"
|
||||
#include "gui/ChatLobbyWidget.h"
|
||||
#include "gui/FriendsDialog.h"
|
||||
#include "gui/msgs/MessageComposer.h"
|
||||
#include <gui/common/html.h>
|
||||
#include "gui/common/RSTreeWidgetItem.h"
|
||||
#include "gui/MainWindow.h"
|
||||
#include "gui/common/html.h"
|
||||
#include "gui/common/FriendSelectionDialog.h"
|
||||
#include "gui/gxs/GxsIdTreeWidgetItem.h"
|
||||
#include "gui/common/RSTreeWidgetItem.h"
|
||||
#include "gui/gxs/GxsIdChooser.h"
|
||||
#include "gui/gxs/GxsIdDetails.h"
|
||||
#include "util/HandleRichText.h"
|
||||
#include "gui/SoundManager.h"
|
||||
#include "gui/gxs/GxsIdTreeWidgetItem.h"
|
||||
#include "gui/Identity/IdDialog.h"
|
||||
#include "gui/msgs/MessageComposer.h"
|
||||
#include "gui/settings/RsharePeerSettings.h"
|
||||
#include "gui/settings/rsharesettings.h"
|
||||
#include "util/HandleRichText.h"
|
||||
#include "util/QtVersion.h"
|
||||
|
||||
#include <retroshare/rsnotify.h>
|
||||
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define COLUMN_ICON 0
|
||||
#define COLUMN_NAME 1
|
||||
#define COLUMN_ACTIVITY 2
|
||||
#define COLUMN_ID 3
|
||||
#define COLUMN_NAME 0
|
||||
#define COLUMN_ACTIVITY 1
|
||||
#define COLUMN_ID 2
|
||||
#define COLUMN_ICON 3
|
||||
#define COLUMN_COUNT 4
|
||||
|
||||
#define ROLE_SORT Qt::UserRole + 1
|
||||
@ -80,12 +77,16 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi
|
||||
connect(ui.filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
|
||||
|
||||
int S = QFontMetricsF(font()).height() ;
|
||||
ui.participantsList->setIconSize(QSize(1.3*S,1.3*S));
|
||||
ui.participantsList->setIconSize(QSize(1.4*S,1.4*S));
|
||||
|
||||
ui.participantsList->setColumnCount(COLUMN_COUNT);
|
||||
ui.participantsList->setColumnWidth(COLUMN_ICON, 1.4*S);
|
||||
ui.participantsList->setColumnWidth(COLUMN_ICON, 1.7*S);
|
||||
ui.participantsList->setColumnHidden(COLUMN_ACTIVITY,true);
|
||||
ui.participantsList->setColumnHidden(COLUMN_ID,true);
|
||||
|
||||
/* Set header resize modes and initial section sizes */
|
||||
QHeaderView * header = ui.participantsList->header();
|
||||
QHeaderView_setSectionResizeModeColumn(header, COLUMN_NAME, QHeaderView::Stretch);
|
||||
|
||||
muteAct = new QAction(QIcon(), tr("Mute participant"), this);
|
||||
voteNegativeAct = new QAction(QIcon(":/icons/png/thumbs-down.png"), tr("Ban this person (Sets negative opinion)"), this);
|
||||
@ -472,7 +473,6 @@ void ChatLobbyDialog::addChatMsg(const ChatMessage& msg)
|
||||
|
||||
ui.chatWidget->addChatMsg(msg.incoming, name, gxs_id, sendTime, recvTime, message, ChatWidget::MSGTYPE_NORMAL);
|
||||
emit messageReceived(msg.incoming, id(), sendTime, name, message) ;
|
||||
SoundManager::play(SOUND_NEW_LOBBY_MESSAGE);
|
||||
|
||||
// This is a trick to translate HTML into text.
|
||||
QTextEdit editor;
|
||||
|
@ -145,11 +145,9 @@
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Participants</string>
|
||||
</property>
|
||||
</column>
|
||||
<attribute name="headerStretchLastSection">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
|
@ -21,15 +21,19 @@
|
||||
|
||||
#include <QTime>
|
||||
#include <QMenu>
|
||||
|
||||
#include "ChatLobbyUserNotify.h"
|
||||
#include "gui/notifyqt.h"
|
||||
#include "gui/MainWindow.h"
|
||||
|
||||
#include "gui/ChatLobbyWidget.h"
|
||||
#include "gui/MainWindow.h"
|
||||
#include "gui/notifyqt.h"
|
||||
#include "gui/SoundManager.h"
|
||||
#include "gui/settings/rsharesettings.h"
|
||||
#include "util/DateTime.h"
|
||||
#include <retroshare/rsidentity.h>
|
||||
#include <util/HandleRichText.h>
|
||||
|
||||
#include <retroshare/rsidentity.h>
|
||||
|
||||
ChatLobbyUserNotify::ChatLobbyUserNotify(QObject *parent) :
|
||||
UserNotify(parent)
|
||||
{
|
||||
@ -273,8 +277,9 @@ void ChatLobbyUserNotify::chatLobbyNewMessage(ChatLobbyId lobby_id, QDateTime ti
|
||||
|
||||
_listMsg[lobby_id][strAnchor]=msgData;
|
||||
emit countChanged(lobby_id, _listMsg[lobby_id].size());
|
||||
updateIcon();
|
||||
}
|
||||
updateIcon();
|
||||
SoundManager::play(SOUND_NEW_LOBBY_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
bool ChatLobbyUserNotify::checkWord(QString message, QString word)
|
||||
|
@ -59,6 +59,7 @@ RSGraphSource::RSGraphSource()
|
||||
#endif
|
||||
_timer = new QTimer ;
|
||||
_digits = 2 ;
|
||||
_filtering_enabled = true;
|
||||
|
||||
QObject::connect(_timer,SIGNAL(timeout()),this,SLOT(updateIfPossible())) ;
|
||||
}
|
||||
@ -123,6 +124,9 @@ void RSGraphSource::getDataPoints(int index,std::vector<QPointF>& pts,float filt
|
||||
pts.clear() ;
|
||||
qint64 now = getTime() ;
|
||||
|
||||
if(!_filtering_enabled)
|
||||
filter_factor = 0 ;
|
||||
|
||||
std::map<std::string,std::list<std::pair<qint64,float> > >::const_iterator it = _points.begin();
|
||||
|
||||
int n=0;
|
||||
@ -267,11 +271,13 @@ RSGraphWidget::RSGraphWidget(QWidget *parent)
|
||||
_timer = new QTimer ;
|
||||
QObject::connect(_timer,SIGNAL(timeout()),this,SLOT(updateIfPossible())) ;
|
||||
|
||||
|
||||
_y_scale = 1.0f ;
|
||||
_timer->start(1000);
|
||||
|
||||
float FS = QFontMetricsF(font()).height();
|
||||
setMinimumHeight(12*FS);
|
||||
_graph_base = FS*GRAPH_BASE;
|
||||
}
|
||||
|
||||
void RSGraphWidget::updateIfPossible()
|
||||
@ -292,7 +298,13 @@ RSGraphWidget::~RSGraphWidget()
|
||||
delete _source ;
|
||||
}
|
||||
|
||||
/** Gets the width of the desktop, which is the maximum number of points
|
||||
void RSGraphWidget::setFiltering(bool b)
|
||||
{
|
||||
if(_source != NULL)
|
||||
_source->setFiltering(b) ;
|
||||
}
|
||||
|
||||
/** Gets the width of the desktop, which is the maximum number of points
|
||||
* we can plot in the graph. */
|
||||
int
|
||||
RSGraphWidget::getNumPoints()
|
||||
@ -373,12 +385,16 @@ default:
|
||||
}
|
||||
}
|
||||
|
||||
QColor RSGraphWidget::getColor(int i)
|
||||
QColor RSGraphWidget::getColor(const std::string& name)
|
||||
{
|
||||
// shuffle the colors a little bit
|
||||
int h = (i*86243)%359 ;
|
||||
uint32_t r = 57 ;
|
||||
for(uint32_t i=0;i<name.length();++i)
|
||||
r = (113*name[i] + r)^0x93859aeb;
|
||||
|
||||
return QColor::fromHsv(h,128+127*(i&1),255) ;
|
||||
// shuffle the colors a little bit
|
||||
int h = (r*86243)%359 ;
|
||||
|
||||
return QColor::fromHsv(h,255,255) ;
|
||||
}
|
||||
|
||||
void RSGraphWidget::setCurvesOpacity(float f)
|
||||
@ -409,17 +425,19 @@ void RSGraphWidget::paintData()
|
||||
QVector<QPointF> points ;
|
||||
pointsFromData(values,points) ;
|
||||
|
||||
QColor pcolor = getColor(source.displayName(i).toStdString()) ;
|
||||
|
||||
/* Plot the bandwidth data as area graphs */
|
||||
if (_flags & RSGRAPH_FLAGS_PAINT_STYLE_PLAIN)
|
||||
paintIntegral(points, getColor(i), _opacity);
|
||||
paintIntegral(points, pcolor, _opacity);
|
||||
|
||||
/* Plot the bandwidth as solid lines. If the graph style is currently an
|
||||
* area graph, we end up outlining the integrals. */
|
||||
|
||||
if(_flags & RSGRAPH_FLAGS_PAINT_STYLE_DOTS)
|
||||
paintDots(points, getColor(i));
|
||||
paintDots(points, pcolor);
|
||||
else
|
||||
paintLine(points, getColor(i));
|
||||
paintLine(points, pcolor);
|
||||
}
|
||||
if(_maxValue > 0.0f)
|
||||
{
|
||||
@ -465,42 +483,43 @@ void RSGraphWidget::pointsFromData(const std::vector<QPointF>& values,QVector<QP
|
||||
qreal px = x - (values[i].x()-last)*_time_scale ;
|
||||
qreal py = y - valueToPixels(values[i].y()) ;
|
||||
|
||||
if(px >= SCALE_WIDTH*fact && last_px < SCALE_WIDTH*fact)
|
||||
if(!(_flags & RSGRAPH_FLAGS_PAINT_STYLE_DOTS))
|
||||
{
|
||||
float alpha = (SCALE_WIDTH*fact - last_px)/(px - last_px) ;
|
||||
float ipx = SCALE_WIDTH*fact ;
|
||||
float ipy = (1-alpha)*last_py + alpha*py ;
|
||||
if(px >= SCALE_WIDTH*fact && last_px < SCALE_WIDTH*fact)
|
||||
{
|
||||
float alpha = (SCALE_WIDTH*fact - last_px)/(px - last_px) ;
|
||||
float ipx = SCALE_WIDTH*fact ;
|
||||
float ipy = (1-alpha)*last_py + alpha*py ;
|
||||
|
||||
points << QPointF(ipx,y) ;
|
||||
points << QPointF(ipx,ipy) ;
|
||||
}
|
||||
else if(i==0)
|
||||
{
|
||||
if(px < SCALE_WIDTH*fact)
|
||||
points << QPointF(SCALE_WIDTH*fact,py) ;
|
||||
else
|
||||
points << QPointF(px,y) ;
|
||||
points << QPointF(ipx,y - _graph_base) ;
|
||||
points << QPointF(ipx,ipy) ;
|
||||
}
|
||||
else if(i==0)
|
||||
{
|
||||
if(px < SCALE_WIDTH*fact)
|
||||
points << QPointF(SCALE_WIDTH*fact,py) ;
|
||||
else
|
||||
points << QPointF(px,y - _graph_base) ;
|
||||
}
|
||||
}
|
||||
|
||||
if(px < SCALE_WIDTH*fact)
|
||||
continue ;
|
||||
|
||||
if((_flags & RSGRAPH_FLAGS_PAINT_STYLE_DOTS) && values[i].y() == 0)
|
||||
continue ;
|
||||
|
||||
_maxValue = std::max(_maxValue,values[i].y()) ;
|
||||
|
||||
// remove midle point when 3 consecutive points have the same value.
|
||||
|
||||
if(points.size() > 1 && points[points.size()-2].y() == points.back().y() && points.back().y() == py)
|
||||
points.pop_back() ;
|
||||
|
||||
// if(fabs(px - last_px)/_time_scale > min_x_no_data_threshold)
|
||||
// {
|
||||
// points << QPointF(last_px,y) ;
|
||||
// points << QPointF(px,y) ;
|
||||
// }
|
||||
if(!(_flags & RSGRAPH_FLAGS_PAINT_STYLE_DOTS))
|
||||
if(points.size() > 1 && points[points.size()-2].y() == points.back().y() && points.back().y() == py)
|
||||
points.pop_back() ;
|
||||
|
||||
points << QPointF(px,py) ;
|
||||
|
||||
if(i==values.size()-1)
|
||||
if(!(_flags & RSGRAPH_FLAGS_PAINT_STYLE_DOTS) && (i==values.size()-1))
|
||||
points << QPointF(px,y) ;
|
||||
|
||||
last_px = px ;
|
||||
@ -512,17 +531,17 @@ void RSGraphWidget::pointsFromData(const std::vector<QPointF>& values,QVector<QP
|
||||
qreal RSGraphWidget::valueToPixels(qreal val)
|
||||
{
|
||||
if(_flags & RSGRAPH_FLAGS_LOG_SCALE_Y)
|
||||
return log(std::max((qreal)1.0,val))*_y_scale ;
|
||||
return _graph_base + log(std::max((qreal)1.0,val))*_y_scale ;
|
||||
else
|
||||
return val*_y_scale ;
|
||||
return _graph_base + val*_y_scale ;
|
||||
}
|
||||
|
||||
qreal RSGraphWidget::pixelsToValue(qreal val)
|
||||
{
|
||||
if(_flags & RSGRAPH_FLAGS_LOG_SCALE_Y)
|
||||
return exp(val / _y_scale) ;
|
||||
return exp( (val - _graph_base) / _y_scale) ;
|
||||
else
|
||||
return val/_y_scale ;
|
||||
return (val - _graph_base)/_y_scale ;
|
||||
}
|
||||
|
||||
/** Plots an integral using the data points in <b>points</b>. The area will be
|
||||
@ -560,7 +579,7 @@ void RSGraphWidget::paintDots(const QVector<QPointF>& points, QColor color)
|
||||
_painter->setBrush(QBrush(color));
|
||||
|
||||
for(int i=0;i<points.size();++i)
|
||||
_painter->drawEllipse(QRect(points[i].x(),points[i].y(),5*_linewidthscale,5*_linewidthscale)) ;
|
||||
_painter->drawEllipse(QRect(points[i].x()-2.5*_linewidthscale,points[i].y()-2.5*_linewidthscale,5*_linewidthscale,5*_linewidthscale)) ;
|
||||
|
||||
_painter->setPen(oldPen);
|
||||
_painter->setBrush(oldBrush);
|
||||
@ -603,8 +622,8 @@ void RSGraphWidget::paintScale1()
|
||||
float fact = FS/14.0 ;
|
||||
|
||||
int top = _rec.y();
|
||||
int bottom = _rec.height();
|
||||
qreal paintStep = (bottom - (bottom/10)) / 4;
|
||||
int bottom = _rec.height() - _graph_base;
|
||||
qreal paintStep = (bottom - top) / 5;
|
||||
|
||||
/* Draw the other marks in their correctly scaled locations */
|
||||
qreal scale;
|
||||
@ -615,16 +634,23 @@ void RSGraphWidget::paintScale1()
|
||||
|
||||
QString unit_name = _source->unitName() ;
|
||||
|
||||
for (int i = 1; i < 5; i++)
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
pos = bottom - (i * paintStep);
|
||||
pos = bottom - (i * paintStep) ;
|
||||
|
||||
scale = pixelsToValue(i * paintStep);
|
||||
scale = pixelsToValue(_graph_base + i * paintStep);
|
||||
|
||||
// If legend contains integers only the value should be rounded to the nearest integer
|
||||
if(_flags & RSGRAPH_FLAGS_LEGEND_INTEGER)
|
||||
{
|
||||
scale = (int)scale ;
|
||||
pos = bottom - (valueToPixels(scale) - _graph_base) ;
|
||||
}
|
||||
|
||||
QString text = _source->displayValue(scale) ;
|
||||
|
||||
_painter->setPen(SCALE_COLOR);
|
||||
_painter->drawText(QPointF(5*fact, pos+0.5*FS), text);
|
||||
_painter->drawText(QPointF(SCALE_WIDTH*fact - QFontMetricsF(font()).width(text) - 4*fact, pos+0.4*FS), text);
|
||||
_painter->setPen(GRID_COLOR);
|
||||
_painter->drawLine(QPointF(SCALE_WIDTH*fact, pos), QPointF(_rec.width(), pos));
|
||||
}
|
||||
@ -710,7 +736,11 @@ void RSGraphWidget::paintLegend()
|
||||
QString text = _source->legend(i,vals[i]) ;
|
||||
|
||||
QPen oldPen = _painter->pen();
|
||||
_painter->setPen(QPen(getColor(i), Qt::SolidLine));
|
||||
|
||||
QPen pen(getColor(_source->displayName(i).toStdString()), Qt::SolidLine) ;
|
||||
pen.setWidth(_linewidthscale);
|
||||
|
||||
_painter->setPen(pen);
|
||||
_painter->drawLine(QPointF(SCALE_WIDTH*fact+10.0*fact, pos+FS/3), QPointF(SCALE_WIDTH*fact+30.0*fact, pos+FS/3));
|
||||
_painter->setPen(oldPen);
|
||||
|
||||
|
@ -32,8 +32,9 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define GRAPH_BASE 2 /** Position of the 0 of the scale, in count of the text height */
|
||||
#define SCALE_WIDTH 75 /** Width of the scale */
|
||||
#define MINUSER_SCALE 2000 /** 2000 users is the minimum scale */
|
||||
#define MINUSER_SCALE 2000 /** 2000 users is the minimum scale */
|
||||
#define SCROLL_STEP 4 /** Horizontal change on graph update */
|
||||
|
||||
#define BACK_COLOR Qt::white
|
||||
@ -87,6 +88,9 @@ public:
|
||||
// Sets the time period for collecting new values. Units=milliseconds.
|
||||
void setCollectionTimePeriod(qint64 msecs) ;
|
||||
|
||||
// Enables/disables time filtering of the data
|
||||
void setFiltering(bool b) { _filtering_enabled = b; }
|
||||
|
||||
void setDigits(int d) { _digits = d ;}
|
||||
|
||||
protected slots:
|
||||
@ -112,6 +116,7 @@ protected:
|
||||
qint64 _update_period_msecs ;
|
||||
qint64 _time_orig_msecs ;
|
||||
int _digits ;
|
||||
bool _filtering_enabled ;
|
||||
};
|
||||
|
||||
class RSGraphWidget: public QFrame
|
||||
@ -127,6 +132,7 @@ public:
|
||||
static const uint32_t RSGRAPH_FLAGS_PAINT_STYLE_FLAT = 0x0020 ;// do not interpolate, and draw flat colored boxes
|
||||
static const uint32_t RSGRAPH_FLAGS_LEGEND_CUMULATED = 0x0040 ;// show the total in the legend rather than current values
|
||||
static const uint32_t RSGRAPH_FLAGS_PAINT_STYLE_DOTS = 0x0080 ;// use dots
|
||||
static const uint32_t RSGRAPH_FLAGS_LEGEND_INTEGER = 0x0100 ;// use integer number in the legend, and move the lines to match integers
|
||||
|
||||
/** Bandwidth graph style. */
|
||||
enum GraphStyle
|
||||
@ -156,6 +162,8 @@ public:
|
||||
void setShowEntry(uint32_t entry, bool show) ;
|
||||
void setCurvesOpacity(float f) ;
|
||||
|
||||
void setFiltering(bool b) ;
|
||||
|
||||
void setFlags(uint32_t flag) { _flags |= flag ; }
|
||||
void resetFlags(uint32_t flag) { _flags &= ~flag ; }
|
||||
protected:
|
||||
@ -183,7 +191,7 @@ private:
|
||||
void paintScale1();
|
||||
void paintScale2();
|
||||
|
||||
QColor getColor(int i) ;
|
||||
QColor getColor(const std::string &name) ;
|
||||
|
||||
/** Returns a formatted string representation of total. */
|
||||
QString totalToStr(qreal total);
|
||||
@ -209,6 +217,7 @@ private:
|
||||
/** The maximum number of points to store. */
|
||||
qreal _y_scale ;
|
||||
qreal _opacity ;
|
||||
qreal _graph_base;
|
||||
|
||||
qreal pixelsToValue(qreal) ;
|
||||
qreal valueToPixels(qreal) ;
|
||||
|
@ -345,6 +345,7 @@ void ConnectFriendWizard::initializePage(int id)
|
||||
connect(ui->userCertOldFormatButton, SIGNAL(clicked()), this, SLOT(toggleFormatState()));
|
||||
connect(ui->userCertCopyButton, SIGNAL(clicked()), this, SLOT(copyCert()));
|
||||
connect(ui->userCertPasteButton, SIGNAL(clicked()), this, SLOT(pasteCert()));
|
||||
connect(ui->userCertOpenButton, SIGNAL(clicked()), this, SLOT(openCert()));
|
||||
connect(ui->userCertSaveButton, SIGNAL(clicked()), this, SLOT(saveCert()));
|
||||
connect(ui->userCertMailButton, SIGNAL(clicked()), this, SLOT(runEmailClient()));
|
||||
connect(ui->friendCertEdit, SIGNAL(textChanged()), this, SLOT(friendCertChanged()));
|
||||
@ -1077,6 +1078,22 @@ void ConnectFriendWizard::pasteCert()
|
||||
ui->friendCertEdit->setPlainText(clipboard->text());
|
||||
}
|
||||
|
||||
void ConnectFriendWizard::openCert()
|
||||
{
|
||||
QString fileName ;
|
||||
if(!misc::getOpenFileName(this, RshareSettings::LASTDIR_CERT, tr("Select Certificate"), tr("RetroShare Certificate (*.rsc );;All Files (*)"),fileName))
|
||||
return ;
|
||||
|
||||
if (!fileName.isNull()) {
|
||||
QFile fileCert(fileName);
|
||||
if (fileCert.open(QIODevice::ReadOnly )) {
|
||||
QByteArray arrayCert(fileCert.readAll());
|
||||
ui->friendCertEdit->setPlainText(QString::fromUtf8(arrayCert));
|
||||
fileCert.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ConnectFriendWizard::saveCert()
|
||||
{
|
||||
QString fileName = QFileDialog::getSaveFileName(this, tr("Save as..."), "", tr("RetroShare Certificate (*.rsc );;All Files (*)"));
|
||||
|
@ -66,6 +66,7 @@ private slots:
|
||||
void showHelpUserCert();
|
||||
void copyCert();
|
||||
void pasteCert();
|
||||
void openCert();
|
||||
void saveCert();
|
||||
void friendCertChanged();
|
||||
void cleanFriendCert();
|
||||
|
@ -279,7 +279,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="friendFrame">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<layout class="QGridLayout" name="friendFrameGLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QToolButton" name="userCertPasteButton">
|
||||
<property name="sizePolicy">
|
||||
@ -316,6 +316,41 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="userCertOpenButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>20</horstretch>
|
||||
<verstretch>20</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open Cert of your friend from File</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open certificate</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../icons.qrc">
|
||||
<normaloff>:/icons/svg/filesharing.svg</normaloff>:/icons/svg/filesharing.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="friendCertCleanLabel">
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../images.qrc">:/images/accepted16.png</pixmap>
|
||||
@ -325,7 +360,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="RSPlainTextEdit" name="friendCertEdit">
|
||||
<property name="font">
|
||||
<font>
|
||||
|
@ -278,10 +278,10 @@ void CreateGxsForumMsg::loadFormInformation()
|
||||
uint32_t fl = IDCHOOSER_ID_REQUIRED ;
|
||||
|
||||
if( (mForumMeta.mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG) || (mForumMeta.mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG_KNOWN))
|
||||
fl |= IDCHOOSER_NON_ANONYMOUS ;
|
||||
fl |= IDCHOOSER_NON_ANONYMOUS;
|
||||
|
||||
if(!mPosterId.isNull())
|
||||
fl |= IDCHOOSER_NO_CREATE;
|
||||
if(!mPosterId.isNull())
|
||||
fl |= IDCHOOSER_NO_CREATE;
|
||||
|
||||
ui.idChooser->setFlags(fl) ;
|
||||
|
||||
|
@ -1850,14 +1850,18 @@ void GxsForumThreadWidget::setMsgReadStatus(QList<QTreeWidgetItem*> &rows, bool
|
||||
rsGxsForums->setMessageReadStatus(token, msgPair, read);
|
||||
|
||||
// Look if older version exist to mark them too
|
||||
QMap<RsGxsMessageId,QVector<QPair<time_t,RsGxsMessageId> > >::const_iterator it = mPostVersions.find(mOrigThreadId) ;
|
||||
QMap<RsGxsMessageId,QVector<QPair<time_t,RsGxsMessageId> > >::const_iterator it = mPostVersions.find(RsGxsMessageId(msgId)) ;
|
||||
if(it != mPostVersions.end())
|
||||
{
|
||||
std::cerr << (*it).size() << " versions found " << std::endl;
|
||||
for(int i=0;i<(*it).size();++i)
|
||||
{
|
||||
msgPair = std::make_pair( groupId(), (*it)[i].second );
|
||||
rsGxsForums->setMessageReadStatus(token, msgPair, read);
|
||||
RsGxsMessageId found = (*it)[i].second;
|
||||
if(found != RsGxsMessageId(msgId))
|
||||
{
|
||||
msgPair = std::make_pair( groupId(), found );
|
||||
rsGxsForums->setMessageReadStatus(token, msgPair, read);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -247,6 +247,7 @@ void GxsForumsFillThread::run()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Now remove from msg ids, all posts except the most recent one. And make the mPostVersion be indexed by the most recent version of the post,
|
||||
// which corresponds to the item in the tree widget.
|
||||
|
||||
@ -254,6 +255,7 @@ void GxsForumsFillThread::run()
|
||||
std::cerr << "Final post versions: " << std::endl;
|
||||
#endif
|
||||
QMap<RsGxsMessageId,QVector<QPair<time_t,RsGxsMessageId> > > mTmp;
|
||||
std::map<RsGxsMessageId,RsGxsMessageId> most_recent_versions ;
|
||||
|
||||
for(QMap<RsGxsMessageId,QVector<QPair<time_t,RsGxsMessageId> > >::iterator it(mPostVersions.begin());it!=mPostVersions.end();++it)
|
||||
{
|
||||
@ -277,10 +279,16 @@ void GxsForumsFillThread::run()
|
||||
}
|
||||
|
||||
mTmp[(*it)[0].second] = *it ; // index the versions map by the ID of the most recent post.
|
||||
|
||||
// Now make sure that message parents are consistent. Indeed, an old post may have the old version of a post as parent. So we need to change that parent
|
||||
// to the newest version. So we create a map of which is the most recent version of each message, so that parent messages can be searched in it.
|
||||
|
||||
for(uint32_t i=1;i<(*it).size();++i)
|
||||
most_recent_versions[(*it)[i].second] = (*it)[0].second ;
|
||||
}
|
||||
mPostVersions = mTmp ;
|
||||
|
||||
// The first step is to find the top level thread messages. These are defined as the messages without
|
||||
// The next step is to find the top level thread messages. These are defined as the messages without
|
||||
// any parent message ID.
|
||||
|
||||
// this trick is needed because while we remove messages, the parents a given msg may already have been removed
|
||||
@ -325,10 +333,21 @@ void GxsForumsFillThread::run()
|
||||
#endif
|
||||
// The same missing parent may appear multiple times, so we first store them into a unique container.
|
||||
|
||||
if(msgs.find(msgIt->second.mMeta.mParentId) == msgs.end())
|
||||
missing_parents.insert(msgIt->second.mMeta.mParentId);
|
||||
RsGxsMessageId parent_msg = msgIt->second.mMeta.mParentId;
|
||||
|
||||
kids_array[msgIt->second.mMeta.mParentId].push_back(msgIt->first) ;
|
||||
if(msgs.find(parent_msg) == msgs.end())
|
||||
{
|
||||
// also check that the message is not versionned
|
||||
|
||||
std::map<RsGxsMessageId,RsGxsMessageId>::const_iterator mrit = most_recent_versions.find(parent_msg) ;
|
||||
|
||||
if(mrit != most_recent_versions.end())
|
||||
parent_msg = mrit->second ;
|
||||
else
|
||||
missing_parents.insert(parent_msg);
|
||||
}
|
||||
|
||||
kids_array[parent_msg].push_back(msgIt->first) ;
|
||||
kept_msgs.insert(*msgIt) ;
|
||||
}
|
||||
}
|
||||
|
@ -1,228 +1,235 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>icons/add_user_256.png</file>
|
||||
<file>icons/anonymous_blue_128.png</file>
|
||||
<file>icons/anonymous_green_128.png</file>
|
||||
<file>icons/aol.png</file>
|
||||
<file>icons/avatar_128.png</file>
|
||||
<file>icons/avatar_grey_128.png</file>
|
||||
<file>icons/biohazard_red.png</file>
|
||||
<file>icons/biohazard_yellow.png</file>
|
||||
<file>icons/blank_blue_128.png</file>
|
||||
<file>icons/blank_green_128.png</file>
|
||||
<file>icons/blank_red_128.png</file>
|
||||
<file>icons/browsable_blue_128.png</file>
|
||||
<file>icons/browsable_green_128.png</file>
|
||||
<file>icons/bullet_blue_128.png</file>
|
||||
<file>icons/bullet_green_128.png</file>
|
||||
<file>icons/bullet_green_yellow_star_128.png</file>
|
||||
<file>icons/bullet_grey_128.png</file>
|
||||
<file>icons/bullet_red_128.png</file>
|
||||
<file>icons/bullet_yellow_128.png</file>
|
||||
<file>icons/channels_128.png</file>
|
||||
<file>icons/channels_red_128.png</file>
|
||||
<file>icons/chat_128.png</file>
|
||||
<file>icons/chat_red_128.png</file>
|
||||
<file>icons/circles_128.png</file>
|
||||
<file>icons/circles_new_128.png</file>
|
||||
<file>icons/flag-green.png</file>
|
||||
<file>icons/friends_128.png</file>
|
||||
<file>icons/global_switch_off_128.png</file>
|
||||
<file>icons/global_switch_on_128.png</file>
|
||||
<file>icons/gmail.png</file>
|
||||
<file>icons/help_128.png</file>
|
||||
<file>icons/help_64.png</file>
|
||||
<file>icons/information_128.png</file>
|
||||
<file>icons/internet_128.png</file>
|
||||
<file>icons/invite64.png</file>
|
||||
<file>icons/knews_128.png</file>
|
||||
<file>icons/knews_red_128.png</file>
|
||||
<file>icons/konversation_128.png</file>
|
||||
<file>icons/konversation128.png</file>
|
||||
<file>icons/konversation_red_128.png</file>
|
||||
<file>icons/ktorrent_128.png</file>
|
||||
<file>icons/ktorrent_red_128.png</file>
|
||||
<file>icons/logo_0_connected_128.png</file>
|
||||
<file>icons/logo_128.png</file>
|
||||
<file>icons/logo_1_connected_128.png</file>
|
||||
<file>icons/logo_2_connected_128.png</file>
|
||||
<file>icons/mail_128.png</file>
|
||||
<file>icons/mail_old_128.png</file>
|
||||
<file>icons/mail_red_128.png</file>
|
||||
<file>icons/newsfeed128.png</file>
|
||||
<file>icons/outlook.png</file>
|
||||
<file>icons/plugins_128.png</file>
|
||||
<file>icons/png/add.png</file>
|
||||
<file>icons/png/attach-image.png</file>
|
||||
<file>icons/png/attach.png</file>
|
||||
<file>icons/png/channels-notify.png</file>
|
||||
<file>icons/png/channels.png</file>
|
||||
<file>icons/png/chat-bubble-notify.png</file>
|
||||
<file>icons/png/chat-bubble.png</file>
|
||||
<file>icons/png/chat-lobbies-notify.png</file>
|
||||
<file>icons/png/chat-lobbies.png</file>
|
||||
<file>icons/png/circles.png</file>
|
||||
<file>icons/png/empty-circle.png</file>
|
||||
<file>icons/png/exit.png</file>
|
||||
<file>icons/png/feedreader-notify.png</file>
|
||||
<file>icons/png/feedreader.png</file>
|
||||
<file>icons/png/filesharing-notify.png</file>
|
||||
<file>icons/png/filesharing.png</file>
|
||||
<file>icons/png/font.png</file>
|
||||
<file>icons/png/forums-notify.png</file>
|
||||
<file>icons/png/forums.png</file>
|
||||
<file>icons/png/fullscreen_arrows.png</file>
|
||||
<file>icons/png/highlight.png</file>
|
||||
<file>icons/png/info.png</file>
|
||||
<file>icons/png/invite.png</file>
|
||||
<file>icons/png/keyring.png</file>
|
||||
<file>icons/png/leave.png</file>
|
||||
<file>icons/png/messages-notify.png</file>
|
||||
<file>icons/png/messages.png</file>
|
||||
<file>icons/png/microphone_mute.png</file>
|
||||
<file>icons/png/microphone.png</file>
|
||||
<file>icons/png/netgraph.png</file>
|
||||
<file>icons/png/network-notify.png</file>
|
||||
<file>icons/png/network.png</file>
|
||||
<file>icons/png/network-puplic.png</file>
|
||||
<file>icons/png/newsfeed-notify.png</file>
|
||||
<file>icons/png/newsfeed.png</file>
|
||||
<file>icons/png/options.png</file>
|
||||
<file>icons/png/people-notify.png</file>
|
||||
<file>icons/png/people.png</file>
|
||||
<file>icons/png/person.png</file>
|
||||
<file>icons/png/phone_hangup.png</file>
|
||||
<file>icons/png/phone.png</file>
|
||||
<file>icons/png/posted-notify.png</file>
|
||||
<file>icons/png/posted.png</file>
|
||||
<file>icons/png/search.png</file>
|
||||
<file>icons/png/send-message-blocked.png</file>
|
||||
<file>icons/png/send-message.png</file>
|
||||
<file>icons/png/settings.png</file>
|
||||
<file>icons/png/smiley.png</file>
|
||||
<file>icons/png/speaker_mute.png</file>
|
||||
<file>icons/png/speaker.png</file>
|
||||
<file>icons/png/thumbs-down.png</file>
|
||||
<file>icons/png/thumbs-neutral.png</file>
|
||||
<file>icons/png/thumbs-up.png</file>
|
||||
<file>icons/png/video.png</file>
|
||||
<file>icons/posted_128.png</file>
|
||||
<file>icons/posted_red_128.png</file>
|
||||
<file>icons/quit_128.png</file>
|
||||
<file>icons/search_red_128.png</file>
|
||||
<file>icons/security_high_128.png</file>
|
||||
<file>icons/security_low_128.png</file>
|
||||
<file>icons/security_medium_128.png</file>
|
||||
<file>icons/settings/appearance.svg</file>
|
||||
<file>icons/settings/channels.svg</file>
|
||||
<file>icons/settings/chat.svg</file>
|
||||
<file>icons/settings/directories.svg</file>
|
||||
<file>icons/settings/filesharing.svg</file>
|
||||
<file>icons/settings/forums.svg</file>
|
||||
<file>icons/settings/general.svg</file>
|
||||
<file>icons/settings/messages.svg</file>
|
||||
<file>icons/settings/network.svg</file>
|
||||
<file>icons/settings/notify.svg</file>
|
||||
<file>icons/settings/people.svg</file>
|
||||
<file>icons/settings/permissions.svg</file>
|
||||
<file>icons/settings/plugins.svg</file>
|
||||
<file>icons/settings/posted.svg</file>
|
||||
<file>icons/settings/profile.svg</file>
|
||||
<file>icons/settings/server.svg</file>
|
||||
<file>icons/settings/sound.svg</file>
|
||||
<file>icons/settings/webinterface.svg</file>
|
||||
<file>icons/star_overlay_128.png</file>
|
||||
<file>icons/svg/add.svg</file>
|
||||
<file>icons/svg/attach-image.svg</file>
|
||||
<file>icons/svg/attach.svg</file>
|
||||
<file>icons/svg/channels-notify.svg</file>
|
||||
<file>icons/svg/channels.svg</file>
|
||||
<file>icons/svg/chat-bubble-notify.svg</file>
|
||||
<file>icons/svg/chat-bubble.svg</file>
|
||||
<file>icons/svg/chat-lobbies-notify.svg</file>
|
||||
<file>icons/svg/chat-lobbies.svg</file>
|
||||
<file>icons/svg/circles.svg</file>
|
||||
<file>icons/svg/download.svg</file>
|
||||
<file>icons/svg/empty-circle.svg</file>
|
||||
<file>icons/svg/exit-red.svg</file>
|
||||
<file>icons/svg/exit.svg</file>
|
||||
<file>icons/svg/feedreader-notify.svg</file>
|
||||
<file>icons/svg/feedreader.svg</file>
|
||||
<file>icons/svg/filesharing-notify.svg</file>
|
||||
<file>icons/svg/filesharing.svg</file>
|
||||
<file>icons/svg/folders1.svg</file>
|
||||
<file>icons/svg/folders.svg</file>
|
||||
<file>icons/svg/font.svg</file>
|
||||
<file>icons/svg/forums-notify.svg</file>
|
||||
<file>icons/svg/forums.svg</file>
|
||||
<file>icons/svg/fullscreen_arrows.svg</file>
|
||||
<file>icons/svg/highlight.svg</file>
|
||||
<file>icons/svg/info.svg</file>
|
||||
<file>icons/svg/invite.svg</file>
|
||||
<file>icons/svg/keyring.svg</file>
|
||||
<file>icons/svg/leave.svg</file>
|
||||
<file>icons/svg/magnifying-glass.svg</file>
|
||||
<file>icons/svg/messages-notify.svg</file>
|
||||
<file>icons/svg/messages.svg</file>
|
||||
<file>icons/svg/microphone_mute.svg</file>
|
||||
<file>icons/svg/microphone.svg</file>
|
||||
<file>icons/svg/netgraph.svg</file>
|
||||
<file>icons/svg/network-notify.svg</file>
|
||||
<file>icons/svg/network-puplic.svg</file>
|
||||
<file>icons/svg/network.svg</file>
|
||||
<file>icons/svg/newsfeed-notify.svg</file>
|
||||
<file>icons/svg/newsfeed.svg</file>
|
||||
<file>icons/svg/options.svg</file>
|
||||
<file>icons/svg/paste.svg</file>
|
||||
<file>icons/svg/people-notify.svg</file>
|
||||
<file>icons/svg/people.svg</file>
|
||||
<file>icons/svg/person.svg</file>
|
||||
<file>icons/svg/phone_hangup.svg</file>
|
||||
<file>icons/svg/phone.svg</file>
|
||||
<file>icons/svg/posted-notify.svg</file>
|
||||
<file>icons/svg/posted.svg</file>
|
||||
<file>icons/svg/profile.svg</file>
|
||||
<file>icons/svg/retroshare-info.svg</file>
|
||||
<file>icons/svg/retroshare-splash.svg</file>
|
||||
<file>icons/svg/retroshare-symbol_black_bg.svg</file>
|
||||
<file>icons/svg/retroshare-symbol_gradients.svg</file>
|
||||
<file>icons/svg/retroshare-symbol-minimal.svg</file>
|
||||
<file>icons/svg/search.svg</file>
|
||||
<file>icons/svg/send-message-blocked.svg</file>
|
||||
<file>icons/svg/send-message.svg</file>
|
||||
<file>icons/svg/settings.svg</file>
|
||||
<file>icons/svg/share.svg</file>
|
||||
<file>icons/svg/smiley.svg</file>
|
||||
<file>icons/svg/speaker_mute.svg</file>
|
||||
<file>icons/svg/speaker.svg</file>
|
||||
<file>icons/svg/thumbs-down.svg</file>
|
||||
<file>icons/svg/thumbs-neutral.svg</file>
|
||||
<file>icons/svg/thumbs-up.svg</file>
|
||||
<file>icons/svg/upload.svg</file>
|
||||
<file>icons/svg/video.svg</file>
|
||||
<file>icons/switch00_128.png</file>
|
||||
<file>icons/switch01_128.png</file>
|
||||
<file>icons/switch10_128.png</file>
|
||||
<file>icons/switch11_128.png</file>
|
||||
<file>icons/system_128.png</file>
|
||||
<file>icons/tile_checking_48.png</file>
|
||||
<file>icons/tile_downloaded_48.png</file>
|
||||
<file>icons/tile_downloading_48.png</file>
|
||||
<file>icons/tile_inactive_48.png</file>
|
||||
<file>icons/tor-logo.png</file>
|
||||
<file>icons/tor-off.png</file>
|
||||
<file>icons/tor-on.png</file>
|
||||
<file>icons/tor-starting.png</file>
|
||||
<file>icons/tor-stopping.png</file>
|
||||
<file>icons/user-away_64.png</file>
|
||||
<file>icons/user-away-extended_64.png</file>
|
||||
<file>icons/user-busy_64.png</file>
|
||||
<file>icons/user-offline_64.png</file>
|
||||
<file>icons/user-online_64.png</file>
|
||||
<file>icons/void_128.png</file>
|
||||
<file>icons/warning_red_128.png</file>
|
||||
<file>icons/warning_yellow_128.png</file>
|
||||
<file>icons/yahoo.png</file>
|
||||
<file>icons/yandex.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/">
|
||||
<file>icons/svg/password.svg</file>
|
||||
<file>icons/stars/star0.png</file>
|
||||
<file>icons/stars/star1.png</file>
|
||||
<file>icons/stars/star2.png</file>
|
||||
<file>icons/stars/star3.png</file>
|
||||
<file>icons/stars/star4.png</file>
|
||||
<file>icons/stars/star5.png</file>
|
||||
<file>icons/add_user_256.png</file>
|
||||
<file>icons/anonymous_blue_128.png</file>
|
||||
<file>icons/anonymous_green_128.png</file>
|
||||
<file>icons/aol.png</file>
|
||||
<file>icons/avatar_128.png</file>
|
||||
<file>icons/avatar_grey_128.png</file>
|
||||
<file>icons/biohazard_red.png</file>
|
||||
<file>icons/biohazard_yellow.png</file>
|
||||
<file>icons/blank_blue_128.png</file>
|
||||
<file>icons/blank_green_128.png</file>
|
||||
<file>icons/blank_red_128.png</file>
|
||||
<file>icons/browsable_blue_128.png</file>
|
||||
<file>icons/browsable_green_128.png</file>
|
||||
<file>icons/bullet_blue_128.png</file>
|
||||
<file>icons/bullet_green_128.png</file>
|
||||
<file>icons/bullet_green_yellow_star_128.png</file>
|
||||
<file>icons/bullet_grey_128.png</file>
|
||||
<file>icons/bullet_red_128.png</file>
|
||||
<file>icons/bullet_yellow_128.png</file>
|
||||
<file>icons/channels_128.png</file>
|
||||
<file>icons/channels_red_128.png</file>
|
||||
<file>icons/chat_128.png</file>
|
||||
<file>icons/chat_red_128.png</file>
|
||||
<file>icons/circles_128.png</file>
|
||||
<file>icons/circles_new_128.png</file>
|
||||
<file>icons/flag-green.png</file>
|
||||
<file>icons/friends_128.png</file>
|
||||
<file>icons/global_switch_off_128.png</file>
|
||||
<file>icons/global_switch_on_128.png</file>
|
||||
<file>icons/gmail.png</file>
|
||||
<file>icons/help_128.png</file>
|
||||
<file>icons/help_64.png</file>
|
||||
<file>icons/information_128.png</file>
|
||||
<file>icons/internet_128.png</file>
|
||||
<file>icons/invite64.png</file>
|
||||
<file>icons/knews_128.png</file>
|
||||
<file>icons/knews_red_128.png</file>
|
||||
<file>icons/konversation_128.png</file>
|
||||
<file>icons/konversation128.png</file>
|
||||
<file>icons/konversation_red_128.png</file>
|
||||
<file>icons/ktorrent_128.png</file>
|
||||
<file>icons/ktorrent_red_128.png</file>
|
||||
<file>icons/logo_0_connected_128.png</file>
|
||||
<file>icons/logo_128.png</file>
|
||||
<file>icons/logo_1_connected_128.png</file>
|
||||
<file>icons/logo_2_connected_128.png</file>
|
||||
<file>icons/mail_128.png</file>
|
||||
<file>icons/mail_old_128.png</file>
|
||||
<file>icons/mail_red_128.png</file>
|
||||
<file>icons/newsfeed128.png</file>
|
||||
<file>icons/outlook.png</file>
|
||||
<file>icons/plugins_128.png</file>
|
||||
<file>icons/png/add.png</file>
|
||||
<file>icons/png/attach-image.png</file>
|
||||
<file>icons/png/attach.png</file>
|
||||
<file>icons/png/channels-notify.png</file>
|
||||
<file>icons/png/channels.png</file>
|
||||
<file>icons/png/chat-bubble-notify.png</file>
|
||||
<file>icons/png/chat-bubble.png</file>
|
||||
<file>icons/png/chat-lobbies-notify.png</file>
|
||||
<file>icons/png/chat-lobbies.png</file>
|
||||
<file>icons/png/circles.png</file>
|
||||
<file>icons/png/empty-circle.png</file>
|
||||
<file>icons/png/exit.png</file>
|
||||
<file>icons/png/feedreader-notify.png</file>
|
||||
<file>icons/png/feedreader.png</file>
|
||||
<file>icons/png/filesharing-notify.png</file>
|
||||
<file>icons/png/filesharing.png</file>
|
||||
<file>icons/png/font.png</file>
|
||||
<file>icons/png/forums-notify.png</file>
|
||||
<file>icons/png/forums.png</file>
|
||||
<file>icons/png/fullscreen_arrows.png</file>
|
||||
<file>icons/png/highlight.png</file>
|
||||
<file>icons/png/info.png</file>
|
||||
<file>icons/png/invite.png</file>
|
||||
<file>icons/png/keyring.png</file>
|
||||
<file>icons/png/leave.png</file>
|
||||
<file>icons/png/messages-notify.png</file>
|
||||
<file>icons/png/messages.png</file>
|
||||
<file>icons/png/microphone_mute.png</file>
|
||||
<file>icons/png/microphone.png</file>
|
||||
<file>icons/png/netgraph.png</file>
|
||||
<file>icons/png/network-notify.png</file>
|
||||
<file>icons/png/network.png</file>
|
||||
<file>icons/png/network-puplic.png</file>
|
||||
<file>icons/png/newsfeed-notify.png</file>
|
||||
<file>icons/png/newsfeed.png</file>
|
||||
<file>icons/png/options.png</file>
|
||||
<file>icons/png/people-notify.png</file>
|
||||
<file>icons/png/people.png</file>
|
||||
<file>icons/png/person.png</file>
|
||||
<file>icons/png/phone_hangup.png</file>
|
||||
<file>icons/png/phone.png</file>
|
||||
<file>icons/png/posted-notify.png</file>
|
||||
<file>icons/png/posted.png</file>
|
||||
<file>icons/png/search.png</file>
|
||||
<file>icons/png/send-message-blocked.png</file>
|
||||
<file>icons/png/send-message.png</file>
|
||||
<file>icons/png/settings.png</file>
|
||||
<file>icons/png/smiley.png</file>
|
||||
<file>icons/png/speaker_mute.png</file>
|
||||
<file>icons/png/speaker.png</file>
|
||||
<file>icons/png/thumbs-down.png</file>
|
||||
<file>icons/png/thumbs-neutral.png</file>
|
||||
<file>icons/png/thumbs-up.png</file>
|
||||
<file>icons/png/video.png</file>
|
||||
<file>icons/posted_128.png</file>
|
||||
<file>icons/posted_red_128.png</file>
|
||||
<file>icons/quit_128.png</file>
|
||||
<file>icons/search_red_128.png</file>
|
||||
<file>icons/security_high_128.png</file>
|
||||
<file>icons/security_low_128.png</file>
|
||||
<file>icons/security_medium_128.png</file>
|
||||
<file>icons/settings/appearance.svg</file>
|
||||
<file>icons/settings/channels.svg</file>
|
||||
<file>icons/settings/chat.svg</file>
|
||||
<file>icons/settings/directories.svg</file>
|
||||
<file>icons/settings/filesharing.svg</file>
|
||||
<file>icons/settings/forums.svg</file>
|
||||
<file>icons/settings/general.svg</file>
|
||||
<file>icons/settings/messages.svg</file>
|
||||
<file>icons/settings/network.svg</file>
|
||||
<file>icons/settings/notify.svg</file>
|
||||
<file>icons/settings/people.svg</file>
|
||||
<file>icons/settings/permissions.svg</file>
|
||||
<file>icons/settings/plugins.svg</file>
|
||||
<file>icons/settings/posted.svg</file>
|
||||
<file>icons/settings/profile.svg</file>
|
||||
<file>icons/settings/server.svg</file>
|
||||
<file>icons/settings/sound.svg</file>
|
||||
<file>icons/settings/webinterface.svg</file>
|
||||
<file>icons/star_overlay_128.png</file>
|
||||
<file>icons/svg/add.svg</file>
|
||||
<file>icons/svg/attach-image.svg</file>
|
||||
<file>icons/svg/attach.svg</file>
|
||||
<file>icons/svg/channels-notify.svg</file>
|
||||
<file>icons/svg/channels.svg</file>
|
||||
<file>icons/svg/chat-bubble-notify.svg</file>
|
||||
<file>icons/svg/chat-bubble.svg</file>
|
||||
<file>icons/svg/chat-lobbies-notify.svg</file>
|
||||
<file>icons/svg/chat-lobbies.svg</file>
|
||||
<file>icons/svg/circles.svg</file>
|
||||
<file>icons/svg/download.svg</file>
|
||||
<file>icons/svg/empty-circle.svg</file>
|
||||
<file>icons/svg/exit-red.svg</file>
|
||||
<file>icons/svg/exit.svg</file>
|
||||
<file>icons/svg/feedreader-notify.svg</file>
|
||||
<file>icons/svg/feedreader.svg</file>
|
||||
<file>icons/svg/filesharing-notify.svg</file>
|
||||
<file>icons/svg/filesharing.svg</file>
|
||||
<file>icons/svg/folders1.svg</file>
|
||||
<file>icons/svg/folders.svg</file>
|
||||
<file>icons/svg/font.svg</file>
|
||||
<file>icons/svg/forums-notify.svg</file>
|
||||
<file>icons/svg/forums.svg</file>
|
||||
<file>icons/svg/fullscreen_arrows.svg</file>
|
||||
<file>icons/svg/highlight.svg</file>
|
||||
<file>icons/svg/info.svg</file>
|
||||
<file>icons/svg/invite.svg</file>
|
||||
<file>icons/svg/keyring.svg</file>
|
||||
<file>icons/svg/leave.svg</file>
|
||||
<file>icons/svg/magnifying-glass.svg</file>
|
||||
<file>icons/svg/messages-notify.svg</file>
|
||||
<file>icons/svg/messages.svg</file>
|
||||
<file>icons/svg/microphone_mute.svg</file>
|
||||
<file>icons/svg/microphone.svg</file>
|
||||
<file>icons/svg/netgraph.svg</file>
|
||||
<file>icons/svg/network-notify.svg</file>
|
||||
<file>icons/svg/network-puplic.svg</file>
|
||||
<file>icons/svg/network.svg</file>
|
||||
<file>icons/svg/newsfeed-notify.svg</file>
|
||||
<file>icons/svg/newsfeed.svg</file>
|
||||
<file>icons/svg/options.svg</file>
|
||||
<file>icons/svg/paste.svg</file>
|
||||
<file>icons/svg/people-notify.svg</file>
|
||||
<file>icons/svg/people.svg</file>
|
||||
<file>icons/svg/person.svg</file>
|
||||
<file>icons/svg/phone_hangup.svg</file>
|
||||
<file>icons/svg/phone.svg</file>
|
||||
<file>icons/svg/posted-notify.svg</file>
|
||||
<file>icons/svg/posted.svg</file>
|
||||
<file>icons/svg/profile.svg</file>
|
||||
<file>icons/svg/retroshare-info.svg</file>
|
||||
<file>icons/svg/retroshare-splash.svg</file>
|
||||
<file>icons/svg/retroshare-symbol_black_bg.svg</file>
|
||||
<file>icons/svg/retroshare-symbol_gradients.svg</file>
|
||||
<file>icons/svg/retroshare-symbol-minimal.svg</file>
|
||||
<file>icons/svg/search.svg</file>
|
||||
<file>icons/svg/send-message-blocked.svg</file>
|
||||
<file>icons/svg/send-message.svg</file>
|
||||
<file>icons/svg/settings.svg</file>
|
||||
<file>icons/svg/share.svg</file>
|
||||
<file>icons/svg/smiley.svg</file>
|
||||
<file>icons/svg/speaker_mute.svg</file>
|
||||
<file>icons/svg/speaker.svg</file>
|
||||
<file>icons/svg/thumbs-down.svg</file>
|
||||
<file>icons/svg/thumbs-neutral.svg</file>
|
||||
<file>icons/svg/thumbs-up.svg</file>
|
||||
<file>icons/svg/upload.svg</file>
|
||||
<file>icons/svg/video.svg</file>
|
||||
<file>icons/switch00_128.png</file>
|
||||
<file>icons/switch01_128.png</file>
|
||||
<file>icons/switch10_128.png</file>
|
||||
<file>icons/switch11_128.png</file>
|
||||
<file>icons/system_128.png</file>
|
||||
<file>icons/tile_checking_48.png</file>
|
||||
<file>icons/tile_downloaded_48.png</file>
|
||||
<file>icons/tile_downloading_48.png</file>
|
||||
<file>icons/tile_inactive_48.png</file>
|
||||
<file>icons/tor-logo.png</file>
|
||||
<file>icons/tor-off.png</file>
|
||||
<file>icons/tor-on.png</file>
|
||||
<file>icons/tor-starting.png</file>
|
||||
<file>icons/tor-stopping.png</file>
|
||||
<file>icons/user-away_64.png</file>
|
||||
<file>icons/user-away-extended_64.png</file>
|
||||
<file>icons/user-busy_64.png</file>
|
||||
<file>icons/user-offline_64.png</file>
|
||||
<file>icons/user-online_64.png</file>
|
||||
<file>icons/void_128.png</file>
|
||||
<file>icons/warning_red_128.png</file>
|
||||
<file>icons/warning_yellow_128.png</file>
|
||||
<file>icons/yahoo.png</file>
|
||||
<file>icons/yandex.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
BIN
retroshare-gui/src/gui/icons/stars/star0.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
131
retroshare-gui/src/gui/icons/stars/star0.svg
Normal file
@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star0.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star0.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.75097656"
|
||||
inkscape:cx="256"
|
||||
inkscape:cy="206.03082"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4241" /></sodipodi:namedview>
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<polygon
|
||||
style="fill:#FFFFFF;"
|
||||
points="437.418,250.242 435.364,246.08 430.827,236.887 426.29,246.08 424.235,250.242 419.642,250.91 409.497,252.384 416.839,259.54 420.162,262.78 419.378,267.353 417.644,277.457 426.719,272.686 430.827,270.527 434.934,272.686 444.009,277.457 442.275,267.353 441.491,262.78 444.814,259.54 452.156,252.384 442.01,250.91 "
|
||||
id="polygon75" />
|
||||
<path
|
||||
style="fill:#ffc864"
|
||||
d="m 463.0214,244.5718 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 375.40492,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-0" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 289.20245,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-08" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 202.12003,244.85148 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-2" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 114.47832,245.36368 -21.073005,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517005,0.271 1.053005,0.395 1.572005,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539005,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145005,1.474 -7.341005,7.156 z"
|
||||
id="path77-2-3" /></svg>
|
After Width: | Height: | Size: 10 KiB |
BIN
retroshare-gui/src/gui/icons/stars/star1.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
157
retroshare-gui/src/gui/icons/stars/star1.svg
Normal file
@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star1.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star1.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="true"
|
||||
inkscape:zoom="2.6074563"
|
||||
inkscape:cx="369.19545"
|
||||
inkscape:cy="235.07602"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4241" /></sodipodi:namedview>
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
<g
|
||||
id="g5">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.92,247.534c0.093-0.287,0.224-0.561,0.388-0.814C45.143,246.974,45.013,247.247,44.92,247.534z"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M80.279,221.312c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l4.323-8.76 C78.61,222.136,79.403,221.548,80.279,221.312z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M47.647,245.236L63,243.005L47.647,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C46.078,245.78,46.782,245.362,47.647,245.236z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.756,248.422c0.008-0.151,0.025-0.301,0.053-0.449C44.781,248.12,44.764,248.27,44.756,248.422z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M45.775,250.997c-0.337-0.328-0.577-0.697-0.746-1.086 C45.197,250.298,45.439,250.669,45.775,250.997l15.249,14.863l-3.192,18.609l3.191-18.609L45.775,250.997z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M57.374,287.358c0.001-0.061,0.013-0.125,0.019-0.188C57.387,287.233,57.375,287.296,57.374,287.358 z"
|
||||
id="path17" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M114.7,245.236l-21.074-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C118.577,249.043,117.471,245.638,114.7,245.236z"
|
||||
id="path19" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M62.325,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l-5.101,10.335L63,243.006l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.191,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.025,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.192,18.607l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.006,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.004,0.33,0.023,0.49C57.668,290.08,60.157,291.55,62.325,290.41z"
|
||||
id="path21" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<path
|
||||
style="fill:#ffc864"
|
||||
d="m 464.353,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 376.353,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-0" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 289.20245,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-08" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 202.12003,244.85148 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-2" /></svg>
|
After Width: | Height: | Size: 11 KiB |
BIN
retroshare-gui/src/gui/icons/stars/star2.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
184
retroshare-gui/src/gui/icons/stars/star2.svg
Normal file
@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star2.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star2.png"
|
||||
inkscape:export-xdpi="45.241821"
|
||||
inkscape:export-ydpi="45.241821"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.3037282"
|
||||
inkscape:cx="260.3235"
|
||||
inkscape:cy="235.45954"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4241" /></sodipodi:namedview>
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
<g
|
||||
id="g5">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.92,247.534c0.093-0.287,0.224-0.561,0.388-0.814C45.143,246.974,45.013,247.247,44.92,247.534z"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M80.279,221.312c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l4.323-8.76 C78.61,222.136,79.403,221.548,80.279,221.312z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M47.647,245.236L63,243.005L47.647,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C46.078,245.78,46.782,245.362,47.647,245.236z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.756,248.422c0.008-0.151,0.025-0.301,0.053-0.449C44.781,248.12,44.764,248.27,44.756,248.422z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M45.775,250.997c-0.337-0.328-0.577-0.697-0.746-1.086 C45.197,250.298,45.439,250.669,45.775,250.997l15.249,14.863l-3.192,18.609l3.191-18.609L45.775,250.997z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M57.374,287.358c0.001-0.061,0.013-0.125,0.019-0.188C57.387,287.233,57.375,287.296,57.374,287.358 z"
|
||||
id="path17" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M114.7,245.236l-21.074-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C118.577,249.043,117.471,245.638,114.7,245.236z"
|
||||
id="path19" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M62.325,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l-5.101,10.335L63,243.006l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.191,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.025,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.192,18.607l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.006,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.004,0.33,0.023,0.49C57.668,290.08,60.157,291.55,62.325,290.41z"
|
||||
id="path21" />
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M132.169,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C132.195,248.12,132.177,248.27,132.169,248.422z"
|
||||
id="path25" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M167.692,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l3.389-6.866 C166.023,222.136,166.816,221.548,167.692,221.312z"
|
||||
id="path27" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M150.252,243.028l-15.192,2.207c-0.693,0.1-1.281,0.39-1.743,0.796 c0.462-0.406,1.05-0.694,1.743-0.794L150.252,243.028z"
|
||||
id="path29" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M144.787,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C144.801,287.233,144.789,287.296,144.787,287.358z"
|
||||
id="path31" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M133.188,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C132.61,250.298,132.852,250.669,133.188,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L133.188,250.997z"
|
||||
id="path33" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M202.113,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C205.99,249.043,204.884,245.638,202.113,245.236z"
|
||||
id="path35" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M149.738,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l-6.036,12.23l-5.881,0.855l-15.192,2.208c-0.693,0.1-1.281,0.388-1.743,0.794 c-0.231,0.203-0.43,0.436-0.595,0.69c-0.247,0.38-0.417,0.808-0.5,1.252c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C145.081,290.08,147.57,291.55,149.738,290.41z"
|
||||
id="path37" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 376.353,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-0" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 289.58597,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-08"
|
||||
inkscape:export-xdpi="45.241821"
|
||||
inkscape:export-ydpi="45.241821" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 463.83199,245.04613 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-0-1" /></svg>
|
After Width: | Height: | Size: 12 KiB |
BIN
retroshare-gui/src/gui/icons/stars/star3.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
210
retroshare-gui/src/gui/icons/stars/star3.svg
Normal file
@ -0,0 +1,210 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star3.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star3.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="true"
|
||||
inkscape:zoom="1.3037281"
|
||||
inkscape:cx="305.62141"
|
||||
inkscape:cy="188.36736"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4241" /></sodipodi:namedview>
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
<g
|
||||
id="g5">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.92,247.534c0.093-0.287,0.224-0.561,0.388-0.814C45.143,246.974,45.013,247.247,44.92,247.534z"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M80.279,221.312c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l4.323-8.76 C78.61,222.136,79.403,221.548,80.279,221.312z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M47.647,245.236L63,243.005L47.647,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C46.078,245.78,46.782,245.362,47.647,245.236z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.756,248.422c0.008-0.151,0.025-0.301,0.053-0.449C44.781,248.12,44.764,248.27,44.756,248.422z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M45.775,250.997c-0.337-0.328-0.577-0.697-0.746-1.086 C45.197,250.298,45.439,250.669,45.775,250.997l15.249,14.863l-3.192,18.609l3.191-18.609L45.775,250.997z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M57.374,287.358c0.001-0.061,0.013-0.125,0.019-0.188C57.387,287.233,57.375,287.296,57.374,287.358 z"
|
||||
id="path17" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M114.7,245.236l-21.074-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C118.577,249.043,117.471,245.638,114.7,245.236z"
|
||||
id="path19" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M62.325,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l-5.101,10.335L63,243.006l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.191,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.025,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.192,18.607l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.006,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.004,0.33,0.023,0.49C57.668,290.08,60.157,291.55,62.325,290.41z"
|
||||
id="path21" />
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M132.169,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C132.195,248.12,132.177,248.27,132.169,248.422z"
|
||||
id="path25" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M167.692,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l3.389-6.866 C166.023,222.136,166.816,221.548,167.692,221.312z"
|
||||
id="path27" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M150.252,243.028l-15.192,2.207c-0.693,0.1-1.281,0.39-1.743,0.796 c0.462-0.406,1.05-0.694,1.743-0.794L150.252,243.028z"
|
||||
id="path29" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M144.787,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C144.801,287.233,144.789,287.296,144.787,287.358z"
|
||||
id="path31" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M133.188,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C132.61,250.298,132.852,250.669,133.188,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L133.188,250.997z"
|
||||
id="path33" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M202.113,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C205.99,249.043,204.884,245.638,202.113,245.236z"
|
||||
id="path35" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M149.738,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l-6.036,12.23l-5.881,0.855l-15.192,2.208c-0.693,0.1-1.281,0.388-1.743,0.794 c-0.231,0.203-0.43,0.436-0.595,0.69c-0.247,0.38-0.417,0.808-0.5,1.252c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C145.081,290.08,147.57,291.55,149.738,290.41z"
|
||||
id="path37" />
|
||||
<g
|
||||
id="g39">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M289.526,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C293.404,249.043,292.297,245.638,289.526,245.236z"
|
||||
id="path41" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.914,247.115c0.129-0.273,0.296-0.527,0.494-0.758 C220.21,246.586,220.044,246.842,219.914,247.115z"
|
||||
id="path43" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M254.857,221.417c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l3.389-6.866 C253.39,222.23,254.084,221.692,254.857,221.417z"
|
||||
id="path45" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M222.474,245.236l15.353-2.231L222.474,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C220.905,245.78,221.608,245.362,222.474,245.236z"
|
||||
id="path47" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M220.601,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C220.024,250.298,220.265,250.669,220.601,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L220.601,250.997z"
|
||||
id="path49" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.583,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C219.608,248.12,219.591,248.27,219.583,248.422z"
|
||||
id="path51" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M232.201,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C232.214,287.233,232.202,287.296,232.201,287.358z"
|
||||
id="path53" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M237.152,290.41L256,280.501v-59.305c-0.391,0-0.772,0.09-1.143,0.222 c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l-6.036,12.23l-5.719,0.831l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.199,0.231-0.364,0.487-0.494,0.758s-0.224,0.561-0.278,0.857c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C232.494,290.08,234.984,291.55,237.152,290.41z"
|
||||
id="path55" />
|
||||
|
||||
|
||||
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M464.353,245.235l-21.073-3.061l-9.425-19.096c-0.619-1.256-1.824-1.884-3.029-1.884 c-1.205,0-2.41,0.628-3.029,1.884l-9.425,19.096l-21.074,3.061c-2.771,0.403-3.876,3.808-1.873,5.762l15.249,14.865l-3.599,20.989 c-0.374,2.184,1.361,3.956,3.329,3.956c0.52,0,1.055-0.124,1.572-0.395l18.848-9.909l18.849,9.909 c0.517,0.271,1.053,0.395,1.572,0.395c1.969,0,3.703-1.773,3.329-3.956l-3.599-20.989l15.249-14.865 C468.23,249.043,467.124,245.638,464.353,245.235z M444.814,259.54l-3.324,3.24l0.785,4.575l1.734,10.103l-9.075-4.77l-4.108-2.159 l-4.108,2.159l-9.074,4.77l1.734-10.103l0.785-4.575l-3.324-3.24l-7.341-7.156l10.145-1.474l4.593-0.666l2.053-4.162l4.537-9.193 l4.537,9.193l2.054,4.162l4.593,0.666l10.145,1.474L444.814,259.54z"
|
||||
id="path77" />
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 376.353,245.235 -21.073,-3.061 -9.425,-19.096 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 -1.205,0 -2.41,0.628 -3.029,1.884 l -9.425,19.096 -21.074,3.061 c -2.771,0.403 -3.876,3.808 -1.873,5.762 l 15.249,14.865 -3.599,20.989 c -0.374,2.184 1.361,3.956 3.329,3.956 0.52,0 1.055,-0.124 1.572,-0.395 l 18.848,-9.909 18.849,9.909 c 0.517,0.271 1.053,0.395 1.572,0.395 1.969,0 3.703,-1.773 3.329,-3.956 l -3.599,-20.989 15.249,-14.865 c 2.006,-1.954 0.9,-5.359 -1.871,-5.762 z m -19.539,14.305 -3.324,3.24 0.785,4.575 1.734,10.103 -9.075,-4.77 -4.108,-2.159 -4.108,2.159 -9.074,4.77 1.734,-10.103 0.785,-4.575 -3.324,-3.24 -7.341,-7.156 10.145,-1.474 4.593,-0.666 2.053,-4.162 4.537,-9.193 4.537,9.193 2.054,4.162 4.593,0.666 10.145,1.474 -7.341,7.156 z"
|
||||
id="path77-0" /></svg>
|
After Width: | Height: | Size: 13 KiB |
BIN
retroshare-gui/src/gui/icons/stars/star4.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
237
retroshare-gui/src/gui/icons/stars/star4.svg
Normal file
@ -0,0 +1,237 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star4.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star4.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.921875"
|
||||
inkscape:cx="256"
|
||||
inkscape:cy="253.83051"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
<g
|
||||
id="g5">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.92,247.534c0.093-0.287,0.224-0.561,0.388-0.814C45.143,246.974,45.013,247.247,44.92,247.534z"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M80.279,221.312c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l4.323-8.76 C78.61,222.136,79.403,221.548,80.279,221.312z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M47.647,245.236L63,243.005L47.647,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C46.078,245.78,46.782,245.362,47.647,245.236z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.756,248.422c0.008-0.151,0.025-0.301,0.053-0.449C44.781,248.12,44.764,248.27,44.756,248.422z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M45.775,250.997c-0.337-0.328-0.577-0.697-0.746-1.086 C45.197,250.298,45.439,250.669,45.775,250.997l15.249,14.863l-3.192,18.609l3.191-18.609L45.775,250.997z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M57.374,287.358c0.001-0.061,0.013-0.125,0.019-0.188C57.387,287.233,57.375,287.296,57.374,287.358 z"
|
||||
id="path17" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M114.7,245.236l-21.074-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C118.577,249.043,117.471,245.638,114.7,245.236z"
|
||||
id="path19" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M62.325,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l-5.101,10.335L63,243.006l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.191,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.025,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.192,18.607l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.006,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.004,0.33,0.023,0.49C57.668,290.08,60.157,291.55,62.325,290.41z"
|
||||
id="path21" />
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M132.169,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C132.195,248.12,132.177,248.27,132.169,248.422z"
|
||||
id="path25" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M167.692,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l3.389-6.866 C166.023,222.136,166.816,221.548,167.692,221.312z"
|
||||
id="path27" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M150.252,243.028l-15.192,2.207c-0.693,0.1-1.281,0.39-1.743,0.796 c0.462-0.406,1.05-0.694,1.743-0.794L150.252,243.028z"
|
||||
id="path29" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M144.787,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C144.801,287.233,144.789,287.296,144.787,287.358z"
|
||||
id="path31" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M133.188,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C132.61,250.298,132.852,250.669,133.188,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L133.188,250.997z"
|
||||
id="path33" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M202.113,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C205.99,249.043,204.884,245.638,202.113,245.236z"
|
||||
id="path35" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M149.738,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l-6.036,12.23l-5.881,0.855l-15.192,2.208c-0.693,0.1-1.281,0.388-1.743,0.794 c-0.231,0.203-0.43,0.436-0.595,0.69c-0.247,0.38-0.417,0.808-0.5,1.252c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C145.081,290.08,147.57,291.55,149.738,290.41z"
|
||||
id="path37" />
|
||||
<g
|
||||
id="g39">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M289.526,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C293.404,249.043,292.297,245.638,289.526,245.236z"
|
||||
id="path41" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.914,247.115c0.129-0.273,0.296-0.527,0.494-0.758 C220.21,246.586,220.044,246.842,219.914,247.115z"
|
||||
id="path43" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M254.857,221.417c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l3.389-6.866 C253.39,222.23,254.084,221.692,254.857,221.417z"
|
||||
id="path45" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M222.474,245.236l15.353-2.231L222.474,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C220.905,245.78,221.608,245.362,222.474,245.236z"
|
||||
id="path47" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M220.601,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C220.024,250.298,220.265,250.669,220.601,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L220.601,250.997z"
|
||||
id="path49" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.583,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C219.608,248.12,219.591,248.27,219.583,248.422z"
|
||||
id="path51" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M232.201,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C232.214,287.233,232.202,287.296,232.201,287.358z"
|
||||
id="path53" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M237.152,290.41L256,280.501v-59.305c-0.391,0-0.772,0.09-1.143,0.222 c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l-6.036,12.23l-5.719,0.831l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.199,0.231-0.364,0.487-0.494,0.758s-0.224,0.561-0.278,0.857c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C232.494,290.08,234.984,291.55,237.152,290.41z"
|
||||
id="path55" />
|
||||
<g
|
||||
id="g57">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M319.614,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C319.627,287.233,319.615,287.296,319.614,287.358z"
|
||||
id="path59" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M308.015,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C307.437,250.298,307.679,250.669,308.015,250.997l15.249,14.863l-3.191,18.607l3.191-18.609L308.015,250.997z"
|
||||
id="path61" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M309.887,245.236l15.353-2.231L309.887,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C308.318,245.78,309.021,245.362,309.887,245.236z"
|
||||
id="path63" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M307.16,247.534c0.093-0.287,0.224-0.561,0.388-0.814 C307.383,246.974,307.253,247.247,307.16,247.534z"
|
||||
id="path65" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M306.996,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C307.021,248.12,307.004,248.27,306.996,248.422z"
|
||||
id="path67" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M342.519,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-4.323,8.76l4.323-8.76 C340.85,222.136,341.643,221.548,342.519,221.312z"
|
||||
id="path69" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M376.94,245.236l-21.073-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.374-0.801,4.901-3.561l-3.599-20.988l15.249-14.863C380.817,249.043,379.71,245.638,376.94,245.236z"
|
||||
id="path71" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M324.565,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.669,0.824-2.135,1.766l-4.323,8.76l-5.101,10.335l-5.719,0.831l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.19,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.191,18.609l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.003,0.33,0.023,0.49C319.908,290.08,322.397,291.55,324.565,290.41z"
|
||||
id="path73" />
|
||||
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M464.353,245.235l-21.073-3.061l-9.425-19.096c-0.619-1.256-1.824-1.884-3.029-1.884 c-1.205,0-2.41,0.628-3.029,1.884l-9.425,19.096l-21.074,3.061c-2.771,0.403-3.876,3.808-1.873,5.762l15.249,14.865l-3.599,20.989 c-0.374,2.184,1.361,3.956,3.329,3.956c0.52,0,1.055-0.124,1.572-0.395l18.848-9.909l18.849,9.909 c0.517,0.271,1.053,0.395,1.572,0.395c1.969,0,3.703-1.773,3.329-3.956l-3.599-20.989l15.249-14.865 C468.23,249.043,467.124,245.638,464.353,245.235z M444.814,259.54l-3.324,3.24l0.785,4.575l1.734,10.103l-9.075-4.77l-4.108-2.159 l-4.108,2.159l-9.074,4.77l1.734-10.103l0.785-4.575l-3.324-3.24l-7.341-7.156l10.145-1.474l4.593-0.666l2.053-4.162l4.537-9.193 l4.537,9.193l2.054,4.162l4.593,0.666l10.145,1.474L444.814,259.54z"
|
||||
id="path77" />
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
BIN
retroshare-gui/src/gui/icons/stars/star5.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
271
retroshare-gui/src/gui/icons/stars/star5.svg
Normal file
@ -0,0 +1,271 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="star5.svg"
|
||||
inkscape:export-filename="C:\Qt\RetroShare\RetroShare\retroshare-gui\src\gui\icons\star5.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45"><metadata
|
||||
id="metadata113"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs111" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview109"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.3037282"
|
||||
inkscape:cx="286.598"
|
||||
inkscape:cy="233.63082"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<path
|
||||
style="fill:#E4EAF6;"
|
||||
d="M494.345,185.379H17.655C7.904,185.379,0,193.284,0,203.034v105.931 c0,9.75,7.904,17.655,17.655,17.655h476.69c9.751,0,17.655-7.905,17.655-17.655V203.034 C512,193.284,504.096,185.379,494.345,185.379z M116.572,250.997l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L81.173,280.5l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.019-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814c0.083-0.127,0.173-0.248,0.273-0.364 c0.497-0.576,1.199-0.995,2.066-1.121L63,243.005l5.719-0.831l5.101-10.335l4.323-8.76c0.465-0.941,1.258-1.529,2.134-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C117.471,245.638,118.577,249.043,116.572,250.997z M203.986,250.997l-15.249,14.863l3.599,20.988 c0.473,2.76-2.423,4.864-4.902,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.083-0.445,0.253-0.872,0.5-1.252c0.164-0.254,0.364-0.487,0.595-0.69 c0.462-0.406,1.05-0.694,1.743-0.796l15.192-2.207l5.881-0.855l6.036-12.23l3.389-6.866c0.465-0.941,1.259-1.529,2.135-1.766 c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062 C204.884,245.638,205.99,249.043,203.986,250.997z M291.399,250.997L276.15,265.86l3.599,20.988c0.473,2.76-2.423,4.864-4.902,3.561 L256,280.501l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c-0.02-0.16-0.028-0.323-0.023-0.49 c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38l3.191-18.607l-15.249-14.863 c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.299-0.989-0.274-1.49c0.008-0.151,0.025-0.301,0.053-0.449 c0.055-0.297,0.149-0.585,0.278-0.857c0.13-0.273,0.296-0.527,0.494-0.758c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231 l5.719-0.831l6.036-12.23l3.389-6.866c0.419-0.849,1.113-1.386,1.886-1.661c0.371-0.131,0.753-0.222,1.143-0.222 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095l21.074,3.062C292.297,245.638,293.404,249.043,291.399,250.997z M378.812,250.997 l-15.249,14.863l3.599,20.988c0.473,2.76-2.423,4.864-4.901,3.561l-18.848-9.909l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562 c-0.02-0.16-0.028-0.323-0.023-0.49c0.001-0.062,0.013-0.125,0.019-0.188c0.009-0.107,0.013-0.213,0.032-0.321l0.408-2.38 l3.191-18.607l-15.249-14.863c-0.337-0.328-0.577-0.698-0.746-1.086c-0.207-0.48-0.3-0.989-0.274-1.49 c0.008-0.151,0.025-0.301,0.053-0.449c0.028-0.148,0.065-0.295,0.111-0.437c0.093-0.287,0.224-0.561,0.388-0.814 c0.083-0.127,0.173-0.248,0.273-0.364c0.497-0.576,1.199-0.995,2.066-1.121l15.353-2.231l5.719-0.831l5.101-10.335l4.323-8.76 c0.465-0.941,1.259-1.529,2.135-1.766c0.292-0.078,0.594-0.118,0.895-0.118c1.205,0,2.41,0.628,3.029,1.884l9.425,19.095 l21.073,3.062C379.71,245.638,380.817,249.043,378.812,250.997z M466.225,250.997l-15.249,14.865l3.599,20.989 c0.374,2.183-1.361,3.956-3.329,3.956c-0.52,0-1.055-0.124-1.572-0.395l-18.849-9.909l-18.848,9.909 c-0.518,0.271-1.053,0.395-1.572,0.395c-1.969,0-3.703-1.772-3.329-3.956l3.599-20.989l-15.249-14.865 c-2.005-1.954-0.898-5.358,1.873-5.762l21.074-3.061l9.425-19.096c0.619-1.256,1.824-1.884,3.029-1.884 c1.205,0,2.41,0.628,3.029,1.884l9.425,19.096l21.073,3.061C467.124,245.638,468.23,249.043,466.225,250.997z"
|
||||
id="path3" />
|
||||
<g
|
||||
id="g5">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.92,247.534c0.093-0.287,0.224-0.561,0.388-0.814C45.143,246.974,45.013,247.247,44.92,247.534z"
|
||||
id="path7" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M80.279,221.312c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l4.323-8.76 C78.61,222.136,79.403,221.548,80.279,221.312z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M47.647,245.236L63,243.005L47.647,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C46.078,245.78,46.782,245.362,47.647,245.236z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M44.756,248.422c0.008-0.151,0.025-0.301,0.053-0.449C44.781,248.12,44.764,248.27,44.756,248.422z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M45.775,250.997c-0.337-0.328-0.577-0.697-0.746-1.086 C45.197,250.298,45.439,250.669,45.775,250.997l15.249,14.863l-3.192,18.609l3.191-18.609L45.775,250.997z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M57.374,287.358c0.001-0.061,0.013-0.125,0.019-0.188C57.387,287.233,57.375,287.296,57.374,287.358 z"
|
||||
id="path17" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M114.7,245.236l-21.074-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C118.577,249.043,117.471,245.638,114.7,245.236z"
|
||||
id="path19" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M62.325,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.134,1.766l-4.323,8.76l-5.101,10.335L63,243.006l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.191,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.025,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.192,18.607l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.006,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.004,0.33,0.023,0.49C57.668,290.08,60.157,291.55,62.325,290.41z"
|
||||
id="path21" />
|
||||
<g
|
||||
id="g23">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M132.169,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C132.195,248.12,132.177,248.27,132.169,248.422z"
|
||||
id="path25" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M167.692,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l3.389-6.866 C166.023,222.136,166.816,221.548,167.692,221.312z"
|
||||
id="path27" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M150.252,243.028l-15.192,2.207c-0.693,0.1-1.281,0.39-1.743,0.796 c0.462-0.406,1.05-0.694,1.743-0.794L150.252,243.028z"
|
||||
id="path29" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M144.787,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C144.801,287.233,144.789,287.296,144.787,287.358z"
|
||||
id="path31" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M133.188,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C132.61,250.298,132.852,250.669,133.188,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L133.188,250.997z"
|
||||
id="path33" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M202.113,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C205.99,249.043,204.884,245.638,202.113,245.236z"
|
||||
id="path35" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M149.738,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.67,0.824-2.135,1.766l-3.389,6.866l-6.036,12.23l-5.881,0.855l-15.192,2.208c-0.693,0.1-1.281,0.388-1.743,0.794 c-0.231,0.203-0.43,0.436-0.595,0.69c-0.247,0.38-0.417,0.808-0.5,1.252c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C145.081,290.08,147.57,291.55,149.738,290.41z"
|
||||
id="path37" />
|
||||
<g
|
||||
id="g39">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M289.526,245.236l-21.074-3.062l-9.425-19.095c-0.62-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.375-0.801,4.902-3.561l-3.599-20.988l15.249-14.863C293.404,249.043,292.297,245.638,289.526,245.236z"
|
||||
id="path41" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.914,247.115c0.129-0.273,0.296-0.527,0.494-0.758 C220.21,246.586,220.044,246.842,219.914,247.115z"
|
||||
id="path43" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M254.857,221.417c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l3.389-6.866 C253.39,222.23,254.084,221.692,254.857,221.417z"
|
||||
id="path45" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M222.474,245.236l15.353-2.231L222.474,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C220.905,245.78,221.608,245.362,222.474,245.236z"
|
||||
id="path47" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M220.601,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C220.024,250.298,220.265,250.669,220.601,250.997l15.249,14.863l-3.191,18.607l3.192-18.609L220.601,250.997z"
|
||||
id="path49" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M219.583,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C219.608,248.12,219.591,248.27,219.583,248.422z"
|
||||
id="path51" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M232.201,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C232.214,287.233,232.202,287.296,232.201,287.358z"
|
||||
id="path53" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M237.152,290.41L256,280.501v-59.305c-0.391,0-0.772,0.09-1.143,0.222 c-0.772,0.275-1.468,0.812-1.886,1.661l-3.389,6.866l-6.036,12.23l-5.719,0.831l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.199,0.231-0.364,0.487-0.494,0.758s-0.224,0.561-0.278,0.857c-0.028,0.148-0.045,0.299-0.053,0.449 c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863l-3.192,18.609l-0.408,2.38 c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188c-0.004,0.167,0.004,0.33,0.023,0.49 C232.494,290.08,234.984,291.55,237.152,290.41z"
|
||||
id="path55" />
|
||||
<g
|
||||
id="g57">
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M319.614,287.358c0.001-0.061,0.013-0.125,0.019-0.188 C319.627,287.233,319.615,287.296,319.614,287.358z"
|
||||
id="path59" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M308.015,250.997c-0.337-0.328-0.578-0.697-0.746-1.086 C307.437,250.298,307.679,250.669,308.015,250.997l15.249,14.863l-3.191,18.607l3.191-18.609L308.015,250.997z"
|
||||
id="path61" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M309.887,245.236l15.353-2.231L309.887,245.236c-0.866,0.126-1.569,0.544-2.066,1.121 C308.318,245.78,309.021,245.362,309.887,245.236z"
|
||||
id="path63" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M307.16,247.534c0.093-0.287,0.224-0.561,0.388-0.814 C307.383,246.974,307.253,247.247,307.16,247.534z"
|
||||
id="path65" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M306.996,248.422c0.008-0.151,0.025-0.301,0.053-0.449 C307.021,248.12,307.004,248.27,306.996,248.422z"
|
||||
id="path67" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M342.519,221.312c-0.876,0.235-1.67,0.824-2.135,1.766l-4.323,8.76l4.323-8.76 C340.85,222.136,341.643,221.548,342.519,221.312z"
|
||||
id="path69" />
|
||||
<path
|
||||
style="fill:#FFDC69;"
|
||||
d="M376.94,245.236l-21.073-3.062l-9.425-19.095c-0.619-1.256-1.824-1.884-3.029-1.884V280.5 l-18.848,9.909c-2.168,1.14-4.657-0.329-4.928-2.562c0.271,2.233,2.76,3.702,4.928,2.562l18.848-9.909l18.848,9.909 c2.478,1.303,5.374-0.801,4.901-3.561l-3.599-20.988l15.249-14.863C380.817,249.043,379.71,245.638,376.94,245.236z"
|
||||
id="path71" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#FFC864;"
|
||||
d="M324.565,290.41l18.848-9.909v-59.305c-0.301,0-0.602,0.04-0.895,0.118 c-0.876,0.235-1.669,0.824-2.135,1.766l-4.323,8.76l-5.101,10.335l-5.719,0.831l-15.353,2.231c-0.866,0.126-1.569,0.544-2.066,1.121 c-0.099,0.115-0.19,0.237-0.273,0.364c-0.164,0.254-0.296,0.527-0.388,0.814c-0.046,0.143-0.084,0.289-0.111,0.437 c-0.028,0.148-0.045,0.299-0.053,0.449c-0.026,0.501,0.066,1.01,0.274,1.49c0.168,0.388,0.409,0.758,0.746,1.086l15.249,14.863 l-3.191,18.609l-0.408,2.38c-0.019,0.109-0.023,0.215-0.032,0.321c-0.004,0.062-0.017,0.126-0.019,0.188 c-0.004,0.167,0.003,0.33,0.023,0.49C319.908,290.08,322.397,291.55,324.565,290.41z"
|
||||
id="path73" />
|
||||
<polygon
|
||||
style="fill:#FFFFFF;"
|
||||
points="437.418,250.242 435.364,246.08 430.827,236.887 426.29,246.08 424.235,250.242 419.642,250.91 409.497,252.384 416.839,259.54 420.162,262.78 419.378,267.353 417.644,277.457 426.719,272.686 430.827,270.527 434.934,272.686 444.009,277.457 442.275,267.353 441.491,262.78 444.814,259.54 452.156,252.384 442.01,250.91 "
|
||||
id="polygon75" />
|
||||
|
||||
<g
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
id="g83">
|
||||
</g>
|
||||
<g
|
||||
id="g85">
|
||||
</g>
|
||||
<g
|
||||
id="g87">
|
||||
</g>
|
||||
<g
|
||||
id="g89">
|
||||
</g>
|
||||
<g
|
||||
id="g91">
|
||||
</g>
|
||||
<g
|
||||
id="g93">
|
||||
</g>
|
||||
<g
|
||||
id="g95">
|
||||
</g>
|
||||
<g
|
||||
id="g97">
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
</g>
|
||||
<g
|
||||
id="g101">
|
||||
</g>
|
||||
<g
|
||||
id="g103">
|
||||
</g>
|
||||
<g
|
||||
id="g105">
|
||||
</g>
|
||||
<g
|
||||
id="g107">
|
||||
</g>
|
||||
<g
|
||||
transform="translate(87.770585,0.38369948)"
|
||||
id="g57-5"><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 319.614,287.358 c 0.001,-0.061 0.013,-0.125 0.019,-0.188 -0.006,0.063 -0.018,0.126 -0.019,0.188 z"
|
||||
id="path59-4" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 308.015,250.997 c -0.337,-0.328 -0.578,-0.697 -0.746,-1.086 0.168,0.387 0.41,0.758 0.746,1.086 l 15.249,14.863 -3.191,18.607 3.191,-18.609 -15.249,-14.861 z"
|
||||
id="path61-4" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 309.887,245.236 15.353,-2.231 -15.353,2.231 c -0.866,0.126 -1.569,0.544 -2.066,1.121 0.497,-0.577 1.2,-0.995 2.066,-1.121 z"
|
||||
id="path63-3" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 307.16,247.534 c 0.093,-0.287 0.224,-0.561 0.388,-0.814 -0.165,0.254 -0.295,0.527 -0.388,0.814 z"
|
||||
id="path65-1" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 306.996,248.422 c 0.008,-0.151 0.025,-0.301 0.053,-0.449 -0.028,0.147 -0.045,0.297 -0.053,0.449 z"
|
||||
id="path67-3" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 342.519,221.312 c -0.876,0.235 -1.67,0.824 -2.135,1.766 l -4.323,8.76 4.323,-8.76 c 0.466,-0.942 1.259,-1.53 2.135,-1.766 z"
|
||||
id="path69-0" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffdc69"
|
||||
d="m 376.94,245.236 -21.073,-3.062 -9.425,-19.095 c -0.619,-1.256 -1.824,-1.884 -3.029,-1.884 l 0,59.305 -18.848,9.909 c -2.168,1.14 -4.657,-0.329 -4.928,-2.562 0.271,2.233 2.76,3.702 4.928,2.562 l 18.848,-9.909 18.848,9.909 c 2.478,1.303 5.374,-0.801 4.901,-3.561 l -3.599,-20.988 15.249,-14.863 c 2.005,-1.954 0.898,-5.359 -1.872,-5.761 z"
|
||||
id="path71-0" /></g><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffc864"
|
||||
d="m 412.10841,290.40931 18.848,-9.909 0,-59.305 c -0.301,0 -0.602,0.04 -0.895,0.118 -0.876,0.235 -1.669,0.824 -2.135,1.766 l -4.323,8.76 -5.101,10.335 -5.719,0.831 -15.353,2.231 c -0.866,0.126 -1.569,0.544 -2.066,1.121 -0.099,0.115 -0.19,0.237 -0.273,0.364 -0.164,0.254 -0.296,0.527 -0.388,0.814 -0.046,0.143 -0.084,0.289 -0.111,0.437 -0.028,0.148 -0.045,0.299 -0.053,0.449 -0.026,0.501 0.066,1.01 0.274,1.49 0.168,0.388 0.409,0.758 0.746,1.086 l 15.249,14.863 -3.191,18.609 -0.408,2.38 c -0.019,0.109 -0.023,0.215 -0.032,0.321 -0.004,0.062 -0.017,0.126 -0.019,0.188 -0.004,0.167 0.003,0.33 0.023,0.49 0.27,2.231 2.759,3.701 4.927,2.561 z"
|
||||
id="path73-6" /></svg>
|
After Width: | Height: | Size: 16 KiB |
54
retroshare-gui/src/gui/icons/svg/password.svg
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4155"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
xml:space="preserve"
|
||||
width="80"
|
||||
height="80"
|
||||
viewBox="0 0 80 80"
|
||||
sodipodi:docname="password.svg"><metadata
|
||||
id="metadata4161"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs4159" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
id="namedview4157"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4"
|
||||
inkscape:cx="58.388668"
|
||||
inkscape:cy="26.810287"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g4163" /><g
|
||||
id="g4163"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="ink_ext_XXXXXX"
|
||||
transform="matrix(1.25,0,0,-1.25,0,80)"><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4167"
|
||||
style="fill:#039bd5;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 64,32 C 64,14.327 49.673,0 32,0 14.327,0 0,14.327 0,32 0,49.673 14.327,64 32,64 49.673,64 64,49.673 64,32" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
d="m 46.424087,35.548069 0,5.917628 c 0,7.93778 -6.457816,14.395593 -14.395592,14.395593 -7.937779,0 -14.39559,-6.457813 -14.39559,-14.395593 l 0,-5.86178 c -0.895103,-0.341509 -1.78065,-1.111894 -1.78065,-2.638029 l 0,-8.059015 c 0,-8.919624 7.256741,-16.176363 16.176363,-16.176363 8.919623,0 16.176116,7.256739 16.176116,16.176363 l 0,8.059015 c 0,1.448075 -0.863829,2.215729 -1.780647,2.582181 z M 35.103086,18.231519 c 0.05063,-0.268294 -0.131297,-0.487813 -0.404301,-0.487813 l -5.27965,0 c -0.273009,0 -0.454934,0.219519 -0.404304,0.487813 l 0.845588,4.481592 c -0.645421,0.588579 -1.050468,1.436283 -1.050468,2.378533 0,1.777558 1.440997,3.218549 3.218544,3.218549 1.777546,0 3.218544,-1.440991 3.218544,-3.218549 0,-0.916689 -0.383827,-1.743168 -0.998847,-2.329385 l 0.854894,-4.53074 z m 6.357174,17.603832 -18.863532,0 0,5.630346 c 0,5.200605 4.231043,9.431762 9.431767,9.431762 5.2006,0 9.431765,-4.231157 9.431765,-9.431762 l 0,-5.630346 z"
|
||||
id="path3" /></g></svg>
|
After Width: | Height: | Size: 2.9 KiB |
@ -756,3 +756,20 @@ ConnectFriendWizard QFrame#friendFrame {
|
||||
border-radius: 6px;
|
||||
background: white;
|
||||
}
|
||||
|
||||
HomePage QFrame#helpframe{
|
||||
border: 2px solid #009933;
|
||||
border-radius: 6px;
|
||||
background: white;
|
||||
}
|
||||
|
||||
StartDialog QPushButton#loadButton {
|
||||
border-image: url(:/images/btn_blue.png) 4;
|
||||
border-width: 4;
|
||||
font: bold;
|
||||
color: white;
|
||||
}
|
||||
|
||||
StartDialog QPushButton#loadButton:hover {
|
||||
border-image: url(:/images/btn_blue_hover.png) 4;
|
||||
}
|
@ -138,9 +138,9 @@ PostedCreatePostDialog QLabel#info_label
|
||||
|
||||
ForumsDialog, GxsForumThreadWidget
|
||||
{
|
||||
qproperty-textColorRead: gray;
|
||||
qproperty-textColorRead: darkgray;
|
||||
qproperty-textColorUnread: black;
|
||||
qproperty-textColorUnreadChildren: gray;
|
||||
qproperty-textColorUnreadChildren: darkgray;
|
||||
qproperty-textColorNotSubscribed: black;
|
||||
qproperty-textColorMissing: darkRed;
|
||||
}
|
||||
@ -223,3 +223,23 @@ GenCertDialog QLabel#entropy_label
|
||||
{
|
||||
qproperty-fontSizeFactor: 115;
|
||||
}
|
||||
|
||||
/* OpModeStatus need to be at end to overload other values*/
|
||||
OpModeStatus {
|
||||
qproperty-opMode_Full_Color: #CCFFCC;
|
||||
qproperty-opMode_NoTurtle_Color: #CCCCFF;
|
||||
qproperty-opMode_Gaming_Color: #FFFFCC;
|
||||
qproperty-opMode_Minimal_Color: #FFCCCC;
|
||||
}
|
||||
OpModeStatus[opMode="Full"] {
|
||||
background: #CCFFCC;
|
||||
}
|
||||
OpModeStatus[opMode="NoTurtle"] {
|
||||
background: #CCCCFF;
|
||||
}
|
||||
OpModeStatus[opMode="Gaming"] {
|
||||
background: #FFFFCC;
|
||||
}
|
||||
OpModeStatus[opMode="Minimal"] {
|
||||
background: #FFCCCC;
|
||||
}
|
||||
|
@ -304,9 +304,9 @@ void AppearancePage::load()
|
||||
whileBlocking(ui.checkBoxShowNATStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowNAT", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowDHTStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowDHT", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowHashingStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowHashing", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowDiscStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowDisc", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowDiscStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowDisc", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowRateStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowRate", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowOpModeStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowOpMode", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowOpModeStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowOpMode", QVariant(false)).toBool());
|
||||
whileBlocking(ui.checkBoxShowSoundStatus)-> setChecked(Settings->valueFromGroup("StatusBar", "ShowSound", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowToasterDisable)->setChecked(Settings->valueFromGroup("StatusBar", "ShowToaster", QVariant(true)).toBool());
|
||||
whileBlocking(ui.checkBoxShowSystrayOnStatus)->setChecked(Settings->valueFromGroup("StatusBar", "ShowSysTrayOnStatusBar", QVariant(false)).toBool());
|
||||
|
@ -355,7 +355,7 @@ void NotifyPage::load()
|
||||
QMap<int, QString>::iterator it;
|
||||
int index = 0;
|
||||
for (it = toasterPositions.begin(); it != toasterPositions.end(); ++it, ++index) {
|
||||
ui.comboBoxToasterPosition->addItem(it.value(), it.key());
|
||||
whileBlocking(ui.comboBoxToasterPosition)->addItem(it.value(), it.key());
|
||||
|
||||
if (it.key() == toasterPosition) {
|
||||
whileBlocking(ui.comboBoxToasterPosition)->setCurrentIndex(index);
|
||||
|
@ -38,6 +38,7 @@ TransferPage::TransferPage(QWidget * parent, Qt::WindowFlags flags)
|
||||
ui.setupUi(this);
|
||||
|
||||
QObject::connect(ui._queueSize_SB,SIGNAL(valueChanged(int)),this,SLOT(updateQueueSize(int))) ;
|
||||
QObject::connect(ui._max_up_SB,SIGNAL(valueChanged(int)),this,SLOT(updateMaxUploadSlots(int))) ;
|
||||
QObject::connect(ui._defaultStrategy_CB,SIGNAL(activated(int)),this,SLOT(updateDefaultStrategy(int))) ;
|
||||
QObject::connect(ui._e2e_encryption_CB,SIGNAL(activated(int)),this,SLOT(updateEncryptionPolicy(int))) ;
|
||||
QObject::connect(ui._diskSpaceLimit_SB,SIGNAL(valueChanged(int)),this,SLOT(updateDiskSizeLimit(int))) ;
|
||||
@ -59,6 +60,11 @@ void TransferPage::updateMaxTRUpRate(int b)
|
||||
rsTurtle->setMaxTRForwardRate(b) ;
|
||||
}
|
||||
|
||||
void TransferPage::updateMaxUploadSlots(int b)
|
||||
{
|
||||
rsFiles->setMaxUploadSlotsPerFriend(b) ;
|
||||
}
|
||||
|
||||
void TransferPage::updateEncryptionPolicy(int b)
|
||||
{
|
||||
switch(b)
|
||||
@ -100,6 +106,7 @@ void TransferPage::load()
|
||||
|
||||
whileBlocking(ui._diskSpaceLimit_SB)->setValue(rsFiles->freeDiskSpaceLimit()) ;
|
||||
whileBlocking(ui._max_tr_up_per_sec_SB)->setValue(rsTurtle->getMaxTRForwardRate()) ;
|
||||
whileBlocking(ui._max_up_SB)->setValue(rsFiles->getMaxUploadSlotsPerFriend()) ;
|
||||
}
|
||||
|
||||
void TransferPage::updateDefaultStrategy(int i)
|
||||
|
@ -48,6 +48,7 @@ class TransferPage: public ConfigPage
|
||||
void updateDiskSizeLimit(int) ;
|
||||
void updateMaxTRUpRate(int);
|
||||
void updateEncryptionPolicy(int);
|
||||
void updateMaxUploadSlots(int);
|
||||
|
||||
void editDirectories() ;
|
||||
void setIncomingDirectory();
|
||||
|
@ -203,6 +203,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Maximum uploads per friend (0 = no limit)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
@ -251,6 +258,9 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="_max_up_SB"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="_defaultStrategy_CB">
|
||||
<property name="enabled">
|
||||
|
@ -202,12 +202,16 @@ void BandwidthStatsWidget::updateUnitSelection(int n)
|
||||
{
|
||||
ui.bwgraph_BW->setUnit(BWGraphSource::UNIT_KILOBYTES) ;
|
||||
ui.bwgraph_BW->resetFlags(RSGraphWidget::RSGRAPH_FLAGS_PAINT_STYLE_DOTS);
|
||||
ui.bwgraph_BW->resetFlags(RSGraphWidget::RSGRAPH_FLAGS_LEGEND_INTEGER);
|
||||
ui.legend_CB->setItemText(1,tr("Average"));
|
||||
ui.bwgraph_BW->setFiltering(true) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.bwgraph_BW->setUnit(BWGraphSource::UNIT_COUNT) ;
|
||||
ui.bwgraph_BW->setFlags(RSGraphWidget::RSGRAPH_FLAGS_PAINT_STYLE_DOTS);
|
||||
ui.bwgraph_BW->setFlags(RSGraphWidget::RSGRAPH_FLAGS_LEGEND_INTEGER);
|
||||
ui.bwgraph_BW->setFiltering(false) ;
|
||||
ui.legend_CB->setItemText(1,tr("Total"));
|
||||
}
|
||||
}
|
||||
|
@ -15,34 +15,49 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
****************************************************************/
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QMessageBox>
|
||||
#include <QLabel>
|
||||
|
||||
#include "gui/statusbar/OpModeStatus.h"
|
||||
#include "gui/settings/rsharesettings.h"
|
||||
|
||||
#include <retroshare/rsconfig.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
OpModeStatus::OpModeStatus(QWidget *parent)
|
||||
: QComboBox(parent)
|
||||
: QComboBox(parent)
|
||||
{
|
||||
onUpdate = false;
|
||||
opMode_Full_Color = QColor("#CCFFCC");
|
||||
opMode_NoTurtle_Color = QColor("#CCCCFF");
|
||||
opMode_Gaming_Color = QColor("#FFFFCC");
|
||||
opMode_Minimal_Color = QColor("#FFCCCC");
|
||||
|
||||
/* add the options */
|
||||
addItem(tr("Normal Mode"), RS_OPMODE_FULL);
|
||||
setItemData(0, opMode_Full_Color, Qt::BackgroundRole);
|
||||
addItem(tr("No Anon D/L"), RS_OPMODE_NOTURTLE);
|
||||
setItemData(1, opMode_NoTurtle_Color, Qt::BackgroundRole);
|
||||
addItem(tr("Gaming Mode"), RS_OPMODE_GAMING);
|
||||
setItemData(2, opMode_Gaming_Color, Qt::BackgroundRole);
|
||||
addItem(tr("Low Traffic"), RS_OPMODE_MINIMAL);
|
||||
setItemData(3, opMode_Minimal_Color, Qt::BackgroundRole);
|
||||
|
||||
connect(this, SIGNAL(activated( int )), this, SLOT(setOpMode()));
|
||||
|
||||
setCurrentIndex(Settings->valueFromGroup("StatusBar", "OpMode", QVariant(0)).toInt());
|
||||
setOpMode();
|
||||
setToolTip(tr("Use this DropList to quickly change Retroshare's behaviour\n No Anon D/L: switches off file forwarding\n Gaming Mode: 25% standard traffic and TODO: reduced popups\n Low Traffic: 10% standard traffic and TODO: pauses all file-transfers"));
|
||||
|
||||
setFocusPolicy(Qt::ClickFocus);
|
||||
}
|
||||
|
||||
|
||||
void OpModeStatus::getOpMode()
|
||||
{
|
||||
int opMode = rsConfig->getOperatingMode();
|
||||
@ -51,17 +66,26 @@ void OpModeStatus::getOpMode()
|
||||
default:
|
||||
case RS_OPMODE_FULL:
|
||||
setCurrentIndex(0);
|
||||
break;
|
||||
setProperty("opMode", "Full");
|
||||
break;
|
||||
case RS_OPMODE_NOTURTLE:
|
||||
setCurrentIndex(1);
|
||||
break;
|
||||
setProperty("opMode", "NoTurtle");
|
||||
break;
|
||||
case RS_OPMODE_GAMING:
|
||||
setCurrentIndex(2);
|
||||
break;
|
||||
setProperty("opMode", "Gaming");
|
||||
break;
|
||||
case RS_OPMODE_MINIMAL:
|
||||
setCurrentIndex(3);
|
||||
break;
|
||||
setProperty("opMode", "Minimal");
|
||||
break;
|
||||
}
|
||||
onUpdate = true;
|
||||
style()->unpolish(this);
|
||||
style()->polish(this);
|
||||
update();
|
||||
onUpdate = false;
|
||||
}
|
||||
|
||||
void OpModeStatus::setOpMode()
|
||||
@ -69,14 +93,78 @@ void OpModeStatus::setOpMode()
|
||||
std::cerr << "OpModeStatus::setOpMode()";
|
||||
std::cerr << std::endl;
|
||||
|
||||
int idx = currentIndex();
|
||||
QVariant var = itemData(idx);
|
||||
uint32_t opMode = var.toUInt();
|
||||
int idx = currentIndex();
|
||||
QVariant var = itemData(idx);
|
||||
uint32_t opMode = var.toUInt();
|
||||
|
||||
QString message = tr("<p>Warning: This Operating mode disables the tunneling service. This means you can use distant chat not anonymously download files and the mail service will be slower.</p><p>This state will be saved after restart, so do not forget that you changed it!</p>");
|
||||
|
||||
if(opMode == RS_OPMODE_NOTURTLE && ! Settings->getPageAlreadyDisplayed(QString("RS_OPMODE_NO_TURTLE")))
|
||||
{
|
||||
QMessageBox::warning(NULL,tr("Turtle routing disabled!"),message);
|
||||
Settings->setPageAlreadyDisplayed(QString("RS_OPMODE_NO_TURTLE"),true) ;
|
||||
}
|
||||
if( (opMode == RS_OPMODE_MINIMAL && ! Settings->getPageAlreadyDisplayed(QString("RS_OPMODE_MINIMAL"))))
|
||||
{
|
||||
QMessageBox::warning(NULL,tr("Turtle routing disabled!"),message);
|
||||
Settings->setPageAlreadyDisplayed(QString("RS_OPMODE_MINIMAL"),true) ;
|
||||
}
|
||||
|
||||
rsConfig->setOperatingMode(opMode);
|
||||
|
||||
// reload to be safe.
|
||||
getOpMode();
|
||||
Settings->setValueToGroup("StatusBar", "OpMode", idx);
|
||||
}
|
||||
|
||||
QColor OpModeStatus::getOpMode_Full_Color() const
|
||||
{
|
||||
return opMode_Full_Color;
|
||||
}
|
||||
|
||||
void OpModeStatus::setOpMode_Full_Color( QColor c )
|
||||
{
|
||||
opMode_Full_Color = c;
|
||||
setItemData(0, opMode_Full_Color, Qt::BackgroundRole);
|
||||
if (!onUpdate)
|
||||
getOpMode();
|
||||
}
|
||||
|
||||
QColor OpModeStatus::getOpMode_NoTurtle_Color() const
|
||||
{
|
||||
return opMode_NoTurtle_Color;
|
||||
}
|
||||
|
||||
void OpModeStatus::setOpMode_NoTurtle_Color( QColor c )
|
||||
{
|
||||
opMode_NoTurtle_Color = c;
|
||||
setItemData(1, opMode_NoTurtle_Color, Qt::BackgroundRole);
|
||||
if (!onUpdate)
|
||||
getOpMode();
|
||||
}
|
||||
|
||||
QColor OpModeStatus::getOpMode_Gaming_Color() const
|
||||
{
|
||||
return opMode_Gaming_Color;
|
||||
}
|
||||
|
||||
void OpModeStatus::setOpMode_Gaming_Color( QColor c )
|
||||
{
|
||||
opMode_Gaming_Color = c;
|
||||
setItemData(2, opMode_Gaming_Color, Qt::BackgroundRole);
|
||||
if (!onUpdate)
|
||||
getOpMode();
|
||||
}
|
||||
|
||||
QColor OpModeStatus::getOpMode_Minimal_Color() const
|
||||
{
|
||||
return opMode_Minimal_Color;
|
||||
}
|
||||
|
||||
void OpModeStatus::setOpMode_Minimal_Color( QColor c )
|
||||
{
|
||||
opMode_Minimal_Color = c;
|
||||
setItemData(3, opMode_Minimal_Color, Qt::BackgroundRole);
|
||||
if (!onUpdate)
|
||||
getOpMode();
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
****************************************************************/
|
||||
#ifndef OP_MODE_STATUS_H
|
||||
@ -26,16 +26,37 @@
|
||||
class OpModeStatus : public QComboBox
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QColor opMode_Full_Color READ getOpMode_Full_Color WRITE setOpMode_Full_Color DESIGNABLE true)
|
||||
Q_PROPERTY(QColor opMode_NoTurtle_Color READ getOpMode_NoTurtle_Color WRITE setOpMode_NoTurtle_Color DESIGNABLE true)
|
||||
Q_PROPERTY(QColor opMode_Gaming_Color READ getOpMode_Gaming_Color WRITE setOpMode_Gaming_Color DESIGNABLE true)
|
||||
Q_PROPERTY(QColor opMode_Minimal_Color READ getOpMode_Minimal_Color WRITE setOpMode_Minimal_Color DESIGNABLE true)
|
||||
|
||||
public:
|
||||
OpModeStatus(QWidget *parent = 0);
|
||||
|
||||
QColor getOpMode_Full_Color() const;
|
||||
void setOpMode_Full_Color( QColor c );
|
||||
|
||||
QColor getOpMode_NoTurtle_Color() const;
|
||||
void setOpMode_NoTurtle_Color( QColor c );
|
||||
|
||||
QColor getOpMode_Gaming_Color() const;
|
||||
void setOpMode_Gaming_Color( QColor c );
|
||||
|
||||
QColor getOpMode_Minimal_Color() const;
|
||||
void setOpMode_Minimal_Color( QColor c );
|
||||
|
||||
private slots:
|
||||
void setOpMode();
|
||||
void setOpMode();
|
||||
|
||||
private:
|
||||
void getOpMode();
|
||||
|
||||
QColor opMode_Full_Color;
|
||||
QColor opMode_NoTurtle_Color;
|
||||
QColor opMode_Gaming_Color;
|
||||
QColor opMode_Minimal_Color;
|
||||
bool onUpdate;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -273,4 +273,22 @@ QTextEdit {
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
/* OpModeStatus need to be at end to overload other values*/
|
||||
OpModeStatus {
|
||||
qproperty-opMode_Full_Color: #007000;
|
||||
qproperty-opMode_NoTurtle_Color: #000070;
|
||||
qproperty-opMode_Gaming_Color: #707000;
|
||||
qproperty-opMode_Minimal_Color: #700000;
|
||||
}
|
||||
OpModeStatus[opMode="Full"] {
|
||||
background: #007000;
|
||||
}
|
||||
OpModeStatus[opMode="NoTurtle"] {
|
||||
background: #000070;
|
||||
}
|
||||
OpModeStatus[opMode="Gaming"] {
|
||||
background: #707000;
|
||||
}
|
||||
OpModeStatus[opMode="Minimal"] {
|
||||
background: #700000;
|
||||
}
|
||||
|
@ -1060,3 +1060,22 @@ QStatusBar::item {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/* OpModeStatus need to be at end to overload other values*/
|
||||
OpModeStatus {
|
||||
qproperty-opMode_Full_Color: #007000;
|
||||
qproperty-opMode_NoTurtle_Color: #000070;
|
||||
qproperty-opMode_Gaming_Color: #707000;
|
||||
qproperty-opMode_Minimal_Color: #700000;
|
||||
}
|
||||
OpModeStatus[opMode="Full"] {
|
||||
background: #007000;
|
||||
}
|
||||
OpModeStatus[opMode="NoTurtle"] {
|
||||
background: #000070;
|
||||
}
|
||||
OpModeStatus[opMode="Gaming"] {
|
||||
background: #707000;
|
||||
}
|
||||
OpModeStatus[opMode="Minimal"] {
|
||||
background: #700000;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
|
||||
#include <list>
|
||||
#include "retroshare/rsids.h"
|
||||
#include "rsitems/rsitem.h"
|
||||
#include "serialiser/rsserial.h"
|
||||
|
||||
#include "testing/IsolatedServiceTester.h"
|
||||
|
@ -1,6 +1,8 @@
|
||||
|
||||
#include "SetFilter.h"
|
||||
|
||||
#include "rsitems/rsitem.h"
|
||||
|
||||
bool SetFilter::filter(const SetPacket &pkt)
|
||||
{
|
||||
switch(mFilterMode)
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <list>
|
||||
#include "retroshare/rsids.h"
|
||||
#include "rsitems/rsitem.h"
|
||||
#include "pqi/p3linkmgr.h"
|
||||
|
||||
#include "SetPacket.h"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
#include "gxs/rsgxsdata.h"
|
||||
|
||||
#define RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM 0x012
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define RSDATASERVICE_TEST_H
|
||||
|
||||
#include "util/rsthreads.h"
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
#include "gxs/rsgds.h"
|
||||
|
||||
void test_messageStoresAndRetrieve();
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include "gxs/rsnxs.h"
|
||||
#include "gxs/rsgixs.h"
|
||||
#include "serialiser/rsgxsitems.h"
|
||||
#include "rsitems/rsgxsitems.h"
|
||||
|
||||
class RsDummyNetService: public RsNetworkExchangeService
|
||||
{
|
||||
|
@ -28,7 +28,7 @@
|
||||
*/
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "serialiser/rsgxsiditems.h"
|
||||
#include "rsitems/rsgxsiditems.h"
|
||||
#include "support.h"
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "support.h"
|
||||
#include "serialiser/rsgxsupdateitems.h"
|
||||
#include "rsitems/rsgxsupdateitems.h"
|
||||
#define RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM 0x0010
|
||||
|
||||
RsSerialType* init_item(RsGxsGrpUpdateItem& i)
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "util/rsrandom.h"
|
||||
#include "serialiser/rsmsgitems.h"
|
||||
#include "rsitems/rsmsgitems.h"
|
||||
#include "chat/rschatitems.h"
|
||||
|
||||
#include "support.h"
|
||||
@ -88,6 +88,7 @@ RsSerialType* init_item(RsChatLobbyInviteItem& cmi)
|
||||
{
|
||||
cmi.lobby_id = RSRandom::random_u64() ;
|
||||
cmi.lobby_name = "Name of the lobby" ;
|
||||
cmi.lobby_topic = "Topic of the lobby" ;
|
||||
|
||||
return new RsChatSerialiser();
|
||||
}
|
||||
@ -141,7 +142,7 @@ RsSerialType* init_item(RsMsgItem& mi)
|
||||
mi.sendTime = mi.recvTime;
|
||||
mi.msgFlags = mi.recvTime;
|
||||
|
||||
return new RsMsgSerialiser(true);
|
||||
return new RsMsgSerialiser(RsServiceSerializer::SERIALIZATION_FLAG_NONE);
|
||||
}
|
||||
|
||||
RsSerialType* init_item(RsMsgTagType& mtt)
|
||||
@ -150,7 +151,7 @@ RsSerialType* init_item(RsMsgTagType& mtt)
|
||||
mtt.tagId = rand()%24242;
|
||||
randString(SHORT_STR, mtt.text);
|
||||
|
||||
return new RsMsgSerialiser();
|
||||
return new RsMsgSerialiser(RsServiceSerializer::SERIALIZATION_FLAG_NONE);
|
||||
}
|
||||
|
||||
|
||||
@ -163,7 +164,7 @@ RsSerialType* init_item(RsMsgTags& mt)
|
||||
mt.tagIds.push_back(rand()%21341);
|
||||
}
|
||||
|
||||
return new RsMsgSerialiser();
|
||||
return new RsMsgSerialiser(RsServiceSerializer::SERIALIZATION_FLAG_NONE);
|
||||
}
|
||||
|
||||
RsSerialType* init_item(RsMsgSrcId& ms)
|
||||
@ -171,7 +172,7 @@ RsSerialType* init_item(RsMsgSrcId& ms)
|
||||
ms.msgId = rand()%434;
|
||||
ms.srcId = RsPeerId::random();
|
||||
|
||||
return new RsMsgSerialiser();
|
||||
return new RsMsgSerialiser(RsServiceSerializer::SERIALIZATION_FLAG_NONE);
|
||||
}
|
||||
|
||||
RsSerialType* init_item(RsMsgParentId& ms)
|
||||
@ -179,7 +180,7 @@ RsSerialType* init_item(RsMsgParentId& ms)
|
||||
ms.msgId = rand()%354;
|
||||
ms.msgParentId = rand()%476;
|
||||
|
||||
return new RsMsgSerialiser();
|
||||
return new RsMsgSerialiser(RsServiceSerializer::SERIALIZATION_FLAG_NONE);
|
||||
}
|
||||
|
||||
bool operator ==(const struct VisibleChatLobbyInfo& l, const struct VisibleChatLobbyInfo& r)
|
||||
@ -254,6 +255,7 @@ bool operator ==(const RsChatLobbyInviteItem& csiLeft, const RsChatLobbyInviteIt
|
||||
{
|
||||
if(csiLeft.lobby_id != csiRight.lobby_id) return false ;
|
||||
if(csiLeft.lobby_name != csiRight.lobby_name) return false ;
|
||||
if(csiLeft.lobby_topic != csiRight.lobby_topic) return false ;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -288,7 +290,7 @@ bool operator ==(const RsMsgItem& miLeft, const RsMsgItem& miRight)
|
||||
if(miLeft.recvTime != miRight.recvTime) return false;
|
||||
if(miLeft.sendTime != miRight.sendTime) return false;
|
||||
if(miLeft.subject != miRight.subject) return false;
|
||||
if(miLeft.msgId != miRight.msgId) return false;
|
||||
//if(miLeft.msgId != miRight.msgId) return false;
|
||||
|
||||
if(!(miLeft.attachment == miRight.attachment)) return false;
|
||||
if(!(miLeft.rspeerid_msgbcc == miRight.rspeerid_msgbcc)) return false;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
#include "support.h"
|
||||
#include "libretroshare/gxs/common/data_support.h"
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
|
||||
|
||||
#define NUM_BIN_OBJECTS 5
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
#include "support.h"
|
||||
#include "serialiser/rsstatusitems.h"
|
||||
#include "rsitems/rsstatusitems.h"
|
||||
|
||||
RsSerialType* init_item(RsStatusItem& rsi)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
// from libretroshare
|
||||
#include "services/p3statusservice.h"
|
||||
#include "serialiser/rsstatusitems.h"
|
||||
#include "rsitems/rsstatusitems.h"
|
||||
#include "gxs/rsgixs.h"
|
||||
#include "gxs/rsdataservice.h"
|
||||
#include "gxs/rsgxsnetservice.h"
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "gxstestservice.h"
|
||||
|
||||
// libretroshare
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
|
||||
GxsPairServiceTester::GxsPairServiceTester(const RsPeerId &peerId1, const RsPeerId &peerId2, int testMode, bool useIdentityService)
|
||||
:SetServiceTester()
|
||||
|
@ -4,7 +4,7 @@
|
||||
// from librssimulator
|
||||
|
||||
// from libretroshare
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
|
||||
// local
|
||||
#include "GxsPairServiceTester.h"
|
||||
|
@ -8,7 +8,7 @@
|
||||
//#include "gxs/rsgixs.h"
|
||||
//#include "gxs/rsdataservice.h"
|
||||
//#include "gxs/rsgxsnetservice.h"
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
|
||||
// local
|
||||
#include "GxsIsolatedServiceTester.h"
|
||||
|
@ -4,7 +4,7 @@
|
||||
// from librssimulator
|
||||
|
||||
// from libretroshare
|
||||
#include "serialiser/rsnxsitems.h"
|
||||
#include "rsitems/rsnxsitems.h"
|
||||
|
||||
// local
|
||||
#include "GxsPairServiceTester.h"
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "rsitems/rsserviceids.h"
|
||||
#include "serialiser/rsserial.h"
|
||||
|
||||
#include "serialiser/rsgxsitems.h"
|
||||
#include "rsitems/rsgxsitems.h"
|
||||
#include "gxstestservice.h"
|
||||
|
||||
const uint8_t RS_PKT_SUBTYPE_TEST_GROUP_ITEM = 0x02;
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
// from libretroshare
|
||||
#include "services/p3statusservice.h"
|
||||
#include "serialiser/rsstatusitems.h"
|
||||
#include "rsitems/rsstatusitems.h"
|
||||
|
||||
#define N_PEERS 10
|
||||
|
||||
|