From f12a36fcfb1f09870826f02227bc229a39223970 Mon Sep 17 00:00:00 2001 From: defnax Date: Sat, 8 Feb 2020 17:29:50 +0100 Subject: [PATCH 01/16] Rename Posted to Boards & cleanup remove old icons Rename Posted to Boards & cleanup remove old icons --- .../src/gui/Posted/PostedDialog.cpp | 20 +++++++++--------- retroshare-gui/src/gui/Posted/PostedDialog.h | 2 +- .../src/gui/Posted/PostedGroupDialog.cpp | 12 +++++------ .../src/gui/Posted/PostedListWidget.ui | 4 ++-- .../src/gui/Posted/Posted_images.qrc | 12 +---------- .../src/gui/Posted/images/hot_128.png | Bin 11686 -> 0 bytes .../src/gui/Posted/images/hot_24.png | Bin 954 -> 0 bytes .../src/gui/Posted/images/hot_256.png | Bin 35873 -> 0 bytes .../src/gui/Posted/images/hot_32.png | Bin 1390 -> 0 bytes .../src/gui/Posted/images/hot_48.png | Bin 2461 -> 0 bytes .../src/gui/Posted/images/hot_64.png | Bin 3950 -> 0 bytes .../src/gui/Posted/images/new_128.png | Bin 19851 -> 0 bytes .../src/gui/Posted/images/new_24.png | Bin 1534 -> 0 bytes .../src/gui/Posted/images/new_32.png | Bin 2339 -> 0 bytes .../src/gui/Posted/images/new_48.png | Bin 4250 -> 0 bytes .../src/gui/Posted/images/new_64.png | Bin 6579 -> 0 bytes .../src/gui/Posted/images/posted_128.png | Bin 21793 -> 0 bytes .../src/gui/Posted/images/posted_16.png | Bin 3681 -> 0 bytes .../src/gui/Posted/images/posted_24.png | Bin 1723 -> 0 bytes .../src/gui/Posted/images/posted_256.png | Bin 44670 -> 0 bytes .../src/gui/Posted/images/posted_32.png | Bin 2676 -> 0 bytes .../src/gui/Posted/images/posted_32_new.png | Bin 2391 -> 0 bytes .../src/gui/Posted/images/posted_48.png | Bin 5032 -> 0 bytes .../src/gui/Posted/images/posted_64.png | Bin 7719 -> 0 bytes .../src/gui/Posted/images/posted_add_128.png | Bin 19191 -> 0 bytes .../src/gui/Posted/images/posted_add_24.png | Bin 1610 -> 0 bytes .../src/gui/Posted/images/posted_add_256.png | Bin 37063 -> 0 bytes .../src/gui/Posted/images/posted_add_32.png | Bin 2465 -> 0 bytes .../src/gui/Posted/images/posted_add_48.png | Bin 3658 -> 0 bytes .../src/gui/Posted/images/posted_add_64.png | Bin 6423 -> 0 bytes .../src/gui/Posted/images/write.png | Bin 0 -> 1974 bytes .../src/gui/feeds/PostedGroupItem.cpp | 10 ++++----- .../src/gui/feeds/PostedGroupItem.ui | 11 ++++++---- .../src/gui/gxs/GxsGroupShareKey.cpp | 6 +++--- 34 files changed, 35 insertions(+), 42 deletions(-) delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_128.png delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_24.png delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_256.png delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_32.png delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_48.png delete mode 100644 retroshare-gui/src/gui/Posted/images/hot_64.png delete mode 100644 retroshare-gui/src/gui/Posted/images/new_128.png delete mode 100644 retroshare-gui/src/gui/Posted/images/new_24.png delete mode 100644 retroshare-gui/src/gui/Posted/images/new_32.png delete mode 100644 retroshare-gui/src/gui/Posted/images/new_48.png delete mode 100644 retroshare-gui/src/gui/Posted/images/new_64.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_128.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_16.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_24.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_256.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_32.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_32_new.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_48.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_64.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_128.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_24.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_256.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_32.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_48.png delete mode 100644 retroshare-gui/src/gui/Posted/images/posted_add_64.png create mode 100644 retroshare-gui/src/gui/Posted/images/write.png diff --git a/retroshare-gui/src/gui/Posted/PostedDialog.cpp b/retroshare-gui/src/gui/Posted/PostedDialog.cpp index e696db36c..64933dd35 100644 --- a/retroshare-gui/src/gui/Posted/PostedDialog.cpp +++ b/retroshare-gui/src/gui/Posted/PostedDialog.cpp @@ -93,13 +93,13 @@ UserNotify *PostedDialog::createUserNotify(QObject *parent) QString PostedDialog::getHelpString() const { - QString hlp_str = tr("

  Posted

\ -

The posted service allows you to share internet links, that spread among Retroshare nodes like forums and \ + QString hlp_str = tr("

  Boards

\ +

The poards service allows you to share internet links, that spread among Retroshare nodes like forums and \ channels

\ -

Links can be commented by subscribed users. A promotion system also gives the opportunity to \ +

Posts can be commented by subscribed users. A promotion system also gives the opportunity to \ enlight important links.

\

There is no restriction on which links are shared. Be careful when clicking on them.

\ -

Posted links are kept for %1 days, and sync-ed over the last %2 days, unless you change this.

\ +

Boards are kept for %1 days, and sync-ed over the last %2 days, unless you change this.

\ ").arg(QString::number(rsPosted->getDefaultStoragePeriod()/86400)).arg(QString::number(rsPosted->getDefaultSyncPeriod()/86400)); return hlp_str ; @@ -109,9 +109,9 @@ QString PostedDialog::text(TextType type) { switch (type) { case TEXT_NAME: - return tr("Posted Links"); + return tr("Boards"); case TEXT_NEW: - return tr("Create Topic"); + return tr("Create Board"); case TEXT_TODO: return "Open points:"; case TEXT_YOUR_GROUP: - return tr("My Topics"); + return tr("My Boards"); case TEXT_SUBSCRIBED_GROUP: - return tr("Subscribed Topics"); + return tr("Subscribed Boards"); case TEXT_POPULAR_GROUP: - return tr("Popular Topics"); + return tr("Popular Boards"); case TEXT_OTHER_GROUP: - return tr("Other Topics"); + return tr("Other Boards"); } return ""; diff --git a/retroshare-gui/src/gui/Posted/PostedDialog.h b/retroshare-gui/src/gui/Posted/PostedDialog.h index 7f23ee24f..6a4d79479 100644 --- a/retroshare-gui/src/gui/Posted/PostedDialog.h +++ b/retroshare-gui/src/gui/Posted/PostedDialog.h @@ -37,7 +37,7 @@ public: ~PostedDialog(); virtual QIcon iconPixmap() const { return QIcon(IMAGE_POSTED) ; } //MainPage - virtual QString pageName() const { return tr("Links") ; } //MainPage + virtual QString pageName() const { return tr("Boards") ; } //MainPage virtual QString helpText() const { return ""; } //MainPage protected: diff --git a/retroshare-gui/src/gui/Posted/PostedGroupDialog.cpp b/retroshare-gui/src/gui/Posted/PostedGroupDialog.cpp index 678c41a98..a2627d167 100644 --- a/retroshare-gui/src/gui/Posted/PostedGroupDialog.cpp +++ b/retroshare-gui/src/gui/Posted/PostedGroupDialog.cpp @@ -71,20 +71,20 @@ void PostedGroupDialog::initUi() switch (mode()) { case MODE_CREATE: - setUiText(UITYPE_SERVICE_HEADER, tr("Create New Topic")); + setUiText(UITYPE_SERVICE_HEADER, tr("Create New Board")); setUiText(UITYPE_BUTTONBOX_OK, tr("Create")); break; case MODE_SHOW: - setUiText(UITYPE_SERVICE_HEADER, tr("Posted Topic")); + setUiText(UITYPE_SERVICE_HEADER, tr("Board")); break; case MODE_EDIT: - setUiText(UITYPE_SERVICE_HEADER, tr("Edit Topic")); - setUiText(UITYPE_BUTTONBOX_OK, tr("Update Topic")); + setUiText(UITYPE_SERVICE_HEADER, tr("Edit Board")); + setUiText(UITYPE_BUTTONBOX_OK, tr("Update Board")); break; } - setUiText(UITYPE_ADD_ADMINS_CHECKBOX, tr("Add Topic Admins")); - setUiText(UITYPE_CONTACTS_DOCK, tr("Select Topic Admins")); + setUiText(UITYPE_ADD_ADMINS_CHECKBOX, tr("Add Board Admins")); + setUiText(UITYPE_CONTACTS_DOCK, tr("Select Board Admins")); } QPixmap PostedGroupDialog::serviceImage() diff --git a/retroshare-gui/src/gui/Posted/PostedListWidget.ui b/retroshare-gui/src/gui/Posted/PostedListWidget.ui index 304a79c76..5edfbd949 100644 --- a/retroshare-gui/src/gui/Posted/PostedListWidget.ui +++ b/retroshare-gui/src/gui/Posted/PostedListWidget.ui @@ -89,7 +89,7 @@ - :/images/posted_24.png:/images/posted_24.png + :/images/write.png:/images/write.png @@ -557,7 +557,7 @@ p, li { white-space: pre-wrap; } 0 0 - 614 + 98 16 diff --git a/retroshare-gui/src/gui/Posted/Posted_images.qrc b/retroshare-gui/src/gui/Posted/Posted_images.qrc index 9c2be0db4..0710a04e6 100644 --- a/retroshare-gui/src/gui/Posted/Posted_images.qrc +++ b/retroshare-gui/src/gui/Posted/Posted_images.qrc @@ -1,16 +1,5 @@ - images/posted_16.png - images/posted_24.png - images/posted_32.png - images/posted_48.png - images/posted_64.png - images/posted_add_24.png - images/posted_add_32.png - images/posted_add_64.png - images/hot_24.png - images/new_24.png - images/posted_32_new.png images/expand.png images/decrease.png images/down-arrow.png @@ -29,5 +18,6 @@ images/down-hover.png images/up-hover.png images/trashcan.png + images/write.png diff --git a/retroshare-gui/src/gui/Posted/images/hot_128.png b/retroshare-gui/src/gui/Posted/images/hot_128.png deleted file mode 100644 index 652e2b5d4a99221df1c17e493d0dd7f4d2080891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11686 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 diff --git a/retroshare-gui/src/gui/Posted/images/hot_256.png b/retroshare-gui/src/gui/Posted/images/hot_256.png deleted file mode 100644 index 018b877080c680960311aaecc3d32cb87fd4b024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35873 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 YJwkk2aCgForT{J<&*MMQk4EPF1IOk$%m4rY diff --git a/retroshare-gui/src/gui/Posted/images/hot_32.png b/retroshare-gui/src/gui/Posted/images/hot_32.png deleted file mode 100644 index 59e9c3702c7fba8d9bf201f975219385473e6988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1390 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 bebN5{0kS#+CNEJg00000NkvXXu0mjf`Nn}` diff --git a/retroshare-gui/src/gui/Posted/images/hot_64.png b/retroshare-gui/src/gui/Posted/images/hot_64.png deleted file mode 100644 index 9f9ccc31efa082f67d87692aace5dc0f5c349217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3950 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 IM6N<$g3kbUwg3PC diff --git a/retroshare-gui/src/gui/Posted/images/new_128.png b/retroshare-gui/src/gui/Posted/images/new_128.png deleted file mode 100644 index 86827c30bfe61d81a0ea41d45f9d849d5b9e9998..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19851 zcmWh!byU<%7yfMkOE2B9Ae~DHNOy}gNOw0VNG?l?bP3WWDeu9SI;?d#(06?g&rlj{zqW)iC*#GK28Jp360_3NsssPlD z)9?IiK%L~D$^$@SGXAX%*1tBwPEGGA00goB8x#cq*Z)+gZ2)+I1b{!*03eYK094+2 zZMstbI&l2epDN@0ghI)f5l)s?-~Xv-{gqAp^}QVZ18jU90390_Pk(-GWdp=ZVgASb zf`Y0i3St1DHL0#7ZxCqtHxws?eE!q@X+EE;+UZjCwjnG6Lkf$6R|Xh3^S7|?C$$rL zw$O>KwftP5roTY*)V)spOWsX&vC*$yU}m01^%is6eK0<@zvpU9+N*MFcYY!H?$_M- z-k$Wb^w#1`9V58bVC{x=h!WtKZ4Bi)o zp;H;8_uMvCPe$b((zyA~bg-7z&rXq?5^YNn4+oJX2s;WFa3yT4I!mMq%IjN2KQVg9 z`0zG)VnJA9Nihq1^`ZZAQ6Wzs%ao618gH0m8!1&k5Pa71O)Dg(@M*}0(8DI;5G+-> zte^;zH<%P!WCdx0YlaqbSl~k%SdYQ^Nx^*F1wj>fY;?d$wSR2IzoV|_g~s6nUPv9N zP!_uNSwkKv`~2OTSKW9MxrdDP%cu$7UMCzzKt7;XCo3otgoVD!t9oxuoik_l4tpw} z`9p?Y`D4BKSzb09Q5=jMQ&|MR)~B%3m)oaCd_uElk|}k zp&kO4;M|UqPLG*dhJI@cr2&d(2P(0~JbJc_6zXat<{AuWBOaunSBI}fp3z2LT(3w@ z`^d;s04W46X@I`d-WyNql824@JOWWB=y?YI09(YgpxX`lcjo2yLYQ08Ag%L(K@BVbU~)a$VnVrIB9|zXdvag{7z7w zJ??b*GQf%j3xVAm}1jizPsY0y4r1mi&otV|(y)%98u$ z@zjU`_ZjaGslW^n;uLeakGI%IkKy}Ts^@GshS}{84F9CVC;AvYa%2g)pWi~=tq8r1 z$xHZNh7!a}s-B#Z@})6~ztEFcJfxWsTxzN10fK9KFs8T7xJ~U8O@28d3&Lmf7Ei79Q7s9Nbql~-vJ&&s_oEC<26 zGCGcGa~fm@T8|7AAze+RTUqOjS!-taKJ_131cX}DkY+gB1el@Ni>H;uh5pD&@`Iyr z^Gx1>EiSgOFT^w_>LA4-cZSGn#j)w4HvvjM_)*5M+CYpLwcbV{H z=x+q~q=yHilwSX*$;ex;|F))8gMl*t#pO6R^V76wTGO~-e$wt9ZzBef4RRV_W8ins zfOEoxeCmj|Tzcc~Qh&h7*UfufY~R;@DWZ@6{t*oE=fsYmg_bx>l+(|zeLOeDlUw*E z;bhI=Xxo`l^=(LaW9j&}^<{uyLenANgN`cq)}_W-e;2p3alH}y+DR!Wip2MW2}$7gb5AY2mYR!Jq#U)X}z( z7R!IfA6#nSW(PdKUs?>e92Ds=8Q@EYh4A3g(B>r35hjQrXd&?0(4Ha26ksPXKSF+e z#X)ZC9FWuN=QT}|U;ojiLa$FBDg!0RDSKOa(o^KLCOF=RBO}7T!;wv)A}E*QWZ*V) zX8Phk%X00h(K&jn9Lu6-vq=LCcWfbqG^DIW3+GVvOqrQ2XSW1yKC7B64hWFJ8tNk; zeJDk7Q5YYrg%cUP-gSd-=gVd=^UuH3Tc7!%j=u*MhDDPX_rhGS*~1LAq_?Xx zeZzAvJyts$!$yHs1@0xtczWd_JTK0ov&jR2Q@+a#lELU$XYKZPwFcGfy$yeJ67Un1 z%2&l^uReHI1Z}Km)?8Lla6f)aqZw*wTBpaC*cVFBcXvvaR!KQ%>e8^tnP~8?oVQ&0 z9by7HmTr?hGA-Nh%JSTl*qa!xIiu3yip9DeNquXV1{PU!4|PEgtJ{9Qh@rs98vVV1d}Gna1rO0hBZ3m5dER4RDH~4ogRA*MNpThhP1Tnd10!%diS1#dgR#< zK~}ki>$_wBqDd){ma$sMBc889rQAAeW_9OApQCanZm5$_7zeJzBCeI{idlICuJJ>^ z-s5%Z)aW?^sC94IN9r1hBBnLzgDx-r7)B=_H*@a3u9Ig*d?(hy@_B}bKTKW_D&w+jPYsBxhs`Uq0vgi_d72}l*+Zo(Ii<_ zvl`EXGKHSk>ugCUo{?Hu{$1o_SXz*Y-anFVxxZd2?j&EE1uf_b^<2S{@$bqhXy>KVn=gFj@1- zyi+B|(||`ffm?d8c6w{4X-NA zf^FYuP{KUVqGbJy`Ainth@Yt6X)dURZj?`eDXyTtFSErH}h}e;u6eJPxNdl0Y#zXIX-#Kj9|ZW|2K!*dGWov)w-3|GBfd%ZIXCy|Wd*XCs!5**XCc5bN7N zz2|Uruz##(Oqk02qJ7WYTLV)+y|78aACDXeEA<8}jX4_Nqk@A^_ zK5H!lD(+cyIKHqm0$YHL;K<}CDfRL(LF*PoIAn{13P&57A478$Hv6jX@&di$0IbO9 zu+J(=agjmO>z+dT1lKKsC??dQJzRiFRO-Vyp+uYoP(pk#>hxjCP(x2p`-imv?67uNL z`BrS=QgM-c>}B4;Q~#{+Ge8b<8lEo#jrm0$T5O7b0=Kaz$_|%3z0?>hk^vM&W?qiA z-L`r)bV-Z+3fIgyacUG`xwZmB%(>)%!>coo1O?6Gh^xVs;IQb2L7`==9!kJQ$Nq5< zcE+;|)UnTO?UpnVy62S;>m(6s^YH>PR1PY>ysbD}VQ*Ky3H;Y@0=eXX#xjT>d6IVq}&2TC- z`Ii$#VoCopspRWxf1q$YWhK}kLhjNakAkRuTG<%{r{qwVMj;yZf1hF3M%IO=CIk#Q z+>QqF!3dtPJsx39*#wC^TWPms2I%1}3E>p=0ccBX;gb?WHF8d_W2bdSul^S=*P8e} zFs*gu>E&LhHh&(Qgk{!BI?)8r_+m+zmKy&aan`gB;7gaZ`B zEc^n!Pc7)h)Iru&Y$yl7J()y1$l3iUY7PJj6W_HMkR03M-5Oaz0@1=vOl70%jGO7J zmMkY&@?dk6+ZTPNJDUpp&Vk;?m#p0dpzX{u&rf1n>r1xQ zFoF{mu%_zG@se`tAw~krem}!e69{?P5D&}Ot(w3FxHDO=$`7p*v4Da@VC4x8EMUD8 zyLPmb-!uTV<$E=FCJS0YF5{!DRzs)j<)5uToRSwLvN2h8uj$YMs3Uus9gxmDRR)r{ z8D{By1d4tW9}xetWjVQjj%`RS?Wk;bO_1irO#w&PH#F$iv-HIZQP*H zl8ytwLaoKlNPVz_hcFBpoe$BJs(<*9JgD4Bib}~zWqL~ z08x5F(Bhw_$;Yw78|#hK4OzNwwFpl8;CBX)vMn`h(&Ug(vU@SQ$OHbroaokDva!Jj zE0$MIvXz3@);i*h?5D0V$AKo`1Pt&%y0(ZVM-8>!IAJB&Qxq=%Mb?PPjQ(CG)FH9& z0#KtNQWg6bLJ!8L$4}A_VTD5(*qV1dU3wapRIm?D7$ffU+0)? z(oP$xp}Vq863{}lu5lkfduD(?9vc?#?tFWydY>3UM-2WDYTcXgR%6chiK?5ye`nZi zgT|%5dvo9J)(AP$&8aXZVZnyT?L=o|G;U+JL+4a`0cx#KqL?7i3L1lj5=ZYxELh?5 z+&_;G2cxbF6E0E!pd83KAeBdL)ej&G>(v{9z^^{sQ%Nx4Uk+V3&^o-8qdXX3uLeAr z__-agVV(m$jp~}WZg)+ggMa!yY0g^yab)9sF#V=PnZ}TEOsY5wvBs@MpSnj+spVjN zm=^MZA+V@Rg7^6hIv-*!f@_WT}4fG&gBkC&N37Z3<~VLh+Ul5wT?>#oK!$7W`5aTv9hB90&64_+@LE9@lu%=x3Km# z+H8IpwZTaAx8}cK+Bd_thRAA3i=k4VT^?`9M=h6fJt;Qzt&b;)FChr4Nw0~@ci+se z$^{kLnZ;)oQ~pEx7d)9=AX-^~OhH)g@U~5;fC&(^m&kkjRR=pTbW3%Z$4Wi%NNoXt z0tM}9m`uQu>kv<7eYz$CyC|Ra?Ui^Jr6waBhWw%d>Im!8#jRL1of6I|82l_Owe*MO zc**mL#WmLA;Edq6M@sL76}PpbttRvTfs&{>Awrh-6aIfdDc~#XmEG=`s&}IMf4Pf__g4_hX9kKs5zH(i&Lao03gd^b7zDcZFF< zmH@zkb@%F~Pys%yawd2wS3Ur|25$*~sbygAPi5k9tlW@(-S zfx03+?wCQ+z@cWhnCl!%tNi!?w=21kN$3~fl&&oKUoH@>-rF;95l!<9!HgFRvRWSjFoXcttBV9tm62nNBkz?WUd>h>~8^{?Vk2sjj=#}k%igsrJZW@n=Dq4g8i9F7lq zTBtbFMTew$0fiB>MBS>d5P&@jgbCEBN!NG@55#m~JwpCoT+0b9Be(xj=b;KO4L$|F zsrMPSh@=V_m!0c-!eu}gIEIR|vMXv4<0zC|U_-IZ9>I&MMPCZtkhO8{W z{)-8on90YFdHww$5)JPBc?7e+@D~aB6>yIs&TH153oI}w z3Y0=1F7qbBv6piWZ48FN1BZBUEeCJV-s5ycugW6;IdJC652(#g3`m}uK${?fCr0gf zh`+P@+*z;j0j5IC3_8}G6QNj_#6wWW32xc%GIM9{_Us2u;rEcglxM@pRmsUFa-$AA zrS>$82d;C9d+X?w81O}Mez-sSkJyudRPLR-k?Tq1;VJX8{nwm!-hBQycZ`6NI`{`R zW9|ycn3^%$M;_d@Drhn*d>Tjyke5S9NyFtZsn5Ip$#Lx_Gr<|qB2GipybWC3+B;%J zr~u(zCGD~jMA}JIM&-lQs_Wuph0UHThH(h-Zy=xQ(@-L=nKg$_uvfpZ_TXcc&sXDf zx{|EPoblG8)bs^MFz97PJR4YwO>l@PdD5c8P|!$*W06v$v_%;9Tqx;fV6*ndA14JY zEvGVkpi-EFhN@?nEET+NpxH+F83PeaL!@fN;h-BV0KuE=d2#fn55kBI4iHI0 z5Ge%^Ickw(GzwVQ0V&V{D-Zu{sA@$G)gZDh$JS!0)Rrc;&Nw&ppNZzo(o;SH3+`j0 zw^zjS4V5vk8{+cDl@0YpOJdSbgUW{H6Xl7J|)vs%9?3hN=rjA=(OD; zPAbq>no*-~|LWhe*p*Y1#Evrw6%;RFyEJenRHkw;e|Zfn)FtJ7oU0IhpFV5AW=r6! z9w=H40CLCGktQxH7R+BX!1X@cb?_)3>VK96d_iIU3AhwKLW1cxVB)@Uh7Nzzqm`=!=c5q$Ype7L5g)TK?Rg%neLh3(g{xs1)#Fpp5PrytP8 zJz|xw)qwv)jB`K`NUmr!kb`<%j}8#GhDD;R5%7+4xdb1zZuteX?LcBCY(S+?J!6RL zJtBWGMONW(n~&{zSj5hjtCd5#gxV9P(ZA^#KF8b+63~0F_nTo>e~O=VS4BgDd5dS| zEW795XHkzs+_N*lK*Mw<4R>GW?`e}x%lw4@Ty;t8_#elARVW>ood}4NotGMxoeF66 z%DzV}nFUMZ0Xy&)RK3G~;q>q?W^93XSaqz2w6T_%h%$L8bxgT!t%SERZk>krYy>`< zA@IQ=Xpi3TkQM_chI#?8#_6KOZj3I@ku7Ws#9Gi6871dT$8wMDcca;G5#CdNA>WPD z3G?(AI31&^M$wpR&Fm_SqX>Ap6t?vDn!ZnK1Qrp+6nJH-JnFF{{qN_S+1GzuU&Q$m z;fd9$KADZIoD4NQAATScGyHJ}@;}M4X>B58tmltFB>60;u(2Lf?Y-9UF6%jIAl~LB z1-#|p_|Rfn^T#W?g#7Rh9w-_GVy^}dP>e$XM>~ZCjL;KYp7QfYkqmba%K#>H+I>}M z6R(GO7*moiJx-q%y~PT{?@1D($&+kh=HaDVynr|@p$(J-}2@+p29W`2-w64Lks* z^)#4LDf0Yn(buA617F%d1QZ=#9`^r2qOu2Pxe|y2iqA* zElrd`>?nrT#%`(yn!F+c+aa7?bRQ{dP{H!uP(V!qPn^7*l->n1*F(H1fI+qWb4}fd z4h?TZusfuf)K(5|gkMMZWFT~GQpgZ(-4^T*U`~b62m(MVz>TZ}fq)l);QuzLz~Pbj zS@#I^%6r2~8)sr+XoO$NfxFA%RYxp0f&$29$qLiDusv62LRr&VHWElmgt~AmHd|i@ zAwwQ*zeJocA`3oJj8Q=W_eUV$A`J!*!#d>RoTyq5YUEmfhOFQeTJedGzDOk6CMpKO z86c^8s8f1Nzswaw94HEi;7D4*PUpmm;`xpb)Ct-CV@N3A5QQ+WL(^t zo?AXv0JZUN!BOIfLk+YjVnH!;@;N*(Qk~&R;@UMnJ$w(7`ZB_eKIRVF{BfWh!ib~* zMe5W|=bH3Y(w`@llcX2$MjZ+{KKQgGE!%OjlxonGSnk$LW`Tev>pUl$O=2|dHZ%PT z&7zKW6J`4wpjz33b~N3jSO~iPu4s((Q)hQPSpJ#gApi~NM`J(=QtBycv{8m&P(v)@ z@CR1ijkpbR_=qa-QM^Z1ydb~5F=run$?ju_$!ORRm-(In{{DSU3+BwhO zF*!)5ChwmiC4o+N5B{!k0cEKW5tX0_?F$XCD(xa!4JiUQN(05cKnDMELjPG8SKCvb zZi2Zqp4!<4A+f)HFlr^2i6K31m>Ke6QUyg!DFe)T&b{+Q>&kev`|9?r?FknE3X4Y! zbp>HbRiF*8O*^N`j=j-!AJJypi;QEtk<)!)k@$T=yVCu`JQfp*5HyheJXPZ#)C~Lf zf$wb$7vVH(sY-s$GkH)XS2vBrYa%f0n=UCTO5(6Gimw4TOuH2B&lX0o!%d25m=Yvi zr;SYkH}|S_(E1Z@n|82UK-z@ahc{$4=X>OSDE0bHPpD_-l+j`6<*f$<%)!E*&^vI# zLVVAAr9g6jo`U7QNj_^}$8oYWfpV!bKFv=~?d5iecdj$!0sC?( zs5JQw?W_Ix9m{awB;Cz$scx6femYN=I7AMSc@rXhTDtoF){Pv74S`bWlYUvi3Q!>B zP5F?T^XNmz)hpeMDJI#Lf|yb_gai-t2i668=Xcv<`^%I{zw7fz`C0TturaRI$q(tki@1`xbZg%LC8*%{y>3$4p6B1Gi{ZnJzcW;` zt()A8%W_#i^IN%lqm9Lc1ve*$pe5Y__wWDpU*9Z0Fe-On{q?F%;G#YqMd0?TMw?_VS0Y81NpA8R>*qh1IjKLjr^LRCu*{O0 z_mV!uKvs7{&c8c-yT<=!_QMw`EShx4%Bm3h-;15{w<@6rgG}M>nR8iY|D62$-0YlCw@oK359S0{H^~fu~cd9~K4!mP4Hwg8%qrp>vi7_~F20?N85kzCRyF z`P&Hy{D6Nv;a!TMiHURQQ9qSOS81sjf9nRRrl~ftFi<>|=4kP8wWM<9vux`xjfvQe z?~F|bA@-=>6Pity_j98jU7Ki4ez{fdFh#BV;*KYCf5hxipWNo_4xbc;-?tk6_YumC zr?-i$sbbkGyx%+VU;Y802K+V9%H73s^JmXruD`+`?r>e^strW} z`gNVI%2-1q3(wG#uVOaXq1QVV-{Ly7eu}~>@_L?md&#=FF8S|13%}N<1NIhM$*{^> zCMuYpEc*MS7Kj>MPAcCi=+|6;*T1%><3XHC`hWEd zQQBtu$i(kfC_Z*V??lqW8_pczpZaA;@P{B73)NxCOncT(C^+A7wdunRt4fA_Gez?L z>M;NYFN~8~y z-QV(y+2x`5eN}yqe&`ksWiHQin}l1`Da`mP&9! ze*y0VKIwv(!Y*wBv+jO}Ke#?EkfecVajl@NdA@|?ypzLP@#{5Sxx{bKi{k*nfGY6( z_deEi89yA;XR>$xSOa1w=Re&S8fxM-3rrRd!Of;l2FP?B+d6WNs zb)I?hw2&`zxRL_snzRpVBW$|o{mb{~Vmy9JCJSVjd6mxC>z!Xem_QW~4PST*l;qmY z{Eb4*zv?CFxi!3Wiy=;782w&XkXS|6?`Yh1c)%Lc(10>4`nVS9=8a~6{fS`e>dFT;P0wT5KT;#=LNVih`i(%)B&r>5E0b)rhX$rFLH7 zpQ&Io0DTUuBr<=*0gN~-UOO0OBL;fnV2$pCkiB6!Bhm8)mEVr05BC?{eHR12?S}s= zhwoUkhG37x_`8j#wb}s7K|enjAvwNkWM8@Fh~g@g^lZv z4diCZu?ztUa%~JkMM`^p7+02afh{8`+`oV*vwfE=zD#St5-m09*EoS>idXU%$kPRt zi3-$rKl!(){kXnMZ8f0$`KRmgeI9y&eY+dKpL~AY)V_Rj4YdqFpyDVlAlG@D9DZAB zA@Oi~G8Hifk`td|{dN4d{CV@DuO@lZXZK&WS5$U~Js z%9+wU^ZoXpte$*h3~ph|2PA>ckb9f^p4GqD;uwh*40!%A*shAC+4cErU{b0ao;vp!y+qh7p`R%jx{siJ?UXv$2?cGX_gam zA8HtJUcSypsd-WBl!U&A++hcqtu?TmpeNf15v;d3DbH=y>I);Ogla z14RJHrcOkQ;2d|htgP!mn#=kz2kh-%c^n4v`(?6cQa0-5JyKD@VGYTTxdP(*4>s3- zT`WagMAC$*VI)?g$V&F`s;M96E)!0Y0G>@XRP;v&XjFZn9SX0ID?)nxDS^+`7f~s$ zY0+1d#21_HeVTS``sVEc+$Rk@nl4xthK)^YHs1O-pqq(9GnGNhlGmv-H`l{#r-! zQ7-$}Tvsfoa#OM85WkNatxouR^da5NGc-K8!-3b3p};9x;)!`cNsA!S0=I!7RA;Hm zeppt2bVDJP;UivBNVQM3U-gUXfcAOs#aLbfC@r1{wX-;R@mg83Kl#!t3af?Bg|c3@ z?Aw8Gr%TI9prB@{+EhJSoiY@%zy6DO>63v4h48`+yb;gFenE?+0cm@U@utF- zB78-Ax>yp69oEil%TJQ6hGB!eB{Em2O;H&+fe+BI7DkjaNr!s;EVYYaVVL@ijJKJSd@+$2TKrcOBIntj6=mKW`FyNR^Mx8_KY~l(Mtw5 z|MeK$v#yTOUt7S*hXQQ!1OE{Sns}Ba1f8DETO|_%UdKDX{{p~K)EAl|?S5Z6_(Hzc z>?^jB{0-~w+qP7?d7D#dXyrUUpPP~p z_^C->#cb|hiiZ6O>8gq<%ih21h%V$?+|HvfwZ2ZoZ+$)30LN%C$dxZ&BXlUTO`OSX z6JKqznKi4j)t{uS4}0>L&pVUFZ1=MX8vDDm`tZayoC_?ci}JTtu2qTR^Ja}5A1Z!N zs8cTWC?yAf_V@(uZ@BOKH9@aRELI;+a$$Wd7T0_m;9Y(7rc614tTAAU+cRIWSt`x{ zeectWxD~n8&lNXIFV}yzmj?(vF`xuNu!*SUtPwruEIzw^#RMYA6$}Q_i}`&IUM?n= zAJV(BTbxq>#tK0a`2P5u+Q=ab?4Z9mS47`6sx%tMrB22we;b?5dxd*a$1mr;l9UUB;q9MwSksJvaY&DcOt%RI+4y`d*Clkp%PxAB$ z%*{t5O59<$E0gQn_1SJ8%W|-6VfayNW+u*EH*S#Bdm;6Rhx-*pB1-v^z~oyttStX0 zsI9+I8We}nxWuYXb>?@s^>XhI!eW+a(1WbC_G*@U_VMsevg&8ipP1mSz)bI$m(_9e zl|VYqzt{}fp#lXMy7;4vN*=QTVP{6tM5yCxY0JHvu2O$;PdCeYHlaI>df9^;%nmYl zftxb^mn421*AmGO=sW`g)1Hw5h~nGCtHIe@7wzA^d9?j6|8|V? zCDFtXykzV7uygo`{NvH1Lt3cvv{IfTj!p{$|NJ$pdE`Gjq2TZ;LDt{kZdSIZ`L(*Z z)&L10=S!6Cufzx_%ccipf9bO?(4M$;CSM4?Mdru3C~FDWzDxaJ93*%b=c1;iDm413 zT7MK`b(!+@-SPV>Fg5k@B`E31CiUu`PgP5cNg#Ngk2!Syx_0(;6=lv}>DUQ3 zH#ZL;F#VZ;VQp-f)7gf7$iF@%xN4M2jbF7Dy6xr#8j^Ma)winv0tU`h$clTzA zsn>}^MpxVkM)7qTPXC^ICXmtN;=fFFcj-6HM%YX~X6>0yl`mgs)#TDE8DG6xld2QV zM(?Ao$;v?W-Ac_LNz+IaWi-wHu#we2Vl_t7%-gXK)|hnRAWT-9XB|MAJc;bDXyp9( z%TzjoqEv-=ud-P+`S72czDj#aQD(2nAH6RNiLrAxyFGM67D~epfJ*kYrH(XAhV0?f z*$G=)ez5}U5`MCm%4_^&fjL8?v)-a_evHQQ>Luj3j%C=rXMBW}Q#GWePFXd)e(HDh zdZIL27H4c{=*eusx^wb9)gxR9-e-N*@zm(tnEfjK+b-^OiJz-`TtYMiFLUmBmAWEQ?qRZy&*CQ zL9sw7A2o3HWS21{e>@B*J(W2D>YpNOF5()40|}XN)e6uVqM7Q{N~xZkKFq=;3sv#I znTq;o+6$(!=-G*ZUTXl}5=o11lFhS?1$rqh_P#2%$s|@;l6Q$jS&DbFDwf>Z=UKZt z;_n-r=NVK}l0&|avKWeQ;~dm@RfQTug{mV8^O(`oHlqyI zLk$Rlxxr2lPTERroyp65l`-;o2N|ahP5u*H;C+lm6cvWw7SovW z7ORtY&mlqpKeW9Fdv8N0i(0?1VS~DSkXPPO(fNtt4^j$*trY4Bib2q+@J=?>VnsYL zY%<=VndYU|l1)jxgQs~bL@N|~5V?M}c=IC_JOKc=1p0%e`n@kBei8SD3*+{or$E;`sam*7G}r zk%zvLKCxuQ4Ea}?g;P6Xrk55#P2_jaC=b<^gFAqCtbAE|I_c+DHx5V+;*yQJlTgk^DJ7u}oW8@flC-IaXk3uyol2_m zAbZ&bfz?I-%%{`xDOK11cw_UkP&#Dcx-kF!UXuP@f6@is^>lw27oAc9#Am0Od=@G} z?=R%cu&tp}f;{Td!)5r6_4iZLYY!K)PX-BsM3R5v7=I3L$RoR9HSmDa1ZfY9LwFb! za4gtzCh2@Th-pkbgpHBASZA!bU(R7sz(GJR39)=kQM|$7_+F55Jw;QDGu0_@1`=dM zVrT54Hjwns`99VIn1dY{)Z@qZFW2}|4!gnY0*7eSJ(xZ6%jnq!?JKPz-PD`<;X)q{ zl5=|lp^Tfkp5yXA;#baPs9Br-&%mh6zWSI_ia&tj53w?CkLG5f#5hK-qc|97P>KN~@WU%FUVQp&yhoa5#IB4lV5qqqKo;^NrrOp7Cieal7=CgWJ;?$YYFX*t#S>$a%>{Bi{x5_qxJ)bNGFM`~EO{;o{6IpLz4% zF_KxO_9+%M6mH9I7Zr>4Ww#{!(@aqJ`PTXXT5I z`ihRb)UUXWWZ#d`&%c~^xX+Bf>~#Oh(-!G7YWexZ!OZIOg+s2@=bOLi`-)cU0DK2g zTsq<=kRTmNJ^6rg)(_riGqkf(O-5!>{$)Z<7!#LqWRhZvZN7kh_YX1i?mp^D+4mRU ztfus4Wo>q6hpHnUNAl7wzg?4E#p^kvA2_1&@8>_HtZB3PO%#lPK<6>j2NdcDMq0m5 zGHzEg-CGg~D~RnNo}z05p1UUt*|~&mb3v~N=w3GYG&fv-AIc@{91fwpNV&2&1uX#9 zH9qX5bp!ni>;+3~pIM#Ud_QtJ)%bqqb=vjS<;AmSQ7|zK=uPGsT*OLE14R<-S6lM^8{(c)rY2at> z3-1{si9fft!o+Q1Ig=AlW!yIpj*chVO*10cl-*@}J=9tlaD}7Z9hIMpveDT7B=xjH zduX-f<2FBDJ!fCsjQW`m-MV=e=gQPKhk0>B2L#IU!`h~-yooU>bhzi%6XoI81KY+v zHw>PAk&XEYM~wWRw_GsOc|Xs*e==^~_|Y+WZuNPDy61NrCnTd#oVHpyX(&2UA3GLs z1TM>BL!2Pk)A~zdLQ64;sOTED>f*MVd!UF$yTpiBgMGMt*H(dqDfdffDsfHadY={! zhN)J&YGb@IZUJc4^`BM}DzS~V0ds1nAcu6NrA_nHzculR9WBN47Xz2h^{Kp{S=O`c z7vCkk1nCayJqq3x3SQ^*bcy-!wWXh?S>i-Mh!&2tHP#J&t+<}tQ*x(qJJ?#tABoV; zZI^yQ`wL>{UFoDA*B0)V6(-_~r1H^}@%+khESz)N!*_EovDEFfFCXlu;Hfu6EnE)% z)z4>pAm?c{V4vEvxRH{}Kub2e?m)=MO$BICRE!3O$MHG^qj%hlr@anX$?IfW<8gT zXp2aRcL4f+(TtRBXW8N}ipm zp?r+9mV8?xNC5AQe5X;k<8N~EzMwee*4}QMO)R!+Z8sqNcnX^a+G9}^MgmlVem6}9 zKG<#QtaE*+_)M0o6dreWZ*09fZ|xhL>-Bdaq#K9KIc=dWx$f2GZDV$`8K?mOtiRzx z;HRqf7}{cDy#94V;z32pFcGsc7R$q=Da{*cu*L%c#7PQ}Gn``9KR~WMT<U6_9l>o<)b_7LHo>*2!mOOp9i(DLeXrI2zu$4R6kS+Bomn+?Ivm`weV3AE+A7Zz zBP>kGsppur>L{sy);${Hzu6akq!V+H{B!iGD7U4;8=F*>a`k1$)6xKWwL4;W^j5>~ z9loIVL6+8a2QcUxQ-x75pLpGdoHaW=-Migx9bE3z9}3rmiz?}V)j{uzi_x(2L1F>E z$~5*!74!lJ7bC2LVl=?!yO^-6`h~7@!GrnjrXnV!CGgDFs$6inQuH{)aKN2u`fuo` z1*#U^obt!q-{ab}`&*J?Lo;zJChS`xd;ydQ$&p=Um_SLWMgG}TBYL%0*&Ra!vp%m_ zKTr?c5^MPs8!_`@1X`t>U!V0ybB?XcH8k~kVw?@zuqwB0v>;2|T#w#E{EF0xLB>1P zbH)|904NZX`9@w#%VBe>fU;~)y_5&-{qJ?J(u)BM<)hq1He~>mkn~iD8E8o?D7`P* zm%-i0c4F3^hF$Qt-EueWNDPj+{4X&L&horoCue~&@jO#Tem}N>8x7`*Vtgj2Ysntp2lMS~q&t;Eydf4Q4#uKxGEzsHL~3%T(jtvln&c_Ua%GxcuS_@U z&}z0uoraDU)3MnRHk{Vxi0$Uf%qmERpTa1L_zt){Ow@ajv;K4t3sGFJ8C}iC?12>E zHR?du?7=zAevX$Dxf}psSM)Flocw~jVI&rN0D!hG{%OWptg2=R9RZ#xP@kF3Ht+)> z#ror(80PH6lL+~y3XdzRe@ijxrgSaW@B3rEeI*$gsJ0Yn#f_~LDdat1 zr1W;I)xi*1L-D`i_!0DDvvi384L%>O)FG#!TFn6niu`kowNbl|u*57D0Mx-7LF_irXo+J|jpgLj%!ZrRmiaO6h zQRgxwcg$9~*;BoU?UTtpz;q_yriheoJFT0odf2otC}RB-`%LpP(E;NHCPMJx$E+YSGl0t$Ix`-agXCqOXOFXPVwjFn{b1 z7y0Xogs`iKSVUSZ5=pt=pkJW289(Y!AegPn?2MI=uwdE1sKKr@M(`-hsM2Q}xmv4O z{|Iy*p-fZTzSjOhPP5`fu?%+JO!{g_i^Ne2l z+i2VJCh{G)fp+xu*gLrujOVsFhk{(UE~0z-DD^^!|Ao;1%;g;>dM+@!M>U#@@tXh! z7l4iev1b#Xlj)50FY0ccpBNro5-OtEBr8&h)+P}o@(DnYmWv`&wxJ`M>BnZ*k$%{K zVicN9%+zzW0E%YLO7;O@N_li~#BO%W@(nUx4370biUE#vEn|H`q5>8A70|0F zt^^?{xWtPWu;TS9Kn^3}y!i&HZjYoCgs#RmE_Yz{@_v--n}DF>i}zgw0Jxq{Mf#UE zOt~0obn_L&Ou+OZm9*xwXQhIDldMLib;=ACqIsN1 zSWvNyQGjp-`imuJb_m(ti(r^qqfFCgK_hBXWE(mLgE;81vz{T+B;~EZ1oNhpMWOTI zL%19a_%J*RDW)$?Fq_%2q&?p})l0mU1f!E=rZdx#wE0nJR^S@6#yLHC39@$Q`%gi` zth-_5bN_^BwGb__zQx-9GOZ5f+;w0#6FOOSUFOvD+oJtH;^9SYGq))lXFbclE6=qIeRj4=OgWDIP=!V0D!Za-O9Mj zdBiWj%j|Fb7Vg<3#N0 z`4r&(WgE3%fA222pL`|yF3!RP7%QxPc4A}yg}m+#?e06=F}uj#imn;xUyiM48l-W` zOq8CgQrjI!?19^@_~k$N#_Aiu_*KDWzUBU9z6LC(nlSil;8DCBVmUJCtU&UvAZWlb zxD=U3Qz3~jz%fjNHmKF z08RQ7$t8FD3w^7wPf;bDM@xJa#zLdgC`7vSV!T%oSY)n2fl8!V1&uW_oyH)YNi-lm zE0ymb z>-v2G16eE^X$LTdz%_6y%$}*jdiXR-bo!*X)$!`dzEYzcZd1D=rdpo`3wj1yqr#Dt zizVa&?4w&nkVKtJtDd5t&LP$*Mi}^wf2?tRQgPs?p%U|OFmi3E(0`nkp*$OP{s5fA ztRxn<^0}-31M*veLf^suQr|MYLY;#~jm*{0f*Q+&VFz!XG7)L=(+q6sj=G7t$|QLu zDySX`gCGbRA;0^+|_Y|I_RWN;lj`(pgN{W};#pznYg#!Myafx+kplV~1hsSN-C z0iyCMwM1FW3M5bt3@5rw$DtM>Q>>psXk0lCeuNo*coU7O`Y{YPg_+1%ORJut=!o9` zMjxPU4K6kh0caY{QlpAe1uCU3kZ&HYBq^^(8F52!ZYwC_blRo%Rks9|8Di5$wMv-; zW^ygh{rdWgCQWrBZ=V%AbmcOBKLO7tiutZfF97y;Vzo2`>--Ez0lSlT5&qME|8VT= z8+35VSO+OU?;#sgQxuND8i4@NrC)P+kpDJKZj~l0&4{NpNm=lZk3=5a5S%waxJx?V-!Sa^{}!%u?Z(vAVvnK}%#|!WI}-*X zw>%pH=Mm!x!$imOCNRB83@VLACPUC=+5_kJ#ra|mxmqncbaEZv2o+X` z`)7p?gJM;}0mc+LcI#$29cOw^)a~(@4#!xkaEu)+0%(SCpxGNa{KqT-I|r8@_|c8{ z@fE_=8N{qeg(s0M>N7;EdJ^5ptMQu5W}Jb(1FjzENTTTofGY~pLXRjrAc&l$tkXNJg&uLCI99kWgv z%D|FZug<}{J7WN_OUaP8ARN5}R{C6{PMZqmj~1OZDM2a`aU+P>|FA|Lr`N!uho=tA z{w1yxm8PW(Q%+MGr z)yq@We3^Z>w}-)`N`F&wa5o5X;~s`#X7>Y=Q-um+J007Ivx{ejfKu_g6vVA~xWFxT zj*R5-H~0Gg!@b)%alUt-lEq#&4Ir+CIeVHMT8-mkyf*{?8|Cqdr{OiXK%x4m7W*1x zfGGpO9PV>if&bdQjJT|vD%H{Pf);nPC(i#j{`|dT<=&hf1cTYCp4PCJC?(=O zG$9Feu!!5-(w~q4=JW@X#(^ad;;b)VHXa9NjRB2xw!fj%iH0PLEB(SH%}%JLLT3j= zdV8|~Q$NuMfl01h;3>#*PKGm?mi#KHjTRB=P7-S9Alw5*|AEIo9|2i3K`a&#MjC}& zR&kfCK48`fV9h4j3S;ozK&X^{!k}b69mCS>pg}#%+B&ASQGe6EASmjE?ZNW*o+8s3 z-O=%CCD>ksYtu-jLCURl8M`+iak|unYoCwSf8-Yqz|7-rXLc(azc3h?j4}xZ+CoT! z!-P~w7klTmidi23^SSEKL?%-t%xc>qtZ3l>SBuZl08PR9sSYtiCkgMfWsWJVeHyX7 zf9!@__ae*oDsnl+8Qdu13-l`l5fKat;!=!DFM8Zq$jWeZ4bEW)l*ohm47P8g!pUx8 zW)62yKeG9k-U}lm_T!t;j zdwC#kjn^5ETR(h`%Q{|y`Aj< diff --git a/retroshare-gui/src/gui/Posted/images/new_24.png b/retroshare-gui/src/gui/Posted/images/new_24.png deleted file mode 100644 index 93cafc107a8769166eb2e4f6c5fbbaa79f7ed966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1534 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 JPDHLkV1jMRKTH4s diff --git a/retroshare-gui/src/gui/Posted/images/new_48.png b/retroshare-gui/src/gui/Posted/images/new_48.png deleted file mode 100644 index fad00e9dee8f9646afabdfd5d9e7f12c4a3275b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4250 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 diff --git a/retroshare-gui/src/gui/Posted/images/new_64.png b/retroshare-gui/src/gui/Posted/images/new_64.png deleted file mode 100644 index 2325bf8fa67d3770dc6a78a548e5bff95a9d51b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6579 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 lf`;u6vhDTF{=am4{|lS}h5Qhdi7g z@lL&}%B;%DjC12FKB?Ef znN2p!1>An{_DwlXl%${%MS#|VLZZ+VLUd z5mW&U22qVqc#+De8gBxs>Jc$Y(4avTQ4`Q09t91-2en2BB31)F`-6}D;YZHcviDPe z@MC|tN!S16woS7DA%x936j2Fi#^`Wc^G-uR1qcCSnwo2CFh_{}=hqc*MotAasnBCU%aTz-%%?!JPSZDBBA1%qO6hzLeatq2A+g00QF z5r>#);jK6VN@8uaFe(@W5)5J>{sUvch|ryw=6xS~Up{~P{AZT-t~@E%{;g=6rT~>z zn{}wiY_+E*ATx>hvyLtwMNyI@X*@SpEMiPO<^_vEM6hCN|85WggGB(bLJ|yWKvXbB zqKmPLNIV8WP-UXk zVocDClmKBUctMzGO>+PI{ak(hHQ>0M4rEFCq+I*AqJ7(0fS?foT8xO1mmXU`M&IXT zE+e3*@n}#~bSU_sQQ$+tBheyAJ?h8YL<|v|5U>_}tpJFSxfY+e>K~|<%L?IgRB$$X zQm*}5(Z2mGKojeWOs0}O^XS@9az7w(30|u@MAV_sjl_r6ra$1Z>PDtt$NamP4Z^m4>^DICegl%{=zAq3-8ms1lK|bglSv`U=79RpC zQOJ$3RTNbn3cDHg5YM%71I=H96B>n(P`{Q4Iy>D7K5_LwP%PyD|AOLCNbGl907WPs z_je+iAAdF4GTORvo2l6xHRgrhdluG?M&d|4p%#Ag*ZBV-0IXerMrS|#3<{A!Utpc(%mC>TXBsiMz6vVMfV<~X8HH(G~)4FJ?JWvB(-2)Xh7L!$Y_ z_l<1|;GCnV`uzR1pM(tX^a<>XA5n~a2Ln)rZw(PNE|frk0D^g1SyeMf*N%c#1XUo$ z>>mFxzaJ!Q6uQLY4M)3PkO zNikv)5q;6o)dhSg2*y%S4t;;nIPyn1J{ekrp(Pl@1LLp9&3_<}h{Iap(>HxKj{XGb zQDC?Mp$-pY{lK?t+cX8}X>U`G(+K>;V2}VRkV>*wg6ufnU!baEf@bVD!r!0>HOe0f zzBd1`(e!V4Uk9IQl5+R_Jv{ip{m`jT#d8-4{pRc>fhU>=)1X{-*IHEVCjIRLFMGz! z6FcA&Xq(3al#ibW08R}3H|$ViMNW*i1ZNB-JkN*9Evy|yFjOJb`tfk#kMjZJR-kbQ zC%T29RZsyHTsz})w|+kUe$!K)FATAOg|ZSpcx|7*`prA)8ir`M40Z7e9v=+Wg!)`O2bUk@ z?)&bBHnAcs2OM8!9P~M%)i$IPt{%p<3WOS4gczi5M2gL88NYggU=m}%5W|{i^x_)@ zE5by!xtzo1MFHkp7X>ucMuFgrnv0M1k1+5#sS}*a1_0Qwf8$ZWc>Eti7!pJ$CVd(Z zhziy?F1zCjf)A1TgQ$s)FOfqN`H2Q7JWUl75Jzoe+9W&@@M$FJ0Ec3uLTCU=BEnQVQ!b#Y^+7f7h%w-(wALI6iZi~KOh~f$yz_Ch?m`>0-0;uvhRvTeA7dAq$ zCpNEhrxH2MFbh|MtMYyQT4e4_;DMzAL;!;x<^KBq~_6?a@omHQ}$#voUG zk&JREx=`mTY<==gJz-O58#R~_kcmG-v?(dj6=56DHHLMAOjp7)@p=`?by_Qm7`#?W zYK58f|40j*6IQ2Q5~`W z8)ARPeE%2#Z1Mpc*gg$IplFR@xwp(s58V_+WQn6a0G6*Z01AdKK&?fqa^$U*n4Cf( zgcIESP<18|wu-Xd2-{jBp~Sp+;KOhFN+%5D4qj#8GLN=Ua#anfg~`_DR`PGs(S)CV z`CIt(?SIGq<^81Q8!M0ysZp*FO?)H#So@6xkPz@ObLTY33s(n=_`38<2}7|D2_M<$ z`!^_oj#0ldGX3Mq&^D9YaNs8LwLF5qQ1{Y+fN(j6@rVFPd>p5BUSRk?)~q#e1i=9* z!lb}9V7Iff(>ckipfB&|;fI3vX39B^^#@sE-9NM~XNq!Ml{6Ug38zeKa@t|j)M?M; zQ+VY$Kgyro@;>^NVzfT=$-=zxkv>e?)ZtFOO#v(fQy}6AMVL|RpT1lyQ&N(WB6y+^ zZeVjjRY6qUSW948Pht{Be*sR4}^Y_wU zAH<#s#B;BJf~ye*tU#@I(c+sxXjg1NI5Gq=Mg*fU0Za?*uy96dq^pLlYo-3|>Ol8y z?Jr|b6!;<&`Vf}7@Vi6h=I20%HvaeY9 z$Yjg3SA)yH_ut4%8^|CSI>? zWL>UZSNp_SA0%m<;E`q+W6TSCp+{kJEH)~Dm?-! zftKxZ|KfgDmX@P{8>LjDNeO&~f{md}0Bk_)SS~=3nr%vnCV#7eQ>>BQ&M`sYg{%GW zBVKXm?Mf(1xcz8Ol2}?cl17z{u{adz}4vBI8KrX_@Gt>jeat+pY@lcZb%L6@X@!2c1k5oCYa~0 zmn+mcShPXf^{ChSxlnL5rcjNPt2x2kH!R?|H83`C_pw`}*rHCvb9I1c6~}F)43$Ex zC7F9I;sb;dj5JDPiT=K;!ggoakQh;YH~i+J`~7xC3YU!rBxAzF|8NF4&2I)Wb-Xegp!8#f@3 zRpm=H1gXk35K}8bJ<5TGNs4YbK8K-Yh`ZxN;f;kKLw8^@?mKeb(DmSHn7>HM8m=ZI z=L;Z*GSc(E7krKn6*E8f!T6(sLumn9jIhfD_GFH^#MnJ6MfKCm>tV;)+Y+{S9XA}z z8I+#MBqqB8f)NGdAb7mQ{@dEMTzT6nr(Uv!xBcK=-v5#NU(|of)c@5n{QgwSa_#ZL zJntv33D^9^69R@X9c(YZM{?Xh76$zyyMjTF2^Ok)taMBi64G zenLzD318z7uq~r?{%Z+kAF7I(SAC!f5*^T1VXFwcjFG(^$E3ouj+g$&`?ndKu**4iw~(n)iYn9@u?XLdEk!y zYqYK4>e=gf$eH-7NBPe^8)>jF-qhgKZV+I=x+?>nFWe9eC(ov3pr4Qtv^s-fQQAWMa_rgyTl zvkh^RyTs>Hc^DAzQFtPav#7z~xHV`Z32NmC!y?hfA{dPfoh4~w~?GVpy1>;8o^ZOeH(6ZReV>|d>z z$V_BBn||^ELO|LMl2BX5cqx$wQB;JvPQw1xoOj)j@u$D~9Nzrvm$@TH(?dJA+c{?2 z{&nY)%?Z}zu|5dj#@ztGbT-AWzv$=Kb>@9sf9wWQ6HT!(V2nhzq}Kc* z7nT;F3eaCuifa93B5DfFamL^^j0t>{J!%vo)&Vq2#x%gRs`p2F-V-n?v{U8Yg@*{< z$DSBZMm2}`Tth-pRyRX$!0b7HZ&ke^X7Q#C?68JCiDg?VoVs4>8&>;z?yhOa8FP-C z4i~H!flg!->yBb%VS)i;kzgYMHe@9jD&ar^yQUlm4zKW@ozwiMU;ZwB;rB0}I+AYx ztDRlm6t=kH)`RQzmiyQIGftm;Tr%5q7qIcgsBL#=@dE!_{L$xL&LH%$#u5T?BBwUh zGvG4E>04*$*p!*>q)^KX-WX38_St<0#*9*3s zy)|K~ZMg1WNl{j0&O}S6qu)_#?ZhKlC!W-Z%Nn^ONfGZ+3#Uw4uD)T7XT7q^FTeRb z-t*_TzH#}yZC}is`ExUqB^UhM)xP@7_dG6{ZTccnMjj!yH1OQB&f=rL@bCHChkh3= z)-krucUmy@2wCqXEF8%h@H| zl)QqkA1KJI(n>AblywY^R>O=1Vg|Zql|)7}ksCW8C5R=6AO^Nf34i`C1K#zT(|Fas z<9y~T%O6P2>3(`<(jGiM?ONx*^{T;5|MmIbu)H=`0TjeOGP#g2!))=x+;qb&+<5o@ zz?z!*4bdHn5jtHsV>`@tEXZIo;HLuRs5VL%317!7z)%^0+Jpv13K8l7=R;g6C@*>( zUOQNu9T?WLj03@(RY~oE_LjFeJ&MAK*}t(iW%u&xy>H^er`}3`+jWs| zsUcOhma=qk1|I^0o*@kM)dD6MhlYSiiE4BMMxh#a0gMB`7+b4G!AIdoK;?miHcNwr zsC?tvI_~=wP`NIhdD$S{a`6NVy2i+E1G`cyI}&00pwjPO&h@!-ZOd76j{6oXj;;Hl z@JAgp{<;AsRb&v;Ry6;?40TUyOAxQhZXj5^5w=Xi{?&q?x;f)RzjHA^_A{SN56@?J z@7&%xb7o7sy77UPv_J4gyY<+a!_8#^H6r;(lD`5~VM*_OCFv)B6aL{W_&Dg_g8nt= z7ld%c;+I>5fJrQ`wob4Dsl+-x5eO9I(y)IaBK`W&uzji(fs&wA1c3xX?jwohN*0R6 zQF+EV>nFsKSPE3`vZ>SGYt@7~fm4lX~&e;NOw|IvvV0n#xGFme$AVb=s)b+dBAQ)l?)pM479j)h+=2E4SpwG)`m z+86))m5(X5&2s^D_~*4=So4vZkDu}OG!`a)hO2fhaL?rbL`#^-m9rAVv`y)#Z&@)j z-Y7y**T+{#sK`aAd_iTDvZ@H)Q&gVDRg^`Eh@%X3Tv`c1Kr5k@wm3XkCRmV4N3<{0 zpur+(24%?GJAeLw(bm(fS>Ka7nNoPsYA<}hDCyH?6M9~`alw|E0H$-zgB8nv!uh-Nk@Gh1gwLd0w4M+yyx{#;Wc+I%csA5{Bt{=H9IG> z?bWLm2FZ(m@tX4T_dPOIys0iA_!`ka%26A9V1VgEr!oD%FQoW)ry;-J=Jb6#u!}-s z6I#Z;I8Cih6Gz%IbW%r_39e;HTuEYM^)D%Sr+8=RSDy9CvsPJ_E2W=9uT=WMlMCc7 zu%zoqB_zgR6T!A>f13!B8b}gEGQ@3rpgr^I*-ZMoTUMt_l^_Fn|0Z4z90oc=-@Vmlj#5!c_`l!zVt)Ls|2#E+B>njI9h0wP%Rn#Nw{)U28n#VS043(K z#XY(U(E9wNIqXV8`qjE1Kck0dG0Le@h85B)#2GSpKD zM8Qa{AGLd_l|>b1J8Br>7j z(=o|TF$7nMlu6~aOoBBgsAS?w7YJDZO@Pt_tHBy;O1vj727r<;Nvgqs zJQNbjwNMpeD{qWvGNH4#t;zX2vi7;tSu!KZmhYRWH2aCXD&6jm!H6)w9%~UrBoY@| z$N5T(fg1&AV*e0otfxalBJK~U_qgdU(uxHLVg<1#`cG@>_i?pTtkl~KV&XGakfbSI zsH@il94O)EFM-a-?&eQEbeo@j&dz6pzj=8+PhWHPRPl*-UAValkoPKZ(C?QVIJm@h zH#&Ad!?N1~28!UZDyXkwK0Z+%S_)K01HpQ%cziB|B0>6H9$35|)jt2Nc%7C1sX zRK%5W{-mmUD$%S&`a!JSO1k0*2|-Y?l2WAuWHHgyS5hSz`T7z;a~b5N`c>7QHO5SK zj8478*vXf7Wa8P|CEImsYTKtcA;Y#`*(<{9RR?Bg$5903SYJsbL>JeP3-wH*I@LI) z5F@ZRQi%B6>=(dHcWPla!j&3C3C2ZbX!bKy2-)zR@p%W9Sd4QF_`Qn)SHAlyK6&j@ zfBQLGx8{SQzrIwM@7vY!AN#WrQ}|6Qz|!&nC2-(iVfP(cIDNL|wub`sE)&Gp)Vo*F zvI>Q9fX}RYO%$J_LDUm+JLroqD=kCMRQnJ0^~ljx)Usv#p}i5|P46V&fPvMvborj4y(i z;PJtj5DH&;Yw+OlI*}%F>z&7Ct>-lnN4`=?VKo%%BITe@QIxW@9?IVS>FzCSU(fG& z{o5graer-H2_;AlvJS>Rjp>U%gVk*~=ZyCv)~~jaFztiiA;OskCKAKkdZoWwlwtQ& zYM5(T<_Ahq`3RKsWD2lR;M#r)-2-*v3m=foVkbHe6a4UXGwO{UjeaXbt02}u zW=56EW6c1^2C(x~_>E+ZxBv2GlrydO&rP@AvAEc`uRnXH{F^_z@S9VBD!{&dYq&(X z{IW&KlZA8dx@+y)Yp&lvF_E?qQ&;T@*xK~jP!ZH(6mktXN_=S$Ezn??Xd50pxXex0 z?*mC=mav|G7t{g;8ayPE#RV5WV>Y>GPyecyy+HL$g;WqTOV+-GiHRR2$({>Z-y48k zgmNu09)qQYu+50s9Rj;smR2zOw4%^=^eb9h+Ctk}juf6MD9Mnz)sX--hB0ya*9poI zpx!yA9OK`QpvO$4n2A_{+W7vVV8_jTZ5_nfG5>Fd%J67yegH3dCcNy9L;U(5f0gu% zZEv1P?MIgv2KGnJn5;hXAD{okqW}%cdQp&8%F&f|G~)$#+_N~buu!r#;n6CZC^d@n z8o7J%I0O?s8i>y#;45rUf~MSX-C@e2$>WU^DFu7O3{CJ*V{M2HPjGiBc{u?|n_Hk1ufW|6-8k#sp1TtK#x?b1* zg!U*27vjfvX7I&ZVeW!m{QM6+l@I*wJs(cb+H&<&H@oj|ZeElR4J!Sn!oambiA{vH z!J4I%=N?}6q*HC2bx0DxdhmjAF-4Q&P>Ix=tpKqYuTpqLDm9b{ zbJ~atS1cVpUJ))3?z>(k`wH3Qt#qGyE|Zfl#0MySz>wptYEVs0UAbc|d!1)TrP!l= z-p~)cqMHPEw^G)yEcGf9qo9Hx59u~a^n~YHY$saN6F=H0htXl~VLbEK@cm-Ogxll? zbUZZVvE<)Owqm=$$8LjPd&ASYbl>sh^Ea+tJ$pvyH0iqD%xgdY1QbAFeXZiE>yOh) z9HD>}U$$LoU);|Jq*)fHW{DudBJ~ZKK;q&IY7wuf1SFU^!OJL>vD|(CL1J~riTrHS zDiEXU%w@0>II8sCh~A-;X`8k7(;4jgA{tiMy7iOdwJ+ea#G0-R?8$^v@;+PpB{Oc) z{Op;tdhTp0EUqWa2Tz_?W0QV#^i+@b4eqijJlr7j(VGo?K-^FtCm_}#F4jQ~1z!tn zDA_UAZ$okj>Y9N^(0~&tADh6|65h8@_}yQ+m?M99`RpwV)!)p`WUpEDB9C7IL@7eW z(O!>M=D7B&iy|#Mb9k{leJv!+7>5^)wYzE&JZQb@iK$oSupy>DC4d^*nPF+MV0p2C zG>HMNKiR5d0n)6ZEWd`7;Ew@+2uV(D6y{#}LUh|9QiA&EF*_!(EveY6eWudD z>94%V{bGC4%-*)IU|$awgQvsK#u-K=@6#QtfPr)@xBoWQctUDY*?i376=e|pUEJ_nUem>ueY1Z(ZYuo;gj*8GQV@ zBftI8uN-;*<5GYkz@00e%kNVvH;WBQGVP5N`rQvMmy#tJrHwWIP}liOvlv65snaoP zK|;g@iJ{jEEX?S|q=$~iZ&;03)bB{{_ z5{1rDa9=NJXDR<&DBYvEt+s^kS?UG4S&Em~adFmnJ?bTzuDJewh&Or+ARdw##~rsE zLyd*hK;<89LK}A=28>(<-HQA}z}I7!DQLbQ8C-zLbIPEC#}Kdtj1~kfwO8blR(Bd& zdzI`wka7jd9Qo}El@jk47}ppJ#A~1lMNN!Kyn^^Jv}$FRvUF!jakub_*G+QjQ!Q8R z%Q>{<@xGCK!w=MX93!AI1beXpXv`fLL$6=Zz3%{@_|>QJrE8Dy8=t`L1k#{_RK8xXLct>%G_E;PA+`$ER5lZ(w0!S6Hmj1!xyyBcLnJQbSvs5TUV7T&i2@9rwqbhf zHj4H%ixv)b4{2JNa~@jiWx-^WVq!M17J6I&v00TPuC`!m;1>|4ItlkYcpM6W$xf7f zUXK`Q{I15L$-;wkE7lUzHYV8(elt&_>l>9geQFrojZ+@`JW7GY`4GpM4_ zH~RFb1(ClehIV6!Um9Ov48aOrN(O0*SHAa-PaRw?-&Ua^bH;>HKz)ei%pwqc71W@3 zP{kvP1gL_d#)@K5FHjh-W!swSEw4KxeE5okeE9SG&0{NoLg54VKCsN+{nG(Hf7M~K z9c`?IU1vPk43-vNfB)hdEti6+)3c_Y|F5)H!~bsttiUc9wr(cnuz`_|W~#FD$Bj?$V5NOc+U2|;snFzVT-0oA5>%jQvQl)gH6ml=~K{J5*$$(greb2t}*W_2`CUY&?0uAbH_=>x*}*3?eT0v)_n| zOMF8L;7rBDy3hh9rgrL7MyXiDxEL z_U8rU6->H_{B2#Hs~YX0W%ODUtgK=Dovh~ddUB_Y_3W4geIUQ)4wCbphFH(>KYgR3 z{TL9JN(hzieaV@ed+AfSc<#Gcecpn8^aCH^&<78|DFJ*f~?Jz7J z?_Ft~jcF%AE3Z&_{^w7fLtc6YWuPd7mZc{z1HK|Ydrzp8qJj`S!3Pb4z3&YOoW!Pam~NHVq0Q_ z?On@}_2~bl7W&5fXi2=DF)m+fyRTzhKnT#rBQ~W!sIE1!ph-*!npxqJr_S<&FWUBK zVtZWeQ5C>inA{3;vxd(0gyQQNy?eUMABWj93)6p)H!m($OwKv_J~~dN7P<(c^*SAa z7&iy#WXjPVXx~6LgEAi*?OH2DbNhFqWk?iExDG$HNVqe=v&K$+jH$yCXLR0AbP*44 z0f(X zN4aZ0CVTn;(j!~Mg~3xp+o7o?6t!Q|5TSOB{1K_wK?npfWD^PZK6n_qZEzlf9SOP_ z{f3w>wY3Y-0GO+BLFiuroNU6wNdeu%TBt&tVy=o*8mn&}r58j!8gGbY0Vjr*h_sCn zS9rFUUXwl37B$LB9^&Mfao^t@$4Jc)k0{^)_jw z`0+Xx>eYg`W@HVtE|L@mIC~@cdWrr%!@7WBCgdpakHFt>(h`~RR&z=aGnT0{ac1(# zS~gKr(F(N-5NL_eb_Taz==L(ej;rZ05%I#jDAy`sgZwkGwad&*w=Oa#A=V$ zgysGNz1tFJ`a>gvfOvAVx%X&(Om&hr6x%b7@5-15Yzp05Dp^_2-_$DuI@6+O6vbdA zAeErjL^nV~n;OJtv?f#b?Oy@sVy!^1F*j~ay-lpTM6i!PB{I9 zX!h$RvjWd?^+i7p1dJ| zU<}iY;hE;RjDtaj;9aedRTXLCSXnK;R#U}Iz6VuHnLoCbdpzwC6(D$JWwGS0eSIE0 zP!X2FN{Xq3`LlLmmTvsH-r@|l4HW@na?c(O^u(V_s!5PT%GHYmbsS^lVboU z&=R!mL{fptywcgs30o#C_bo;Rh(EHC{v8&1Ho_ho_zFWy;44qNDk;SIDzENH5`#8C zLIDZn)sut)j1_35JXknxoiABh9x%uUEcGj9_oQZhW%fcci_hZd4*`r(9G+m6)EUI) z*h(3Mloo*%9l(wxn*Q9x^dc$9pw@8{pM%7aZ<;KfUc>6nocwNuUm=cqPvm`<9^VzK z#%x+$uo>?ze)5k7rKY5Z^N2GHEo(@8V6O5yG26Bz7M4!{fa3&EQ|hh6-`hX{4XuEn zg|amjme>5DpnA)Olc^(x;+w4EKCwNj3vfw}om}RyUE*L_qB05Iu(G&leAaSUg+7Fp z01WV}fpTR417)yY!Jr4E&|jyg74#Kc32hTY1E(=H>dLrCl9)POR=a>Cg>t0?xt`2; z1_R)=z;(clPw0Y8P}E1JGGdg`okTZYyn|5HOlBPc2$_SnGh$1x+Y68E=thjwE5-;Q z-AE$E(La_R9>G3_Fwh89uTQt*IJA=Qv&hkh$vPM+{|MUp1lyyBfhHqOw&T+6l&K;q zP|f3W`%21ygo@Lq9eZ{=w#~LUD>ZE0)@9p-VeeE<<|eQ$XcIV^4_NM{tgaM1w9x11 zYR*IR0~QYtIB=}P!J{h-)_hb9Q(J-(K>JvCCwbrF-$$hDp5PtI03RZ6;Oih=XeMEv z(5hJ3vE>i%mb#x3fwmDcD9x7*sc$%q=Nncahqp_LxyXwlZMi-eb52t5}5d%)Ri1ug!7W0hpemD*7N9 zT9(i&pfq?hsMltx;w|#lLL_r+0Bu3Gu1H3;E`n4_Sw*G@9|?qjp;D#n2deb)*7QX0 zFFy8GooT&-Ucb+v=yUVn7JB`4@`rNDennY%@Sd^=m=e5?NvT2$?q?q%_+e*necCoc zp%kH@Wm;nt`iX6*9!_co&>9kjsnY9oClMxF!h0p<*ph)~m9*HA^hIk6kGIZ9okZhoDJ09__LlOsYyT?;=YNff znPXCl$C5!|GK2Wct0|JiNLA)l)oQ2hqEO>Pkylo2kS;!7H6lmzWprVmadt_tIZoQf zCe9dZur@QI)=b*Lo~O?I{TqJhtnB%hwv(Ceh1O#g4d#OKnLKd(fLUE$l7a7qTtX65 zg?{j%^fpM$lCFg{&g1D+Qh|q{fnu#7@8#jzqu1tJ@7&rO6oW^IABPH%BD9RqNer$E zy1l40J9WlkO$`9+2?U{;E>=Gzu|vh%um*q`p?{3v^NKAU$7-+IFDiGR6zd6Sc+y;e zK&M0dxzD7tayFf7j?-INhkyDq?8!gG-b?-)oi(Fn@Du^2G8rt^^R=y4yoJo_dSwN- zCKP?Vq;O2&{uQy4-SFps_k+)S<0Vi3T+pzfLGutQ=M_SzDjy3p#JTF_VxXe(E35sW zUcHD36Jau}Ev&Qd`-EV<29Nhe2*I1uRH3RWO7As13Wf3!n;vl5o!f(#vmT>Z*f;2{_{%%f2hm4Xk`Z;rzhU zT9M-X(*43ywkwY4sx5HevP4xUuGrYFl!0e@_Z{;7kH1!4^Q_MAd~W_PC;B}*VZ`E6 ziwTwlgW4410|Z;I@n`F5TT9n<`Rc(d_{`n^NMc>w@8dm$L-2T2LQs4d(Y_j#5W?^| zgurw*ecvv>D;-=k5Z-bkkF0Ec*S)6hqf~^<7|9H@%SyKk%C0HP(!i6KTBi#(rhmnN zI61+^$WZppe>Fl{m9(b}E33uTW{dzjQ6|k=hnv+NSph_F?UeJMe+KQ@8QjDz{KKan zzyvBKPh;oxc+ z0U$MQ9M=HrBE<_J2Cca*>I|T1;{Tvzc}Yc!d{EtH%?2)UgG|DcW&uXO$vNlF@<)Gi z34in_&EkV^0xAw3xQ_RK;Q!?#ANeeV`!{~E#$0Ed4zKwB=kTJ}y_}g{Jq82AtyzcT zcg{~&q-~hYCi(h-YdEq#&+J4SklOFYQ6Fj{ zX#Lu2h%<&Y#_7WpZJ=1I)^1-ux}1l0P#&HthfxYRtpT9(sv@U4I!Yf0<)>IHt@%S*IVo(F;j3dwfLsm6HYC8Z&+KMB}-3XqTSiB zPl%{#r)zV;DQ9u+>Ca=Pa}FK1i*6SV-+T{~Q`=wp(8@mBmV}}T80jG-fW>35Ayzg? zGcQ0a28;IvUpe?MxC9bwqu^BtAr_(pC7O6?GLnWMN(crK#YHBmCTu0GcQqsg%$~PPfVR^hSmTO&cer z68`o6zZW}S^8fpaKI}IMqDtIZusI1_n|9Bua^cPHyYr(m0dH|sg`>xgaO%_@tgWx@ z`Gxj3rCd9hXztXpye~MJ&oVouVuIdik zSGH*c?m2c`wsxK$>Cw%P&wS2Cy+)q9Ly?l63G(s2ZZ3i3#fBJT>KIWI9+|fIM4%AJ@=){Qmtot45VL~@i_J?c%Zf{E1+K~w-PM+fE z(PIF3GtMuk)T**!?(bH~e_} z5>GR{zQ_)RnTYmdE)sT5>i$GVMZa+xXooqmvGs z&Nn@`#Q>^-6UUEn{MaVr@rZlxzlTqM_A~skq`15du?P5*zz2?VHA**vnw@uSCRnwICEdx=ZG@o)J0Z+<-^xg5@(y_+w5 z@$;lE^1yq~@$eVVh3Uoilk@JHRG|V-1s5+%CRmBpTp)y+t@$OM+xZ^j(HJ3=)hpS# z%TReK>fZ-ONFqi3_Z`Vb6sU}6lyJc(F*e`y8%jC5+fY8KI% zHZ~xDd<6kC%=-}vBdicV`vmT89<(ysop(n@I=OJQ`CS#cdOP&Em2+DR-~>kNCpdG@ z`}xH${W3rQ3!mfeyWTOhNheQ8eVK6fC1Tg`gO?|A_0sF(5l24KlKTY)4X|%xLtkAA z2u@Jp{IzcpX&8k`W(}uEzLZFyclvr0ke$BL1VmDhl)F<5c{WyQYxZ4?2Zs+c_yNTM z?2|x2MMMPa5*tC7-MOLd)p=skmIP3r{w?zbhVgC1@e?KE0VMA#AP)vLM`G2*W^JQt zukY?YAu>2Xe=tly2ypHl%2)ovF1y$MDfhqY>!jG`ekB1xncJOQ?0!5??>_UOT-rKy zI{MY4bdbj%H%b3H$m zt|SrlB%BZH-JBQQ`CkVd*cgD$(jj>*@g825_ zh-qaVF6E-H^V7q<`VcVdep#x!*d~! z{wsO?bM9EOQbs@8orO*3Tz8H~FP`iVe{3s4d<;AKB7p~7e+TUt2wxpzp-|^Tx`Px@M%U{1p zAopr&5$Gm5Ybkkm$3~brFkOLw=g(VA{-FM4VC(?`kY8>hmSe$_<=)UfSNT<@h&#_Sh*EKzz4N=Z#YF~Ewj!ANt3Ed?@vtwbO;98J80SFQ=B!( z%O9TKeu{az%D9>=vwj}XGKV*N|6pR63(1P4lNlmOb{51S1`yL{f~U*lGjro>X&4P zi>Eq^kGLd~ce(dN`j9UVjp`?0i7HKMxG;N)T1VOTv$Xjxx-Si!M0@<+0Osk@Q({6A zfnb>PeZ8aJ>;4ln}fBLDyt&`Cr=RDXu*NX@7I>QC^o&;10+13&u@|5R`P zRRlubHDS?wEeO|7tVugvIPD4qe86p}4jn$L`HTS%0KIbT++-2jc5ifi#C#T?)i=xk z_s8L;2-aIXx6J^Gawli_5FaMc@9R?xL&e#cY$7^maq)t9ko%1Ij^r&y%0v|(QovI3 z0iXn}czymNGuvidkML4a&cwGN?CYCR#BwfP`Y53IAR>@@=h9>@LB7{ct=S$K^`9Q` z8(q_Q=t)VB6IVp^8{d)3_&KMTApzsfrn&miHn zZZ=;}X*!R-XqxVo@D@`)mw(vdIsv!eXXKDx>-gWl`a2+bUXKDDk>J9qdr$MnKmIY| zL+e#&7a#DH#>rcd4wdmh^gb8RZvu82F3p}Lh!Rv+oIl51_Z5Az{m-^uO7bVGU(LfF zr9>I%%ZR+Zac!qt|93Ty|Er(p;Sao*>+BL4lRLl)fUD2i3Y|enMz=neYn8a~E{v3? z$P{uMlz3JcfTcYE1WzDMw}`XTV_nQz+jir!>p`S&p9_(dr~J^vfJ13C8|ymvUVUhg zhHOBc6K5vaMbImPPZ&!hkGi+Cz5q!j49r;h-tLPCK`M6I*O}Q>CUu=9zj*vQIDek) zzcIx8ga1$xioG+KNok0rXX`4wdh+zy_>tdyjQ4!{VP>{q#E3ODTCMP0I1abN1MWcvE~a7*;BQxe@pa~n<)4UNyHvm+yEE?;jhh=y5^X-OxS z%!QQ7->_sVGm%+l{6V95?_}N@W86Li2;6yconQXi{fPR~9=g+ofG3zu)@6I%opiNF z%#6sC5OR^G&wb=@$#RxYoGZ=C#iv>+`IhXT7l}8Q;^gIbh{nbrq^gw>*h|A7P2$nq1)@q2oMOL&-a~(ah=3#M1Ns_Gy0E?0RXLL zJoxTkE01~|;52>$r{nEb5l!-A4H9vmuXFqdx{hbeOgrjZP3Nq1J$6=j`j=Z)b)H?D{ z+!yrY_nCUq+B{SmM)J&M-Dpy+_Z+RIGhusf-n3DYCEC={Sc`d-hR$P`h;-grC!Lvh z)<}#lU1~g~)>CRcrMda$cAC)G#vRY@iiJ)Wl}{EEcX2lA4Q4iD*3L*x@=;q$l<03T z|1}PL%irn0=I*mw(E^9mYkZWe{9TNyjBCi9Hz~nL)~Kh8+JZfVbF{T7iIz%6^p(IY z`Niu}=UR6uH=1fyrnrQh`STJ)_voLMJbx+eHRqD{o;xJTNQFf)=_j)0QUx|Qc5F&SR2 zEk>+sh^avqdth^#*-NB2BX*J4MY^ub*D=zij%fM2_f00NCjlKD4HLar=YH{r?;AT5 z2H0cHpWttx!;V`x#wK1le~zE#v-)H8Mc@5!w1(Dq5ivsON5*8ySMj{B(e{|z6-HG( zxIxRDe*t`0QTKg~pKNwhQ9dHMJGl=?#{{|<`Q0l|5Mv_7Or&H+?3`HOVr`poAt_aO zJ0>y$KZ2#xD2aL5~|tZmI~SnZZAnHDgxkaq)=BA0<%%FU+9u(+U#4HoBg^Vf#` zL%?$0?~4C7d|xH6kXs|2=Wued`WDWiFu)pX{0hH1WW5tk@a)yz)z{%G_$ z3)>+CN3;x*AP3z2{NUa0HB=KptHJZnVPAHTa)_6cs!I)0TD?{ng0jG_2kBI*9MLtR z8mV$7$w|qHA$#=EjII(=5>g7JdW0vzeN30yQtj&y5>$ql9+qX{GHaEgo5OPcVL%AQ zyfITkf;fjNk!%X1K5QYw(t5}Btt`3%Egcn4GN(z;-5Oy0P#9prg1^bHtUTjvvdK}~ z;GfLDs(ZwHqNn#YzDvh-f@W2ZJF3~9t2oK$Ol^xg`AGNghK0gaXxdcia<61*}6QVHjP?`-zcUi0VP0GI;7N znW3PQdtypaUG532C1JQX%doMR__u4u4d}Q8JP)+`HuDGv&!I5Dgfai%+CR#@_d)?^ z8XIfM&SED-Z_Xjz$+=y{i6}Lpq=2>5MwGx_+(tA~)7ySo#{b!oM!Wz%OX4RLv6qqu z0L?eL3>wS7M431zD+9>NZtg-n^*rf34_eM0!x`i`&l)I|$;Xl@n&<&683{BDeXs*s zp;zfKGrFgUOI~;D{b>1v4DfcCAOXg+R9xcHO8WJOJcq&n^W8aL{pgp5aP0WW+#m4x zS3bc{edP;bcdPqYWUj4Whoau4WB>&SB8WG%w#6vaAX4@$`4ZwiIDeY80EOU^ha)Fh z>P+`Mtt3-8kA7AI4@z0pOz@1c51QA^t4d}Naa1ki`-d)`RK~hEL9Api6FxW{j<0qY z`|6kFsi}og`fO8C3pbYhRi?Pn$sr&ZPaWA`+72m_K;44cS(vo0hMt?65`RT$D z{ZzXfN&BkP_f`zh-~`UIV9~yG>vLlcg#o6O^BbSa*AA?EqBh~Na7xnd-rXkgy`9a8 z%rh~xsQnTFh;+2FLtQC?7Q5e9`vfc1ydE^%gGUBND91goj;Ab^cC|cctnAzI;+%RR zcqojf{iqlv=NBX=bHpKNDokXk8!CoM%JcclAYu-F^@FeaM4rRGv0*;^FQ2zd_|@N! zTn1hs(A1+_3;{T_JV49w_1_-;whcQ@a^d>!-C-;z?@cVuwp>TFL$oR$f3H#@+6*Kz z3e}3;?=yft*ncxyf;%bBpDSpu)*W1i3A0GC`NiJr3h`C)s2KI!kI-ug6Di|~1TCZO zvIg*#`pzFfMhx{G5z341dCNMunbnW7R2n)mQZ$pk7!@;ycY(10gj4)9*d{N;pC4zq+6$#-xo zHeYjzIG91muoCsG_SL=E`z67pWa_0v1KBT;3?KIro|ZyV{^}Wbc|B0*W<)~w(fG!pIDgAHzcgUwYhAtW{eTSZF)uTxRk8_?K1f)Rdd&qVmEsfh z&$Dt}7)8lA!+pIhZ-=Nia`9~sX z6b*~D$>fJ8*vdJaFp!pi%M$>ct4}g=Jia zKeToWdGS)|@}W54X(huKG?#g^{nw?_N9hncAkm>{0qG^Xm81xbI!UJs-c1`orUp z_PP%_c0{Bj6vC^dJQ7tvNK|>dPH~jAWZ|-hZI;u@l%dnn$uYMIp{QL~DTy6laq@a~ z&WdES^gARwdjnxvO7yZmA;mQG3{qZ0?+=i*$;~YAjhNx>s{Vt&?<>z`%sGr^hXn}H5 zHjI|V%P7GdLXrHUHG2E)E(7tibn6hdY5y~krF0|voWNBi*YG?m8le9ftIro2-AKZ3 zM8ws{z4^G&;~TwK3kcsKG23}&=eF!W91;U;oL2tQ-}yKjDOC-~CNTQ8aJ`)u{nb6>IltT=TnL8(h^ zz+m%Xcf(*HFvx400<#u`>RsSfUZhXJ`R|NlJ@nI@KK_9F6gM1#7$-rMKCY# zv#RzBVc%f8S0#5~idD6q(Mcj<8T!#<`+fLZ1<9c+kf(nhppvp2Ht}YJUA=xYrdU1M z{=bZHfp~DD!L6M`VSuy1-{(4FH4_`tG!`1S_ezir4cS=>Dnkw+lo4tD_`Gb|ohSiM zF)wG7ys;!_>L45ZQp73hTn1Gy#ilb5b{VqegidMJS|PsgBXZv1mvn2R8XpV zNkFwiya=PSTzuY#h56$x>(;BzUFm+`NAMdlNKfkg@xFsI-TL0vZ99N)NDOcf@K;Yeh06UN4yO#p+*{VO}UcIlPd?L$&&`KilhLXQ3;~4xpOudc_`8W?HKNGd8quC*g56}efuF5i3d=fKca5v}N| zh#^=~l4L@FWCD_%z7#FryQs7VYS6es%G<{m$q`R9E_j=WV#Jh430h0EDIwnFjbAAd ziNw^>G)9XPQ%6%UdW+O$ri?9(Ic*o2cQY1k!c*QC>|LVsh&7R9PV72TN~CC{Cg%Bt z#0(?vcVqY3;ou7RmG7SXBF-!5;n;sTBnB{GzSA*_9ZyVO)4O!?z}lK0pNyQfYQi{- z7}pgetq~^FQc*FcmI+ElkTq&X1Zrv~j2U4vV&r3-iXbD*#{?VUssw6u9B|1~#dMU> z!=O14B>Azd>QCzjPidCo0;x$3<}C{Yr^PKYvj(${nMJy^%cAROt!3WKnZ=fQoH1+j z%;LRf#5Z|BTnL)$jYn>q8@f@wRYZ5x_q#$eU7Id~2S7XB(M{&j~coPYOg^2Buh=u@w3qm^c4l#~!InV8^ilI^IK zNY8Ru=jO|s5VI#}8Gz$r;4Lz!&@RuQbSr^i!iki@LAWH(aFgUt0&y3QXM#x1xmDgzgJ+X}8$;cjD0+6H!hlywKfM{^61F3=J`37itmAXhqwB+CG zKQAnOf>r;aX9&Rmg<86< zGqDOMCluTfiz?zBW_iDNiowNAEIA%J^B4p-PszkccxSjHQOrHMOHwg0JgSxQlvbSI+ff~FWZ?(r7%H4*ur^&mc@ya zhhzWYuo&RAz~r9`QYo*ztBFTH>E9W({(QJzVT=?_h)DtuSPt`DH0AzLEn^lmNlNO7 zNbr=j1PFUB3wLuwQiX6#+{U;}lHwxLRZ&Ec4tF*6GC{;Eggrx}y17YEF-tC5iKHY* z5ZB#SEC6$eji`xx6~wK}RUUPa;O9(N$|NXQ+yfoDLg8^w7FhTz77tf%?a8-_e@9J zMmX9!4TO7hAA&s}r4+0B)(xjc{9I;W5y7`SOM1?F_bJV+*qy$^r*{HnxRxRLDeS`K z=U#V}o9(!}wIlw+Hh- z9!ZirV4_8m7?H%olZQDUe;+r)D)9gA$lS3V$G@40Ba)TGD2y^f*m9y=p!5(58|xc% zDbY6bf(I_@!{a~wvutl)XWq9P}MbOPM4kAG~vG-2{Jl{=Yf@2T6{g U*r%)u=>Px#07*qoM6N<$f_{#5egFUf diff --git a/retroshare-gui/src/gui/Posted/images/posted_16.png b/retroshare-gui/src/gui/Posted/images/posted_16.png deleted file mode 100644 index 6c07665a42225e31f2ff159a4c55aaa185338109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3681 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 ckcZN&ht2mUtSxosah4=wQ~E} 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
$G^C++AcAP?cF}L13%C?*VGmyxn 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 ikq9ITmx!?|0sJQ;oKpk=l!K=L0000Z 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�Gxb9|If>;(a2Lm|$00s~Oh8@>8 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ý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 diff --git a/retroshare-gui/src/gui/Posted/images/posted_add_48.png b/retroshare-gui/src/gui/Posted/images/posted_add_48.png deleted file mode 100644 index 0c2418a5311c1189b3bf5a95846eb33e2a8ea8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3658 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 diff --git a/retroshare-gui/src/gui/Posted/images/posted_add_64.png b/retroshare-gui/src/gui/Posted/images/posted_add_64.png deleted file mode 100644 index d87421a52072905769ab2a6a854c7da4cb6c1d83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6423 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 diff --git a/retroshare-gui/src/gui/Posted/images/write.png b/retroshare-gui/src/gui/Posted/images/write.png new file mode 100644 index 0000000000000000000000000000000000000000..f5702bfbdcc259c175b5441c1926eb12f0fb8a0b GIT binary patch literal 1974 zcmV;n2TAyeP)x#w<4iwpRoz#2op0G)UH2yc*XKT_?-al=48t%C!?;0N_@72VCT04`AvAB4vMfCS#vEddMQ3QNL|(JcWB-~vs;kI^Xs3t*cz;m7EbfCaFL zWcV>UBwzt-kudxi)e?BBZp0*@Tq&jr9{>d52Y?0BZ41JyvYSOb1Zc(|o$dqCF#rYA zZOaS?EPw%AmVgB?gsT#;09h$liorbI4kOx&q0-N-F7?MN+aWLsATZRs{}AGdXmIn1 zr7!a&Fbnmio)CB`@Whum{N37Cmq-1*$1P0^C!#C8pEP=dD?nNrtn&%D5PJR=JiqZu ztB)EU4kn_xQa^^N*62+ZAPp@xc^s3VW%vLKkQ|8}K1U>I8$Q4SBqPE0u4M_N!UuQ~ zmqY&Z*fEBWzF*F<`4!_Cj$j=a<>wLcY;Xvs+ zza9AyK==84brKj2AIO6Mrq1VQm%w=VK(`BE`h0$R39N(K2YB_4#M5G`_YKb79jrS3v9F9l{QR-bEVg8ccKxUI|Mjh_7`Do zlShWm6oA85M&}8@;VY%H1mN(M(>Vfg_*&=;0XTeZxGw;QuNAii;PAEMt^gdq5!@7j z!#9R|0&w_7aZ3OW-#G3Fz~NiL4FNcOYuFcn!?%iE0XTf?*b{)mcLF;CaQMz(UH}f? zDa;DM;X8*p0XTdoF(Uwn?=1QS;P9PB`?&z`Dt2=C?xJ0Q+CXUpBo69sCj+?+A22ls z5Q6-}mHiO(f|2&*$#wXE$yI=R668L7!1O+VI}&jCb(GEl{L$$?l!f2)0wNJT-}|EF zIRS^i2z3G+{B|{n-t+&MnZ)qv=8s3WD*=bU1Z4tv1%D@il>naf*WLVqgA#D~4NxP1 z5aa=ai(YX}0uH|kN(2bTDh~@_!;+U>k$}T*ff4}(QL}%4Vp{?ZzYW=!fk&op^CNE- zK=au@P>$w)eFno@!lqZKUm|k&5@fCbLF5ggb@+h!O2FYulC1)aoGtiX&yN6FJ_U0T zCMp4kpMXpiz^9dckPjcwUkNz;gk&26NTm7Sce*6t@Kca}2slzH`4Ofw+(YGXz~QGP zbp`NiVh^&-AyicY4nG6w0z6Pzz_)+x|5BH_&>ub^QwbO)$O|wmJR%He?8{PE0s}}3;IEz8 z3W3`-_GK|O0H;9WeZ2l)WT?$tBLD3on0V&RFGO@S1P-CU^b-J}-$1K5Ms5-~GIfXV zc^9DXDA_rH_C>X8$1rs7f~Gc@21r$afV^Eob@&4FAbjZ8y#3XoO;bwm%}CR}0_?lE z!tbeG0T?G##06>)b_Z~h3wh=l1M9+>O5dI?}phbYresnC885SVtumCxS z1;{xpK+ajd3h4R!FRB*yTIdVYgiv_1w)?;^48t%C!*mh<0O@7k!FX}&KL7v#07*qo IM6N<$f~AaJAOHXW literal 0 HcmV?d00001 diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp index 1a9ebeb9e..50cfb92d1 100644 --- a/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp +++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.cpp @@ -141,15 +141,15 @@ void PostedGroupItem::fill() GxsIdDetails::loadPixmapFromData(mGroup.mGroupImage.mData, mGroup.mGroupImage.mSize, postedImage,GxsIdDetails::ORIGINAL); ui->logoLabel->setPixmap(QPixmap(postedImage)); } else { - ui->logoLabel->setPixmap(QPixmap(":/images/posted_64.png")); + ui->logoLabel->setPixmap(QPixmap(":/icons/png/posted.png")); } //TODO - nice icon for subscribed group // if (IS_GROUP_PUBLISHER(mGroup.mMeta.mSubscribeFlags)) { -// ui->logoLabel->setPixmap(QPixmap(":/images/posted_64.png")); +// ui->logoLabel->setPixmap(QPixmap(":/icons/png/posted.png")); // } else { -// ui->logoLabel->setPixmap(QPixmap(":/images/posted_64.png")); +// ui->logoLabel->setPixmap(QPixmap(":/icons/png/posted.png")); // } if (IS_GROUP_SUBSCRIBED(mGroup.mMeta.mSubscribeFlags)) { @@ -160,11 +160,11 @@ void PostedGroupItem::fill() // if (mIsNew) // { - ui->titleLabel->setText(tr("New Posted")); + ui->titleLabel->setText(tr("New Board")); // } // else // { -// ui->titleLabel->setText(tr("Updated Posted")); +// ui->titleLabel->setText(tr("Updated Board")); // } if (mIsHome) diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui index 2ebd46dbc..27226fd28 100644 --- a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui +++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui @@ -125,7 +125,10 @@ - :/images/posted_64.png + :/icons/png/posted.png + + + true @@ -147,7 +150,7 @@ - Posted + Board @@ -298,7 +301,7 @@ - Posted Description + Board Description @@ -321,7 +324,7 @@ Description - of Posted + of Board diff --git a/retroshare-gui/src/gui/gxs/GxsGroupShareKey.cpp b/retroshare-gui/src/gui/gxs/GxsGroupShareKey.cpp index 7b3ac7fee..edc60012a 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupShareKey.cpp +++ b/retroshare-gui/src/gui/gxs/GxsGroupShareKey.cpp @@ -93,9 +93,9 @@ void GroupShareKey::setTyp() if (!rsPosted) return; - ui->headerFrame->setHeaderImage(QPixmap(":/images/posted_64.png")); - ui->headerFrame->setHeaderText(tr("Share topic admin permissions")); - ui->sharekeyinfo_label->setText(tr("You can allow your friends to edit the topic. Select them in the list below. Note: it is not possible to revoke Posted admin permissions.")); + ui->headerFrame->setHeaderImage(QPixmap(":/icons/png/posted.png")); + ui->headerFrame->setHeaderText(tr("Share board admin permissions")); + ui->sharekeyinfo_label->setText(tr("You can allow your friends to edit the board. Select them in the list below. Note: it is not possible to revoke Board admin permissions.")); } else From 9301a1b8d29665803fb15f7532ce4546f492c856 Mon Sep 17 00:00:00 2001 From: defnax Date: Sat, 8 Feb 2020 20:51:37 +0100 Subject: [PATCH 02/16] added missed spacer to channel post item --- .../src/gui/feeds/GxsChannelPostItem.ui | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui index 0e15c0a4d..1f869dc37 100644 --- a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui +++ b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui @@ -6,8 +6,8 @@ 0 0 - 1433 - 541 + 922 + 187 @@ -127,6 +127,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + + From d748278637d2654d82b449aa61a2bf77f305827c Mon Sep 17 00:00:00 2001 From: drbob Date: Mon, 10 Feb 2020 22:24:47 +1100 Subject: [PATCH 03/16] update code to get Wiki / Wire and PhotoShare compiling again --- libretroshare/src/libretroshare.pro | 11 ++++ libretroshare/src/rsitems/rswireitems.cc | 6 ++ libretroshare/src/rsserver/rsinit.cc | 56 +++++++++++++------ libretroshare/src/services/p3wiki.cc | 2 +- libretroshare/src/services/p3wire.cc | 2 +- retroshare-gui/src/gui/MainWindow.cpp | 17 ++++++ .../src/gui/PhotoShare/AlbumDialog.cpp | 2 +- .../src/gui/PhotoShare/PhotoShare.h | 6 ++ retroshare-gui/src/gui/TheWire/WireDialog.h | 6 ++ .../src/gui/WikiPoos/WikiDialog.cpp | 8 +-- .../src/gui/WikiPoos/WikiEditDialog.cpp | 4 +- retroshare-gui/src/retroshare-gui.pro | 12 +++- 12 files changed, 105 insertions(+), 27 deletions(-) diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro index cc4e1dc11..ce8b8dff2 100644 --- a/libretroshare/src/libretroshare.pro +++ b/libretroshare/src/libretroshare.pro @@ -20,6 +20,11 @@ DESTDIR = lib #QMAKE_CFLAGS += -Werror #QMAKE_CXXFLAGS += -Werror +## Uncomment to enable Unfinished Services. +#CONFIG += wikipoos +#CONFIG += gxsthewire +#CONFIG += gxsphotoshare + debug { # DEFINES *= DEBUG # DEFINES *= OPENDHT_DEBUG DHT_DEBUG CONN_DEBUG DEBUG_UDP_SORTER P3DISC_DEBUG DEBUG_UDP_LAYER FT_DEBUG EXTADDRSEARCH_DEBUG @@ -763,6 +768,8 @@ SOURCES += services/p3gxschannels.cc \ rsitems/rsgxschannelitems.cc \ wikipoos { + DEFINES *= RS_USE_WIKI + # Wiki Service HEADERS += retroshare/rswiki.h \ services/p3wiki.h \ @@ -773,6 +780,8 @@ wikipoos { } gxsthewire { + DEFINES *= RS_USE_WIRE + # Wire Service HEADERS += retroshare/rswire.h \ services/p3wire.h \ @@ -793,6 +802,8 @@ SOURCES += services/p3postbase.cc \ rsitems/rsposteditems.cc gxsphotoshare { + DEFINES *= RS_USE_PHOTO + #Photo Service HEADERS += services/p3photoservice.h \ retroshare/rsphoto.h \ diff --git a/libretroshare/src/rsitems/rswireitems.cc b/libretroshare/src/rsitems/rswireitems.cc index eb3896f17..c00012975 100644 --- a/libretroshare/src/rsitems/rswireitems.cc +++ b/libretroshare/src/rsitems/rswireitems.cc @@ -51,6 +51,12 @@ void RsGxsWireGroupItem::serial_process(RsGenericSerializer::SerializeJob j,RsGe RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR,group.mDescription,"group.mDescription") ; } +void RsGxsWirePulseItem::clear() +{ + pulse.mPulseText.clear(); + pulse.mHashTags.clear(); +} + void RsGxsWirePulseItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_MSG,pulse.mPulseText,"pulse.mPulseText") ; diff --git a/libretroshare/src/rsserver/rsinit.cc b/libretroshare/src/rsserver/rsinit.cc index 2de431589..886660049 100644 --- a/libretroshare/src/rsserver/rsinit.cc +++ b/libretroshare/src/rsserver/rsinit.cc @@ -737,12 +737,13 @@ RsGRouter *rsGRouter = NULL ; #include "pgp/pgpauxutils.h" #include "services/p3idservice.h" #include "services/p3gxscircles.h" -#include "services/p3wiki.h" #include "services/p3posted.h" -#include "services/p3photoservice.h" #include "services/p3gxsforums.h" #include "services/p3gxschannels.h" + +#include "services/p3wiki.h" #include "services/p3wire.h" +#include "services/p3photoservice.h" #endif // RS_ENABLE_GXS @@ -1361,35 +1362,35 @@ int RsServer::StartupRetroShare() mGxsChannels->setNetworkExchangeService(gxschannels_ns) ; -#if 0 // PHOTO IS DISABLED FOR THE MOMENT +#ifdef RS_USE_PHOTO /**** Photo service ****/ RsGeneralDataService* photo_ds = new RsDataService(currGxsDir + "/", "photoV2_db", RS_SERVICE_GXS_TYPE_PHOTO, NULL, rsInitConfig->gxs_passwd); // init gxs services - mPhoto = new p3PhotoService(photo_ds, NULL, mGxsIdService); + p3PhotoService *mPhoto = new p3PhotoService(photo_ds, NULL, mGxsIdService); // create GXS photo service RsGxsNetService* photo_ns = new RsGxsNetService( RS_SERVICE_GXS_TYPE_PHOTO, photo_ds, nxsMgr, mPhoto, mPhoto->getServiceInfo(), - mGxsIdService, mGxsCircles,mGxsIdService, + mReputations, mGxsCircles,mGxsIdService, pgpAuxUtils); #endif -#if 0 // WIRE IS DISABLED FOR THE MOMENT +#ifdef RS_USE_WIRE /**** Wire GXS service ****/ RsGeneralDataService* wire_ds = new RsDataService(currGxsDir + "/", "wire_db", RS_SERVICE_GXS_TYPE_WIRE, NULL, rsInitConfig->gxs_passwd); - mWire = new p3Wire(wire_ds, NULL, mGxsIdService); + p3Wire *mWire = new p3Wire(wire_ds, NULL, mGxsIdService); // create GXS photo service RsGxsNetService* wire_ns = new RsGxsNetService( RS_SERVICE_GXS_TYPE_WIRE, wire_ds, nxsMgr, mWire, mWire->getServiceInfo(), - mGxsIdService, mGxsCircles,mGxsIdService, + mReputations, mGxsCircles,mGxsIdService, pgpAuxUtils); #endif // now add to p3service @@ -1401,7 +1402,12 @@ int RsServer::StartupRetroShare() #endif pqih->addService(gxsforums_ns, true); pqih->addService(gxschannels_ns, true); - //pqih->addService(photo_ns, true); +#ifdef RS_USE_PHOTO + pqih->addService(photo_ns, true); +#endif +#ifdef RS_USE_WIRE + pqih->addService(wire_ns, true); +#endif # ifdef RS_GXS_TRANS RsGeneralDataService* gxstrans_ds = new RsDataService( @@ -1630,8 +1636,12 @@ int RsServer::StartupRetroShare() #ifdef RS_USE_WIKI mConfigMgr->addConfiguration("wiki.cfg", wiki_ns); #endif - //mConfigMgr->addConfiguration("photo.cfg", photo_ns); - //mConfigMgr->addConfiguration("wire.cfg", wire_ns); +#ifdef RS_USE_PHOTO + mConfigMgr->addConfiguration("photo.cfg", photo_ns); +#endif +#ifdef RS_USE_WIRE + mConfigMgr->addConfiguration("wire.cfg", wire_ns); +#endif #endif //RS_ENABLE_GXS mConfigMgr->addConfiguration("I2PBOB.cfg", mI2pBob); @@ -1793,8 +1803,12 @@ int RsServer::StartupRetroShare() rsGxsChannels = mGxsChannels; rsGxsTrans = mGxsTrans; - //rsPhoto = mPhoto; - //rsWire = mWire; +#if RS_USE_PHOTO + rsPhoto = mPhoto; +#endif +#if RS_USE_WIRE + rsWire = mWire; +#endif /*** start up GXS core runner ***/ @@ -1808,8 +1822,12 @@ int RsServer::StartupRetroShare() startServiceThread(mGxsForums, "gxs forums"); startServiceThread(mGxsChannels, "gxs channels"); - //createThread(*mPhoto); - //createThread(*mWire); +#if RS_USE_PHOTO + startServiceThread(mPhoto, "gxs photo"); +#endif +#if RS_USE_WIRE + startServiceThread(mPhoto, "gxs wire"); +#endif // cores ready start up GXS net servers startServiceThread(gxsid_ns, "gxs id ns"); @@ -1821,8 +1839,12 @@ int RsServer::StartupRetroShare() startServiceThread(gxsforums_ns, "gxs forums ns"); startServiceThread(gxschannels_ns, "gxs channels ns"); - //createThread(*photo_ns); - //createThread(*wire_ns); +#if RS_USE_PHOTO + startServiceThread(photo_ns, "gxs photo ns"); +#endif +#if RS_USE_WIRE + startServiceThread(photo_ns, "gxs wire ns"); +#endif # ifdef RS_GXS_TRANS startServiceThread(mGxsTrans, "gxs trans"); diff --git a/libretroshare/src/services/p3wiki.cc b/libretroshare/src/services/p3wiki.cc index 26c33881a..47bcb2ae0 100644 --- a/libretroshare/src/services/p3wiki.cc +++ b/libretroshare/src/services/p3wiki.cc @@ -40,7 +40,7 @@ RsWiki *rsWiki = NULL; p3Wiki::p3Wiki(RsGeneralDataService* gds, RsNetworkExchangeService* nes, RsGixs *gixs) :RsGenExchange(gds, nes, new RsGxsWikiSerialiser(), RS_SERVICE_GXS_TYPE_WIKI, gixs, wikiAuthenPolicy()), - RsWiki(this) + RsWiki(static_cast(*this)) { // Setup of dummy Pages. mAboutActive = false; diff --git a/libretroshare/src/services/p3wire.cc b/libretroshare/src/services/p3wire.cc index 23d31198f..530265bdc 100644 --- a/libretroshare/src/services/p3wire.cc +++ b/libretroshare/src/services/p3wire.cc @@ -33,7 +33,7 @@ RsWire *rsWire = NULL; p3Wire::p3Wire(RsGeneralDataService* gds, RsNetworkExchangeService* nes, RsGixs *gixs) :RsGenExchange(gds, nes, new RsGxsWireSerialiser(), RS_SERVICE_GXS_TYPE_WIRE, gixs, wireAuthenPolicy()), - RsWire(this), mWireMtx("WireMtx") + RsWire(static_cast(*this)), mWireMtx("WireMtx") { } diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp index 63a563dc4..3e2bb53dd 100644 --- a/retroshare-gui/src/gui/MainWindow.cpp +++ b/retroshare-gui/src/gui/MainWindow.cpp @@ -103,6 +103,12 @@ #ifdef RS_USE_WIKI #include "gui/WikiPoos/WikiDialog.h" #endif +#ifdef RS_USE_WIRE +#include "gui/TheWire/WireDialog.h" +#endif +#ifdef RS_USE_PHOTO +#include "gui/PhotoShare/PhotoShare.h" +#endif #include "gui/Posted/PostedDialog.h" #include "gui/statistics/StatisticsWindow.h" @@ -423,6 +429,17 @@ void MainWindow::initStackedPage() addPage(wikiDialog = new WikiDialog(ui->stackPages), grp, ¬ify); #endif +#ifdef RS_USE_WIRE + WireDialog *wireDialog = NULL; + addPage(wireDialog = new WireDialog(ui->stackPages), grp, ¬ify); +#endif + +#ifdef RS_USE_PHOTO + PhotoShare *photoDialog = NULL; + addPage(photoDialog = new PhotoShare(ui->stackPages), grp, ¬ify); +#endif + + std::cerr << "Looking for interfaces in existing plugins:" << std::endl; for(int i = 0;inbPlugins();++i) { diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp index e943d21d7..8961e0cd8 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp @@ -61,7 +61,7 @@ void AlbumDialog::setUp() QPixmap qtn; - GxsIdDetails::loadPixmapFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size, mAlbum.mThumbnail.type.c_str(),qtn); + GxsIdDetails::loadPixmapFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size,qtn, GxsIdDetails::ORIGINAL); if(mAlbum.mThumbnail.size != 0) { diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h index 9bebcd1c5..dec0e077a 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h +++ b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h @@ -39,6 +39,8 @@ #include "util/TokenQueue.h" #include "PhotoShareItemHolder.h" +#define IMAGE_PHOTO ":/images/lphoto.png" + namespace Ui { class PhotoShare; } @@ -51,6 +53,10 @@ public: PhotoShare(QWidget *parent = 0); ~PhotoShare(); + virtual QIcon iconPixmap() const { return QIcon(IMAGE_PHOTO) ; } + virtual QString pageName() const { return tr("Photo Albums") ; } + virtual QString helpText() const { return ""; } + void notifySelection(PhotoShareItem* selection); private slots: diff --git a/retroshare-gui/src/gui/TheWire/WireDialog.h b/retroshare-gui/src/gui/TheWire/WireDialog.h index 29b25c509..ae948b958 100644 --- a/retroshare-gui/src/gui/TheWire/WireDialog.h +++ b/retroshare-gui/src/gui/TheWire/WireDialog.h @@ -31,6 +31,8 @@ #include "gui/TheWire/PulseItem.h" #include "gui/TheWire/PulseAddDialog.h" +#define IMAGE_WIRE ":/images/kgames.png" + class WireDialog : public MainPage, public PulseHolder { Q_OBJECT @@ -38,6 +40,10 @@ class WireDialog : public MainPage, public PulseHolder public: WireDialog(QWidget *parent = 0); + virtual QIcon iconPixmap() const { return QIcon(IMAGE_WIRE) ; } + virtual QString pageName() const { return tr("The Wire") ; } + virtual QString helpText() const { return ""; } + virtual void deletePulseItem(PulseItem *, uint32_t type); virtual void notifySelection(PulseItem *item, int ptype); diff --git a/retroshare-gui/src/gui/WikiPoos/WikiDialog.cpp b/retroshare-gui/src/gui/WikiPoos/WikiDialog.cpp index a4be2189f..68e1adbb3 100644 --- a/retroshare-gui/src/gui/WikiPoos/WikiDialog.cpp +++ b/retroshare-gui/src/gui/WikiPoos/WikiDialog.cpp @@ -436,8 +436,8 @@ void WikiDialog::requestWikiPage(const RsGxsGrpMsgIdPair &msgId) uint32_t token; GxsMsgReq msgIds; - std::vector &vect_msgIds = msgIds[msgId.first]; - vect_msgIds.push_back(msgId.second); + std::set &set_msgIds = msgIds[msgId.first]; + set_msgIds.insert(msgId.second); mWikiQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, WIKIDIALOG_WIKI_PAGE); } @@ -698,10 +698,10 @@ void WikiDialog::updateDisplay(bool complete) requestGroupMeta(); } else { /* Update all groups of changed messages */ - std::map > msgIds; + std::map > msgIds; getAllMsgIds(msgIds); - std::map >::iterator msgIt; + std::map >::iterator msgIt; for (msgIt = msgIds.begin(); msgIt != msgIds.end(); ++msgIt) { wikiGroupChanged(QString::fromStdString(msgIt->first.toStdString())); } diff --git a/retroshare-gui/src/gui/WikiPoos/WikiEditDialog.cpp b/retroshare-gui/src/gui/WikiPoos/WikiEditDialog.cpp index 2c5fc1b8d..b2f56d2c9 100644 --- a/retroshare-gui/src/gui/WikiPoos/WikiEditDialog.cpp +++ b/retroshare-gui/src/gui/WikiPoos/WikiEditDialog.cpp @@ -622,8 +622,8 @@ void WikiEditDialog::requestPage(const RsGxsGrpMsgIdPair &msgId) opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA; GxsMsgReq msgIds; - std::vector &vect_msgIds = msgIds[msgId.first]; - vect_msgIds.push_back(msgId.second); + std::set &set_msgIds = msgIds[msgId.first]; + set_msgIds.insert(msgId.second); uint32_t token; mWikiQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, WIKIEDITDIALOG_PAGE); diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro index 37d8aa335..9ba5af806 100644 --- a/retroshare-gui/src/retroshare-gui.pro +++ b/retroshare-gui/src/retroshare-gui.pro @@ -114,6 +114,11 @@ CONFIG += gxscircles #CONFIG += framecatcher #CONFIG += blogs +## To enable unfinished services +#CONFIG += wikipoos +#CONFIG += gxsthewire +#CONFIG += gxsphotoshare + DEFINES += RS_RELEASE_VERSION RCC_DIR = temp/qrc UI_DIR = temp/ui @@ -342,6 +347,7 @@ openbsd-* { wikipoos { PRE_TARGETDEPS *= $$OUT_PWD/../../supportlibs/pegmarkdown/lib/libpegmarkdown.a LIBS *= $$OUT_PWD/../../supportlibs/pegmarkdown/lib/libpegmarkdown.a + LIBS *= -lglib-2.0 } # Tor controller @@ -1144,7 +1150,8 @@ unfinished_services { gxsphotoshare { - #DEFINES += RS_USE_PHOTOSHARE + #DEFINES += RS_USE_PHOTOSHARE # to enable in unfinished. + DEFINES += RS_USE_PHOTO # enable in MainWindow HEADERS += \ gui/PhotoShare/PhotoDrop.h \ @@ -1189,6 +1196,7 @@ gxsphotoshare { wikipoos { + DEFINES += RS_USE_WIKI DEPENDPATH += ../../supportlibs/pegmarkdown INCLUDEPATH += ../../supportlibs/pegmarkdown @@ -1215,6 +1223,8 @@ wikipoos { gxsthewire { + DEFINES += RS_USE_WIRE + HEADERS += gui/TheWire/PulseItem.h \ gui/TheWire/WireDialog.h \ gui/TheWire/PulseAddDialog.h \ From 101bc3267978c0c8bfd7ea04262a502a6493ccf5 Mon Sep 17 00:00:00 2001 From: csoler Date: Mon, 10 Feb 2020 13:06:10 +0100 Subject: [PATCH 04/16] fixed missing return in GxsChannelPostItem::uniqueIdentifier() --- retroshare-gui/src/gui/feeds/GxsChannelPostItem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.h b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.h index 9955002fa..a067098d9 100644 --- a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.h +++ b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.h @@ -53,7 +53,7 @@ public: //GxsChannelPostItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsChannelPost &post, bool isHome, bool autoUpdate); virtual ~GxsChannelPostItem(); - uint64_t uniqueIdentifier() const override { hash_64bits("GxsChannelPostItem " + messageId().toStdString()) ; } + uint64_t uniqueIdentifier() const override { return hash_64bits("GxsChannelPostItem " + messageId().toStdString()) ; } bool setGroup(const RsGxsChannelGroup &group, bool doFill = true); bool setPost(const RsGxsChannelPost &post, bool doFill = true); From 01068acb18c9a8b345060d83abd68c4199963a3a Mon Sep 17 00:00:00 2001 From: defnax Date: Mon, 10 Feb 2020 20:35:49 +0100 Subject: [PATCH 05/16] update the help page --- retroshare-gui/src/gui/Posted/PostedDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroshare-gui/src/gui/Posted/PostedDialog.cpp b/retroshare-gui/src/gui/Posted/PostedDialog.cpp index 64933dd35..6faf20574 100644 --- a/retroshare-gui/src/gui/Posted/PostedDialog.cpp +++ b/retroshare-gui/src/gui/Posted/PostedDialog.cpp @@ -94,7 +94,7 @@ UserNotify *PostedDialog::createUserNotify(QObject *parent) QString PostedDialog::getHelpString() const { QString hlp_str = tr("

  Boards

\ -

The poards service allows you to share internet links, that spread among Retroshare nodes like forums and \ +

The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and \ channels

\

Posts can be commented by subscribed users. A promotion system also gives the opportunity to \ enlight important links.

\ From 920463a4ae889244ccd917dea1a3b1d97b7920c7 Mon Sep 17 00:00:00 2001 From: defnax Date: Tue, 11 Feb 2020 14:51:52 +0100 Subject: [PATCH 06/16] update few more strings to the new naming --- retroshare-gui/src/gui/Posted/PostedListWidget.cpp | 10 +++++----- retroshare-gui/src/gui/settings/PostedPage.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/retroshare-gui/src/gui/Posted/PostedListWidget.cpp b/retroshare-gui/src/gui/Posted/PostedListWidget.cpp index 0d7960804..834fe3e64 100644 --- a/retroshare-gui/src/gui/Posted/PostedListWidget.cpp +++ b/retroshare-gui/src/gui/Posted/PostedListWidget.cpp @@ -43,7 +43,7 @@ #define DEBUG_POSTED_LIST_WIDGET -#define TOPIC_DEFAULT_IMAGE ":/icons/png/posted.png" +#define BOARD_DEFAULT_IMAGE ":/icons/png/posted.png" /* View mode */ #define VIEW_MODE_CLASSIC 1 @@ -351,13 +351,13 @@ void PostedListWidget::insertPostedDetails(const RsPostedGroup &group) ui->subscribeToolButton->setHidden(IS_GROUP_SUBSCRIBED(group.mMeta.mSubscribeFlags)) ; /* IMAGE */ - QPixmap topicImage; + QPixmap boardImage; if (group.mGroupImage.mData != NULL) { - GxsIdDetails::loadPixmapFromData(group.mGroupImage.mData, group.mGroupImage.mSize, topicImage,GxsIdDetails::ORIGINAL); + GxsIdDetails::loadPixmapFromData(group.mGroupImage.mData, group.mGroupImage.mSize, boardImage,GxsIdDetails::ORIGINAL); } else { - topicImage = QPixmap(TOPIC_DEFAULT_IMAGE); + boardImage = QPixmap(BOARD_DEFAULT_IMAGE); } - ui->logoLabel->setPixmap(topicImage); + ui->logoLabel->setPixmap(boardImage); ui->namelabel->setText(QString::fromUtf8(group.mMeta.mGroupName.c_str())); ui->poplabel->setText(QString::number( group.mMeta.mPop)); diff --git a/retroshare-gui/src/gui/settings/PostedPage.cpp b/retroshare-gui/src/gui/settings/PostedPage.cpp index 107c49074..f4c178705 100644 --- a/retroshare-gui/src/gui/settings/PostedPage.cpp +++ b/retroshare-gui/src/gui/settings/PostedPage.cpp @@ -30,7 +30,7 @@ PostedPage::PostedPage(QWidget * parent, Qt::WindowFlags flags) setAttribute(Qt::WA_QuitOnClose, false); /* Initialize GroupFrameSettingsWidget */ - ui->groupFrameSettingsWidget->setOpenAllInNewTabText(tr("Open each topic in a new tab")); + ui->groupFrameSettingsWidget->setOpenAllInNewTabText(tr("Open each board in a new tab")); ui->groupFrameSettingsWidget->setType(GroupFrameSettings::Posted); } From ef0979aafd43ee7242600c33a3468d478a7c4828 Mon Sep 17 00:00:00 2001 From: defnax Date: Tue, 11 Feb 2020 15:43:27 +0100 Subject: [PATCH 07/16] rename settings posted page to boards too --- retroshare-gui/src/gui/settings/PostedPage.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroshare-gui/src/gui/settings/PostedPage.h b/retroshare-gui/src/gui/settings/PostedPage.h index d8189e509..ba6515d8c 100644 --- a/retroshare-gui/src/gui/settings/PostedPage.h +++ b/retroshare-gui/src/gui/settings/PostedPage.h @@ -39,7 +39,7 @@ public: virtual void load(); virtual QPixmap iconPixmap() const { return QPixmap(":/icons/settings/posted.svg") ; } - virtual QString pageName() const { return tr("Links") ; } + virtual QString pageName() const { return tr("Boards") ; } virtual QString helpText() const { return ""; } private: From 2bd3e32d4a11a5ef52fd58216ac8f52251daeb16 Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 12 Feb 2020 18:05:00 +0100 Subject: [PATCH 08/16] update the mainwindow icons for wiki/photo share * update the mainwindow icons for wiki/photo share * get work the id combobox for album creation --- .../src/gui/PhotoShare/AlbumCreateDialog.cpp | 26 ++++++- .../src/gui/PhotoShare/AlbumCreateDialog.ui | 64 ++++++++++++++---- .../src/gui/PhotoShare/PhotoShare.cpp | 2 +- .../src/gui/PhotoShare/PhotoShare.h | 2 +- retroshare-gui/src/gui/WikiPoos/WikiDialog.h | 2 +- retroshare-gui/src/gui/icons.qrc | 2 + retroshare-gui/src/gui/icons/png/photo.png | Bin 0 -> 1756 bytes retroshare-gui/src/gui/icons/png/wiki.png | Bin 0 -> 2671 bytes retroshare-gui/src/gui/icons/svg/picture.svg | 10 +++ retroshare-gui/src/gui/icons/svg/wiki.svg | 14 ++++ 10 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 retroshare-gui/src/gui/icons/png/photo.png create mode 100644 retroshare-gui/src/gui/icons/png/wiki.png create mode 100644 retroshare-gui/src/gui/icons/svg/picture.svg create mode 100644 retroshare-gui/src/gui/icons/svg/wiki.svg diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp index 5d5461d79..5823e6717 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp @@ -19,6 +19,7 @@ *******************************************************************************/ #include +#include #include "AlbumCreateDialog.h" #include "ui_AlbumCreateDialog.h" @@ -37,7 +38,7 @@ AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhoto *rs_photo, #if QT_VERSION >= 0x040700 - ui->lineEdit_Title_2->setPlaceholderText(tr("Untitle Album")); + ui->lineEdit_Title->setPlaceholderText(tr("Untitle Album")); ui->lineEdit_Caption_2->setPlaceholderText(tr("Say something about this album...")); //ui->textEdit_Description->setPlaceholderText(tr("Say something about this album...")) ; ui->lineEdit_Where->setPlaceholderText(tr("Where were these taken?")); @@ -55,7 +56,8 @@ AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhoto *rs_photo, mPhotoDrop = ui->scrollAreaWidgetContents; mPhotoDrop->setPhotoItemHolder(this); - + /* fill in the available OwnIds for sharing */ + ui->IdChooser->loadIds(IDCHOOSER_ID_REQUIRED, RsGxsId()); } AlbumCreateDialog::~AlbumCreateDialog() @@ -72,12 +74,30 @@ void AlbumCreateDialog::publishAlbum() // get fields for album to publish, publish and then exit dialog RsPhotoAlbum album; + RsGxsId authorId; + switch (ui->IdChooser->getChosenId(authorId)) { + case GxsIdChooser::KnowId: + case GxsIdChooser::UnKnowId: + break; + case GxsIdChooser::NoId: + case GxsIdChooser::None: + default: + std::cerr << "AlbumCreateDialog::publishAlbum() ERROR GETTING AuthorId!, Post Failed"; + std::cerr << std::endl; + + QMessageBox::warning(this, tr("RetroShare"),tr("Please create or choose a Signing Id first"), QMessageBox::Ok, QMessageBox::Ok); + + return; + } + + album.mMeta.mGroupName = ui->lineEdit_Title->text().toStdString(); + album.mCategory = ui->comboBox_Category->currentText().toStdString(); album.mCaption = ui->lineEdit_Caption_2->text().toStdString(); album.mPhotographer = ui->lineEdit_Photographer->text().toStdString(); - album.mMeta.mGroupName = ui->lineEdit_Title_2->text().toStdString(); album.mDescription = ui->textEdit_Description->toPlainText().toStdString(); album.mWhere = ui->lineEdit_Where->text().toStdString(); album.mPhotographer = ui->lineEdit_Photographer->text().toStdString(); + album.mMeta.mAuthorId = authorId; getAlbumThumbnail(album.mThumbnail); diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui index af5729fc9..c471062bd 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui @@ -17,7 +17,16 @@ true - + + 0 + + + 0 + + + 0 + + 0 @@ -46,7 +55,16 @@ QFrame::NoFrame - + + 0 + + + 0 + + + 0 + + 0 @@ -54,7 +72,16 @@ - + + 3 + + + 3 + + + 3 + + 3 @@ -65,7 +92,7 @@ - + @@ -110,7 +137,7 @@ border-radius: 10px; - + Animals @@ -354,18 +381,13 @@ border-radius: 10px; - + 0 0 - - - Publish with Identity - - @@ -431,8 +453,8 @@ p, li { white-space: pre-wrap; } 0 0 - 621 - 458 + 61 + 18 @@ -451,7 +473,16 @@ p, li { white-space: pre-wrap; } - + + 9 + + + 9 + + + 9 + + 9 @@ -513,6 +544,11 @@ p, li { white-space: pre-wrap; }
gui/PhotoShare/PhotoDrop.h
1 + + GxsIdChooser + QComboBox +
gui/gxs/GxsIdChooser.h
+
diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp index 5c00bcb7a..4f7eb4545 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp @@ -76,7 +76,7 @@ PhotoShare::PhotoShare(QWidget *parent) connect( ui.toolButton_ViewAlbum, SIGNAL(clicked()), this, SLOT(OpenAlbumDialog())); connect( ui.toolButton_SlideShow, SIGNAL(clicked()), this, SLOT(OpenSlideShow())); connect( ui.toolButton_subscribe, SIGNAL(clicked()), this, SLOT(subscribeToAlbum())); - connect(ui.toolButton_ViewPhoto, SIGNAL(clicked()), this, SLOT(OpenPhotoDialog())); + connect( ui.toolButton_ViewPhoto, SIGNAL(clicked()), this, SLOT(OpenPhotoDialog())); connect( ui.pushButton_YourAlbums, SIGNAL(clicked()), this, SLOT(updateAlbums())); connect( ui.pushButton_SharedAlbums, SIGNAL(clicked()), this, SLOT(updateAlbums())); diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h index dec0e077a..e454aaedf 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h +++ b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h @@ -39,7 +39,7 @@ #include "util/TokenQueue.h" #include "PhotoShareItemHolder.h" -#define IMAGE_PHOTO ":/images/lphoto.png" +#define IMAGE_PHOTO ":/icons/png/photo.png" namespace Ui { class PhotoShare; diff --git a/retroshare-gui/src/gui/WikiPoos/WikiDialog.h b/retroshare-gui/src/gui/WikiPoos/WikiDialog.h index c9c18c8b9..8b78f4774 100644 --- a/retroshare-gui/src/gui/WikiPoos/WikiDialog.h +++ b/retroshare-gui/src/gui/WikiPoos/WikiDialog.h @@ -32,7 +32,7 @@ #include -#define IMAGE_WIKI ":/images/wikibook_32.png" +#define IMAGE_WIKI ":/icons/png/wiki.png" class WikiAddDialog; class WikiEditDialog; diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index 81eeecb08..218ecc211 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -287,9 +287,11 @@ icons/png/newsfeed2.png icons/png/postedlinks.png icons/png/people2.png + icons/png/photo.png icons/png/bandwidth.png icons/png/options2.png icons/png/exit2.png + icons/png/wiki.png icons/svg/addstickers.svg icons/png/addstickers.png icons/textedit/bold.png diff --git a/retroshare-gui/src/gui/icons/png/photo.png b/retroshare-gui/src/gui/icons/png/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..90ecc125ed9b7f01418564d2fa85cd93142eff98 GIT binary patch literal 1756 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 + + + + + + + + + diff --git a/retroshare-gui/src/gui/icons/svg/wiki.svg b/retroshare-gui/src/gui/icons/svg/wiki.svg new file mode 100644 index 000000000..ed4ca738e --- /dev/null +++ b/retroshare-gui/src/gui/icons/svg/wiki.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From bedd2d36d46676753eccde37cb05ffc7aa12cf9d Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 12 Feb 2020 18:23:58 +0100 Subject: [PATCH 09/16] Added to store last used page for post creation Added to store last used page for post creation --- .../src/gui/Posted/PostedCreatePostDialog.cpp | 73 +++++++++++++--- .../src/gui/Posted/PostedCreatePostDialog.h | 5 +- .../src/gui/Posted/PostedCreatePostDialog.ui | 85 ++++++++++++------- 3 files changed, 120 insertions(+), 43 deletions(-) diff --git a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.cpp b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.cpp index ddacd4895..71094b91b 100644 --- a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.cpp +++ b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.cpp @@ -22,6 +22,8 @@ #include #include #include +#include + #include "PostedCreatePostDialog.h" #include "ui_PostedCreatePostDialog.h" @@ -35,10 +37,13 @@ #include #include - +#include #include -#include +/* View Page */ +#define VIEW_POST 1 +#define VIEW_IMAGE 2 +#define VIEW_LINK 3 PostedCreatePostDialog::PostedCreatePostDialog(TokenQueue* tokenQ, RsPosted *posted, const RsGxsGroupId& grpId, QWidget *parent): QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint), @@ -67,6 +72,16 @@ PostedCreatePostDialog::PostedCreatePostDialog(TokenQueue* tokenQ, RsPosted *pos /* fill in the available OwnIds for signing */ ui->idChooser->loadIds(IDCHOOSER_ID_REQUIRED, RsGxsId()); + QSignalMapper *signalMapper = new QSignalMapper(this); + connect(ui->postButton, SIGNAL(clicked()), signalMapper, SLOT(map())); + connect(ui->imageButton, SIGNAL(clicked()), signalMapper, SLOT(map())); + connect(ui->linkButton, SIGNAL(clicked()), signalMapper, SLOT(map())); + + signalMapper->setMapping(ui->postButton, VIEW_POST); + signalMapper->setMapping(ui->imageButton, VIEW_IMAGE); + signalMapper->setMapping(ui->linkButton, VIEW_LINK); + connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(setPage(int))); + ui->removeButton->hide(); /* load settings */ @@ -93,11 +108,17 @@ void PostedCreatePostDialog::processSettings(bool load) // state of ID Chooser combobox int index = Settings->value("IDChooser", 0).toInt(); ui->idChooser->setCurrentIndex(index); + + // load last used Stacked Page + setPage(Settings->value("viewPage", VIEW_POST).toInt()); } else { // save settings // state of ID Chooser combobox Settings->setValue("IDChooser", ui->idChooser->currentIndex()); + + // store last used Page + Settings->setValue("viewPage", viewMode()); } Settings->endGroup(); @@ -222,19 +243,51 @@ void PostedCreatePostDialog::addPicture() } -void PostedCreatePostDialog::on_postButton_clicked() +int PostedCreatePostDialog::viewMode() { - ui->stackedWidget->setCurrentIndex(0); + if (ui->postButton->isChecked()) { + return VIEW_POST; + } else if (ui->imageButton->isChecked()) { + return VIEW_IMAGE; + } else if (ui->linkButton->isChecked()) { + return VIEW_LINK; + } + + /* Default */ + return VIEW_POST; } -void PostedCreatePostDialog::on_imageButton_clicked() +void PostedCreatePostDialog::setPage(int viewMode) { - ui->stackedWidget->setCurrentIndex(1); -} + switch (viewMode) { + case VIEW_POST: + ui->stackedWidget->setCurrentIndex(0); -void PostedCreatePostDialog::on_linkButton_clicked() -{ - ui->stackedWidget->setCurrentIndex(2); + ui->postButton->setChecked(true); + ui->imageButton->setChecked(false); + ui->linkButton->setChecked(false); + + break; + case VIEW_IMAGE: + ui->stackedWidget->setCurrentIndex(1); + + ui->imageButton->setChecked(true); + ui->postButton->setChecked(false); + ui->linkButton->setChecked(false); + + break; + case VIEW_LINK: + ui->stackedWidget->setCurrentIndex(2); + + ui->linkButton->setChecked(true); + ui->postButton->setChecked(false); + ui->imageButton->setChecked(false); + + break; + default: + setPage(VIEW_POST); + return; + } } void PostedCreatePostDialog::on_removeButton_clicked() diff --git a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.h b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.h index 5aed59950..6e11c795b 100644 --- a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.h +++ b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.h @@ -52,14 +52,13 @@ private: private slots: void createPost(); void addPicture(); - void on_postButton_clicked(); - void on_imageButton_clicked(); - void on_linkButton_clicked(); void on_removeButton_clicked(); void fileHashingFinished(QList hashedFiles); + void setPage(int viewMode); private: void processSettings(bool load); + int viewMode(); QString mLink; QString mNotes; diff --git a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.ui b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.ui index 50abd48a2..1cdea5f8a 100644 --- a/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.ui +++ b/retroshare-gui/src/gui/Posted/PostedCreatePostDialog.ui @@ -246,36 +246,7 @@ 2 - - - - - 800 - 200 - - - - - - - true - - - - - - - Qt::Horizontal - - - - 188 - 17 - - - - - + Remove image @@ -295,6 +266,42 @@ + + + + Qt::Horizontal + + + + 188 + 17 + + + + + + + + Share Orginal Image + + + + + + + + 800 + 200 + + + + + + + true + + +
@@ -418,6 +425,9 @@ 24
+ + true + @@ -435,6 +445,15 @@ 24
+ + true + + + false + + + false + @@ -452,6 +471,12 @@ 24 + + true + + + true + From 34067223e74212aa2e521cb8b62250a5b90626ec Mon Sep 17 00:00:00 2001 From: defnax Date: Thu, 13 Feb 2020 00:12:55 +0100 Subject: [PATCH 10/16] rename on details --- retroshare-gui/src/gui/Posted/PostedListWidget.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroshare-gui/src/gui/Posted/PostedListWidget.ui b/retroshare-gui/src/gui/Posted/PostedListWidget.ui index 5edfbd949..8261a5c65 100644 --- a/retroshare-gui/src/gui/Posted/PostedListWidget.ui +++ b/retroshare-gui/src/gui/Posted/PostedListWidget.ui @@ -285,7 +285,7 @@ - Topic Details + Board Details false From 0e4d03677305ba25440085f3403e9c9b4b913982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Thu, 13 Feb 2020 01:46:51 +0100 Subject: [PATCH 11/16] README reworked --- README.asciidoc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.asciidoc b/README.asciidoc index 1243f0c28..28a3309e8 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -5,51 +5,51 @@ RetroShare is a decentralized, private, secure, cross-platform, communication toolkit. -RetroShare provides filesharing, chat, messages, forums, channels and more. +RetroShare provides file sharing, chat, messages, forums, channels and more. .Build Status |=============================================================================== -|GNU/Linux, MacOS, (via travis-ci) | image:https://travis-ci.org/RetroShare/RetroShare.svg?branch=master[link="https://travis-ci.org/RetroShare/RetroShare"] -|Windows (via appveyor) | image:https://ci.appveyor.com/api/projects/status/github/RetroShare/RetroShare?svg=true[link="https://ci.appveyor.com/project/RetroShare58622/retroshare"] +|GNU/Linux, macOS, (via Travis CI) | image:https://travis-ci.org/RetroShare/RetroShare.svg?branch=master[link="https://travis-ci.org/RetroShare/RetroShare"] +|Windows (via AppVeyor) | image:https://ci.appveyor.com/api/projects/status/github/RetroShare/RetroShare?svg=true[link="https://ci.appveyor.com/project/RetroShare58622/retroshare"] |=============================================================================== == Compilation -It is very difficult to keep a comprehensive (we support many platforms) and -updated documentation on how to build RetroShare, instead we provide scripts and -recipes that are used to create the packages for the supported platforms and -more in the `build_scripts` directory of this repository. +Short of comprehensive and updated documentation on how to build RetroShare +(for the many supported platforms it runs on), scripts and recipes are provided +in the aim of creating packages for the supported platforms (and more) +in the `build_scripts` directory of this repository. Those packaging receipts together with the continuous integration files `.travis.yml` and `appveyor.yml` are a good source of knowledge on how to compile RetroShare on different platforms. -== Using RetroShare on a headless computer with WebUI +== Using RetroShare on a headless computer with web UI -WARNING: This section is outdated need to be adapted to new WebUI +WARNING: This section is outdated need to be adapted to the new web UI -The webUI needs to be enabled as a parameter option in retroshare-service: +The web UI needs to be enabled as a parameter option to the retroshare-service: [source,bash] -------- ./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/ -------- -The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS +The web UI is only accessible on localhost:9090. It is advised to keep it that way so that your RS cannot be controlled using an untrusted connection. -To access your web UI from a distance, just open a SSH tunnel on it: +To access your web UI from a distance, just open a SSH tunnel to it: [source,bash] -------- distant_machine:~/ > ssh rs_host -L 9090:localhost:9090 -N -------- -"rs_host" is the machine running retroshare-nogui. Then on the distant machine, access your webUI on +"rs_host" is the machine running `retroshare-nogui`. Then on the distant machine, access your web UI on http://localhost:9090 -That also works with a retroshare GUI of course. +(This can also be done from the RetroShare GUI.) From d04518fd55cfcdb14e6a4d21cdc2dce315d0ac90 Mon Sep 17 00:00:00 2001 From: drbob Date: Sat, 15 Feb 2020 01:01:19 +1100 Subject: [PATCH 12/16] Update RsPhotoItems and switch to GxsGroupDialog. WIP improvements to PhotoService: - Switch from custom image to use RsGxsImage - Update classes for new Image class - fix serialiser for photos - switch group creation to use GxGroupDialog - tweak GxsGroupDialog to display extra Widgets - add AlbumExtra widget --- libretroshare/src/retroshare/rsphoto.h | 22 +- libretroshare/src/rsitems/rsphotoitems.cc | 68 +++-- libretroshare/src/services/p3photoservice.cc | 252 ++++++++---------- .../src/gui/PhotoShare/AlbumCreateDialog.cpp | 12 +- .../src/gui/PhotoShare/AlbumCreateDialog.h | 2 +- .../src/gui/PhotoShare/AlbumDialog.cpp | 12 +- .../src/gui/PhotoShare/AlbumExtra.cpp | 41 +++ .../src/gui/PhotoShare/AlbumExtra.h | 44 +++ .../src/gui/PhotoShare/AlbumExtra.ui | 162 +++++++++++ .../src/gui/PhotoShare/AlbumGroupDialog.cpp | 186 +++++++++++++ .../src/gui/PhotoShare/AlbumGroupDialog.h | 47 ++++ .../src/gui/PhotoShare/AlbumItem.cpp | 12 +- .../src/gui/PhotoShare/PhotoDialog.cpp | 2 +- .../src/gui/PhotoShare/PhotoItem.cpp | 21 +- retroshare-gui/src/gui/PhotoShare/PhotoItem.h | 4 +- .../src/gui/PhotoShare/PhotoShare.cpp | 4 +- .../src/gui/PhotoShare/PhotoShare.h | 1 - .../src/gui/PhotoShare/PhotoSlideShow.cpp | 15 +- retroshare-gui/src/gui/TheWire/PulseItem.cpp | 205 ++------------ retroshare-gui/src/gui/TheWire/PulseItem.h | 44 +-- retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp | 9 + retroshare-gui/src/gui/gxs/GxsGroupDialog.h | 7 + retroshare-gui/src/retroshare-gui.pro | 5 + 23 files changed, 704 insertions(+), 473 deletions(-) create mode 100644 retroshare-gui/src/gui/PhotoShare/AlbumExtra.cpp create mode 100644 retroshare-gui/src/gui/PhotoShare/AlbumExtra.h create mode 100644 retroshare-gui/src/gui/PhotoShare/AlbumExtra.ui create mode 100644 retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.cpp create mode 100644 retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.h diff --git a/libretroshare/src/retroshare/rsphoto.h b/libretroshare/src/retroshare/rsphoto.h index 7e5b6ea99..f94f50f34 100644 --- a/libretroshare/src/retroshare/rsphoto.h +++ b/libretroshare/src/retroshare/rsphoto.h @@ -3,7 +3,7 @@ * * * libretroshare: retroshare core library * * * - * Copyright 2008-2012 by Robert Fernie * + * Copyright 2008-2020 by Robert Fernie * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as * @@ -26,6 +26,7 @@ #include #include #include "rsgxsservice.h" +#include "rsgxscommon.h" /* The Main Interface Class - for information about your Peers */ class RsPhoto; @@ -37,21 +38,6 @@ extern RsPhoto *rsPhoto; #define RSPHOTO_MODE_OWN 2 #define RSPHOTO_MODE_REMOTE 3 -class RsPhotoThumbnail -{ - public: - RsPhotoThumbnail() - :data(NULL), size(0), type("N/A") { return; } - - bool deleteImage(); - bool copyFrom(const RsPhotoThumbnail &nail); - - // Holds Thumbnail image. - uint8_t *data; - uint32_t size; - std::string type; -}; - /* If these flags are no set - the Photo inherits values from the Album */ @@ -96,7 +82,7 @@ class RsPhotoPhoto int mOrder; - RsPhotoThumbnail mThumbnail; + RsGxsImage mThumbnail; int mMode; @@ -137,7 +123,7 @@ class RsPhotoAlbum std::string mHashTags; - RsPhotoThumbnail mThumbnail; + RsGxsImage mThumbnail; int mMode; diff --git a/libretroshare/src/rsitems/rsphotoitems.cc b/libretroshare/src/rsitems/rsphotoitems.cc index e462d8ee9..31187d9ee 100644 --- a/libretroshare/src/rsitems/rsphotoitems.cc +++ b/libretroshare/src/rsitems/rsphotoitems.cc @@ -37,8 +37,8 @@ RsItem *RsGxsPhotoSerialiser::create_item(uint16_t service, uint8_t item_sub_id) switch(item_sub_id) { case RS_PKT_SUBTYPE_PHOTO_COMMENT_ITEM: return new RsGxsPhotoCommentItem() ; - case RS_PKT_SUBTYPE_PHOTO_SHOW_ITEM: return new RsGxsPhotoAlbumItem() ; - case RS_PKT_SUBTYPE_PHOTO_ITEM: return new RsGxsPhotoPhotoItem() ; + case RS_PKT_SUBTYPE_PHOTO_SHOW_ITEM: return new RsGxsPhotoPhotoItem() ; + case RS_PKT_SUBTYPE_PHOTO_ITEM: return new RsGxsPhotoAlbumItem() ; default: return NULL ; } @@ -55,25 +55,23 @@ void RsGxsPhotoAlbumItem::serial_process(RsGenericSerializer::SerializeJob j,RsG RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_NAME, album.mPhotographer, "mPhotographer"); RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen"); RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_LOCATION, album.mWhere, "mWhere"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_PIC_TYPE, album.mThumbnail.type,"mThumbnail.type"); - RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, album.mThumbnail.data, album.mThumbnail.size); - RsTypeSerializer::serial_process(j, ctx, b, "thumbnail binary data") ; + RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, album.mThumbnail.mData, album.mThumbnail.mSize); + RsTypeSerializer::serial_process(j, ctx, b, "mThumbnail") ; } void RsGxsPhotoPhotoItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CAPTION, photo.mCaption, "mCaption"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CATEGORY, photo.mCategory, "mCategory"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DATE, photo.mWhen, "mWhen"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_LOCATION, photo.mWhere, "mWhere"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_TYPE, photo.mThumbnail.type, "mThumbnail.type"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CAPTION, photo.mCaption, "mCaption"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CATEGORY, photo.mCategory, "mCategory"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DATE, photo.mWhen, "mWhen"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_LOCATION, photo.mWhere, "mWhere"); - RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, photo.mThumbnail.data, photo.mThumbnail.size); - RsTypeSerializer::serial_process(j, ctx, b, "mThumbnail") ; + RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, photo.mThumbnail.mData, photo.mThumbnail.mSize); + RsTypeSerializer::serial_process(j, ctx, b, "mThumbnail") ; } void RsGxsPhotoCommentItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { @@ -83,16 +81,16 @@ void RsGxsPhotoCommentItem::serial_process(RsGenericSerializer::SerializeJob j,R void RsGxsPhotoAlbumItem::clear() { - album.mCaption.clear(); - album.mCategory.clear(); - album.mDescription.clear(); - album.mHashTags.clear(); - album.mOther.clear(); - album.mPhotoPath.clear(); - album.mPhotographer.clear(); - album.mWhen.clear(); - album.mWhere.clear(); - album.mThumbnail.deleteImage(); + album.mCaption.clear(); + album.mCategory.clear(); + album.mDescription.clear(); + album.mHashTags.clear(); + album.mOther.clear(); + album.mPhotoPath.clear(); + album.mPhotographer.clear(); + album.mWhen.clear(); + album.mWhere.clear(); + album.mThumbnail.clear(); } void RsGxsPhotoCommentItem::clear() @@ -103,13 +101,13 @@ void RsGxsPhotoCommentItem::clear() void RsGxsPhotoPhotoItem::clear() { - photo.mCaption.clear(); - photo.mCategory.clear(); - photo.mDescription.clear(); - photo.mHashTags.clear(); - photo.mOther.clear(); - photo.mPhotographer.clear(); - photo.mWhen.clear(); - photo.mWhere.clear(); - photo.mThumbnail.deleteImage(); + photo.mCaption.clear(); + photo.mCategory.clear(); + photo.mDescription.clear(); + photo.mHashTags.clear(); + photo.mOther.clear(); + photo.mPhotographer.clear(); + photo.mWhen.clear(); + photo.mWhere.clear(); + photo.mThumbnail.clear(); } diff --git a/libretroshare/src/services/p3photoservice.cc b/libretroshare/src/services/p3photoservice.cc index 608fddbc0..0212aa715 100644 --- a/libretroshare/src/services/p3photoservice.cc +++ b/libretroshare/src/services/p3photoservice.cc @@ -30,56 +30,16 @@ const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f; const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001; const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_COMMENT = 0x0002; - - - -bool RsPhotoThumbnail::copyFrom(const RsPhotoThumbnail &nail) -{ - if (data) - { - deleteImage(); - } - - if ((!nail.data) || (nail.size == 0)) - { - return false; - } - - size = nail.size; - type = nail.type; - data = (uint8_t *) rs_malloc(size); - - if(data == NULL) - return false ; - - memcpy(data, nail.data, size); - - return true; -} - -bool RsPhotoThumbnail::deleteImage() -{ - if (data) - { - free(data); - data = NULL; - size = 0; - type.clear(); - } - return true; -} - - RsPhotoPhoto::RsPhotoPhoto() - :mSetFlags(0), mOrder(0), mMode(0), mModFlags(0) + :mSetFlags(0), mOrder(0), mMode(0), mModFlags(0) { - return; + return; } RsPhotoAlbum::RsPhotoAlbum() - :mMode(0), mSetFlags(0), mModFlags(0) + :mMode(0), mSetFlags(0), mModFlags(0) { - return; + return; } RsPhotoComment::RsPhotoComment() @@ -96,19 +56,19 @@ RsPhotoComment::RsPhotoComment(const RsGxsPhotoCommentItem &comment) } std::ostream &operator<<(std::ostream &out, const RsPhotoPhoto &photo) { - out << "RsPhotoPhoto [ "; - out << "Title: " << photo.mMeta.mMsgName; - out << "]"; - return out; + out << "RsPhotoPhoto [ "; + out << "Title: " << photo.mMeta.mMsgName; + out << "]"; + return out; } std::ostream &operator<<(std::ostream &out, const RsPhotoAlbum &album) { - out << "RsPhotoAlbum [ "; - out << "Title: " << album.mMeta.mGroupName; - out << "]"; - return out; + out << "RsPhotoAlbum [ "; + out << "Title: " << album.mMeta.mGroupName; + out << "]"; + return out; } p3PhotoService::p3PhotoService(RsGeneralDataService* gds, RsNetworkExchangeService* nes, RsGixs* gixs) @@ -125,7 +85,7 @@ const uint16_t GXS_PHOTO_MIN_MINOR_VERSION = 0; RsServiceInfo p3PhotoService::getServiceInfo() { - return RsServiceInfo(RS_SERVICE_GXS_TYPE_PHOTO, + return RsServiceInfo(RS_SERVICE_GXS_TYPE_PHOTO, GXS_PHOTO_APP_NAME, GXS_PHOTO_APP_MAJOR_VERSION, GXS_PHOTO_APP_MINOR_VERSION, @@ -137,20 +97,20 @@ RsServiceInfo p3PhotoService::getServiceInfo() uint32_t p3PhotoService::photoAuthenPolicy() { - uint32_t policy = 0; - uint8_t flag = 0; + uint32_t policy = 0; + uint8_t flag = 0; - flag = GXS_SERV::MSG_AUTHEN_ROOT_PUBLISH_SIGN | GXS_SERV::MSG_AUTHEN_CHILD_AUTHOR_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PUBLIC_GRP_BITS); + flag = GXS_SERV::MSG_AUTHEN_ROOT_PUBLISH_SIGN | GXS_SERV::MSG_AUTHEN_CHILD_AUTHOR_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PUBLIC_GRP_BITS); - flag |= GXS_SERV::MSG_AUTHEN_CHILD_PUBLISH_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::RESTRICTED_GRP_BITS); - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PRIVATE_GRP_BITS); + flag |= GXS_SERV::MSG_AUTHEN_CHILD_PUBLISH_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::RESTRICTED_GRP_BITS); + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PRIVATE_GRP_BITS); - flag = GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::GRP_OPTION_BITS); + flag = GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::GRP_OPTION_BITS); - return policy; + return policy; } bool p3PhotoService::updated() @@ -175,14 +135,15 @@ void p3PhotoService::groupsChanged(std::list& grpIds) while(!mGroupChange.empty()) { - RsGxsGroupChange* gc = mGroupChange.back(); - std::list& gList = gc->mGrpIdList; - std::list::iterator lit = gList.begin(); - for(; lit != gList.end(); ++lit) - grpIds.push_back(*lit); + RsGxsGroupChange* gc = mGroupChange.back(); + std::list& gList = gc->mGrpIdList; + std::list::iterator lit = gList.begin(); + for(; lit != gList.end(); ++lit) { + grpIds.push_back(*lit); + } - mGroupChange.pop_back(); - delete gc; + mGroupChange.pop_back(); + delete gc; } } @@ -203,105 +164,107 @@ void p3PhotoService::msgsChanged(GxsMsgIdResult& msgs) RsTokenService* p3PhotoService::getTokenService() { - return RsGenExchange::getTokenService(); + return RsGenExchange::getTokenService(); } bool p3PhotoService::getGroupList(const uint32_t& token, - std::list& groupIds) + std::list& groupIds) { - return RsGenExchange::getGroupList(token, groupIds); + bool okay = RsGenExchange::getGroupList(token, groupIds); + return okay; } bool p3PhotoService::getMsgList(const uint32_t& token, - GxsMsgIdResult& msgIds) + GxsMsgIdResult& msgIds) { - return RsGenExchange::getMsgList(token, msgIds); + return RsGenExchange::getMsgList(token, msgIds); } bool p3PhotoService::getGroupSummary(const uint32_t& token, - std::list& groupInfo) + std::list& groupInfo) { - return RsGenExchange::getGroupMeta(token, groupInfo); + bool okay = RsGenExchange::getGroupMeta(token, groupInfo); + return okay; } bool p3PhotoService::getMsgSummary(const uint32_t& token, - MsgMetaResult& msgInfo) + MsgMetaResult& msgInfo) { - return RsGenExchange::getMsgMeta(token, msgInfo); + return RsGenExchange::getMsgMeta(token, msgInfo); } bool p3PhotoService::getAlbum(const uint32_t& token, std::vector& albums) { - std::vector grpData; - bool ok = RsGenExchange::getGroupData(token, grpData); + std::vector grpData; + bool ok = RsGenExchange::getGroupData(token, grpData); - if(ok) - { - std::vector::iterator vit = grpData.begin(); + if(ok) + { + std::vector::iterator vit = grpData.begin(); - for(; vit != grpData.end(); ++vit) - { - RsGxsPhotoAlbumItem* item = dynamic_cast(*vit); - if (item) - { - RsPhotoAlbum album = item->album; - item->album.mMeta = item->meta; - album.mMeta = item->album.mMeta; - delete item; - albums.push_back(album); - } - else - { - std::cerr << "Not a RsGxsPhotoAlbumItem, deleting!" << std::endl; - delete *vit; - } - } - } + for(; vit != grpData.end(); ++vit) + { + RsGxsPhotoAlbumItem* item = dynamic_cast(*vit); + if (item) + { + RsPhotoAlbum album = item->album; + item->album.mMeta = item->meta; + album.mMeta = item->album.mMeta; + delete item; + albums.push_back(album); + } + else + { + std::cerr << "Not a RsGxsPhotoAlbumItem, deleting!" << std::endl; + delete *vit; + } + } + } - return ok; + return ok; } bool p3PhotoService::getPhoto(const uint32_t& token, PhotoResult& photos) { - GxsMsgDataMap msgData; - bool ok = RsGenExchange::getMsgData(token, msgData); + GxsMsgDataMap msgData; + bool ok = RsGenExchange::getMsgData(token, msgData); - if(ok) - { - GxsMsgDataMap::iterator mit = msgData.begin(); + if(ok) + { + GxsMsgDataMap::iterator mit = msgData.begin(); - for(; mit != msgData.end(); ++mit) - { - RsGxsGroupId grpId = mit->first; - std::vector& msgItems = mit->second; - std::vector::iterator vit = msgItems.begin(); + for(; mit != msgData.end(); ++mit) + { + RsGxsGroupId grpId = mit->first; + std::vector& msgItems = mit->second; + std::vector::iterator vit = msgItems.begin(); - for(; vit != msgItems.end(); ++vit) - { - RsGxsPhotoPhotoItem* item = dynamic_cast(*vit); + for(; vit != msgItems.end(); ++vit) + { + RsGxsPhotoPhotoItem* item = dynamic_cast(*vit); - if(item) - { - RsPhotoPhoto photo = item->photo; - photo.mMeta = item->meta; - photos[grpId].push_back(photo); - delete item; - }else - { - std::cerr << "Not a photo Item, deleting!" << std::endl; - delete *vit; - } - } - } - } + if(item) + { + RsPhotoPhoto photo = item->photo; + photo.mMeta = item->meta; + photos[grpId].push_back(photo); + delete item; + }else + { + std::cerr << "Not a photo Item, deleting!" << std::endl; + delete *vit; + } + } + } + } - return ok; + return ok; } bool p3PhotoService::getPhotoComment(const uint32_t &token, PhotoCommentResult &comments) @@ -349,9 +312,7 @@ RsPhotoComment& RsPhotoComment::operator=(const RsGxsPhotoCommentItem& comment) bool p3PhotoService::getPhotoRelatedComment(const uint32_t &token, PhotoRelatedCommentResult &comments) { - return RsGenExchange::getMsgRelatedDataT(token, comments); - } bool p3PhotoService::submitAlbumDetails(uint32_t& token, RsPhotoAlbum& album) @@ -379,28 +340,27 @@ void p3PhotoService::notifyChanges(std::vector& changes) RsGxsMsgChange* mc; if((mc = dynamic_cast(n)) != NULL) { - mMsgChange.push_back(mc); + mMsgChange.push_back(mc); } else if((gc = dynamic_cast(n)) != NULL) { - mGroupChange.push_back(gc); + mGroupChange.push_back(gc); } else { - delete n; + delete n; } } } bool p3PhotoService::submitPhoto(uint32_t& token, RsPhotoPhoto& photo) { - RsGxsPhotoPhotoItem* photoItem = new RsGxsPhotoPhotoItem(); - photoItem->photo = photo; - photoItem->meta = photo.mMeta; - photoItem->meta.mMsgFlags = FLAG_MSG_TYPE_PHOTO_POST; + RsGxsPhotoPhotoItem* photoItem = new RsGxsPhotoPhotoItem(); + photoItem->photo = photo; + photoItem->meta = photo.mMeta; - RsGenExchange::publishMsg(token, photoItem); - return true; + RsGenExchange::publishMsg(token, photoItem); + return true; } bool p3PhotoService::submitComment(uint32_t &token, RsPhotoComment &comment) @@ -415,16 +375,16 @@ bool p3PhotoService::submitComment(uint32_t &token, RsPhotoComment &comment) } bool p3PhotoService::acknowledgeMsg(const uint32_t& token, - std::pair& msgId) + std::pair& msgId) { - return RsGenExchange::acknowledgeTokenMsg(token, msgId); + return RsGenExchange::acknowledgeTokenMsg(token, msgId); } bool p3PhotoService::acknowledgeGrp(const uint32_t& token, - RsGxsGroupId& grpId) + RsGxsGroupId& grpId) { - return RsGenExchange::acknowledgeTokenGrp(token, grpId); + return RsGenExchange::acknowledgeTokenGrp(token, grpId); } bool p3PhotoService::subscribeToAlbum(uint32_t &token, const RsGxsGroupId &grpId, bool subscribe) diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp index 5d5461d79..68c74e221 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp @@ -128,7 +128,7 @@ void AlbumCreateDialog::publishPhotos() } -bool AlbumCreateDialog::getAlbumThumbnail(RsPhotoThumbnail &nail) +bool AlbumCreateDialog::getAlbumThumbnail(RsGxsImage &image) { const QPixmap *tmppix = &mThumbNail; @@ -142,17 +142,11 @@ bool AlbumCreateDialog::getAlbumThumbnail(RsPhotoThumbnail &nail) buffer.open(QIODevice::WriteOnly); tmppix->save(&buffer, "PNG"); // writes image into ba in PNG format - RsPhotoThumbnail tmpnail; - tmpnail.data = (uint8_t *) ba.data(); - tmpnail.size = ba.size(); - - nail.copyFrom(tmpnail); - + image.copy((uint8_t *) ba.data(), ba.size()); return true; } - nail.data = NULL; - nail.size = 0; + image.clear(); return false; } diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.h b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.h index 41b0896ba..d136a374b 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.h +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.h @@ -55,7 +55,7 @@ private slots: private: - bool getAlbumThumbnail(RsPhotoThumbnail &nail); + bool getAlbumThumbnail(RsGxsImage &image); private: Ui::AlbumCreateDialog *ui; diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp index 8961e0cd8..c7f0991df 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumDialog.cpp @@ -60,17 +60,17 @@ void AlbumDialog::setUp() ui->textEdit_description->setText(QString::fromStdString(mAlbum.mDescription)); - QPixmap qtn; - GxsIdDetails::loadPixmapFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size,qtn, GxsIdDetails::ORIGINAL); - if(mAlbum.mThumbnail.size != 0) + if(mAlbum.mThumbnail.mSize != 0) { - ui->label_thumbNail->setPixmap(qtn); + QPixmap qtn; + GxsIdDetails::loadPixmapFromData(mAlbum.mThumbnail.mData, mAlbum.mThumbnail.mSize,qtn, GxsIdDetails::ORIGINAL); + ui->label_thumbNail->setPixmap(qtn); } else { - // display a default Album icon when album has no Thumbnail - ui->label_thumbNail->setPixmap(QPixmap(":/images/album_default_128.png")); + // display a default Album icon when album has no Thumbnail + ui->label_thumbNail->setPixmap(QPixmap(":/images/album_default_128.png")); } } diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumExtra.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.cpp new file mode 100644 index 000000000..c6ddf6e17 --- /dev/null +++ b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.cpp @@ -0,0 +1,41 @@ +/******************************************************************************* + * retroshare-gui/src/gui/PhotoShare/AlbumExtra.cpp * + * * + * Copyright (C) 2018 by Robert Fernie * + * * + * 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 . * + * * + *******************************************************************************/ + +#include "AlbumExtra.h" +#include "ui_AlbumExtra.h" + +AlbumExtra::AlbumExtra(QWidget *parent) : + QWidget(NULL), + ui(new Ui::AlbumExtra) +{ + ui->setupUi(this); + setUp(); +} + +AlbumExtra::~AlbumExtra() +{ + delete ui; +} + +void AlbumExtra::setUp() +{ + +} + diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumExtra.h b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.h new file mode 100644 index 000000000..1a932bcaa --- /dev/null +++ b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.h @@ -0,0 +1,44 @@ +/******************************************************************************* + * retroshare-gui/src/gui/PhotoShare/AlbumExtra.h * + * * + * Copyright (C) 2020 by Robert Fernie * + * * + * 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 . * + * * + *******************************************************************************/ + +#ifndef ALBUMEXTRA_H +#define ALBUMEXTRA_H + +#include + +namespace Ui { + class AlbumExtra; +} + +class AlbumExtra : public QWidget +{ + Q_OBJECT + +public: + explicit AlbumExtra(QWidget *parent = 0); + virtual ~AlbumExtra(); + +private: + void setUp(); +private: + Ui::AlbumExtra *ui; +}; + +#endif // ALBUMEXTRA_H diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumExtra.ui b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.ui new file mode 100644 index 000000000..09780a77a --- /dev/null +++ b/retroshare-gui/src/gui/PhotoShare/AlbumExtra.ui @@ -0,0 +1,162 @@ + + + AlbumExtra + + + + 0 + 0 + 513 + 198 + + + + + 0 + 0 + + + + Form + + + + + + Category: + + + + + + + + Animals + + + + + Family + + + + + Friends + + + + + Flowers + + + + + Holiday + + + + + Landscapes + + + + + Pets + + + + + Portraits + + + + + Travel + + + + + Work + + + + + Random + + + + + + + + Quality: + + + + + + + + 0 + 0 + + + + + Resize Images (< 1Mb) + + + + + Resize Images (< 10Mb) + + + + + Send Original Images + + + + + + + + Qt::Horizontal + + + + + + + Caption: + + + + + + + + + + Where: + + + + + + + + + + Photographer: + + + + + + + + + + + diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.cpp new file mode 100644 index 000000000..33e6cc229 --- /dev/null +++ b/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.cpp @@ -0,0 +1,186 @@ +/******************************************************************************* + * retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.cpp * + * * + * Copyright (C) 2020 by Robert Fernie * + * * + * 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 . * + * * + *******************************************************************************/ +#include + +#include "AlbumGroupDialog.h" +#include "AlbumExtra.h" +#include "gui/gxs/GxsIdDetails.h" + +#include + +const uint32_t AlbumCreateEnabledFlags = ( + GXS_GROUP_FLAGS_NAME | + GXS_GROUP_FLAGS_ICON | + GXS_GROUP_FLAGS_DESCRIPTION | + GXS_GROUP_FLAGS_DISTRIBUTION | + // GXS_GROUP_FLAGS_PUBLISHSIGN | + // GXS_GROUP_FLAGS_SHAREKEYS | // disabled because the UI doesn't handle it yet. + // GXS_GROUP_FLAGS_PERSONALSIGN | + // GXS_GROUP_FLAGS_COMMENTS | + GXS_GROUP_FLAGS_EXTRA | + 0); + +uint32_t AlbumCreateDefaultsFlags = ( GXS_GROUP_DEFAULTS_DISTRIB_PUBLIC | + //GXS_GROUP_DEFAULTS_DISTRIB_GROUP | + //GXS_GROUP_DEFAULTS_DISTRIB_LOCAL | + + GXS_GROUP_DEFAULTS_PUBLISH_OPEN | + //GXS_GROUP_DEFAULTS_PUBLISH_THREADS | + //GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED | + //GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED | + + //GXS_GROUP_DEFAULTS_PERSONAL_GPG | + GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED | + //GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB | + + //GXS_GROUP_DEFAULTS_COMMENTS_YES | + GXS_GROUP_DEFAULTS_COMMENTS_NO | + 0); + +uint32_t AlbumEditEnabledFlags = AlbumCreateEnabledFlags; +uint32_t AlbumEditDefaultsFlags = AlbumCreateDefaultsFlags; + +AlbumGroupDialog::AlbumGroupDialog(TokenQueue *tokenQueue, QWidget *parent) + : GxsGroupDialog(tokenQueue, AlbumCreateEnabledFlags, AlbumCreateDefaultsFlags, parent) +{ +} + +AlbumGroupDialog::AlbumGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, QWidget *parent) + : GxsGroupDialog(tokenExternalQueue, tokenService, mode, groupId, AlbumEditEnabledFlags, AlbumEditDefaultsFlags, parent) +{ +} + +void AlbumGroupDialog::initUi() +{ + switch (mode()) + { + case MODE_CREATE: + setUiText(UITYPE_SERVICE_HEADER, tr("Create New Album")); + setUiText(UITYPE_BUTTONBOX_OK, tr("Create")); + break; + case MODE_SHOW: + setUiText(UITYPE_SERVICE_HEADER, tr("Album")); + break; + case MODE_EDIT: + setUiText(UITYPE_SERVICE_HEADER, tr("Edit ALbum")); + setUiText(UITYPE_BUTTONBOX_OK, tr("Update Album")); + break; + } + + setUiText(UITYPE_ADD_ADMINS_CHECKBOX, tr("Add Album Admins")); + setUiText(UITYPE_CONTACTS_DOCK, tr("Select Album Admins")); + + // Inject Extra Widgets. + injectExtraWidget(new AlbumExtra(this)); +} + +QPixmap AlbumGroupDialog::serviceImage() +{ + return QPixmap(":/images/album_create_64.png"); +} + +void AlbumGroupDialog::prepareAlbumGroup(RsPhotoAlbum &group, const RsGroupMetaData &meta) +{ + group.mMeta = meta; + group.mDescription = getDescription().toUtf8().constData(); + + QPixmap pixmap = getLogo(); + + if (!pixmap.isNull()) { + QByteArray ba; + QBuffer buffer(&ba); + + buffer.open(QIODevice::WriteOnly); + pixmap.save(&buffer, "PNG"); // writes image into ba in PNG format + + group.mThumbnail.copy((uint8_t *) ba.data(), ba.size()); + } else { + group.mThumbnail.clear(); + } + + // Additional Fields that we need to fill in. + group.mCaption = "Caption goes here"; + group.mPhotographer = "photographer"; + group.mWhere = "Where?"; + +} + +bool AlbumGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta) +{ + // Specific Function. + RsPhotoAlbum grp; + prepareAlbumGroup(grp, meta); + + rsPhoto->submitAlbumDetails(token, grp); + return true; +} + +bool AlbumGroupDialog::service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta) +{ + RsPhotoAlbum grp; + prepareAlbumGroup(grp, editedMeta); + + std::cerr << "AlbumGroupDialog::service_EditGroup() submitting changes"; + std::cerr << std::endl; + + // TODO: no interface here, yet. + // rsPhoto->updateGroup(token, grp); + return true; +} + +bool AlbumGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupMetaData& groupMetaData, QString &description) +{ + std::cerr << "AlbumGroupDialog::service_loadGroup(" << token << ")"; + std::cerr << std::endl; + + std::vector groups; + if (!rsPhoto->getAlbum(token, groups)) + { + std::cerr << "AlbumGroupDialog::service_loadGroup() Error getting GroupData"; + std::cerr << std::endl; + return false; + } + + if (groups.size() != 1) + { + std::cerr << "AlbumGroupDialog::service_loadGroup() Error Group.size() != 1"; + std::cerr << std::endl; + return false; + } + + std::cerr << "AlbumGroupDialog::service_loadGroup() Unfinished Loading"; + std::cerr << std::endl; + + const RsPhotoAlbum &group = groups[0]; + groupMetaData = group.mMeta; + description = QString::fromUtf8(group.mDescription.c_str()); + + if (group.mThumbnail.mData) { + QPixmap pixmap; + if (GxsIdDetails::loadPixmapFromData(group.mThumbnail.mData, group.mThumbnail.mSize, pixmap,GxsIdDetails::ORIGINAL)) { + setLogo(pixmap); + } + } else { + setLogo(QPixmap(":/images/album_create_64.png")); + } + + // NEED TO Load additional data.... + return true; +} diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.h b/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.h new file mode 100644 index 000000000..a06ce3461 --- /dev/null +++ b/retroshare-gui/src/gui/PhotoShare/AlbumGroupDialog.h @@ -0,0 +1,47 @@ +/******************************************************************************* + * retroshare-gui/src/gui/Posted/PostedGroupDialog.h * + * * + * Copyright (C) 2020 by Robert Fernie * + * * + * 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 . * + * * + *******************************************************************************/ + + +#ifndef _ALBUM_GROUP_DIALOG_H +#define _ALBUM_GROUP_DIALOG_H + +#include "gui/gxs/GxsGroupDialog.h" +#include + +class AlbumGroupDialog : public GxsGroupDialog +{ + Q_OBJECT + +public: + AlbumGroupDialog(TokenQueue *tokenQueue, QWidget *parent); + AlbumGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, QWidget *parent); + +protected: + virtual void initUi(); + virtual QPixmap serviceImage(); + virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta); + virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description); + virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta); + +private: + void prepareAlbumGroup(RsPhotoAlbum &group, const RsGroupMetaData &meta); +}; + +#endif diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumItem.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumItem.cpp index 4637a673a..1eb79dd98 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumItem.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumItem.cpp @@ -41,17 +41,17 @@ void AlbumItem::setUp() { ui->label_AlbumTitle->setText(QString::fromStdString(mAlbum.mMeta.mGroupName)); ui->label_Photographer->setText(QString::fromStdString(mAlbum.mPhotographer)); - QPixmap qtn; - qtn.loadFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size, mAlbum.mThumbnail.type.c_str()); - if(mAlbum.mThumbnail.size != 0) + if(mAlbum.mThumbnail.mSize != 0) { - ui->label_Thumbnail->setPixmap(qtn); + QPixmap qtn; + qtn.loadFromData(mAlbum.mThumbnail.mData, mAlbum.mThumbnail.mSize, "PNG"); + ui->label_Thumbnail->setPixmap(qtn); } else { - // display a default Album icon when album has no Thumbnail - ui->label_Thumbnail->setPixmap(QPixmap(":/images/album_default_128.png")); + // display a default Album icon when album has no Thumbnail + ui->label_Thumbnail->setPixmap(QPixmap(":/images/album_default_128.png")); } } diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp index a3e0e8c69..0d2112304 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoDialog.cpp @@ -53,7 +53,7 @@ PhotoDialog::~PhotoDialog() void PhotoDialog::setUp() { QPixmap qtn; - qtn.loadFromData(mPhotoDetails.mThumbnail.data, mPhotoDetails.mThumbnail.size, mPhotoDetails.mThumbnail.type.c_str()); + qtn.loadFromData(mPhotoDetails.mThumbnail.mData, mPhotoDetails.mThumbnail.mSize, "PNG"); ui->label_Photo->setPixmap(qtn); ui->lineEdit_Title->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName)); diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoItem.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoItem.cpp index f0cfaa895..56378467f 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoItem.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoItem.cpp @@ -60,7 +60,7 @@ PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget ui->label_Thumbnail->setPixmap(mThumbNail.scaled(120, 120, Qt::KeepAspectRatio, Qt::SmoothTransformation)); setSelected(false); - getPhotoThumbnail(mPhotoDetails.mThumbnail); + getThumbnail(mPhotoDetails.mThumbnail); connect(ui->lineEdit_Title, SIGNAL(editingFinished()), this, SLOT(setTitle())); connect(ui->lineEdit_PhotoGrapher, SIGNAL(editingFinished()), this, SLOT(setPhotoGrapher())); @@ -83,7 +83,7 @@ void PhotoItem::setSelected(bool selected) update(); } -bool PhotoItem::getPhotoThumbnail(RsPhotoThumbnail &nail) +bool PhotoItem::getThumbnail(RsGxsImage &image) { const QPixmap *tmppix = &mThumbNail; @@ -96,18 +96,11 @@ bool PhotoItem::getPhotoThumbnail(RsPhotoThumbnail &nail) buffer.open(QIODevice::WriteOnly); tmppix->save(&buffer, "PNG"); // writes image into ba in PNG format - - RsPhotoThumbnail tmpnail; - tmpnail.data = (uint8_t *) ba.data(); - tmpnail.size = ba.size(); - - nail.copyFrom(tmpnail); - + image.copy((uint8_t *) ba.data(), ba.size()); return true; } - nail.data = NULL; - nail.size = 0; + image.clear(); return false; } @@ -166,12 +159,12 @@ void PhotoItem::setUp() updateImage(mPhotoDetails.mThumbnail); } -void PhotoItem::updateImage(const RsPhotoThumbnail &thumbnail) +void PhotoItem::updateImage(const RsGxsImage &image) { - if (thumbnail.data != NULL) + if (image.mData != NULL) { QPixmap qtn; - qtn.loadFromData(thumbnail.data, thumbnail.size, thumbnail.type.c_str()); + qtn.loadFromData(image.mData, image.mSize, "PNG"); ui->label_Thumbnail->setPixmap(qtn.scaled(120, 120, Qt::KeepAspectRatio, Qt::SmoothTransformation)); mThumbNail = qtn; } diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoItem.h b/retroshare-gui/src/gui/PhotoShare/PhotoItem.h index ee7b4e578..8b5ca5a18 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoItem.h +++ b/retroshare-gui/src/gui/PhotoShare/PhotoItem.h @@ -42,13 +42,13 @@ public: void setSelected(bool selected); bool isSelected(){ return mSelected; } const RsPhotoPhoto& getPhotoDetails(); - bool getPhotoThumbnail(RsPhotoThumbnail &nail); + bool getThumbnail(RsGxsImage &image); protected: void mousePressEvent(QMouseEvent *event); private: - void updateImage(const RsPhotoThumbnail &thumbnail); + void updateImage(const RsGxsImage &image); void setUp(); private slots: diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp index 5c00bcb7a..047e6ae58 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoShare.cpp @@ -31,7 +31,7 @@ #include #include -#include "AlbumCreateDialog.h" +#include "AlbumGroupDialog.h" #include "AlbumItem.h" #include "PhotoItem.h" @@ -215,7 +215,7 @@ void PhotoShare::OpenSlideShow() void PhotoShare::createAlbum() { - AlbumCreateDialog albumCreate(mPhotoQueue, rsPhoto, this); + AlbumGroupDialog albumCreate(mPhotoQueue, this); albumCreate.exec(); } diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h index dec0e077a..6703ffc53 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoShare.h +++ b/retroshare-gui/src/gui/PhotoShare/PhotoShare.h @@ -28,7 +28,6 @@ #include "retroshare/rsphoto.h" #include "retroshare-gui/mainpage.h" -#include "AlbumCreateDialog.h" #include "AlbumDialog.h" #include "PhotoDialog.h" diff --git a/retroshare-gui/src/gui/PhotoShare/PhotoSlideShow.cpp b/retroshare-gui/src/gui/PhotoShare/PhotoSlideShow.cpp index 8b1df126f..7e5fb6d00 100644 --- a/retroshare-gui/src/gui/PhotoShare/PhotoSlideShow.cpp +++ b/retroshare-gui/src/gui/PhotoShare/PhotoSlideShow.cpp @@ -20,6 +20,7 @@ #include "gui/PhotoShare/PhotoSlideShow.h" #include "gui/PhotoShare/PhotoDrop.h" +#include "gui/gxs/GxsIdDetails.h" #include @@ -175,16 +176,10 @@ void PhotoSlideShow::loadImage() if (ptr) { /* load into the slot */ - if (ptr->mThumbnail.data != NULL) + if (ptr->mThumbnail.mData != NULL) { QPixmap qtn; - - // copy the data for Qpixmap to use. - RsPhotoThumbnail tn; - tn.copyFrom(ptr->mThumbnail); - qtn.loadFromData(tn.data, tn.size, tn.type.c_str()); - tn.data = 0; - + GxsIdDetails::loadPixmapFromData(ptr->mThumbnail.mData, ptr->mThumbnail.mSize,qtn, GxsIdDetails::ORIGINAL); QPixmap sqtn = qtn.scaled(800, 600, Qt::KeepAspectRatio, Qt::SmoothTransformation); ui.imgLabel->setPixmap(sqtn); @@ -249,8 +244,8 @@ bool PhotoSlideShow::loadPhotoData(const uint32_t &token) RsPhotoPhoto& photo = *vit; RsPhotoPhoto *ptr = new RsPhotoPhoto; *ptr = photo; - ptr->mThumbnail.data = 0; - ptr->mThumbnail.copyFrom(photo.mThumbnail); + + ptr->mThumbnail = photo.mThumbnail; // copies data. ptr->mOrder = i++; mPhotos[photo.mMeta.mMsgId] = ptr; mPhotoOrder[ptr->mOrder] = photo.mMeta.mMsgId; diff --git a/retroshare-gui/src/gui/TheWire/PulseItem.cpp b/retroshare-gui/src/gui/TheWire/PulseItem.cpp index 2eb328b3e..16b01d3a4 100644 --- a/retroshare-gui/src/gui/TheWire/PulseItem.cpp +++ b/retroshare-gui/src/gui/TheWire/PulseItem.cpp @@ -25,8 +25,6 @@ #include "PulseItem.h" -#include - #include #include @@ -35,217 +33,48 @@ ****/ /** Constructor */ -PulseItem::PulseItem(PulseHolder *parent, const RsPhotoAlbum &album, const RsPhotoThumbnail &thumbnail) -:QWidget(NULL), mParent(parent), mType(PHOTO_ITEM_TYPE_ALBUM) + +PulseItem::PulseItem(PulseHolder *parent, std::string path) +:QWidget(NULL), mParent(parent), mType(0) { - setupUi(this); + setupUi(this); + setAttribute ( Qt::WA_DeleteOnClose, true ); - setAttribute ( Qt::WA_DeleteOnClose, true ); - - mDetails = *( (RsPhotoPhoto *) &(album)); - updateAlbumText(album); - updateImage(thumbnail); - - setSelected(false); } - -PulseItem::PulseItem(PulseHolder *parent, const RsPhotoPhoto &photo, const RsPhotoThumbnail &thumbnail) -:QWidget(NULL), mParent(parent), mType(PHOTO_ITEM_TYPE_PHOTO) -{ - setupUi(this); - - setAttribute ( Qt::WA_DeleteOnClose, true ); - - mDetails = *( (RsPhotoPhoto *) &(photo)); - - updatePhotoText(photo); - updateImage(thumbnail); - - setSelected(false); -} - - -PulseItem::PulseItem(PulseHolder *parent, std::string path) // for new photos. -:QWidget(NULL), mParent(parent), mType(PHOTO_ITEM_TYPE_NEW) -{ - setupUi(this); - - setAttribute ( Qt::WA_DeleteOnClose, true ); - -#if 0 - QString dummyString("dummytext"); - titleLabel->setText(QString("NEW PHOTO")); - - fromBoldLabel->setText(QString("From:")); - fromLabel->setText(QString("Ourselves")); - - statusBoldLabel->setText(QString("Status:")); - statusLabel->setText(QString("new photo")); - - dateBoldLabel->setText(QString("Date:")); - dateLabel->setText(QString("now")); - - int width = 120; - int height = 120; - - //QPixmap qtn = QPixmap(QString::fromStdString(path)).scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); - QPixmap qtn = QPixmap(QString::fromStdString(path)).scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); - imgLabel->setPixmap(qtn); - setSelected(false); -#endif -} - -void PulseItem::updateAlbumText(const RsPhotoAlbum &album) -{ -#if 0 - QString dummyString("dummytext"); - titleLabel->setText(QString("TITLE")); - - fromBoldLabel->setText(QString("From:")); - fromLabel->setText(QString("Unknown")); - - statusBoldLabel->setText(QString("Status:")); - statusLabel->setText(QString("new photo")); - - dateBoldLabel->setText(QString("Date:")); - dateLabel->setText(QString("now")); - - //QDateTime qtime; - //qtime.setTime_t(msg.ts); - //QString timestamp = qtime.toString("dd.MMMM yyyy hh:mm"); - //timestamplabel->setText(timestamp); - - dateBoldLabel->setText(dummyString); - dateLabel->setText(dummyString); -#endif -} - -void PulseItem::updatePhotoText(const RsPhotoPhoto &photo) -{ -#if 0 - QString dummyString("dummytext"); - titleLabel->setText(QString("TITLE")); - - fromBoldLabel->setText(QString("From:")); - fromLabel->setText(QString("Unknown")); - - statusBoldLabel->setText(QString("Status:")); - statusLabel->setText(QString("new photo")); - - dateBoldLabel->setText(QString("Date:")); - dateLabel->setText(QString("now")); -#endif -} - - -void PulseItem::updateImage(const RsPhotoThumbnail &thumbnail) -{ -#if 0 - if (thumbnail.data != NULL) - { - QPixmap qtn; - qtn.loadFromData(thumbnail.data, thumbnail.size, thumbnail.type.c_str()); - imgLabel->setPixmap(qtn); - } -#endif -} - -bool PulseItem::getPhotoThumbnail(RsPhotoThumbnail &nail) -{ -#if 0 - const QPixmap *tmppix = imgLabel->pixmap(); - - QByteArray ba; - QBuffer buffer(&ba); - - if(!tmppix->isNull()) - { - // send chan image - - buffer.open(QIODevice::WriteOnly); - tmppix->save(&buffer, "PNG"); // writes image into ba in PNG format - - RsPhotoThumbnail tmpnail; - tmpnail.data = (uint8_t *) ba.data(); - tmpnail.size = ba.size(); - - nail.copyFrom(tmpnail); - - return true; - } - - nail.data = NULL; - nail.size = 0; -#endif - return false; -} - - void PulseItem::removeItem() { -#if 0 -#ifdef DEBUG_ITEM - std::cerr << "PulseItem::removeItem()"; - std::cerr << std::endl; -#endif - hide(); - if (mParent) - { - mParent->deletePulseItem(this, mType); - } -#endif } - void PulseItem::setSelected(bool on) { -#if 0 - mSelected = on; - if (mSelected) - { - mParent->notifySelection(this, mType); - frame->setStyleSheet("QFrame#frame{border: 2px solid #55CC55;\nbackground: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #55EE55, stop: 1 #CCCCCC);\nborder-radius: 10px}"); - } - else - { - frame->setStyleSheet("QFrame#frame{border: 2px solid #CCCCCC;\nbackground: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #EEEEEE, stop: 1 #CCCCCC);\nborder-radius: 10px}"); - } - update(); -#endif } bool PulseItem::isSelected() { - return mSelected; + return mSelected; } - void PulseItem::mousePressEvent(QMouseEvent *event) { - /* We can be very cunning here? - * grab out position. - * flag ourselves as selected. - * then pass the mousePressEvent up for handling by the parent - */ + /* We can be very cunning here? + * grab out position. + * flag ourselves as selected. + * then pass the mousePressEvent up for handling by the parent + */ - QPoint pos = event->pos(); + QPoint pos = event->pos(); - std::cerr << "PulseItem::mousePressEvent(" << pos.x() << ", " << pos.y() << ")"; - std::cerr << std::endl; + std::cerr << "PulseItem::mousePressEvent(" << pos.x() << ", " << pos.y() << ")"; + std::cerr << std::endl; - setSelected(true); + setSelected(true); - QWidget::mousePressEvent(event); + QWidget::mousePressEvent(event); } - const QPixmap *PulseItem::getPixmap() { -#if 0 - return imgLabel->pixmap(); -#endif - return NULL; + return NULL; } - diff --git a/retroshare-gui/src/gui/TheWire/PulseItem.h b/retroshare-gui/src/gui/TheWire/PulseItem.h index bfbdc710c..6bfeb3506 100644 --- a/retroshare-gui/src/gui/TheWire/PulseItem.h +++ b/retroshare-gui/src/gui/TheWire/PulseItem.h @@ -23,61 +23,37 @@ #include "ui_PulseItem.h" -#include - class PulseItem; class PulseHolder { - public: + public: virtual void deletePulseItem(PulseItem *, uint32_t ptype) = 0; virtual void notifySelection(PulseItem *item, int ptype) = 0; }; - -#define PHOTO_ITEM_TYPE_ALBUM 0x0001 -#define PHOTO_ITEM_TYPE_PHOTO 0x0002 -#define PHOTO_ITEM_TYPE_NEW 0x0003 - class PulseItem : public QWidget, private Ui::PulseItem { Q_OBJECT public: - PulseItem(PulseHolder *parent, const RsPhotoAlbum &album, const RsPhotoThumbnail &thumbnail); - PulseItem(PulseHolder *parent, const RsPhotoPhoto &photo, const RsPhotoThumbnail &thumbnail); - PulseItem(PulseHolder *parent, std::string url); // for new photos. + PulseItem(PulseHolder *parent, std::string url); - bool getPhotoThumbnail(RsPhotoThumbnail &nail); + void removeItem(); - void removeItem(); - - void setSelected(bool on); - bool isSelected(); - - const QPixmap *getPixmap(); - - // details are public - so that can be easily edited. - RsPhotoPhoto mDetails; - -//private slots: + void setSelected(bool on); + bool isSelected(); + const QPixmap *getPixmap(); protected: - void mousePressEvent(QMouseEvent *event); + void mousePressEvent(QMouseEvent *event); private: - void updateAlbumText(const RsPhotoAlbum &album); - void updatePhotoText(const RsPhotoPhoto &photo); - void updateImage(const RsPhotoThumbnail &thumbnail); - PulseHolder *mParent; - uint32_t mType; - - - bool mSelected; + PulseHolder *mParent; + uint32_t mType; + bool mSelected; }; - #endif - diff --git a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp index c2d8b86e0..16991b72f 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp +++ b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp @@ -160,6 +160,15 @@ void GxsGroupDialog::init() Settings->loadWidgetInformation(this); } +void GxsGroupDialog::injectExtraWidget(QWidget *widget) +{ + // add extra widget into layout. + QVBoxLayout *vbox = new QVBoxLayout(); + vbox->addWidget(widget); + vbox->addStretch(1); + ui.extraFrame->setLayout(vbox); +} + QIcon GxsGroupDialog::serviceWindowIcon() { return qApp->windowIcon(); diff --git a/retroshare-gui/src/gui/gxs/GxsGroupDialog.h b/retroshare-gui/src/gui/gxs/GxsGroupDialog.h index 13cde700f..709ad4d6f 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupDialog.h +++ b/retroshare-gui/src/gui/gxs/GxsGroupDialog.h @@ -172,6 +172,13 @@ protected: virtual QPixmap serviceImage() = 0; virtual QIcon serviceWindowIcon(); + /*! + * Inject Extra Widget for additional Group configuration options. + * NB: These are only inserted for createMode currently. + * @param widget Addtional widget which is added to extraFrame. + */ + void injectExtraWidget(QWidget *widget); + /*! * \brief setUiToolTip/setUiText * Sets the text and tooltip of some parts of the UI diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro index 9ba5af806..f5e25f593 100644 --- a/retroshare-gui/src/retroshare-gui.pro +++ b/retroshare-gui/src/retroshare-gui.pro @@ -1154,6 +1154,8 @@ gxsphotoshare { DEFINES += RS_USE_PHOTO # enable in MainWindow HEADERS += \ + gui/PhotoShare/AlbumGroupDialog.h \ + gui/PhotoShare/AlbumExtra.h \ gui/PhotoShare/PhotoDrop.h \ gui/PhotoShare/AlbumItem.h \ gui/PhotoShare/AlbumDialog.h \ @@ -1167,6 +1169,7 @@ gxsphotoshare { gui/PhotoShare/AddCommentDialog.h FORMS += \ + gui/PhotoShare/AlbumExtra.ui \ gui/PhotoShare/PhotoItem.ui \ gui/PhotoShare/PhotoDialog.ui \ gui/PhotoShare/AlbumItem.ui \ @@ -1178,6 +1181,8 @@ gxsphotoshare { gui/PhotoShare/AddCommentDialog.ui SOURCES += \ + gui/PhotoShare/AlbumGroupDialog.cpp \ + gui/PhotoShare/AlbumExtra.cpp \ gui/PhotoShare/PhotoItem.cpp \ gui/PhotoShare/PhotoDialog.cpp \ gui/PhotoShare/PhotoDrop.cpp \ From f9e972daf9c395153f50019879cbb39863fa6a34 Mon Sep 17 00:00:00 2001 From: defnax Date: Fri, 14 Feb 2020 16:00:14 +0100 Subject: [PATCH 13/16] revert back some changes --- .../src/gui/PhotoShare/AlbumCreateDialog.cpp | 26 +------- .../src/gui/PhotoShare/AlbumCreateDialog.ui | 64 ++++--------------- 2 files changed, 17 insertions(+), 73 deletions(-) diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp index 5823e6717..5d5461d79 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp @@ -19,7 +19,6 @@ *******************************************************************************/ #include -#include #include "AlbumCreateDialog.h" #include "ui_AlbumCreateDialog.h" @@ -38,7 +37,7 @@ AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhoto *rs_photo, #if QT_VERSION >= 0x040700 - ui->lineEdit_Title->setPlaceholderText(tr("Untitle Album")); + ui->lineEdit_Title_2->setPlaceholderText(tr("Untitle Album")); ui->lineEdit_Caption_2->setPlaceholderText(tr("Say something about this album...")); //ui->textEdit_Description->setPlaceholderText(tr("Say something about this album...")) ; ui->lineEdit_Where->setPlaceholderText(tr("Where were these taken?")); @@ -56,8 +55,7 @@ AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhoto *rs_photo, mPhotoDrop = ui->scrollAreaWidgetContents; mPhotoDrop->setPhotoItemHolder(this); - /* fill in the available OwnIds for sharing */ - ui->IdChooser->loadIds(IDCHOOSER_ID_REQUIRED, RsGxsId()); + } AlbumCreateDialog::~AlbumCreateDialog() @@ -74,30 +72,12 @@ void AlbumCreateDialog::publishAlbum() // get fields for album to publish, publish and then exit dialog RsPhotoAlbum album; - RsGxsId authorId; - switch (ui->IdChooser->getChosenId(authorId)) { - case GxsIdChooser::KnowId: - case GxsIdChooser::UnKnowId: - break; - case GxsIdChooser::NoId: - case GxsIdChooser::None: - default: - std::cerr << "AlbumCreateDialog::publishAlbum() ERROR GETTING AuthorId!, Post Failed"; - std::cerr << std::endl; - - QMessageBox::warning(this, tr("RetroShare"),tr("Please create or choose a Signing Id first"), QMessageBox::Ok, QMessageBox::Ok); - - return; - } - - album.mMeta.mGroupName = ui->lineEdit_Title->text().toStdString(); - album.mCategory = ui->comboBox_Category->currentText().toStdString(); album.mCaption = ui->lineEdit_Caption_2->text().toStdString(); album.mPhotographer = ui->lineEdit_Photographer->text().toStdString(); + album.mMeta.mGroupName = ui->lineEdit_Title_2->text().toStdString(); album.mDescription = ui->textEdit_Description->toPlainText().toStdString(); album.mWhere = ui->lineEdit_Where->text().toStdString(); album.mPhotographer = ui->lineEdit_Photographer->text().toStdString(); - album.mMeta.mAuthorId = authorId; getAlbumThumbnail(album.mThumbnail); diff --git a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui index c471062bd..af5729fc9 100644 --- a/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui +++ b/retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.ui @@ -17,16 +17,7 @@ true - - 0 - - - 0 - - - 0 - - + 0 @@ -55,16 +46,7 @@ QFrame::NoFrame - - 0 - - - 0 - - - 0 - - + 0 @@ -72,16 +54,7 @@ - - 3 - - - 3 - - - 3 - - + 3 @@ -92,7 +65,7 @@ - + @@ -137,7 +110,7 @@ border-radius: 10px; - + Animals @@ -381,13 +354,18 @@ border-radius: 10px; - + 0 0 + + + Publish with Identity + + @@ -453,8 +431,8 @@ p, li { white-space: pre-wrap; } 0 0 - 61 - 18 + 621 + 458 @@ -473,16 +451,7 @@ p, li { white-space: pre-wrap; } - - 9 - - - 9 - - - 9 - - + 9 @@ -544,11 +513,6 @@ p, li { white-space: pre-wrap; }
gui/PhotoShare/PhotoDrop.h
1 - - GxsIdChooser - QComboBox -
gui/gxs/GxsIdChooser.h
-
From c9728cead0e3c7f681fc8085bc04b5d8584f0374 Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Fri, 14 Feb 2020 23:29:40 +0100 Subject: [PATCH 14/16] Fix typo in channels deprecated method notice --- libretroshare/src/retroshare/rsgxschannels.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretroshare/src/retroshare/rsgxschannels.h b/libretroshare/src/retroshare/rsgxschannels.h index 615ff30f7..6f14552c2 100644 --- a/libretroshare/src/retroshare/rsgxschannels.h +++ b/libretroshare/src/retroshare/rsgxschannels.h @@ -512,10 +512,10 @@ public: RS_DEPRECATED_FOR(getChannelsInfo) virtual bool getGroupData(const uint32_t &token, std::vector &groups) = 0; - RS_DEPRECATED_FOR(getChannelsContent) + RS_DEPRECATED_FOR(getChannelContent) virtual bool getPostData(const uint32_t &token, std::vector &posts, std::vector &cmts) = 0; - RS_DEPRECATED_FOR(getChannelsContent) + RS_DEPRECATED_FOR(getChannelContent) virtual bool getPostData(const uint32_t &token, std::vector &posts) = 0; /** From 1baa92f60cf06cae255bf2654a57045f5bb57d57 Mon Sep 17 00:00:00 2001 From: drbob Date: Sat, 15 Feb 2020 11:39:29 +1100 Subject: [PATCH 15/16] fixup serialisation and indentation --- libretroshare/src/rsitems/rsphotoitems.cc | 109 +++-- libretroshare/src/services/p3photoservice.cc | 440 +++++++++---------- 2 files changed, 272 insertions(+), 277 deletions(-) diff --git a/libretroshare/src/rsitems/rsphotoitems.cc b/libretroshare/src/rsitems/rsphotoitems.cc index 31187d9ee..2791b668c 100644 --- a/libretroshare/src/rsitems/rsphotoitems.cc +++ b/libretroshare/src/rsitems/rsphotoitems.cc @@ -26,88 +26,83 @@ #include "serialiser/rstlvbinary.h" #include "serialiser/rstypeserializer.h" -#define GXS_PHOTO_SERIAL_DEBUG - - RsItem *RsGxsPhotoSerialiser::create_item(uint16_t service, uint8_t item_sub_id) const { - if(service != RS_SERVICE_GXS_TYPE_PHOTO) - return NULL ; + if(service != RS_SERVICE_GXS_TYPE_PHOTO) + return NULL ; - switch(item_sub_id) - { - case RS_PKT_SUBTYPE_PHOTO_COMMENT_ITEM: return new RsGxsPhotoCommentItem() ; - case RS_PKT_SUBTYPE_PHOTO_SHOW_ITEM: return new RsGxsPhotoPhotoItem() ; - case RS_PKT_SUBTYPE_PHOTO_ITEM: return new RsGxsPhotoAlbumItem() ; - default: - return NULL ; - } + switch(item_sub_id) + { + case RS_PKT_SUBTYPE_PHOTO_COMMENT_ITEM: return new RsGxsPhotoCommentItem() ; + case RS_PKT_SUBTYPE_PHOTO_SHOW_ITEM: return new RsGxsPhotoPhotoItem() ; + case RS_PKT_SUBTYPE_PHOTO_ITEM: return new RsGxsPhotoAlbumItem() ; + default: + return NULL ; + } } void RsGxsPhotoAlbumItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CAPTION, album.mCaption, "mCaption"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CATEGORY, album.mCategory, "mCategory"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR, album.mDescription, "mDescription"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_HASH_TAG, album.mHashTags, "mHashTags"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_MSG, album.mOther, "mOther"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_PATH, album.mPhotoPath, "mPhotoPath"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_NAME, album.mPhotographer, "mPhotographer"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen"); - RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_LOCATION, album.mWhere, "mWhere"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CAPTION, album.mCaption, "mCaption"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CATEGORY, album.mCategory, "mCategory"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR, album.mDescription, "mDescription"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_HASH_TAG, album.mHashTags, "mHashTags"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_MSG, album.mOther, "mOther"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_PATH, album.mPhotoPath, "mPhotoPath"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_NAME, album.mPhotographer, "mPhotographer"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen"); + RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_LOCATION, album.mWhere, "mWhere"); - RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, album.mThumbnail.mData, album.mThumbnail.mSize); - RsTypeSerializer::serial_process(j, ctx, b, "mThumbnail") ; + album.mThumbnail.serial_process(j, ctx); } void RsGxsPhotoPhotoItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CAPTION, photo.mCaption, "mCaption"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CATEGORY, photo.mCategory, "mCategory"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DATE, photo.mWhen, "mWhen"); - RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_LOCATION, photo.mWhere, "mWhere"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CAPTION, photo.mCaption, "mCaption"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CATEGORY, photo.mCategory, "mCategory"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DATE, photo.mWhen, "mWhen"); + RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_LOCATION, photo.mWhere, "mWhere"); - RsTlvBinaryDataRef b(RS_SERVICE_GXS_TYPE_PHOTO, photo.mThumbnail.mData, photo.mThumbnail.mSize); - RsTypeSerializer::serial_process(j, ctx, b, "mThumbnail") ; + photo.mThumbnail.serial_process(j, ctx); } void RsGxsPhotoCommentItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) { - RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_COMMENT,comment.mComment,"mComment"); - RsTypeSerializer::serial_process(j,ctx,comment.mCommentFlag,"mCommentFlag"); + RsTypeSerializer::serial_process (j,ctx,TLV_TYPE_STR_COMMENT,comment.mComment,"mComment"); + RsTypeSerializer::serial_process(j,ctx,comment.mCommentFlag,"mCommentFlag"); } void RsGxsPhotoAlbumItem::clear() { - album.mCaption.clear(); - album.mCategory.clear(); - album.mDescription.clear(); - album.mHashTags.clear(); - album.mOther.clear(); - album.mPhotoPath.clear(); - album.mPhotographer.clear(); - album.mWhen.clear(); - album.mWhere.clear(); - album.mThumbnail.clear(); + album.mCaption.clear(); + album.mCategory.clear(); + album.mDescription.clear(); + album.mHashTags.clear(); + album.mOther.clear(); + album.mPhotoPath.clear(); + album.mPhotographer.clear(); + album.mWhen.clear(); + album.mWhere.clear(); + album.mThumbnail.clear(); } void RsGxsPhotoCommentItem::clear() { - comment.mComment.clear(); - comment.mCommentFlag = 0; + comment.mComment.clear(); + comment.mCommentFlag = 0; } void RsGxsPhotoPhotoItem::clear() { - photo.mCaption.clear(); - photo.mCategory.clear(); - photo.mDescription.clear(); - photo.mHashTags.clear(); - photo.mOther.clear(); - photo.mPhotographer.clear(); - photo.mWhen.clear(); - photo.mWhere.clear(); - photo.mThumbnail.clear(); + photo.mCaption.clear(); + photo.mCategory.clear(); + photo.mDescription.clear(); + photo.mHashTags.clear(); + photo.mOther.clear(); + photo.mPhotographer.clear(); + photo.mWhen.clear(); + photo.mWhere.clear(); + photo.mThumbnail.clear(); } diff --git a/libretroshare/src/services/p3photoservice.cc b/libretroshare/src/services/p3photoservice.cc index 0212aa715..847cbf3aa 100644 --- a/libretroshare/src/services/p3photoservice.cc +++ b/libretroshare/src/services/p3photoservice.cc @@ -1,23 +1,23 @@ /******************************************************************************* - * libretroshare/src/services: p3photoservice.cc * - * * - * libretroshare: retroshare core library * - * * + * libretroshare/src/services: p3photoservice.cc * + * * + * libretroshare: retroshare core library * + * * * Copyright 2008-2012 Robert Fernie,Chris Evi-Parker * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public License * - * along with this program. If not, see . * - * * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program. If not, see . * + * * *******************************************************************************/ #include "p3photoservice.h" #include "rsitems/rsphotoitems.h" @@ -26,100 +26,100 @@ RsPhoto *rsPhoto = NULL; -const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f; -const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001; +const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f; +const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001; const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_COMMENT = 0x0002; RsPhotoPhoto::RsPhotoPhoto() - :mSetFlags(0), mOrder(0), mMode(0), mModFlags(0) + :mSetFlags(0), mOrder(0), mMode(0), mModFlags(0) { - return; + return; } RsPhotoAlbum::RsPhotoAlbum() - :mMode(0), mSetFlags(0), mModFlags(0) + :mMode(0), mSetFlags(0), mModFlags(0) { - return; + return; } RsPhotoComment::RsPhotoComment() - : mComment(""), mCommentFlag(0) { + : mComment(""), mCommentFlag(0) { } RsPhotoComment::RsPhotoComment(const RsGxsPhotoCommentItem &comment) - : mComment(""), mCommentFlag(0) { + : mComment(""), mCommentFlag(0) { - *this = comment.comment; - (*this).mMeta = comment.meta; + *this = comment.comment; + (*this).mMeta = comment.meta; } std::ostream &operator<<(std::ostream &out, const RsPhotoPhoto &photo) { - out << "RsPhotoPhoto [ "; - out << "Title: " << photo.mMeta.mMsgName; - out << "]"; - return out; + out << "RsPhotoPhoto [ "; + out << "Title: " << photo.mMeta.mMsgName; + out << "]"; + return out; } std::ostream &operator<<(std::ostream &out, const RsPhotoAlbum &album) { - out << "RsPhotoAlbum [ "; - out << "Title: " << album.mMeta.mGroupName; - out << "]"; - return out; + out << "RsPhotoAlbum [ "; + out << "Title: " << album.mMeta.mGroupName; + out << "]"; + return out; } p3PhotoService::p3PhotoService(RsGeneralDataService* gds, RsNetworkExchangeService* nes, RsGixs* gixs) - : RsGenExchange(gds, nes, new RsGxsPhotoSerialiser(), RS_SERVICE_GXS_TYPE_PHOTO, gixs, photoAuthenPolicy()), - mPhotoMutex(std::string("Photo Mutex")) + : RsGenExchange(gds, nes, new RsGxsPhotoSerialiser(), RS_SERVICE_GXS_TYPE_PHOTO, gixs, photoAuthenPolicy()), + mPhotoMutex(std::string("Photo Mutex")) { } const std::string GXS_PHOTO_APP_NAME = "gxsphoto"; -const uint16_t GXS_PHOTO_APP_MAJOR_VERSION = 1; -const uint16_t GXS_PHOTO_APP_MINOR_VERSION = 0; -const uint16_t GXS_PHOTO_MIN_MAJOR_VERSION = 1; -const uint16_t GXS_PHOTO_MIN_MINOR_VERSION = 0; +const uint16_t GXS_PHOTO_APP_MAJOR_VERSION = 1; +const uint16_t GXS_PHOTO_APP_MINOR_VERSION = 0; +const uint16_t GXS_PHOTO_MIN_MAJOR_VERSION = 1; +const uint16_t GXS_PHOTO_MIN_MINOR_VERSION = 0; RsServiceInfo p3PhotoService::getServiceInfo() { - return RsServiceInfo(RS_SERVICE_GXS_TYPE_PHOTO, - GXS_PHOTO_APP_NAME, - GXS_PHOTO_APP_MAJOR_VERSION, - GXS_PHOTO_APP_MINOR_VERSION, - GXS_PHOTO_MIN_MAJOR_VERSION, - GXS_PHOTO_MIN_MINOR_VERSION); + return RsServiceInfo(RS_SERVICE_GXS_TYPE_PHOTO, + GXS_PHOTO_APP_NAME, + GXS_PHOTO_APP_MAJOR_VERSION, + GXS_PHOTO_APP_MINOR_VERSION, + GXS_PHOTO_MIN_MAJOR_VERSION, + GXS_PHOTO_MIN_MINOR_VERSION); } uint32_t p3PhotoService::photoAuthenPolicy() { - uint32_t policy = 0; - uint8_t flag = 0; + uint32_t policy = 0; + uint8_t flag = 0; - flag = GXS_SERV::MSG_AUTHEN_ROOT_PUBLISH_SIGN | GXS_SERV::MSG_AUTHEN_CHILD_AUTHOR_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PUBLIC_GRP_BITS); + flag = GXS_SERV::MSG_AUTHEN_ROOT_PUBLISH_SIGN | GXS_SERV::MSG_AUTHEN_CHILD_AUTHOR_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PUBLIC_GRP_BITS); - flag |= GXS_SERV::MSG_AUTHEN_CHILD_PUBLISH_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::RESTRICTED_GRP_BITS); - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PRIVATE_GRP_BITS); + flag |= GXS_SERV::MSG_AUTHEN_CHILD_PUBLISH_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::RESTRICTED_GRP_BITS); + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::PRIVATE_GRP_BITS); - flag = GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN; - RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::GRP_OPTION_BITS); + flag = GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN; + RsGenExchange::setAuthenPolicyFlag(flag, policy, RsGenExchange::GRP_OPTION_BITS); - return policy; + return policy; } bool p3PhotoService::updated() { - RsStackMutex stack(mPhotoMutex); + RsStackMutex stack(mPhotoMutex); - bool changed = (!mGroupChange.empty() || !mMsgChange.empty()); + bool changed = (!mGroupChange.empty() || !mMsgChange.empty()); - return changed; + return changed; } void p3PhotoService::service_tick() @@ -131,197 +131,197 @@ void p3PhotoService::service_tick() void p3PhotoService::groupsChanged(std::list& grpIds) { - RsStackMutex stack(mPhotoMutex); + RsStackMutex stack(mPhotoMutex); - while(!mGroupChange.empty()) - { - RsGxsGroupChange* gc = mGroupChange.back(); - std::list& gList = gc->mGrpIdList; - std::list::iterator lit = gList.begin(); - for(; lit != gList.end(); ++lit) { - grpIds.push_back(*lit); - } + while(!mGroupChange.empty()) + { + RsGxsGroupChange* gc = mGroupChange.back(); + std::list& gList = gc->mGrpIdList; + std::list::iterator lit = gList.begin(); + for(; lit != gList.end(); ++lit) { + grpIds.push_back(*lit); + } - mGroupChange.pop_back(); - delete gc; - } + mGroupChange.pop_back(); + delete gc; + } } void p3PhotoService::msgsChanged(GxsMsgIdResult& msgs) { - RsStackMutex stack(mPhotoMutex); + RsStackMutex stack(mPhotoMutex); - while(!mMsgChange.empty()) - { - RsGxsMsgChange* mc = mMsgChange.back(); - msgs = mc->msgChangeMap; - mMsgChange.pop_back(); - delete mc; - } + while(!mMsgChange.empty()) + { + RsGxsMsgChange* mc = mMsgChange.back(); + msgs = mc->msgChangeMap; + mMsgChange.pop_back(); + delete mc; + } } RsTokenService* p3PhotoService::getTokenService() { - return RsGenExchange::getTokenService(); + return RsGenExchange::getTokenService(); } bool p3PhotoService::getGroupList(const uint32_t& token, - std::list& groupIds) + std::list& groupIds) { - bool okay = RsGenExchange::getGroupList(token, groupIds); - return okay; + bool okay = RsGenExchange::getGroupList(token, groupIds); + return okay; } bool p3PhotoService::getMsgList(const uint32_t& token, - GxsMsgIdResult& msgIds) + GxsMsgIdResult& msgIds) { - return RsGenExchange::getMsgList(token, msgIds); + return RsGenExchange::getMsgList(token, msgIds); } bool p3PhotoService::getGroupSummary(const uint32_t& token, - std::list& groupInfo) + std::list& groupInfo) { - bool okay = RsGenExchange::getGroupMeta(token, groupInfo); - return okay; + bool okay = RsGenExchange::getGroupMeta(token, groupInfo); + return okay; } bool p3PhotoService::getMsgSummary(const uint32_t& token, - MsgMetaResult& msgInfo) + MsgMetaResult& msgInfo) { - return RsGenExchange::getMsgMeta(token, msgInfo); + return RsGenExchange::getMsgMeta(token, msgInfo); } bool p3PhotoService::getAlbum(const uint32_t& token, std::vector& albums) { - std::vector grpData; - bool ok = RsGenExchange::getGroupData(token, grpData); + std::vector grpData; + bool ok = RsGenExchange::getGroupData(token, grpData); - if(ok) - { - std::vector::iterator vit = grpData.begin(); + if(ok) + { + std::vector::iterator vit = grpData.begin(); - for(; vit != grpData.end(); ++vit) - { - RsGxsPhotoAlbumItem* item = dynamic_cast(*vit); - if (item) - { - RsPhotoAlbum album = item->album; - item->album.mMeta = item->meta; - album.mMeta = item->album.mMeta; - delete item; - albums.push_back(album); - } - else - { - std::cerr << "Not a RsGxsPhotoAlbumItem, deleting!" << std::endl; - delete *vit; - } - } - } + for(; vit != grpData.end(); ++vit) + { + RsGxsPhotoAlbumItem* item = dynamic_cast(*vit); + if (item) + { + RsPhotoAlbum album = item->album; + item->album.mMeta = item->meta; + album.mMeta = item->album.mMeta; + delete item; + albums.push_back(album); + } + else + { + std::cerr << "Not a RsGxsPhotoAlbumItem, deleting!" << std::endl; + delete *vit; + } + } + } - return ok; + return ok; } bool p3PhotoService::getPhoto(const uint32_t& token, PhotoResult& photos) { - GxsMsgDataMap msgData; - bool ok = RsGenExchange::getMsgData(token, msgData); + GxsMsgDataMap msgData; + bool ok = RsGenExchange::getMsgData(token, msgData); - if(ok) - { - GxsMsgDataMap::iterator mit = msgData.begin(); + if(ok) + { + GxsMsgDataMap::iterator mit = msgData.begin(); - for(; mit != msgData.end(); ++mit) - { - RsGxsGroupId grpId = mit->first; - std::vector& msgItems = mit->second; - std::vector::iterator vit = msgItems.begin(); + for(; mit != msgData.end(); ++mit) + { + RsGxsGroupId grpId = mit->first; + std::vector& msgItems = mit->second; + std::vector::iterator vit = msgItems.begin(); - for(; vit != msgItems.end(); ++vit) - { - RsGxsPhotoPhotoItem* item = dynamic_cast(*vit); + for(; vit != msgItems.end(); ++vit) + { + RsGxsPhotoPhotoItem* item = dynamic_cast(*vit); - if(item) - { - RsPhotoPhoto photo = item->photo; - photo.mMeta = item->meta; - photos[grpId].push_back(photo); - delete item; - }else - { - std::cerr << "Not a photo Item, deleting!" << std::endl; - delete *vit; - } - } - } - } + if(item) + { + RsPhotoPhoto photo = item->photo; + photo.mMeta = item->meta; + photos[grpId].push_back(photo); + delete item; + }else + { + std::cerr << "Not a photo Item, deleting!" << std::endl; + delete *vit; + } + } + } + } - return ok; + return ok; } bool p3PhotoService::getPhotoComment(const uint32_t &token, PhotoCommentResult &comments) { - GxsMsgDataMap msgData; - bool ok = RsGenExchange::getMsgData(token, msgData); + GxsMsgDataMap msgData; + bool ok = RsGenExchange::getMsgData(token, msgData); - if(ok) - { - GxsMsgDataMap::iterator mit = msgData.begin(); + if(ok) + { + GxsMsgDataMap::iterator mit = msgData.begin(); - for(; mit != msgData.end(); ++mit) - { - RsGxsGroupId grpId = mit->first; - std::vector& msgItems = mit->second; - std::vector::iterator vit = msgItems.begin(); + for(; mit != msgData.end(); ++mit) + { + RsGxsGroupId grpId = mit->first; + std::vector& msgItems = mit->second; + std::vector::iterator vit = msgItems.begin(); - for(; vit != msgItems.end(); ++vit) - { - RsGxsPhotoCommentItem* item = dynamic_cast(*vit); + for(; vit != msgItems.end(); ++vit) + { + RsGxsPhotoCommentItem* item = dynamic_cast(*vit); - if(item) - { - RsPhotoComment comment = item->comment; - comment.mMeta = item->meta; - comments[grpId].push_back(comment); - delete item; - }else - { - std::cerr << "Not a comment Item, deleting!" << std::endl; - delete *vit; - } - } - } - } + if(item) + { + RsPhotoComment comment = item->comment; + comment.mMeta = item->meta; + comments[grpId].push_back(comment); + delete item; + }else + { + std::cerr << "Not a comment Item, deleting!" << std::endl; + delete *vit; + } + } + } + } - return ok; + return ok; } RsPhotoComment& RsPhotoComment::operator=(const RsGxsPhotoCommentItem& comment) { - *this = comment.comment; - return *this; + *this = comment.comment; + return *this; } bool p3PhotoService::getPhotoRelatedComment(const uint32_t &token, PhotoRelatedCommentResult &comments) { - return RsGenExchange::getMsgRelatedDataT(token, comments); + return RsGenExchange::getMsgRelatedDataT(token, comments); } bool p3PhotoService::submitAlbumDetails(uint32_t& token, RsPhotoAlbum& album) { - RsGxsPhotoAlbumItem* albumItem = new RsGxsPhotoAlbumItem(); - albumItem->album = album; - albumItem->meta = album.mMeta; - RsGenExchange::publishGroup(token, albumItem); - return true; + RsGxsPhotoAlbumItem* albumItem = new RsGxsPhotoAlbumItem(); + albumItem->album = album; + albumItem->meta = album.mMeta; + RsGenExchange::publishGroup(token, albumItem); + return true; } @@ -329,72 +329,72 @@ bool p3PhotoService::submitAlbumDetails(uint32_t& token, RsPhotoAlbum& album) void p3PhotoService::notifyChanges(std::vector& changes) { - RsStackMutex stack(mPhotoMutex); + RsStackMutex stack(mPhotoMutex); - std::vector::iterator vit = changes.begin(); + std::vector::iterator vit = changes.begin(); - for(; vit != changes.end(); ++vit) - { - RsGxsNotify* n = *vit; - RsGxsGroupChange* gc; - RsGxsMsgChange* mc; - if((mc = dynamic_cast(n)) != NULL) - { - mMsgChange.push_back(mc); - } - else if((gc = dynamic_cast(n)) != NULL) - { - mGroupChange.push_back(gc); - } - else - { - delete n; - } - } + for(; vit != changes.end(); ++vit) + { + RsGxsNotify* n = *vit; + RsGxsGroupChange* gc; + RsGxsMsgChange* mc; + if((mc = dynamic_cast(n)) != NULL) + { + mMsgChange.push_back(mc); + } + else if((gc = dynamic_cast(n)) != NULL) + { + mGroupChange.push_back(gc); + } + else + { + delete n; + } + } } bool p3PhotoService::submitPhoto(uint32_t& token, RsPhotoPhoto& photo) { - RsGxsPhotoPhotoItem* photoItem = new RsGxsPhotoPhotoItem(); - photoItem->photo = photo; - photoItem->meta = photo.mMeta; + RsGxsPhotoPhotoItem* photoItem = new RsGxsPhotoPhotoItem(); + photoItem->photo = photo; + photoItem->meta = photo.mMeta; - RsGenExchange::publishMsg(token, photoItem); - return true; + RsGenExchange::publishMsg(token, photoItem); + return true; } bool p3PhotoService::submitComment(uint32_t &token, RsPhotoComment &comment) { - RsGxsPhotoCommentItem* commentItem = new RsGxsPhotoCommentItem(); - commentItem->comment = comment; - commentItem->meta = comment.mMeta; - commentItem->meta.mMsgFlags = FLAG_MSG_TYPE_PHOTO_COMMENT; + RsGxsPhotoCommentItem* commentItem = new RsGxsPhotoCommentItem(); + commentItem->comment = comment; + commentItem->meta = comment.mMeta; + commentItem->meta.mMsgFlags = FLAG_MSG_TYPE_PHOTO_COMMENT; - RsGenExchange::publishMsg(token, commentItem); - return true; + RsGenExchange::publishMsg(token, commentItem); + return true; } bool p3PhotoService::acknowledgeMsg(const uint32_t& token, - std::pair& msgId) + std::pair& msgId) { - return RsGenExchange::acknowledgeTokenMsg(token, msgId); + return RsGenExchange::acknowledgeTokenMsg(token, msgId); } bool p3PhotoService::acknowledgeGrp(const uint32_t& token, - RsGxsGroupId& grpId) + RsGxsGroupId& grpId) { - return RsGenExchange::acknowledgeTokenGrp(token, grpId); + return RsGenExchange::acknowledgeTokenGrp(token, grpId); } bool p3PhotoService::subscribeToAlbum(uint32_t &token, const RsGxsGroupId &grpId, bool subscribe) { - if(subscribe) - RsGenExchange::setGroupSubscribeFlags(token, grpId, GXS_SERV::GROUP_SUBSCRIBE_SUBSCRIBED, GXS_SERV::GROUP_SUBSCRIBE_MASK); - else - RsGenExchange::setGroupSubscribeFlags(token, grpId, 0, GXS_SERV::GROUP_SUBSCRIBE_MASK); + if(subscribe) + RsGenExchange::setGroupSubscribeFlags(token, grpId, GXS_SERV::GROUP_SUBSCRIBE_SUBSCRIBED, GXS_SERV::GROUP_SUBSCRIBE_MASK); + else + RsGenExchange::setGroupSubscribeFlags(token, grpId, 0, GXS_SERV::GROUP_SUBSCRIBE_MASK); - return true; + return true; } From 095b5224d9209e81b0c898170b3d1c0748a7934d Mon Sep 17 00:00:00 2001 From: drbob Date: Sat, 15 Feb 2020 11:54:29 +1100 Subject: [PATCH 16/16] fixup licence formatting --- libretroshare/src/services/p3photoservice.cc | 48 ++++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/libretroshare/src/services/p3photoservice.cc b/libretroshare/src/services/p3photoservice.cc index 847cbf3aa..72402ddf8 100644 --- a/libretroshare/src/services/p3photoservice.cc +++ b/libretroshare/src/services/p3photoservice.cc @@ -1,23 +1,23 @@ /******************************************************************************* - * libretroshare/src/services: p3photoservice.cc * - * * - * libretroshare: retroshare core library * - * * + * libretroshare/src/services: p3photoservice.cc * + * * + * libretroshare: retroshare core library * + * * * Copyright 2008-2012 Robert Fernie,Chris Evi-Parker * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public License * - * along with this program. If not, see . * - * * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program. If not, see . * + * * *******************************************************************************/ #include "p3photoservice.h" #include "rsitems/rsphotoitems.h" @@ -26,8 +26,8 @@ RsPhoto *rsPhoto = NULL; -const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f; -const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001; +const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f; +const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001; const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_COMMENT = 0x0002; RsPhotoPhoto::RsPhotoPhoto() @@ -78,10 +78,10 @@ p3PhotoService::p3PhotoService(RsGeneralDataService* gds, RsNetworkExchangeServi } const std::string GXS_PHOTO_APP_NAME = "gxsphoto"; -const uint16_t GXS_PHOTO_APP_MAJOR_VERSION = 1; -const uint16_t GXS_PHOTO_APP_MINOR_VERSION = 0; -const uint16_t GXS_PHOTO_MIN_MAJOR_VERSION = 1; -const uint16_t GXS_PHOTO_MIN_MINOR_VERSION = 0; +const uint16_t GXS_PHOTO_APP_MAJOR_VERSION = 1; +const uint16_t GXS_PHOTO_APP_MINOR_VERSION = 0; +const uint16_t GXS_PHOTO_MIN_MAJOR_VERSION = 1; +const uint16_t GXS_PHOTO_MIN_MINOR_VERSION = 0; RsServiceInfo p3PhotoService::getServiceInfo() {