From 271ffa177255be6c50ddd99f5a7f2675752e330d Mon Sep 17 00:00:00 2001 From: Raoul Hecky Date: Tue, 27 Oct 2015 10:54:39 +0100 Subject: [PATCH] Add some UI elements --- gui.pro | 9 + img/AppIcon_128.png | Bin 0 -> 8451 bytes img/AppIcon_19.png | Bin 0 -> 843 bytes img/AppIcon_32.png | Bin 0 -> 1698 bytes img/Plain_128.png | Bin 0 -> 4612 bytes img/images.qrc | 20 + img/integrity-check.png | Bin 0 -> 9675 bytes img/management-mode.png | Bin 0 -> 4702 bytes img/message_alert.png | Bin 0 -> 904 bytes img/message_error.png | Bin 0 -> 1306 bytes img/message_success.png | Bin 0 -> 1150 bytes img/mp-logo.png | Bin 0 -> 17273 bytes img/new-card.png | Bin 0 -> 7858 bytes img/no-card.png | Bin 0 -> 18453 bytes img/no-connection.png | Bin 0 -> 12013 bytes img/noun_18878_cc.png | Bin 0 -> 17524 bytes img/unlock.png | Bin 0 -> 1555 bytes mac/Info.plist | 24 + mac/create_dmg.sh | 20 + src/MainWindow.cpp | 62 +- src/MainWindow.h | 5 + src/MainWindow.ui | 542 +++++++++++- src/QtAwesome/LICENSE.md | 29 + src/QtAwesome/QtAwesome.cpp | 982 ++++++++++++++++++++++ src/QtAwesome/QtAwesome.h | 762 +++++++++++++++++ src/QtAwesome/QtAwesome.pri | 10 + src/QtAwesome/QtAwesome.pro | 28 + src/QtAwesome/QtAwesome.qrc | 5 + src/QtAwesome/README.md | 205 +++++ src/QtAwesome/fonts/fontawesome-4.4.0.ttf | Bin 0 -> 138204 bytes win/icon.ico | Bin 0 -> 68174 bytes win/windows_res.rc | 3 + 32 files changed, 2690 insertions(+), 16 deletions(-) create mode 100644 img/AppIcon_128.png create mode 100644 img/AppIcon_19.png create mode 100644 img/AppIcon_32.png create mode 100644 img/Plain_128.png create mode 100644 img/images.qrc create mode 100644 img/integrity-check.png create mode 100644 img/management-mode.png create mode 100644 img/message_alert.png create mode 100644 img/message_error.png create mode 100644 img/message_success.png create mode 100644 img/mp-logo.png create mode 100644 img/new-card.png create mode 100644 img/no-card.png create mode 100644 img/no-connection.png create mode 100644 img/noun_18878_cc.png create mode 100644 img/unlock.png create mode 100644 mac/Info.plist create mode 100755 mac/create_dmg.sh create mode 100644 src/QtAwesome/LICENSE.md create mode 100644 src/QtAwesome/QtAwesome.cpp create mode 100644 src/QtAwesome/QtAwesome.h create mode 100644 src/QtAwesome/QtAwesome.pri create mode 100644 src/QtAwesome/QtAwesome.pro create mode 100644 src/QtAwesome/QtAwesome.qrc create mode 100644 src/QtAwesome/README.md create mode 100644 src/QtAwesome/fonts/fontawesome-4.4.0.ttf create mode 100644 win/icon.ico create mode 100644 win/windows_res.rc diff --git a/gui.pro b/gui.pro index f9e6030f..c1c8b880 100644 --- a/gui.pro +++ b/gui.pro @@ -6,6 +6,8 @@ TARGET = MoolticuteApp CONFIG += c++11 +include(src/QtAwesome/QtAwesome.pri) + SOURCES += src/main_gui.cpp \ src/MainWindow.cpp \ src/Common.cpp \ @@ -17,3 +19,10 @@ HEADERS += src/MainWindow.h \ src/WSClient.h FORMS += src/MainWindow.ui + +RESOURCES += \ + img/images.qrc + +win32 { + RC_FILE = win/windows_res.rc +} diff --git a/img/AppIcon_128.png b/img/AppIcon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..68170c1ec5774ed771b66acb46c060871262b4a2 GIT binary patch literal 8451 zcmV+eA^hHnP)7Ttz8vKN90dF6tjapumEE+3uE%C@B4pVuwcQTP*#wqJd+g(gT5XH{WFNS zFA7;HEB?^;-uD0y;h(6*G$6xSK!(4j)hH1GmRoMQRhC|Q=`)epM=|h~v`mJ+4a^?E z*!dW{OW%3tov*(6=9{m@)iM?VFzdI$tiKV7SB^_G6t-mb01)9HSPk~aYH)wF=3X>l z%$PBUVes!B8vJO_EV;iqmK;-#ZL}2)E5N8xqjp8)JMcHO?YABUcUuLpntbAlk)dj9M2fkV&1-2)tJjyYSY2mp-u`rvNzQ0t;S5RSP4;kOokJQs~H^n394 z0BC`=JuC+w82n8gYGGUtaO{ZyJI8$-=wWuu7?D+0>3KD+F=EG05LtTZp4X+-3SjJa z>cg>MHN3Q%wkPqe2a;vgu_CLF6FUNOsJGu1dG%H4W&O=cD@m}&%&A z=FRI#|Fl{t#(rEM5}`*2I1C?-L0?_uJ?|0Q$0}FB4jU%s-R~BeGbaq{`qQpLp{NK~ z0$COB{F^sl%*!u}o%MLI6d^l~!!3 zl^r!w?5GXIOc*crnP36 zs`R)ee>E$wB0);`+2xiK*>qEp*IyR{M3DLOORhnC*>UU_ucz(hRa$DhB4*S&>xx}& z*<5+*D#0}WqzJsbV7c7q0E=zPZarBHw}fZGfqmzl9I3h!WxybS5_s#aCw8^fT5tJi zh%dT~0JZ{o841z6fOXb_hLIJaQ}fi517=$=5D|8N?TmDqQuG^dl6%%Oxi0xQ0Vvho zqotKdYsQWR(&AJyvIS&7{XG(ifBT!5AeZJ=q{qtp*;53-F+^m-1RSB(0g;!lQD))7 z>Y)Gq?;?v95v z+!Z9~4g!!c+Hx!K@zZrp4bSpV;*8wipV>)EY6P7Ko8ZWsu?p%+@YrJ=Ujef>rgnQ8 z0vp})GX|ggpG==Vs0W{2$=Pild{E3=Sm{!L$4T?v_ol=s=Tk=!fLLxf-(2i6%cRy; z*`r-1e!>bVp%(t=*7MCb#XRsQG4s>U{{aX{OFl^lp<`Qsa>=&XQi9PS{E`5~p7+#W za0Y%QDMs7j0VIjC`4(a!Sh8!cEwbiXB2*^9@r*|_1Bs*k&wuo!LB@=p$DarB`P}mm z;DA%d*~;%70Of^1SftxRO8(xH#v{A*T>ZJo_M^fM3K_?RzGpIvAgdf zc9)&SZnwSa5X9x7Tu86Renef87?Bp-M(@!_Mee;v%&oVI_ZJ{+iJ-*cW>_Vc2a%ir zWP6)G!Qi(89K+5a0JUVmX65A98 znMe6Y$tzH)2%yU2WRMZ%TFm#rc}$`R4< zq*S8lyIceqKVAhPNqyi!SI(09O^T2sJb=_K_{vwr9&%`-GN?N^oT1<)C;@lxy<)h3 zv*XBQszES$vIMtGtNyzGe(C$*e&Hv5T8eomzfbJ;+lk#_M-l2NxJbrThJQ7%5KULU z`c?66xj76f^yK8RAX<|;$$%y?sIO2eS^|`Z06g!5=&~VU6{#Ghc?Nr!v_Vk^Q>KW2 zK9*c+0L1|Yh%=ppTV;psr9uHx0%Re8n~Zq|pf7^+&quJSB3{fYqiJrtO}vv%6t4|} z&5~m{VS-zQhId0vXo`_bfYSH?TIqzrXFW;u6&-w1%Kqm+FaC8uO&?)U{%{BMbCZqk>Iy?OF&(~qCgo)ifTDk(Q-*rbCh2S0&(7lfW#50%SqTmHWMa!;K=l?9!CIB{%K#)1`v*zIosQ{jU3OC`6(4z<%Ul zF(A+sI51=mVGpjHbGB4KBbdAHYAVKns`oFtNc@i;)ATJ@0JlnLJ12o1Gg<`4?RKGk z1VAO!Oe>)#<~dN^1%x})sPS*Tttv+#f#(9`29>?{lFE-RX^@z4Pz=uJ3Y0CxQSxCv z(LBTOxF>Y~ZB3KcyX>-t7?fdnhX6rv3eZzf?W?|{jNlvJ5Fe{oA$SFfFe$WzY96)H zj+jccjR4ACjmelnth{}tbrvS|>HQ!71iFF~>y&q$;08ymvfHlWL3R)a<`N*qVTVd( zi_OKm{r0#h)v$Vo$x*^D6%1nErjx|O)7*GN7+inqws6+}N#)pMls^y-zTv3>bWw2H zX%ZZHR6Ty)7e#w0jwXTSs)W-@JJ1#a=#eFDmeDGv#oAHN-@okg>iHhn&CcZ?JJRAv zSNYKXDp5%(Ve+A%I%%BoxjLGync~!q?>B;LI~crc9|u;E}F2Qx%ck zhjaNpt#@KsIMRFy|)CM{SGJsfak78pa{3%Csd9r-jeg%@5B4}_J6 z?Sy;(KtzJ1!LM9+fq2mC^G-h5ZIQm)gAb9wSt*(#!~_^js3hhPjcN*+)S;Zp@ZrPH zh$$~Mi2Jeb?_}=|gL*ePZ#6JHE>UC}2IP49yX_|S)YBScqQM+=kLF(hE}7=mX<~QU z3HEg>Dv=fJwHNFKUJ#RVUT(~^++S&fAC}}j{TB&_Eh7R+p9|y^dRJZ9aEx`o$Gww5 zWZknrIFn}1>*8Ue2yG`4=!Ceu!mvUJpovN8lE|AeL*?Siz2dP1RJdxjh9zV?N%aRj z@%6i`FgVvZ?nEH&b+&cM~{(F+k*sZU;iU zylw-iZ=oGv4Y=oX*^dLRhTdtXDgo<$4?guNAtL1k9b`&3L13GgUMfW*SbPPDsWltg z3MP`42*9{;2asaiJ}`39R+0KjfLZ08b(VNnG@cw{s#bas^#lzhe|Fbh#Xts;H27h` zD#NF_*ruC>K~?rL5Sp|?UMSm|xcD(JZ;eyp1^a(Uf(tLi^uR*I{R@9&n% zm^}aY+=Py_O><@E8nzf(s#^9qe;8+yJraC zpKzjBh;!?J*$_~_F5+;}o3dk~;HRE8&DUmDUmMP^4-K8B^0)<{OaV2mh9Pc-IFbfm{<8RY-X%f1!j`MAUYs+TIhX!O z%s0XGqGk~h06^UVnYz>BcwKz!$qGP=oc?E?ZCL&VD%O3U{j4^f-4cK~L~*i5J;H+E zLwswGIkujfas&_JTyx7ULKd?-y8~=Vc8@(JfF_Y~1vaG8A@5h?ka|w7z4+&x10|A& z#NcSl6O6Y1Z;+Ha3^cd>t>xZc?4BTi52D9jb8SP-yBx@-^Lew61xcFF!Oif4MLfE1LoEld$C3)^o{kK6^0V?!$0RNeI&M%X@RsoK>)kf+Kp8OFT05DKw~D=UmT?1j5F&B83N9k2k|lW z>01F0n!lB!kE*MJ39Ouhnqp`x`6R}TVFBwgF)=}BKJ)|uRMpFAkAWI=S-@kSx@Sd( zR2;2*;^T$w>By(|&OWJt54Qr9SeIl3YIWu3 zKTC@u*1bXo^768PviA@g$_N8vo{Ro)Poi^*dUWbfpdS=?!U&PK9-;Fu-A91%Y>l?n z`QbT)F-_Y>T;Ggx^aAEV>$fa$9YN5&Ob#%-Da$(zB}K(>ZXZ%CsKKk<%bX)eRTL*_^FmR4hN8)!pZ>M^CP;9NowC^ zl$Vr8*AajfiJpJ$dgXbv2JUOnjAr40zkMkYZ=c;pfB3R>V)GjRT6>32=Y z^vf%=oCw`{?FjQ=sR0^$Aa`naft!t5rE3?=F+l;J(C)ynh+0UmEe09Kklh06kuZet+0sl&ee zNPd) zv0wXIU0a9BAl^|&iq{5(PJ~jQ#kJZ{J)C|HT`T01%5o)yWvvbP}Y6-N#(eYwWXCD;BJ86 z*Kk4!R<8${f`Ji>U40F))C+V#k&GJ2U51_^09~fk`Tty6@yAYzS{9L^5-U4zp`!u_ ziGnYl4xPU}>N7hnxjKCW!N(OOTA#FZao_y!e_z!6&Hc!wo@`(8{|Vp#R^Gc_%StQN z#O?j>83J$#?tc=-jgD@9Xcs_7kLGqbT)g6nwv_y{Jx>Xq5~OBG#aef?6OQg;nok*ivXx9|CA0@6bcwtN5-kq^r-K z5P@L}Y57xM25ZZ|#f{wE7<|@24LrLr_$-UgtIU;G;-#{<&HMn*ALh5ePQ+dW7PB>$?bbGxevPCBVdgRre^GiN_-2Ke41 zC=~%z-_No2%W9MI?qS~T0>k|Og+WJ1Ah{oF@1b)B3*!;Gk?jQ%=-^**rCJ>2@ma*v zKoc=Yy5qW^#I!Ia$f221V&(qSHUf~2ReymSY#=gas!+eZ6)-Rcq35gyfd8D}=>KU5 z3V(!yA9~}W3s<{7%I-4InPuptG0SlkktH}6CyL1A@Nh!VJCSqNU5!@IH^px18wkG**JGK(d{7E zW*Z4U)p*2HL^<(mXhG_1p+z0H0Gztu%Bvc(QeqJL^Tv_u50t@oD;l>Q$eg)iR#@JRCc5OxyUJp=lvO8^TtD}DaA3f>uKh`=GF0tY`-oyNO`do-GAl>%5% zEWMQAFF4?UQnDmXU{1jmb~Qs(6(7^fIdW&1cl1$(oLW-1F>&yLRPEff-WCFAgL&O* z60EasUGq07N;I64h0dS__WXp9AE0sq-1OyB!zbcKMkCh#(d%fi=bq|t$_;ONZ{d`} zv=rg`@M@L@6!BU*y~OMf>#Ynfltq`Z9=(&d2%JQmOi570Ew7tbTL_>TrC9b_c*=J7 zZnxmHcOE4xM;uKFo7l}L{Nr1%tZ<7lWeAKX3Fc|iSn;Y6i?HWAAf&i(`-E8D)3LX0P* zbA#JP09xOg*XOu-HoWsj5&H9M6?ne&_SqYE{@vRwsDbNr|5v{j|1+Nzy>_*hIXQxL z_bybqrVrgD$hiV=MKZ&e)jgd9OBXUOP}Hnf+u+VXSIJY606q*Wr<{Vztj=|l?GEoLl zo2Ku~vh}GMsfhlh_bYh3OuEp(!o`Y#6DEn8L&xP62_tvQJMK6MV38AmV5<{_VLYq` zbT%D84=@0w9AdQRsE3D9i#`pmprI3N!O4M3ynpc}BD^dEvoj>{8}bH^q(U{af|omT zOA-1s3<=mJmUVQP$5jDw z?Ta(&lz4&Snv;NsZ{gF2e)-j{Ep-)>mS*}F!mXu62VV;Z11ardNWFgpdC;^xw zhHU1?rt6g|dA)_GR1?du`T}_0WU+hhRpmwS0;nXw>gM4H=>6_@NilMTt6*)7@riNu z?%)hhXNiepJ{0E!#$={PA0CBL&i`s%%Yms4SWGs#g7o(A&z%YhSzO{^cHcwO(qXfAFOFy<;MSGGEo>z&L07MkTLzJse>{id{z4D;3Y)YeaXpii z7s@}j!WHsMCC^Lq=%Z~ZsYXjL6#+DJu!t=LAS9HMfDRYRFxq7PiU=p4QoUU?M5-Js z3=Wr|Cn{RShGS+@rNeNR!Tjl4n0}0Zc#*VoQFNHCu;1W5k3z2`pjMG2+?SY?CM&#r z1VD*on%GH`Qp@HwFDC6Gq}0^SA64Pv;DaUDdmk|OqmC?HOOI zq#k8qiIjHa)3SI`M8fKp)!wA<9YFvs3?j-@!%R#fk2Zq5Sh_?|A`tul+5^ZgyC%A6 zAp&3tsFjR?#m_jPCoeM{Gz2b(@W7%b0ahj`#Sg0}?)^zXnu)iBaJwlRI)(sxgdsiP z2y&V#kA``?YNo*Puqm&E041uZjI-ll6IIesQ z$O#iRgC(~Wt(}Bw#0D#aY|^F}{4ufL!$9weC!x7qF5-oGcMJhofHsgs4JCXjKq+7< z*DfXP68njJK9p+GmVLI(JcHx)j2AoB%y13tNC9Nxm`5JYGEGUIi&VV!dk^*}90|%aB-5fy9sOyq8N0L&a^acS?b>)8Xe4e82 z*)3phPZ~d%M!gSh6x2QTt4{xrRCe?Fy0d6&D+;rwCB55w-%=d(XLC zGMy4hB$#+sCI_zvpsN^l^~Yi0q5s$l=zdR!6cjA=5C#SUpaYah;?ha2n--x=>0;iZ zb@1UwuvNZ=+D>B0H@vfO06?r=bf; z%wpTp`;i9F)-_-dAnYv84BqHzR>Mj#5gNrAJOi_+U!+H~Nv(2oAOIOVs{b$mkF$Ls z#1`S)nXJ7Lj!YMyN<;nqWwEc$5(EEz0zy&6rg3$^9Ra=CM^(d!GK>TQR%Q4+-t`DU zsq(RjKK@c3sRcgfO(W7T$6viVL znKM%@Bi?@d?Rmq852v=mw$0IpLIzt8VDP_(!M}m+a!)Etffl$6A9omR4IXOG;vT^4 zzXyB&&Inn=P**8*QGb8`0f;bzABJG?^#I4#_x=6RG97%j&_w`)7aT1Ps4gH>PwXo9PU4I8!wwu6nGPeZRuXb)iUufejvKgRa; zXcHP%0O#XdNN_lQ!wrV~(Fq@VU9x(BW4C>6EZ>T&x=RGceb+D?6SoHz?S~)xVO3Z& zG2+mNp7#L8=>=5cW{lI#p!Dy_s!%Qja5KS4VKkPKv6V_?EDFh1baxXEy?3MsFz5?F l+|BCi>zjqyKDU)Z{tM&}YXUo-s|^4E002ovPDHLkV1l#~F-QOa literal 0 HcmV?d00001 diff --git a/img/AppIcon_19.png b/img/AppIcon_19.png new file mode 100644 index 0000000000000000000000000000000000000000..ccba8d07ceaa14cf2ecbc4364ec4a9f343b35fe9 GIT binary patch literal 843 zcmV-R1GM~!P)go6vsd3&5SDjG2?frV$+}%w1@>GNc;*(lSUfdS+raB5@Fqib^iqtU67z95~*pM zQbem2qFO&1X-m)&oxXRR`(&P(v2v0-@7{Co{oZrF=X*v{snj;0!$zGAvGKpAc3~)+ z&9+H0nH&_6oy7?5gd`G>%|=@qi-9T<1d%T{QPn}u7CUl|+*j9EL;3(Xusjn7wm*$- z+LY&wraQ&bbU{R>+brwFrSNhT`SvaHN0YKLbi2K;7F{M&z)JyG2()Ag^!Hmfik?0V z%a)_Zk3&}%GBt&CUPl%dpuQdgOZnN;=pC2lA6v5qlF1MV1JsKb(S}{f=NWi03=`w% z-n|4}-DqVc3=SF%akOfE4uM!{Y3ZeKRa=X^evQt~;@`T3`abdYc07v`&%?WO2k*%f zbn901#0kXKVrQwTf$?#yh0do03$kBx)dodM@vdz^=iD%PQn7! z*5N(uK_(_bAQ#ZzG{f-hXT?e+^APX*cf=mh)>fFFM%&tuuV0aw8NA^kG-Z?&SwR8Z zUiQXKCEd9@12*`0BrD%Bxq%(PLKj0QvaQs`i+`s!De^jE#lG(37W- zH#RS_h%+_aXhj9MN>-HPcXXg87nh>+W{8;-+`fP13PDRtsJBo;yZ4}0NoRkh;aa7- zI^>ASNrH3d;pb0+A3wmv>wo!z9J7d5t-`x}8PB+L9OC>ooJ9q2il?C=Y;1Y{9N!7^ zOpEp5M(fA@XipE`#5?5LRlHB1!1NZZTZi1ei@3XH5tv(q;T}3{dYeU@!sq9myTCMV zHCwwDs;Z#3Hv)2pBF@|*eBqwGWO~wl`>f#?J9lIuP&y5c+rGX6Aa}?`He%n+(T&_> z(IVS5Voeq~Q~OI2Ypr}=ZqL3Wu|y*A)cWe6jY8pAZ{kLtg@1}gKDTXrkNLiT_BT8i VD?!s$7Qz4k002ovPDHLkV1lJ6mH_|& literal 0 HcmV?d00001 diff --git a/img/AppIcon_32.png b/img/AppIcon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..557e5f9ad162484cc88177f665376d31baea8532 GIT binary patch literal 1698 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 a{ra@1{IUIo^}p{9Ku_CPt5MT2`u_ksKgc)$ literal 0 HcmV?d00001 diff --git a/img/images.qrc b/img/images.qrc new file mode 100644 index 00000000..f52af7a9 --- /dev/null +++ b/img/images.qrc @@ -0,0 +1,20 @@ + + + AppIcon_19.png + AppIcon_32.png + AppIcon_128.png + images.qrc + integrity-check.png + management-mode.png + message_alert.png + message_error.png + message_success.png + mp-logo.png + new-card.png + no-card.png + no-connection.png + noun_18878_cc.png + Plain_128.png + unlock.png + + diff --git a/img/integrity-check.png b/img/integrity-check.png new file mode 100644 index 0000000000000000000000000000000000000000..5db4d1aa489b44acc43e90585080e427e40c830b GIT binary patch literal 9675 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 ZSz9VkQ?twF9WZM#c)I$ztaD0e0sxyYj3)p9 literal 0 HcmV?d00001 diff --git a/img/message_error.png b/img/message_error.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec5fac5026065f83db67356c158355ee8c7254a GIT binary patch literal 1306 zcmb`H{Xf$Q0LLf2YUdOp${BfB&dzRB$}>0nGAobSdNB{xX7y@j$V14(ozBxjHq4FT z#+_WUv(-FpdEKiAO{gUkYu3G9U#)bbk~WKv^b7NySTNC zrMxu!U8$X$8QOUBNtnr59b25pSE*r&_cMN^D}j(5rp1t*had*fud8jAJ46kViGj(Y za9eM|Ez*yk)U^ZZLLw~1pL3agm+rq{=Y6i*kHpPi$-cB$s7qS`G~Cp7!*t$AXCCzt zM|Jz|kkGgJ@;z~Hk(*dlCALmj#SiBwbJk0&xZ02QThwMRWr15f{n!oc1umB86DEH( z$Fy;Pe(2szzat--3J=sK3j42K9RSztmvkt(LW^vo?T6<{=mfExUul|oUE&&+UGDq< zZ$W?T2%df+59WR^qZ%I72F+0pLPG^4rf|K$Hr78`dMqA=%Y3XHc1)^pzi}x4PtYj$ zK}L6bSo6g#gE!M%N7?746hXvl>LYpAEgHCi{H|xkKj^c4&F6t@(XToeZANbvt)Cy^ z_}uc2)wvKdu{h>`b@1H{Jm6$4cMx>K z^dX5QAQ{sKCo;ee%n2ls1%j9paAFha1WY4|?I0PLh7)gr9RMm$M3G7viFGL&CceDo zjP3}Q;F#AbU;_e#Oi?d6#hj|>K`8iZFSlSO@7aDGdLz8$Qg@y<;L;eb?WSaup9m=C zvu2&j#4(k7D>N~pVCi4L5=KOjE&yAop`0#~=IJ>vU8DD!X5s7su56zoF|VoLi}dYo z%D7d%E;dVo^I`QdFUjx}>Koi_b6Vp_U(3&Kbr`@RMfuh@N z-nsbkX9>yu`j7b;^(;hOY5IO%j)PYKhYe&e^VGHCQv#Ny1S);v;1erj)QOD+EQ^FP zvPQr%Pv|6%3t0P<*T}a8EHh;Xxk|t?RhE)zf`^RM)62VOgw7~zK*`~_Ob_Y!nDN2Y z$p$3hj+4~7I;EBe$Au?|JY`IHrz^4Utu}7Sr>JbYHKPsqqi%+SpA&M^RXNjT4yk%X z@JAMja)z$@x7XxiMD6QHXCT8?qfRl5s`WSAAqHRk9$N?J$e z=V-lYlp`LKjOYBe$K(yqP2^2yV(*48+TWgUlBGdbU5_ZteKA`v)Gr694^QSR zLr|@1+VdycijpKn{e&0l)fTl%y196NxFxjaxAm_df-ivyEZC_x{A~UpS7se!yB#}7 MC=ib6L7)BQe|K_7oB#j- literal 0 HcmV?d00001 diff --git a/img/message_success.png b/img/message_success.png new file mode 100644 index 0000000000000000000000000000000000000000..b17322ba28b8edf439138d8ac858b033cbd483f0 GIT binary patch literal 1150 zcmeAS@N?(olHy`uVBq!ia0vp^RUpj41|$n2-Jbv{#^NA%Cx&(BWL`2buvmDyIEGX( zzP+xQz9pcZAect!BYT{AXY~zQQ+AkPpns@2!-m?D1S;M!xo~3cd zPF}is=2@lF*R~oN&waaeYr60*)Ah@;<>$)W4SsEG`Nd`Nz1qmwono`ZKObqEv3>sP zv!}Ihe!jBC_T`1vaE^m+dVhb}{`mIh@YD-`W~lFY^-kzR)Dz3!%l52&r*>WG{QQ0Y zx4yG7)Kw@EPq-`>={NC$Y}+}f6sPAZMhmSu=1vXYRNu9y^tX^M&t|bmzupVFEYm_a zOGNg~zOYE(|y!jF7auhukL_;;1) z;ka&}7hMO8Zgx+6y5~-vd~IlDbMLBojT^cH=g?L z_xF3W`dHO*+0=cP&%aox{`mWw)Por>4)pA@3)YC^JnNmXC_Mh8-O|k$nuC+Aw>+=? zQZ6Hz7elnenUXa`lQocb_Y6nzMTI1^YU^{oCiCK5bWU z)u8c4W#=1{FRP9Fr}gN?ui}!K^U$Ddo)ULq`~}N*ACInVHD^}-J#EXS!=>MsUY!`* z%3LeIEdI9i+eej8bT?^O@#}uRIwe9IKg(ENyr7r-+_vb^ z!t2TN@BBae?{cz^c!rDEQx?5r|K6JYdH(3jq3%YBB;lX?H-BFJ?*DGS{!(kRiHG;C zn2YZ{WY~$f8)!$@{j)u-u}B64_#>&YxmeF-KhFwHk*{}w9~08 zYhUvzx%@iAXQyc4_hi4+Ob%W5TVXj$>;IofS1UQav2%}Hq??hbRZ)&oyHdJQ$>kd^ z>$-G|=iHTvD1I+{W{&jE;^>*5X6$`faP@vqV47cDWc0PXb>I8#&n2q;tGddOkn!n{ z*yZgn6Hcx;f8JkI{LQXq7k}wEGcd9UI8d3$h<(6s$JwCycgsO>V1dHm>FVdQ&MBb@ E0G?v{1poj5 literal 0 HcmV?d00001 diff --git a/img/mp-logo.png b/img/mp-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e11eb60b2af1c752c842587d38e2c969e1bada03 GIT binary patch literal 17273 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 FV1j*s*&F}> literal 0 HcmV?d00001 diff --git a/img/no-connection.png b/img/no-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..facfe60f9de7bbc114b2d3995eb9c4f65b903bd4 GIT binary patch literal 12013 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 IP5X%d11(PuW&i*H literal 0 HcmV?d00001 diff --git a/img/noun_18878_cc.png b/img/noun_18878_cc.png new file mode 100644 index 0000000000000000000000000000000000000000..f45ce728e7572f0fa04dacd23e5b7a757f432b09 GIT binary patch literal 17524 zcmZU*WmFX2*9Hm<3^mfJbTo=HbP57=>gtDJTx@42P(?)I%sIf({(a<1hD)KUVUg!r|*fT8p$+uW6pwYOnOxrLTTV=db2JIvpLj{O- z0t45(kCxE-w(7`_Y#!t?GEjLkN})eWrV8>{m@L~Om_u?Os3A1YcSnR>lldiWN4tmR zd-KcZ+1uV-<<-7>*{;jwAGeFko#MBlqe0YQz>n zz17pCn>x(rP1IUcubOcv1Q73xzyMn$C|U?uI$ey_XZ6cy2WxO3uH?6guE7Y)Y{Uvl~<_j0GfIRMv9=x@k}4M2eW}Sg)$8}fs{}rJx<)tH(wfBgj(RWwp1h&&9h{NfXKds%7pAzinICRmp` z7Lx(b6NDgUTtH`BI8;0(pH1l!-cI8_jae0T*v111pznRM=|^fk;(vr;CbeJ;H7->R zsEYngd058PTYUNk?d69z^Fn}v0W|&<2flXYG*<9XM?{?OjSQqkRm92u3frNEGHqZ- zDZ3(Z$HIZX{rQa1$_zt~T0{*+fRHkq)HEm!T__F!Xh3)qA1SZut*XK;QUcgxGsK)a z{jNKlE1h$}x~1aCFZjM4kf4W!nUzyM?_mOe6$}EX4e9!jI+1IT@sVbe0LwrbBIj=| zy=sqHSHWpwf16+nbY%&B@69FwoQSimPVZKgLw8^(-U z-GY&OtYMQbW_aRqw^>YQkKRe=yYl|kNS*+qg-6KnP3f`Cs;mWBFjmz$cSvGLGtNBD z+c5!-s5~6fLqq%n=h_d)Z&Z;dYs?UIalpR3uWW{v44JE#7u+}Zp6(P06D4uw#gDbUfgGc=mb5g%LFf)FA`wWax3 zWi>EVDTHmC{!gQO#`SgeF}j7Pg;DpUI3Q=5v*S6yAlC>5;j|!7Wtm`?&PB_y?y5{) z>aZ2`qv!BAJq|s^Zz8XkV>+||CGHBd>I1b3AyZQgx}NeFwQXx44n_OxZX&Y8`Svdz zb#ZOi+602;-CAU@*&~{69ex14_HTOp4-C2EWLv;rRkpxUNI!^(3d$CYd zPm^-!e{#wLk9@6Zq2Dbi0n|v@-RU^qTy33Qs`F(y@cyZdasffGFLU*|&GBvE=N=JS zheiuoZC^=8yNU*?zx2ahPCc%8R{sP!GIJ3yyq~aVX8weXJV}P32H8)aIaD?T~I5KSnbd9IR8saG+V9<3o zxQfBZg&mBX{HHCvUqjVab@fA1!q?A1)H`EH7FH*2FeWmRf@`HDbZ0olVpo!l{&HcU zwuccTv7q-hhr*>>&>ASkaux4;@>=fqDfMY<^PtPhpwvb$n)%aB`g5?I%mnN4w5rvo2Y;tu5rO3b^-t!;0vNJ`|4FEzB*#BaR_lKgkV5pDyVE%di_fMcXMK@ z@0ayNFS8!#hGSpptYWTy#&G2uC+D$c7)G`gQniMA3x{zX!a>OakLay}@H|NKBEpjTKM=sT`T0 z;A=fhP*@?;>y;wm#}+LSDr#YQkuVv}w{+osAidAXK(1a-7QxMI>(c$s5Hp7%0)|HI z{pdc(zBI&gDL5O;X?ct1S~KcVXujQ>yx+S<5{%GM2q|cyG#{Qo5~iZ5&iO6*5KV`& zo|NDGu;^DvzM*!zlYpoz7u9RqUF$Cu3@^|ORE$QEVCoi`{-^39$Gk=KaT8^{>9uxI z)H~tm!3qK(1;mUZ?1!)&BXofY4ARHMyER#o=(Ys9SgizZOem3P93&~%Jeie@Gv1|r zntnYX062iXImQ<In!YJLo?dFn=Jxv=gQ`*3$Kwv9(4TV@6|l{e5! zQAfv*Ifl-sU=3}OV-fJkD&77y0vfpTe1CjJJN?B23c2*NimuWo7?8_mg>KWM1mVGC z_%Mcm0XKn7=fs*krMYQD65ot#*njtz#O0vL{K9AuO4;tG1Yv!sc)UctLLG@2x8zE9 z3_6DZSrGYOjf$H?wFoF4?Ry^H(FZp-)(}NPx>I8D#h~vnqo_;Yp=Vcgka*WZir=6@ zWaf#T)Weq6(UiA+#eX`Wr`2cH@kbC-&ZM_}PyT%NEZ{-Kn5hAXHB*+DHE!M)ewl44 z8l7dE06U|N(Td~XfS}eC0{NQAhQjqXo~;?{Hkv}EarMt#>He8 z*U?URR8OwEok>mmT@bLIj7>LDe93pOLs8!l`~^lD+>d%C{XJ%!qS^|b@&`w@y7UP? zZ2Xi-4b>bmz4s+HH$EsSp{gTy+fAtT!Nwr4Ai}d}v!8vE7Lx6+kVa}*#?u`f)t&P6 zV=A!=1zVjHNhBjjQz~98{=F+u%t6oIO|oagQj~f4NIPvXaVN=N615`EL*0LIeHet~jZrG^h)f1hNhRVm!{s>$M;-KT)k56n3Z)0@ zZZzfxWoWXd(`nJ+bb}u(E1p0r7pUIeJX+(fuj&pqxVH#&p@|suy(s^A)}$D1N@2DF z3Wx!z5bC#9t@!-tjX?bG9wvWtR&8LZoK8=qw!yoT&3AL55gX4#&E#Jr?!(LiKlX^4 zUF(kL_FsJ1GWY_i!UDl7n*@`h{JBpNsv43+Tf83R9>g9b#kj5bl=V0i_WTqVXLWxC z(0T$OWq0ogDHo zLz!NY(At3*G9dz;Q6ALZ8s;?n#EpSvatA1+sY&t|1dv9dKdioDja-1Dsa$Bk6m(Jv zkX!Lpze^?F8cJQp8Nk8D!EDUj4%^7S2L|pin%s5SpF}Z_-Jd;#=7o}SUdGDg?T2o+ z=p5K( z3Zosfq1Vx?4W-fCuSe5UzyL@A61?wX+vXm?y+%P zQ2yOBhH5emiWoBJ@3z8!d8N7@&_kzN_ZNpQcI(}vNV{r!?i48wt=SU1WL5KAi7`qk z#$z4EnvH)dwp}>_@suof;gtPxE9uHf*j`$5**}BGd?Y7hf+}7qqFeqI6=gD6=wYQF zzf}|pOeI$##x6=^%ZaikxAzyuafMJm1AL#-exeq6R-U!@eeI%oZT3mU5Q*th2?x!A z&4{#|m@!o4pEgG!N1%4ylEOXHlq*|y_0i`ng_%yN8dJ}ow2{m*qSQT#d?A303O?AI zIT0wvF5b|q+#XJ^$B0SA@4kJ2k+^n`Ih1))WujxqZLm5>`6s+bWHvn!DGWHhsfdSa zq&yh$`1Cg~w_PzVE8JTSRI&RS-5-uImV)0~BEK{h{kqBWeuXq=P-Zzv>i&Yq)$$me zyno)ud;D#n-$@S*P4j)plm>q@j1|z_niW{!WrzII^YYf8o1X997oh}! z_=D_gDx-XwzotZ-<#n2$_XZ_~o??D*$NKM5rbf_QN8%&S7Wdo>To13f%Ww$F4tgiE zW<|M6{#&9Cbo}k7-r{vA07^N@x%q37JvTpWL(Q12c8_MM}fOR1m4{880))#IgqC5I*u zdSF}~D}Hc#S=P_;C)70M9q)Xap|JJ+b%0Tc&PA!i26@!t2>Z9zF0%_D%VpJkG0O%u_<^5qZqSvScdVX?SUtMG zcT`Db4HJJ!2G5^QsfnE8ici&{OT@ml(`qyW+Bx3KiX#M8`G6nd*!{L4HPjWvm9h@yqJD>D^oNGt^pR!Wm>^6txK||YE zZarKIXtRvY{i5i!|H*`Orh4JWl!aE81eVk?!;V8!`F9vl1Y8>Phrt}6dx-}=lQqg<{6(1AtDT9q4~L3LAk~(-ltA4JJXnj|l%iKW3$HWlhGB zj2rAK%rcC4V)x%R?t(&RAVvIA;SMt;s@$?AS?avfOL8eb?Y?lxcB;hjny{S z7KjQ7CDxz1okBkgVQ-1>ZFvQ|| z0tKnP+Ie8TT>oSOivXrMqXxwT0N?g8i3;O?)^&Y2G5=>LrRnImxUd7#-44t+IFtTo zYf;~SzwiNvoiiFB&J_SXA(4M6$-!VJKO&_v?GS z3}(QeZJL#QZ1?k1?CRt2VIbsqI}2B*fncy0{nd9II$(MPn?j|i@MyDL0j(Q#=n5yf zG7^!+e~{p^37Qt-!{3fLZ?R=UkCH~A%;|L0FkfWj$uS$iiZKY#tGXjURI|7~;AicrliUdEw@3LNr<67*_t8`VvN zp<`ItBo6=gpKL;Ur&>Jm?oqnIOX#zQ0Id9a0q~(v z6=0?7R~6WB`ztsd=s1~p?|0JK9Z0ig6^Yxdtp797IC4Nu%F_dsnrgi#cc*G` zC~ZYwo)A~N^dJ0gCft6ZaKAGu9J2wgk4`;)dF|Ie%h<e9W``kugq%bulaG|6Cgk zH2Qtl&w+(?)u%%jWn)(BHf59lXJHl$IyK?!lWkaWgQ}H?Jk`iU^?yKz5doQg`Ltk9 zevYT)u64Js{B{0y(x}*kO+)A(4DG3Al(HMXuUB<#tJ&4cNM`4Qm`HaqAO07CH^z~V zTW21E=WdpGbdnt9peWJ!{(qt^RDa#Zti$=Xzleb&%$4PgE8_5x0-V@ z2H)YPz9kXMQ%)Z29r|}aT9SYYPPM%kh|e<~p19Qic~exU zL8oMG+0kAN3Dwjqm&Md=vP|r@A)srxM@$T|E+qR z3@>Wn#KsTqFYZA)`Q1IaGQQ>0s!j}*CQK05PPn^?|By6mL&W^AYYNt&g6eF-u%=8x z5;3=kOQUt&U&QPt6%@#aA?T)Or}65=woaxonf63+Y1#h*v!4_YRRJC)7Ft!eQIizW zUGW;zIpa!E7E$r$J1iu{WylD!H-PCNG`B{$`}eQZTZ-zgeh22uRvKfD;s(tYh%9atE&CqTHFu4*S6*2CMZ4H?!2Hg(F6 zxYwpL8jKGiBB{ZJ7&u}7iV_PjqB?r=T@f7yX4GcrLMTjI-LW2Pu^0nNmr3HoVYym!(R0TI?+#GMwaA~`>tNv45+evjg+Bu z5G|SGZkx%o)s%ojCVxiiaqidnC2Y1B{JDs!{S1y86%1W!e|({z@y(p(lg(H;FHq`} zw}X}Ac%>ude-eg>hYrd+If{u7AC=o+*-#m&`W2j|-9_MZG~syqO}>J)>WLOccLc(? z$L`~K1QM-)ymG-W=a|-_DX!dHk?}?_xq!gCMDTsmovGx*t|xIv^YfdtBSaM2LT3Gc zb{r?)v{%ln+&d!Jb0M%o(Y!H7Sl&#vGzP2fU__XZoa7^XUtCU6siFxbG08|~jBSC@ zvt{&-Iy{>UZK(;{9L7)ZP3O(H$e?=crZv#LAGHCd#Gi`eDB+giPUE)^#FdMOWsNNy z)P#)V)DWkAH(&Y*Er5 zVMcSmN}W?w7qHf0N?~l+)W7Ml(;dp^D5SGt+5%{*I?o zf zS|n{?h_)p{UU#T^CkhsvCnp4i#p-zLC|OCfjxJ|r>+B_Hbaa}fx+QRxO>?Sq=`3bD zf4cYXpm6jsM;r>!Cb-Zw8=2<6mrfUY2GENs4_)yIkK?-YpH#VVEe`OTXGh6&Tc0zk zw%z^|wmp{+u-q06FCJv^-|XbQkVnD192NxY-q?os2=q8%vBffvAA#L>WWZfL5+m~= z%0a#mpV2P{yfu1Z#C$Q;bH~ttF3{Yz7$H;J-iDs&W#{(|nP_J|ZDGOq&Vk%8zfP3D zwE$AYZvlJuL&ovDD7Ns*R4rz9^;8YowC~-FP>N|dkudN3v*AQH$3qG4I0eyW1 z?#w%h<_VN)!thYSZv6z9hK+Xw}k+r@Ef>vQn6=@CSWMx-f zElbh?XYDK2G-c>b3e4zGFqu~9fAn5^EClXGb&NLyTaUF@*?T%ejI80%$Q_%Y)uc2Ab* zbUNx`6tmeQkyWkRk+DHTcD89Z2`Xl0h!tQxq}aSD#&ygo=mmLNVD-}QrLP&J#xPmV zt)~#FVjfS>QCP~u*OxB)Wza$m^^~UVO)i?8 z>xo*I!>f9SOU!X{NPZI+<8};ByU7;Pi2wfZ29opUVlZRd5c_0LDRhOL)3+gYGKw%t z`7$i%hP_a3yg6|~07ey~Z_Oi6{FFMqJ|^iA?UqW51^`z>Cobtr;KRX4O<}+&@gIUD-XUG2X1m7>d{5P6%wMIQQqvg(Xs!-O;a33+wG4{N8<|IIL08 zNpP7h_p@D;t#LG-a>KkfVgBA9{0kI8` z%?B>=U6U!8pUviwFD>U)S4Fq55gjce>!fPvEW_C+P9K_ihkeUp?OsG`N~=sFFDg2U zc79-s(Sd&~0au_s6G1iJ1*rwsTREMpey2OhP|2=(s|-CYLW=l(>p_^w$Ha2{D($t* z=)l;{;9@aZV0DJD(9$<*sR{`Pp5^KfzP*5>k%W5~zFW5q(A&6$o;C;o`M;8V2! z=ScKJfiTd$MgsUH7z+K8bqzK|SSd@|_RMg!x5XrQR&# z?Bg$5_sRfp(ye&NAq9=Hcy{&hJ>#sePx#^2BO6&|9<(GC>7Q<^&K$_nIE|+Wqt8{#-+Xx2* z4rg7EEfw$UpYA}pg6yZZ+Or91D}{6xd6_b8EQP?PeSwX~FIQ80m}U1mhXnisFHIZe z!?m^sk9G7P83urATfY0^<`A{OTjQC}l@G;kqTv-g zDzmx|HcJ=k<`dpUB*prJTb&XZ z&+O(>zCdXp5Tf9j9dR}#@??EBkc?+N3jR$$^LzC*7qiwU@eQjl$#%D^r9tEDY9;ej zUJOx9T=9%#bXzq|lD>$yAl)BygKPG?67_CEx${wYeOT48|_QC zGUScP%J;~dcA>cCBrXh`MQOZxxgLh((O42Ojj;@LuDS29TE!(k>2=x%sV8atSJ7CM zviK6L4GH_D$P!L-RI--m?(M2t7JJs~K8D~rX0^GR2pY${x}%)fFBUY47_Ch{G7q*Z z{IPgaCGL<7BJ0j?32!BQp*6)h^K57XwWT5lN@Ej%+Gqj*_pp97HQ|D=)z$usjJ5@4 z>?i}HpUB1OzL#NIOuWwhyLO&KCCe;a&RY;29VPtC%Oqv2fYh@wb8gR1ao#IIyGMpNaRlPASs*L~lIjbG|c^2z%66B@P|@Br6!0$Ba*3$`houlH@GF z>n(_=T$odxG2o#4=zi+<%gBtF3Ps?M9K2l|pH#l1+9JZMsD}C{llW*!YjFOGr>jDC z6}RW?G2cyb#^<$R4Q~|kQGbbA{d~68Y13AQNQXnHAn63?KGiPxl8`4%Txvk)tw?QHDfC#`VT z^Y1_P#R`)Nb4uym^?2g(GLi6`@=)L7P`G**e^x$rYs+st+)bE(ZkK3wy#(hr>S@{c z{NYVCGlyZHoVDBD?mL}Nd5;R^KYhs5Dz0-uQ;E~FaB1ZxJeTl#gx~79X~Nl}gq_Bn z`^30N-ejeNAWz<(#slj%IH&+*DiEUIC_fzYj4e8rw8ir&CC(pF{3xDklHu;PS2xvv zmZ~z|a-suHF~lsAU5kdGrcY^T$391P2qL|N$$Lyf?e(G?{87C_Z5qUPzv zBDud>UOni4ia*oeeDocb!GjxFR+o57lEh6BrvB1d@yB+h9AZU{=4^t162~PzRi-GV z!+BA6Vfnc}A*L`@|6F_)pDg!`pa`I$=f(Rsy*->JT!maUC3O|gU(_BW$*bx$Uj!=l z;K@B@XL0+ZV!Lo13MUxc`-^ z&4A<3w8;?XF}S~ghn{1qor{|W=UD_mIWjNw>&q|TLlaEA;68Q6^Eb-_8&-j55naD2;3zfLth|;SQTkX)# z!BCk&qZbX&`JI<3&iT#-Nta0#pjl}N;T0f;Gl))I0$DMxx~egSZBQ;mGyfX->{sO#DLtofsX2?vsX#bxBCddUT*6uWph>A=a4uwo|!q^)&(64pw2v(m*b`m-wUj zl}q+4FV(ihHX0M9mkPNYO}cG6+i{p(Pw^M(De){Gv47}%y`(3AXE<%L-ct1A`|l66&2=rp&XY+b(sMjhek?scP$FxfnTIv z<`!V@{uqMO>`_Ve*cW23a|BARSk-We?_s927HvJH0kI;pp4Vm!lkg&X>4H;~m4iYAV~bORxHr;jv~5C5d8oPQ*!kWcy%?{dkuXf9 zJv0iIe?wR^7k*Hz*{TbSf@s^fVf7W?jC`Xzni$0s8Q_pBIuYGeWY`V6tD3S5Natlr z#i6*u&!HS6-${30XPIvB96AyUp;Id#Z9tZMhxvsEIrv?@x{nrmjQSpv%`&Z)d6OmD zadpy4Vs~6*YF@g3L<^TCxA+5&I4hZ;f2@Lt;|HIZc6I#_&*?+R4Bjbmk4ij64gm3m1B-LLsx6V9VfT1VmpffXq zCh;|ZO5-XsE@6twYwucPH-43QOtMoK2%xcx4p>HBQYwclpzDu3O0uwysfej_&7m`M zhd&&QWh_w(LFFsHN&pY`x`;)LP-#Q4z%sEQ#0NNqNMhk)h^ojrn&2}j5{6;)f*1<# zr`dm0+Vt6z>4mq7h7&_dFomiLNKEvb&Ix8pPHz40)9PL~S!)FoS{rluCT4Px>Af>E z{O|c)l>tt?&PNpI$3Ald;h8qonXeyEER3gYQ9)ITJ#f>+v9rnnI8~-xl}Uhwsbyl9 z_{I%oQ7r^vd@DY0tqWphwV?023Qo|KyDAUu_Cqu1AJcDq`eqQ<9M)ZZS(=T}>F&!|(GdB}4}J@L}GPzm#-)Di`N^uVcZ z_c_)E8gczD`q!ccedB`*_*Khd2If^&ew=}-0lcC6{Yh*u)eszqCc*vvJ(jX#g63nU zY-Hz0eRFm%<|Xmt<65=&ohXlgnxJQO>hBc0))x}(j-9W4(&Ow>hZPN-hs=j25sDT| zGjye*EOas1qOje(^1d}t`5|IvxdC{E$!F%KK6__$kBN2k`HSEFa5^G6F-=^~!0@aw zt@+EIKwND6=WPqVaxPyc;cy{02^Y=JKb!+t!(Z;6VCW6U-vAL!`D6YO#{sKtJ@$+? zPI{Bl1$9%5dK$z8!e!kTZkyC)$nmQCOr2ML_;&c=5B_S2UCH}+amt>&%Csu7`k-e^ z_OOGo^#!gVBJYf8oWoVWafIK7@fTR0dw4T>+OfwMi)o`umg|USGM(kxd^NFW34^yW z$viNA?4#_r9y@j>-Z|I5G3yt!|x)cqNSc`2i(mFXDZFl(KQW)1&HowT?3q=t;c9>}SH!ufdG9Ah z%$&Iah~AH6CigOx^QjWMCOYpf#!3WT}IQbvPDJF80!$9^u$g596vKCK7aSPDWq-0TrMJD>6Q2nvPe z?39>{55**)AW4B*KLnx-qE=6tr%y`_sIkJql0GM9k_e>Pe7Mm(EM${YJMI1o@%fkP zEZa?Vh=Whk*_agbwQBAF^^j+pm;&M=#m~P4Q4r@Flo*u~M(x%7L*Y=@=c{hU*?ZBT zcUG-C;6vX$6lYk=B86!8iE>p%yKz~(U_jw(z8m&iL0FDObmP_2FF!}q(dV6AZ3k$8 zY7ECpEz7OeVUQ*itrjj?sofHbOK}!V{riT}f)d54wFG_?IF?{N8PnaMzI@&sy{Ejs z8YPkvrD4i@Y>wpx!?F4Gkgq3fIB}S@?`P~Q#IqF4byU%OhrStUL%m74%Q>1zH+{>q z8o;=Agm8CE&N=(A#QuYghaW{`(Z5Sq^}Kw&)un?qjt00;z?jG zwp|-}qE)4J3OK1=S1#B0ww;s?$2 zKMfA#uM18xXKFXk#SdtUyb=}w=57or;#dRO`0ipgQx{)JVlxOefDk~4gbJq*|@X?h1;S)+6a}qOtd$xOS+Wo7OzqsL! zM^1C`jnN0eNsC-m- zWp}n;V@z)vAi1`L-Af8VVi-o4okk_3NB@ zvaA4OSrYch{8p`0uCqYhWMuB}e3UNw>%(Oo)bN8oJo^#(n>IgJF@r;+iC)$f;tL*I zn1lc#4DS?+QSfN?@Un0<)n>e)MY(25LwsOlz-y-B1@0j=B6RVNY%lJJ`>RW<*nyMI z+n?W(?FuQ6Gx(Y)bsu(b62Z-ek3t9iG)i2A-4`VBO*uwFEP_5J`26yfm6nWIYu%U) zXpL*EzqeE*ygzq1n?$s^>q)8#f06S<7RCKn8c-~U7h^m86d^_ z!&smgZ2JfLft%RPGN5U7Jx%`-5RY8_k zE_V34C9uu{hU+c+_Je4D4W0x*U+VP~yaJDzIX)X*{sEKH{szv_709x%w{?_sfgBMS z>$VeM!0XG|t32!a-Gb?eZPjgcu}7na45czuzjz9}y&ow-8x_GvLX}XpZnQ~#)q*Gm z>yW(65)z%SaVBQ!pyBf7x+=FZx1nlX$tj&foD{sidd+Al&7L)TlCE-hj@yPig5t}9 zv#E0r8KLcFE3^gpA?%@S*&`L!B`1s(VqChHt#Q{D_e}!WNlNvjFU^LtChYPbt=Uy$ z1I`rvjn+0$W7G!W6hB5vUUe!2$ zrSlB$^uyzoSmM3XtB0H;59>%G>WCI&Gb<8xF8Sj$Xp;{VQRwn0o`^zJ`x379_7H{+ z(kMl~Wt((LtXU@CF=|(bK0~p(e~u!VxE4^4Etn}gIqaj9AH0^tW^+5QJ|beYG9G^e zw3@KCD8X8aGKe5AiheU?sCo||arIUjLMkZOJ~FxZQ5Kb{7TC#LMmbbbc1H1cu(aBJ z!8iF%O9&$3vBi<7u-OnaAHX4iuYc{SlC7H5L(3z=44e93#iv|DLM_EK?nv%cBaH9= zu^^mG`lG!a_rbQ+F83=n!={!?9ICIVH(F7)YDQS+p5?04KXrZ86Uo+3i8@_yWaeSt zV0*l!LE6a!HWoPCSk}weSgcyR*py81q284y89WE>PPmjBLq)YOmK=QZ&c=uwarZn& zDk2)LHn%lHWAWQj<<3M-U1J)&k_xJ}^n=w;XXQ3f>&2S){xtCP(K3+-WmsKZ`7YhN z;aPoQ-8~%)r(z}RKu!f?z?oEwvc6iwx!gY11_$8?rwoOo<-WOcM z<<<#;bGjFf`qaWnIO}HLaU&BsYfx+{Y$=ltZXPbyUt&EZqqIqDU+4n_}CP8 z^5mJRI@iuS8fxu?v7a)MQxuf8co%4C;Ps~it`uR{FN&N2Jp$+#Vypb9_#ABrEG~!n zoxFwBF3xz+I=H4PZNi9oaL6QTX0f9@3WaGQ3k;a)Fl~^Wc4tLsyuXTar^zTJ626HlccRwPP5Iq*fV*crk^Qve zT+h*IC9FL#LZ1u!+A() zT7E_by-EI!%Y?$N88y@Zt3bdo!0hS75!<%?)oMz%f++NOVQEHFvA{*+E2T9#v8#Dd z=0Q{8;<_?3xqs|2IbdK6|WzQw03FWB$nsoU2Rwh*UMx=uWhyI zT{XZ^L8)C35rWsR_2y?~T^8#`r%(K86ma@e?g|HGAir}6H7~`DpKU(g8i()EJrB+1i zzMBtu`NNvabEJkznQUGg?XVD8inigsfK!L@#7Nn(!wxbhS7mgh`8Ryn?du zvGcbuRCm0#Wu_IA$RLdTscCHoHao8^EK?BD`^Nu%=z%Ixh@YQy7UYonwy*Ec0T!p+ zN9SHV2E8d?!n{$!VcW~CUcwY|lToCXZ4egceGOliPMLqFtuD5(X24gb7oOwJge&X`4k)yxO?(@H&Ir?J< zOG6L2jPNI|KFwbuxMwxNwQXUnqT?>JOj?Mp-#BFNzC|e@7_^8ULvJ0^As~=YkaKU5 zH7V!BvvYAO&f-idJWwSEJL<(Jxc`jU`C8@@iiw|X@-Pr2W5Ol^=*@P6X)v0bg0!4)tV}=+NAK zjptW~v;>BIMhd#X@ZqZ^7>`~`e@jdm*0SlWH0LCf)3U#8$)zlOhp83_0*ME;KX=Tb zcD`Yq6cxWGL~F4E5|d`PWQjTMC;o1wc`q6U^kqe%&kL5#_V`G6z6pRw8F^HHzJ|wU z7j+)CcDd0&scD?#{b>1(X>8HL~?Gho;v zAkS^o=|>_5+a0Stt%Zi{_>e6_58B<%i(;)ap0wuNlK3lW$eQcM84Dlrjw#v}_`_fcGRtTwsj8PhsDAp1hPswg?EZ_tI(=vP!ku++!uXA@#7Bz?F0w|GqdB$4NvD zTTqDtU3TD*xjz{DN;}$Mb8UO}*V1;3T8m6%r{sMp_cM&l z;}AY{Or}7FALOtzz1?=HT)X5iHZapxGt5X!kyow69AowID7#E zCo$g;cl^O~jPE^N$}op^R%xI?qMAY+M^nYt_LeN&Vg++mcaN(h{+A6DX$UpQP%*w? zg=s!mk3%|Ep|7_VNF>E{t(@CO*Ba3Koe`SJ>Zk5ig!p(rLBTKxag-!l$mV*^EN@bA zrFQPtJxOmMnvI5r$#nmJ0e}F{bG}=YHf9J&#wCl2WvDo8@$x;Iztu+7wP1k1V4M|N z9!CQ(kcx+Ne~*y7lX$AxI1`<%K8o@r(xPXbt~CeNiewQ&?B1bi$Z76yf2cRT&@#5mCIT0-IA6(mcx?5f}a+8b?rl2^bLN zd-YxwaJ7qgwSxySd3bl1aioa?SQa?-7>_@8YTa%OeE%a^6gm2O^lgw^qL!K1h}4n! zzqzt;OIQ*B2g^JD*ulafK#!q5c>v3*MPuFsD;N)6oOs-`&W55uG-2Xl3~;C~=q^QJ zv28}>{w)3dZ?c~SP(TOaSkYV6v(OBfV!(_I#|+D$Bc;GOV?ox*^7D(T`oHKw(8BYh z!^5}UKS0rF!6%^Ta8%}!OH+A$nFJ}4`Vu-`MhRadIrut~CiF$+%_WL{S(*a>Ndmz$ z_&z~Uk^Y;LKt1T7gNqrJmY_1EH#z^NlBR}{Uib`HM!qk$6EXOg-?Mu|LOFx6;K8{v zPQCw;E0Jgeq_avIW+`N!g5eWX92F}>O`hkK!w^+cFUZ+GGfRpi!} zIpqj*b|9w!E^FD%zs@|7cY4XDzM#%(2DF3p9Vr~HI29Cn9lZz2K(T^e?f222u}sTa z2H>P>jRfvcS-;%jM2DzL26X(fsEw3Bv5O$(zT{3xSj;Ze6bL$A5>_0o=YWx#nT}_& z$I946fr8xJpIpBf@Lt%pP}toN{={~d9Q-+1B9o|I+`K>3(PhLJc6UMG>+Oq!P7k{i3NY`A8@EU^19r^h~=lnkAe7!)&s|w`K zl0zBwZ`md4agIrhQ(>Bko=Tc9HUZ6ikVC!QcB-JY(W_R$|{^gq33<_r)Cl#$QnVIrP z#A<43gcSUq;v5eq#X|Wa`*7>o#opN{-dZ%36y@3(kRM?aWIfv&W9hrAuX%U23LbcyQ#Tnn~FJhT^F4oeIk=r%BD9`)F@!pY<_4J7`!L=KMqGSX!k1@OumVO|FIN zjqqx;1)*C0Y{y&8?-*Fws)^8i=$H`*8`<6mxd~5iVvYyPFmum)Pu_frC7g<0=)p#c z$o?s}@wprgRdZlZCr^ckl}@uICOFI9y6*}3+$)LPmWDi58XDyN7m!wpS^zQSJuBo| zJzA(rWBR9kkPKAwe+Mn57d2Cn;!rXA1)68e=~t5JtWZ&JUv3xyZ~WMmtkn#lNxuvf z<_j@;Td{`8YS|QkeTu5}eC6JI`t?#jb86Yj#0AZCXLaZ<#g zB%Pcs1x#DAA#AbXRQl|BpND5iU`0a=oB=u8c#NRok!?hP-tcheqRN%AT*PpBX`0Uo z?W#2MT4O^X4QF~57;)a)1LXVo`VG*Bw5D>|R;Sm)vaLX@vBFhy>0^bfGF4t`jQo)Qn zWo%Q1&O+=~Oi)4a97}PKw;evmO6p&&Q#GOcrLAvUd9$lb8(xk8 + + + + CFBundleIconFile + icon.icns + CFBundlePackageType + APPL + CFBundleGetInfoString + Created by Qt/QMake + CFBundleSignature + ???? + CFBundleExecutable + MoolticuteApp + CFBundleIdentifier + org.raoulh.moolticute + NOTE + This file was generated by Qt/QMake. + NSPrincipalClass + NSApplication + NSHighResolutionCapable + + + diff --git a/mac/create_dmg.sh b/mac/create_dmg.sh new file mode 100755 index 00000000..201471fb --- /dev/null +++ b/mac/create_dmg.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [ $# -ne 1 ] +then + echo "Usage: $0 " + exit 1 +fi + +VERSION=$1 + +echo "Copy files..." +cp Info.plist ../../build/Moolticute.app/Contents/ +cp icon.icns ../../build/Moolticute.app/Contents/Resources/ + +echo "Creating dmg package..." +macdeployqt ../../build/Moolticute.app -dmg +mv ../../build/calaos_installer.dmg ../../Moolticute_macosx_$VERSION.dmg + +echo "Done." +echo "Package: ../../Moolticute_macosx_$VERSION.dmg" diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index bbd5c24c..920e7568 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -19,27 +19,67 @@ #include "MainWindow.h" #include "ui_MainWindow.h" +#define CSS_BLUE_BUTTON "QPushButton {" \ + "color: #fff;" \ + "background-color: #60B1C7;" \ + "padding: 15px;" \ + "border: none;" \ + "}" \ + "QPushButton:hover {" \ + "background-color: #3d96af;" \ + "}" + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { + awesome = new QtAwesome(this); + awesome->initFontAwesome(); + ui->setupUi(this); + ui->pushButtonDevSettings->setIcon(awesome->icon(fa::wrench)); + ui->pushButtonCred->setIcon(awesome->icon(fa::key)); + ui->pushButtonSync->setIcon(awesome->icon(fa::refresh)); + + ui->labelLogo->setPixmap(QPixmap(":/mp-logo.png").scaled(500, ui->widgetHeader->sizeHint().height() - 8, Qt::KeepAspectRatio)); + wsClient = new WSClient(this); - connect(wsClient, &WSClient::connectedChanged, [=]() - { - if (wsClient->get_connected()) - ui->plainTextEdit->appendPlainText("Mooltipass connected"); - else - ui->plainTextEdit->appendPlainText("Mooltipass disconnected"); - }); - connect(wsClient, &WSClient::statusChanged, [=]() - { - ui->plainTextEdit->appendPlainText(QString("Status: %1").arg(Common::MPStatusString[wsClient->get_status()])); - }); +// connect(wsClient, &WSClient::connectedChanged, [=]() +// { +// if (wsClient->get_connected()) +// ui->plainTextEdit->appendPlainText("Mooltipass connected"); +// else +// ui->plainTextEdit->appendPlainText("Mooltipass disconnected"); +// }); +// connect(wsClient, &WSClient::statusChanged, [=]() +// { +// ui->plainTextEdit->appendPlainText(QString("Status: %1").arg(Common::MPStatusString[wsClient->get_status()])); +// }); + + ui->pushButtonMemMode->setStyleSheet(CSS_BLUE_BUTTON); + ui->pushButtonExportFile->setStyleSheet(CSS_BLUE_BUTTON); + ui->pushButtonImportFile->setStyleSheet(CSS_BLUE_BUTTON); + + connect(ui->pushButtonDevSettings, SIGNAL(clicked(bool)), this, SLOT(updatedPage())); + connect(ui->pushButtonCred, SIGNAL(clicked(bool)), this, SLOT(updatedPage())); + connect(ui->pushButtonSync, SIGNAL(clicked(bool)), this, SLOT(updatedPage())); + + ui->pushButtonDevSettings->setChecked(true); + ui->stackedWidget->setCurrentIndex(0); } MainWindow::~MainWindow() { delete ui; } + +void MainWindow::updatedPage() +{ + if (ui->pushButtonDevSettings->isChecked()) + ui->stackedWidget->setCurrentIndex(0); + else if (ui->pushButtonCred->isChecked()) + ui->stackedWidget->setCurrentIndex(1); + else if (ui->pushButtonSync->isChecked()) + ui->stackedWidget->setCurrentIndex(2); +} diff --git a/src/MainWindow.h b/src/MainWindow.h index e76f805e..ab0ae9ad 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -21,6 +21,7 @@ #include #include "WSClient.h" +#include namespace Ui { class MainWindow; @@ -35,11 +36,15 @@ class MainWindow : public QMainWindow ~MainWindow(); private slots: + void updatedPage(); + + // void mpAdded(MPDevice *device); // void mpRemoved(MPDevice *); private: Ui::MainWindow *ui; + QtAwesome* awesome; WSClient *wsClient; }; diff --git a/src/MainWindow.ui b/src/MainWindow.ui index 94c159d7..74ccbe7b 100644 --- a/src/MainWindow.ui +++ b/src/MainWindow.ui @@ -6,22 +6,554 @@ 0 0 - 611 - 379 + 780 + 457 - MainWindow + Moolticute + + + + :/AppIcon_32.png:/AppIcon_32.png + + + QMainWindow { +background-color: #fff; +color: #222222; +} + +QLabel { +color: #222222; +} + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QPushButton { +color: #333333; +background-color: #EFEFEF; +padding: 15px; +border: none; +} + +QPushButton:hover { +background-color: #d5d5d5; +} + +QPushButton:checked { +background-color: #d5d5d5; +} + +QWidget {background-color: #EFEFEF;} + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Device Settings + + + true + + + true + + + true + + + + + + + Credentials + + + true + + + true + + + + + + + Synchronisation + + + true + + + true + + + + + + + Qt::Horizontal + + + + 413 + 20 + + + + + + + + + + - + + + + 0 + 1 + + + + 2 + + + + + 15 + + + 30 + + + 30 + + + 100 + + + + + + 12 + 75 + true + + + + Device settings + + + + + + + These Settings change parameters on your Mooltipass device. For browser-specific settings, go to the options page of the extension. + + + true + + + + + + + 50 + + + + + Keyboard layout + + + + + + + + + + Inactivity + + + + + + + + + Lock after + + + + + + + + + + minutes inactivity + + + + + + + + + Input timeout + + + + + + + + + Cancel credentials request after + + + + + + + + + + seconds + + + + + + + + + Use screen saver + + + + + + + Miscellaneous + + + + + + + Flash screen when input is required + + + + + + + Allow boot without host (e.g. USB battery / Charger) + + + + + + + Enable device tutorial + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + :/management-mode.png + + + + + + + 30 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 12 + 75 + true + + + + Memory management mode + + + + + + + Accessing your credentials requires your device to be in management mode. + + + true + + + + + + + + 400 + 0 + + + + color: rgb(136, 136, 136); + + + This enables your computer to access and modify your stored websites and usernames without additional permission. Do not activate this mode, if you do not trust this computer. + + + true + + + + + + + + + Enter memory management mode + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 30 + + + 30 + + + 50 + + + + + 30 + + + + + + + + 12 + 75 + true + + + + File Storage + + + + + + + + 0 + 0 + + + + Store your credentials in a file on your local computer. + + + true + + + + + + + + + + 150 + 0 + + + + Export to file + + + + + + + + 150 + 0 + + + + Import from file + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + - + + + diff --git a/src/QtAwesome/LICENSE.md b/src/QtAwesome/LICENSE.md new file mode 100644 index 00000000..73dc8189 --- /dev/null +++ b/src/QtAwesome/LICENSE.md @@ -0,0 +1,29 @@ +MIT License +=========== + +Copyright 2013-2015 [Reliable Bits Software by Blommers IT](http://blommersit.nl). All Rights Reserved. +Author [Rick Blommers](mailto:rick@blommersit.nl) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Font Awesome License +==================== + +[https://github.com/FortAwesome/Font-Awesome](https://github.com/FortAwesome/Font-Awesome) + +The Font Awesome font is licensed under the SIL Open Font License - [http://scripts.sil.org/OFL](http://scripts.sil.org/OFL) +The Font Awesome pictograms are licensed under the CC BY 3.0 License - [http://creativecommons.org/licenses/by/3.0/](http://creativecommons.org/licenses/by/3.0/) +"Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + diff --git a/src/QtAwesome/QtAwesome.cpp b/src/QtAwesome/QtAwesome.cpp new file mode 100644 index 00000000..e586d695 --- /dev/null +++ b/src/QtAwesome/QtAwesome.cpp @@ -0,0 +1,982 @@ +/** + * QtAwesome - use font-awesome (or other font icons) in your c++ / Qt Application + * + * MIT Licensed + * + * Copyright 2013-2015 - Reliable Bits Software by Blommers IT. All Rights Reserved. + * Author Rick Blommers + */ + +#include "QtAwesome.h" + +#include +#include +#include + + + +/// The font-awesome icon painter +class QtAwesomeCharIconPainter: public QtAwesomeIconPainter +{ +public: + virtual void paint( QtAwesome* awesome, QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state, const QVariantMap& options ) + { + Q_UNUSED(mode); + Q_UNUSED(state); + Q_UNUSED(options); + + painter->save(); + + // set the correct color + QColor color = options.value("color").value(); + QString text = options.value("text").toString(); + + if( mode == QIcon::Disabled ) { + color = options.value("color-disabled").value(); + QVariant alt = options.value("text-disabled"); + if( alt.isValid() ) { + text = alt.toString(); + } + } else if( mode == QIcon::Active ) { + color = options.value("color-active").value(); + QVariant alt = options.value("text-active"); + if( alt.isValid() ) { + text = alt.toString(); + } + } else if( mode == QIcon::Selected ) { + color = options.value("color-selected").value(); + QVariant alt = options.value("text-selected"); + if( alt.isValid() ) { + text = alt.toString(); + } + } + painter->setPen(color); + + // add some 'padding' around the icon + int drawSize = qRound(rect.height()*options.value("scale-factor").toFloat()); + + painter->setFont( awesome->font(drawSize) ); + painter->drawText( rect, text, QTextOption( Qt::AlignCenter|Qt::AlignVCenter ) ); + painter->restore(); + } + +}; + + +//--------------------------------------------------------------------------------------- + + +/// The painter icon engine. +class QtAwesomeIconPainterIconEngine : public QIconEngine +{ + +public: + + QtAwesomeIconPainterIconEngine( QtAwesome* awesome, QtAwesomeIconPainter* painter, const QVariantMap& options ) + : awesomeRef_(awesome) + , iconPainterRef_(painter) + , options_(options) + { + } + + virtual ~QtAwesomeIconPainterIconEngine() {} + + QtAwesomeIconPainterIconEngine* clone() const + { + return new QtAwesomeIconPainterIconEngine( awesomeRef_, iconPainterRef_, options_ ); + } + + virtual void paint(QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state) + { + Q_UNUSED( mode ); + Q_UNUSED( state ); + iconPainterRef_->paint( awesomeRef_, painter, rect, mode, state, options_ ); + } + + virtual QPixmap pixmap(const QSize& size, QIcon::Mode mode, QIcon::State state) + { + QPixmap pm(size); + pm.fill( Qt::transparent ); // we need transparency + { + QPainter p(&pm); + paint(&p, QRect(QPoint(0,0),size), mode, state); + } + return pm; + } + +private: + + QtAwesome* awesomeRef_; ///< a reference to the QtAwesome instance + QtAwesomeIconPainter* iconPainterRef_; ///< a reference to the icon painter + QVariantMap options_; ///< the options for this icon painter +}; + + +//--------------------------------------------------------------------------------------- + +/// The default icon colors +QtAwesome::QtAwesome( QObject* parent ) + : QObject( parent ) + , namedCodepoints_() +{ + // initialize the default options + setDefaultOption( "color", QColor(50,50,50) ); + setDefaultOption( "color-disabled", QColor(70,70,70,60)); + setDefaultOption( "color-active", QColor(10,10,10)); + setDefaultOption( "color-selected", QColor(10,10,10)); + setDefaultOption( "scale-factor", 0.9 ); + + setDefaultOption( "text", QVariant() ); + setDefaultOption( "text-disabled", QVariant() ); + setDefaultOption( "text-active", QVariant() ); + setDefaultOption( "text-selected", QVariant() ); + + fontIconPainter_ = new QtAwesomeCharIconPainter(); + +} + + +QtAwesome::~QtAwesome() +{ + delete fontIconPainter_; +// delete errorIconPainter_; + qDeleteAll(painterMap_); +} + +/// initializes the QtAwesome icon factory with the given fontname +void QtAwesome::init(const QString& fontname) +{ + fontName_ = fontname; +} + + +/// a specialized init function so font-awesome is loaded and initialized +/// this method return true on success, it will return false if the fnot cannot be initialized +/// To initialize QtAwesome with font-awesome you need to call this method +bool QtAwesome::initFontAwesome( ) +{ + static int fontAwesomeFontId = -1; + + // only load font-awesome once + if( fontAwesomeFontId < 0 ) { + + // The macro below internally calls "qInitResources_QtAwesome()". this initializes + // the resource system. For a .pri project this isn't required, but when building and using a + // static library the resource need to initialized first. + /// + // I've checked th qInitResource_* code and calling this method mutliple times shouldn't be any problem + // (More info about this subject: http://qt-project.org/wiki/QtResources) + Q_INIT_RESOURCE(QtAwesome); + + // load the font file + QFile res(":/fonts/fontawesome-4.4.0.ttf"); + if(!res.open(QIODevice::ReadOnly)) { + qDebug() << "Font awesome font could not be loaded!"; + return false; + } + QByteArray fontData( res.readAll() ); + res.close(); + + // fetch the given font + fontAwesomeFontId = QFontDatabase::addApplicationFontFromData(fontData); + } + + QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(fontAwesomeFontId); + if( !loadedFontFamilies.empty() ) { + fontName_= loadedFontFamilies.at(0); + } else { + qDebug() << "Font awesome font is empty?!"; + fontAwesomeFontId = -1; // restore the font-awesome id + return false; + } + + // intialize the map + QHash& m = namedCodepoints_; + m.insert("fa_500px", fa::fa_500px ); + m.insert("adjust", fa::adjust ); + m.insert("adn", fa::adn ); + m.insert("aligncenter", fa::aligncenter ); + m.insert("alignjustify", fa::alignjustify ); + m.insert("alignleft", fa::alignleft ); + m.insert("alignright", fa::alignright ); + m.insert("amazon", fa::amazon ); + m.insert("ambulance", fa::ambulance ); + m.insert("anchor", fa::anchor ); + m.insert("android", fa::android ); + m.insert("angellist", fa::angellist ); + m.insert("angledoubledown", fa::angledoubledown ); + m.insert("angledoubleleft", fa::angledoubleleft ); + m.insert("angledoubleright", fa::angledoubleright ); + m.insert("angledoubleup", fa::angledoubleup ); + m.insert("angledown", fa::angledown ); + m.insert("angleleft", fa::angleleft ); + m.insert("angleright", fa::angleright ); + m.insert("angleup", fa::angleup ); + m.insert("apple", fa::apple ); + m.insert("archive", fa::archive ); + m.insert("areachart", fa::areachart ); + m.insert("arrowcircledown", fa::arrowcircledown ); + m.insert("arrowcircleleft", fa::arrowcircleleft ); + m.insert("arrowcircleodown", fa::arrowcircleodown ); + m.insert("arrowcircleoleft", fa::arrowcircleoleft ); + m.insert("arrowcircleoright", fa::arrowcircleoright ); + m.insert("arrowcircleoup", fa::arrowcircleoup ); + m.insert("arrowcircleright", fa::arrowcircleright ); + m.insert("arrowcircleup", fa::arrowcircleup ); + m.insert("arrowdown", fa::arrowdown ); + m.insert("arrowleft", fa::arrowleft ); + m.insert("arrowright", fa::arrowright ); + m.insert("arrowup", fa::arrowup ); + m.insert("arrows", fa::arrows ); + m.insert("arrowsalt", fa::arrowsalt ); + m.insert("arrowsh", fa::arrowsh ); + m.insert("arrowsv", fa::arrowsv ); + m.insert("asterisk", fa::asterisk ); + m.insert("at", fa::at ); + m.insert("automobile", fa::automobile ); + m.insert("backward", fa::backward ); + m.insert("balancescale", fa::balancescale ); + m.insert("ban", fa::ban ); + m.insert("bank", fa::bank ); + m.insert("barchart", fa::barchart ); + m.insert("barcharto", fa::barcharto ); + m.insert("barcode", fa::barcode ); + m.insert("bars", fa::bars ); + m.insert("battery0", fa::battery0 ); + m.insert("battery1", fa::battery1 ); + m.insert("battery2", fa::battery2 ); + m.insert("battery3", fa::battery3 ); + m.insert("battery4", fa::battery4 ); + m.insert("batteryempty", fa::batteryempty ); + m.insert("batteryfull", fa::batteryfull ); + m.insert("batteryhalf", fa::batteryhalf ); + m.insert("batteryquarter", fa::batteryquarter ); + m.insert("batterythreequarters", fa::batterythreequarters ); + m.insert("bed", fa::bed ); + m.insert("beer", fa::beer ); + m.insert("behance", fa::behance ); + m.insert("behancesquare", fa::behancesquare ); + m.insert("bell", fa::bell ); + m.insert("bello", fa::bello ); + m.insert("bellslash", fa::bellslash ); + m.insert("bellslasho", fa::bellslasho ); + m.insert("bicycle", fa::bicycle ); + m.insert("binoculars", fa::binoculars ); + m.insert("birthdaycake", fa::birthdaycake ); + m.insert("bitbucket", fa::bitbucket ); + m.insert("bitbucketsquare", fa::bitbucketsquare ); + m.insert("bitcoin", fa::bitcoin ); + m.insert("blacktie", fa::blacktie ); + m.insert("bold", fa::bold ); + m.insert("bolt", fa::bolt ); + m.insert("bomb", fa::bomb ); + m.insert("book", fa::book ); + m.insert("bookmark", fa::bookmark ); + m.insert("bookmarko", fa::bookmarko ); + m.insert("briefcase", fa::briefcase ); + m.insert("btc", fa::btc ); + m.insert("bug", fa::bug ); + m.insert("building", fa::building ); + m.insert("buildingo", fa::buildingo ); + m.insert("bullhorn", fa::bullhorn ); + m.insert("bullseye", fa::bullseye ); + m.insert("bus", fa::bus ); + m.insert("buysellads", fa::buysellads ); + m.insert("cab", fa::cab ); + m.insert("calculator", fa::calculator ); + m.insert("calendar", fa::calendar ); + m.insert("calendarchecko", fa::calendarchecko ); + m.insert("calendarminuso", fa::calendarminuso ); + m.insert("calendaro", fa::calendaro ); + m.insert("calendarpluso", fa::calendarpluso ); + m.insert("calendartimeso", fa::calendartimeso ); + m.insert("camera", fa::camera ); + m.insert("cameraretro", fa::cameraretro ); + m.insert("car", fa::car ); + m.insert("caretdown", fa::caretdown ); + m.insert("caretleft", fa::caretleft ); + m.insert("caretright", fa::caretright ); + m.insert("caretsquareodown", fa::caretsquareodown ); + m.insert("caretsquareoleft", fa::caretsquareoleft ); + m.insert("caretsquareoright", fa::caretsquareoright ); + m.insert("caretsquareoup", fa::caretsquareoup ); + m.insert("caretup", fa::caretup ); + m.insert("cartarrowdown", fa::cartarrowdown ); + m.insert("cartplus", fa::cartplus ); + m.insert("cc", fa::cc ); + m.insert("ccamex", fa::ccamex ); + m.insert("ccdinersclub", fa::ccdinersclub ); + m.insert("ccdiscover", fa::ccdiscover ); + m.insert("ccjcb", fa::ccjcb ); + m.insert("ccmastercard", fa::ccmastercard ); + m.insert("ccpaypal", fa::ccpaypal ); + m.insert("ccstripe", fa::ccstripe ); + m.insert("ccvisa", fa::ccvisa ); + m.insert("certificate", fa::certificate ); + m.insert("chain", fa::chain ); + m.insert("chainbroken", fa::chainbroken ); + m.insert("check", fa::check ); + m.insert("checkcircle", fa::checkcircle ); + m.insert("checkcircleo", fa::checkcircleo ); + m.insert("checksquare", fa::checksquare ); + m.insert("checksquareo", fa::checksquareo ); + m.insert("chevroncircledown", fa::chevroncircledown ); + m.insert("chevroncircleleft", fa::chevroncircleleft ); + m.insert("chevroncircleright", fa::chevroncircleright ); + m.insert("chevroncircleup", fa::chevroncircleup ); + m.insert("chevrondown", fa::chevrondown ); + m.insert("chevronleft", fa::chevronleft ); + m.insert("chevronright", fa::chevronright ); + m.insert("chevronup", fa::chevronup ); + m.insert("child", fa::child ); + m.insert("chrome", fa::chrome ); + m.insert("circle", fa::circle ); + m.insert("circleo", fa::circleo ); + m.insert("circleonotch", fa::circleonotch ); + m.insert("circlethin", fa::circlethin ); + m.insert("clipboard", fa::clipboard ); + m.insert("clocko", fa::clocko ); + m.insert("clone", fa::clone ); + m.insert("close", fa::close ); + m.insert("cloud", fa::cloud ); + m.insert("clouddownload", fa::clouddownload ); + m.insert("cloudupload", fa::cloudupload ); + m.insert("cny", fa::cny ); + m.insert("code", fa::code ); + m.insert("codefork", fa::codefork ); + m.insert("codepen", fa::codepen ); + m.insert("coffee", fa::coffee ); + m.insert("cog", fa::cog ); + m.insert("cogs", fa::cogs ); + m.insert("columns", fa::columns ); + m.insert("comment", fa::comment ); + m.insert("commento", fa::commento ); + m.insert("commenting", fa::commenting ); + m.insert("commentingo", fa::commentingo ); + m.insert("comments", fa::comments ); + m.insert("commentso", fa::commentso ); + m.insert("compass", fa::compass ); + m.insert("compress", fa::compress ); + m.insert("connectdevelop", fa::connectdevelop ); + m.insert("contao", fa::contao ); + m.insert("copy", fa::copy ); + m.insert("copyright", fa::copyright ); + m.insert("creativecommons", fa::creativecommons ); + m.insert("creditcard", fa::creditcard ); + m.insert("crop", fa::crop ); + m.insert("crosshairs", fa::crosshairs ); + m.insert("css3", fa::css3 ); + m.insert("cube", fa::cube ); + m.insert("cubes", fa::cubes ); + m.insert("cut", fa::cut ); + m.insert("cutlery", fa::cutlery ); + m.insert("dashboard", fa::dashboard ); + m.insert("dashcube", fa::dashcube ); + m.insert("database", fa::database ); + m.insert("dedent", fa::dedent ); + m.insert("delicious", fa::delicious ); + m.insert("desktop", fa::desktop ); + m.insert("deviantart", fa::deviantart ); + m.insert("diamond", fa::diamond ); + m.insert("digg", fa::digg ); + m.insert("dollar", fa::dollar ); + m.insert("dotcircleo", fa::dotcircleo ); + m.insert("download", fa::download ); + m.insert("dribbble", fa::dribbble ); + m.insert("dropbox", fa::dropbox ); + m.insert("drupal", fa::drupal ); + m.insert("edit", fa::edit ); + m.insert("eject", fa::eject ); + m.insert("ellipsish", fa::ellipsish ); + m.insert("ellipsisv", fa::ellipsisv ); + m.insert("empire", fa::empire ); + m.insert("envelope", fa::envelope ); + m.insert("envelopeo", fa::envelopeo ); + m.insert("envelopesquare", fa::envelopesquare ); + m.insert("eraser", fa::eraser ); + m.insert("eur", fa::eur ); + m.insert("euro", fa::euro ); + m.insert("exchange", fa::exchange ); + m.insert("exclamation", fa::exclamation ); + m.insert("exclamationcircle", fa::exclamationcircle ); + m.insert("exclamationtriangle", fa::exclamationtriangle ); + m.insert("expand", fa::expand ); + m.insert("expeditedssl", fa::expeditedssl ); + m.insert("externallink", fa::externallink ); + m.insert("externallinksquare", fa::externallinksquare ); + m.insert("eye", fa::eye ); + m.insert("eyeslash", fa::eyeslash ); + m.insert("eyedropper", fa::eyedropper ); + m.insert("facebook", fa::facebook ); + m.insert("facebookf", fa::facebookf ); + m.insert("facebookofficial", fa::facebookofficial ); + m.insert("facebooksquare", fa::facebooksquare ); + m.insert("fastbackward", fa::fastbackward ); + m.insert("fastforward", fa::fastforward ); + m.insert("fax", fa::fax ); + m.insert("feed", fa::feed ); + m.insert("female", fa::female ); + m.insert("fighterjet", fa::fighterjet ); + m.insert("file", fa::file ); + m.insert("filearchiveo", fa::filearchiveo ); + m.insert("fileaudioo", fa::fileaudioo ); + m.insert("filecodeo", fa::filecodeo ); + m.insert("fileexcelo", fa::fileexcelo ); + m.insert("fileimageo", fa::fileimageo ); + m.insert("filemovieo", fa::filemovieo ); + m.insert("fileo", fa::fileo ); + m.insert("filepdfo", fa::filepdfo ); + m.insert("filephotoo", fa::filephotoo ); + m.insert("filepictureo", fa::filepictureo ); + m.insert("filepowerpointo", fa::filepowerpointo ); + m.insert("filesoundo", fa::filesoundo ); + m.insert("filetext", fa::filetext ); + m.insert("filetexto", fa::filetexto ); + m.insert("filevideoo", fa::filevideoo ); + m.insert("filewordo", fa::filewordo ); + m.insert("filezipo", fa::filezipo ); + m.insert("fileso", fa::fileso ); + m.insert("film", fa::film ); + m.insert("filter", fa::filter ); + m.insert("fire", fa::fire ); + m.insert("fireextinguisher", fa::fireextinguisher ); + m.insert("firefox", fa::firefox ); + m.insert("flag", fa::flag ); + m.insert("flagcheckered", fa::flagcheckered ); + m.insert("flago", fa::flago ); + m.insert("flash", fa::flash ); + m.insert("flask", fa::flask ); + m.insert("flickr", fa::flickr ); + m.insert("floppyo", fa::floppyo ); + m.insert("folder", fa::folder ); + m.insert("foldero", fa::foldero ); + m.insert("folderopen", fa::folderopen ); + m.insert("folderopeno", fa::folderopeno ); + m.insert("font", fa::font ); + m.insert("fonticons", fa::fonticons ); + m.insert("forumbee", fa::forumbee ); + m.insert("forward", fa::forward ); + m.insert("foursquare", fa::foursquare ); + m.insert("frowno", fa::frowno ); + m.insert("futbolo", fa::futbolo ); + m.insert("gamepad", fa::gamepad ); + m.insert("gavel", fa::gavel ); + m.insert("gbp", fa::gbp ); + m.insert("ge", fa::ge ); + m.insert("gear", fa::gear ); + m.insert("gears", fa::gears ); + m.insert("genderless", fa::genderless ); + m.insert("getpocket", fa::getpocket ); + m.insert("gg", fa::gg ); + m.insert("ggcircle", fa::ggcircle ); + m.insert("gift", fa::gift ); + m.insert("git", fa::git ); + m.insert("gitsquare", fa::gitsquare ); + m.insert("github", fa::github ); + m.insert("githubalt", fa::githubalt ); + m.insert("githubsquare", fa::githubsquare ); + m.insert("gittip", fa::gittip ); + m.insert("glass", fa::glass ); + m.insert("globe", fa::globe ); + m.insert("google", fa::google ); + m.insert("googleplus", fa::googleplus ); + m.insert("googleplussquare", fa::googleplussquare ); + m.insert("googlewallet", fa::googlewallet ); + m.insert("graduationcap", fa::graduationcap ); + m.insert("gratipay", fa::gratipay ); + m.insert("group", fa::group ); + m.insert("hsquare", fa::hsquare ); + m.insert("hackernews", fa::hackernews ); + m.insert("handgrabo", fa::handgrabo ); + m.insert("handlizardo", fa::handlizardo ); + m.insert("handodown", fa::handodown ); + m.insert("handoleft", fa::handoleft ); + m.insert("handoright", fa::handoright ); + m.insert("handoup", fa::handoup ); + m.insert("handpapero", fa::handpapero ); + m.insert("handpeaceo", fa::handpeaceo ); + m.insert("handpointero", fa::handpointero ); + m.insert("handrocko", fa::handrocko ); + m.insert("handscissorso", fa::handscissorso ); + m.insert("handspocko", fa::handspocko ); + m.insert("handstopo", fa::handstopo ); + m.insert("hddo", fa::hddo ); + m.insert("header", fa::header ); + m.insert("headphones", fa::headphones ); + m.insert("heart", fa::heart ); + m.insert("hearto", fa::hearto ); + m.insert("heartbeat", fa::heartbeat ); + m.insert("history", fa::history ); + m.insert("home", fa::home ); + m.insert("hospitalo", fa::hospitalo ); + m.insert("hotel", fa::hotel ); + m.insert("hourglass", fa::hourglass ); + m.insert("hourglass1", fa::hourglass1 ); + m.insert("hourglass2", fa::hourglass2 ); + m.insert("hourglass3", fa::hourglass3 ); + m.insert("hourglassend", fa::hourglassend ); + m.insert("hourglasshalf", fa::hourglasshalf ); + m.insert("hourglasso", fa::hourglasso ); + m.insert("hourglassstart", fa::hourglassstart ); + m.insert("houzz", fa::houzz ); + m.insert("html5", fa::html5 ); + m.insert("icursor", fa::icursor ); + m.insert("ils", fa::ils ); + m.insert("image", fa::image ); + m.insert("inbox", fa::inbox ); + m.insert("indent", fa::indent ); + m.insert("industry", fa::industry ); + m.insert("info", fa::info ); + m.insert("infocircle", fa::infocircle ); + m.insert("inr", fa::inr ); + m.insert("instagram", fa::instagram ); + m.insert("institution", fa::institution ); + m.insert("internetexplorer", fa::internetexplorer ); + m.insert("intersex", fa::intersex ); + m.insert("ioxhost", fa::ioxhost ); + m.insert("italic", fa::italic ); + m.insert("joomla", fa::joomla ); + m.insert("jpy", fa::jpy ); + m.insert("jsfiddle", fa::jsfiddle ); + m.insert("key", fa::key ); + m.insert("keyboardo", fa::keyboardo ); + m.insert("krw", fa::krw ); + m.insert("language", fa::language ); + m.insert("laptop", fa::laptop ); + m.insert("lastfm", fa::lastfm ); + m.insert("lastfmsquare", fa::lastfmsquare ); + m.insert("leaf", fa::leaf ); + m.insert("leanpub", fa::leanpub ); + m.insert("legal", fa::legal ); + m.insert("lemono", fa::lemono ); + m.insert("leveldown", fa::leveldown ); + m.insert("levelup", fa::levelup ); + m.insert("lifebouy", fa::lifebouy ); + m.insert("lifebuoy", fa::lifebuoy ); + m.insert("lifering", fa::lifering ); + m.insert("lifesaver", fa::lifesaver ); + m.insert("lightbulbo", fa::lightbulbo ); + m.insert("linechart", fa::linechart ); + m.insert("link", fa::link ); + m.insert("linkedin", fa::linkedin ); + m.insert("linkedinsquare", fa::linkedinsquare ); + m.insert("linux", fa::linux ); + m.insert("list", fa::list ); + m.insert("listalt", fa::listalt ); + m.insert("listol", fa::listol ); + m.insert("listul", fa::listul ); + m.insert("locationarrow", fa::locationarrow ); + m.insert("lock", fa::lock ); + m.insert("longarrowdown", fa::longarrowdown ); + m.insert("longarrowleft", fa::longarrowleft ); + m.insert("longarrowright", fa::longarrowright ); + m.insert("longarrowup", fa::longarrowup ); + m.insert("magic", fa::magic ); + m.insert("magnet", fa::magnet ); + m.insert("mailforward", fa::mailforward ); + m.insert("mailreply", fa::mailreply ); + m.insert("mailreplyall", fa::mailreplyall ); + m.insert("male", fa::male ); + m.insert("map", fa::map ); + m.insert("mapmarker", fa::mapmarker ); + m.insert("mapo", fa::mapo ); + m.insert("mappin", fa::mappin ); + m.insert("mapsigns", fa::mapsigns ); + m.insert("mars", fa::mars ); + m.insert("marsdouble", fa::marsdouble ); + m.insert("marsstroke", fa::marsstroke ); + m.insert("marsstrokeh", fa::marsstrokeh ); + m.insert("marsstrokev", fa::marsstrokev ); + m.insert("maxcdn", fa::maxcdn ); + m.insert("meanpath", fa::meanpath ); + m.insert("medium", fa::medium ); + m.insert("medkit", fa::medkit ); + m.insert("meho", fa::meho ); + m.insert("mercury", fa::mercury ); + m.insert("microphone", fa::microphone ); + m.insert("microphoneslash", fa::microphoneslash ); + m.insert("minus", fa::minus ); + m.insert("minuscircle", fa::minuscircle ); + m.insert("minussquare", fa::minussquare ); + m.insert("minussquareo", fa::minussquareo ); + m.insert("mobile", fa::mobile ); + m.insert("mobilephone", fa::mobilephone ); + m.insert("money", fa::money ); + m.insert("moono", fa::moono ); + m.insert("mortarboard", fa::mortarboard ); + m.insert("motorcycle", fa::motorcycle ); + m.insert("mousepointer", fa::mousepointer ); + m.insert("music", fa::music ); + m.insert("navicon", fa::navicon ); + m.insert("neuter", fa::neuter ); + m.insert("newspapero", fa::newspapero ); + m.insert("objectgroup", fa::objectgroup ); + m.insert("objectungroup", fa::objectungroup ); + m.insert("odnoklassniki", fa::odnoklassniki ); + m.insert("odnoklassnikisquare", fa::odnoklassnikisquare ); + m.insert("opencart", fa::opencart ); + m.insert("openid", fa::openid ); + m.insert("opera", fa::opera ); + m.insert("optinmonster", fa::optinmonster ); + m.insert("outdent", fa::outdent ); + m.insert("pagelines", fa::pagelines ); + m.insert("paintbrush", fa::paintbrush ); + m.insert("paperplane", fa::paperplane ); + m.insert("paperplaneo", fa::paperplaneo ); + m.insert("paperclip", fa::paperclip ); + m.insert("paragraph", fa::paragraph ); + m.insert("paste", fa::paste ); + m.insert("pause", fa::pause ); + m.insert("paw", fa::paw ); + m.insert("paypal", fa::paypal ); + m.insert("pencil", fa::pencil ); + m.insert("pencilsquare", fa::pencilsquare ); + m.insert("pencilsquareo", fa::pencilsquareo ); + m.insert("phone", fa::phone ); + m.insert("phonesquare", fa::phonesquare ); + m.insert("photo", fa::photo ); + m.insert("pictureo", fa::pictureo ); + m.insert("piechart", fa::piechart ); + m.insert("piedpiper", fa::piedpiper ); + m.insert("piedpiperalt", fa::piedpiperalt ); + m.insert("pinterest", fa::pinterest ); + m.insert("pinterestp", fa::pinterestp ); + m.insert("pinterestsquare", fa::pinterestsquare ); + m.insert("plane", fa::plane ); + m.insert("play", fa::play ); + m.insert("playcircle", fa::playcircle ); + m.insert("playcircleo", fa::playcircleo ); + m.insert("plug", fa::plug ); + m.insert("plus", fa::plus ); + m.insert("pluscircle", fa::pluscircle ); + m.insert("plussquare", fa::plussquare ); + m.insert("plussquareo", fa::plussquareo ); + m.insert("poweroff", fa::poweroff ); + m.insert("print", fa::print ); + m.insert("puzzlepiece", fa::puzzlepiece ); + m.insert("qq", fa::qq ); + m.insert("qrcode", fa::qrcode ); + m.insert("question", fa::question ); + m.insert("questioncircle", fa::questioncircle ); + m.insert("quoteleft", fa::quoteleft ); + m.insert("quoteright", fa::quoteright ); + m.insert("ra", fa::ra ); + m.insert("random", fa::random ); + m.insert("rebel", fa::rebel ); + m.insert("recycle", fa::recycle ); + m.insert("reddit", fa::reddit ); + m.insert("redditsquare", fa::redditsquare ); + m.insert("refresh", fa::refresh ); + m.insert("registered", fa::registered ); + m.insert("remove", fa::remove ); + m.insert("renren", fa::renren ); + m.insert("reorder", fa::reorder ); + m.insert("repeat", fa::repeat ); + m.insert("reply", fa::reply ); + m.insert("replyall", fa::replyall ); + m.insert("retweet", fa::retweet ); + m.insert("rmb", fa::rmb ); + m.insert("road", fa::road ); + m.insert("rocket", fa::rocket ); + m.insert("rotateleft", fa::rotateleft ); + m.insert("rotateright", fa::rotateright ); + m.insert("rouble", fa::rouble ); + m.insert("rss", fa::rss ); + m.insert("rsssquare", fa::rsssquare ); + m.insert("rub", fa::rub ); + m.insert("ruble", fa::ruble ); + m.insert("rupee", fa::rupee ); + m.insert("safari", fa::safari ); + m.insert("save", fa::save ); + m.insert("scissors", fa::scissors ); + m.insert("search", fa::search ); + m.insert("searchminus", fa::searchminus ); + m.insert("searchplus", fa::searchplus ); + m.insert("sellsy", fa::sellsy ); + m.insert("send", fa::send ); + m.insert("sendo", fa::sendo ); + m.insert("server", fa::server ); + m.insert("share", fa::share ); + m.insert("sharealt", fa::sharealt ); + m.insert("sharealtsquare", fa::sharealtsquare ); + m.insert("sharesquare", fa::sharesquare ); + m.insert("sharesquareo", fa::sharesquareo ); + m.insert("shekel", fa::shekel ); + m.insert("sheqel", fa::sheqel ); + m.insert("shield", fa::shield ); + m.insert("ship", fa::ship ); + m.insert("shirtsinbulk", fa::shirtsinbulk ); + m.insert("shoppingcart", fa::shoppingcart ); + m.insert("signin", fa::signin ); + m.insert("signout", fa::signout ); + m.insert("signal", fa::signal ); + m.insert("simplybuilt", fa::simplybuilt ); + m.insert("sitemap", fa::sitemap ); + m.insert("skyatlas", fa::skyatlas ); + m.insert("skype", fa::skype ); + m.insert("slack", fa::slack ); + m.insert("sliders", fa::sliders ); + m.insert("slideshare", fa::slideshare ); + m.insert("smileo", fa::smileo ); + m.insert("soccerballo", fa::soccerballo ); + m.insert("sort", fa::sort ); + m.insert("sortalphaasc", fa::sortalphaasc ); + m.insert("sortalphadesc", fa::sortalphadesc ); + m.insert("sortamountasc", fa::sortamountasc ); + m.insert("sortamountdesc", fa::sortamountdesc ); + m.insert("sortasc", fa::sortasc ); + m.insert("sortdesc", fa::sortdesc ); + m.insert("sortdown", fa::sortdown ); + m.insert("sortnumericasc", fa::sortnumericasc ); + m.insert("sortnumericdesc", fa::sortnumericdesc ); + m.insert("sortup", fa::sortup ); + m.insert("soundcloud", fa::soundcloud ); + m.insert("spaceshuttle", fa::spaceshuttle ); + m.insert("spinner", fa::spinner ); + m.insert("spoon", fa::spoon ); + m.insert("spotify", fa::spotify ); + m.insert("square", fa::square ); + m.insert("squareo", fa::squareo ); + m.insert("stackexchange", fa::stackexchange ); + m.insert("stackoverflow", fa::stackoverflow ); + m.insert("star", fa::star ); + m.insert("starhalf", fa::starhalf ); + m.insert("starhalfempty", fa::starhalfempty ); + m.insert("starhalffull", fa::starhalffull ); + m.insert("starhalfo", fa::starhalfo ); + m.insert("staro", fa::staro ); + m.insert("steam", fa::steam ); + m.insert("steamsquare", fa::steamsquare ); + m.insert("stepbackward", fa::stepbackward ); + m.insert("stepforward", fa::stepforward ); + m.insert("stethoscope", fa::stethoscope ); + m.insert("stickynote", fa::stickynote ); + m.insert("stickynoteo", fa::stickynoteo ); + m.insert("stop", fa::stop ); + m.insert("streetview", fa::streetview ); + m.insert("strikethrough", fa::strikethrough ); + m.insert("stumbleupon", fa::stumbleupon ); + m.insert("stumbleuponcircle", fa::stumbleuponcircle ); + m.insert("subscript", fa::subscript ); + m.insert("subway", fa::subway ); + m.insert("suitcase", fa::suitcase ); + m.insert("suno", fa::suno ); + m.insert("superscript", fa::superscript ); + m.insert("support", fa::support ); + m.insert("table", fa::table ); + m.insert("tablet", fa::tablet ); + m.insert("tachometer", fa::tachometer ); + m.insert("tag", fa::tag ); + m.insert("tags", fa::tags ); + m.insert("tasks", fa::tasks ); + m.insert("taxi", fa::taxi ); + m.insert("television", fa::television ); + m.insert("tencentweibo", fa::tencentweibo ); + m.insert("terminal", fa::terminal ); + m.insert("textheight", fa::textheight ); + m.insert("textwidth", fa::textwidth ); + m.insert("th", fa::th ); + m.insert("thlarge", fa::thlarge ); + m.insert("thlist", fa::thlist ); + m.insert("thumbtack", fa::thumbtack ); + m.insert("thumbsdown", fa::thumbsdown ); + m.insert("thumbsodown", fa::thumbsodown ); + m.insert("thumbsoup", fa::thumbsoup ); + m.insert("thumbsup", fa::thumbsup ); + m.insert("ticket", fa::ticket ); + m.insert("times", fa::times ); + m.insert("timescircle", fa::timescircle ); + m.insert("timescircleo", fa::timescircleo ); + m.insert("tint", fa::tint ); + m.insert("toggledown", fa::toggledown ); + m.insert("toggleleft", fa::toggleleft ); + m.insert("toggleoff", fa::toggleoff ); + m.insert("toggleon", fa::toggleon ); + m.insert("toggleright", fa::toggleright ); + m.insert("toggleup", fa::toggleup ); + m.insert("trademark", fa::trademark ); + m.insert("train", fa::train ); + m.insert("transgender", fa::transgender ); + m.insert("transgenderalt", fa::transgenderalt ); + m.insert("trash", fa::trash ); + m.insert("trasho", fa::trasho ); + m.insert("tree", fa::tree ); + m.insert("trello", fa::trello ); + m.insert("tripadvisor", fa::tripadvisor ); + m.insert("trophy", fa::trophy ); + m.insert("truck", fa::truck ); + m.insert("fa_try", fa::fa_try ); + m.insert("tty", fa::tty ); + m.insert("tumblr", fa::tumblr ); + m.insert("tumblrsquare", fa::tumblrsquare ); + m.insert("turkishlira", fa::turkishlira ); + m.insert("tv", fa::tv ); + m.insert("twitch", fa::twitch ); + m.insert("twitter", fa::twitter ); + m.insert("twittersquare", fa::twittersquare ); + m.insert("umbrella", fa::umbrella ); + m.insert("underline", fa::underline ); + m.insert("undo", fa::undo ); + m.insert("university", fa::university ); + m.insert("unlink", fa::unlink ); + m.insert("unlock", fa::unlock ); + m.insert("unlockalt", fa::unlockalt ); + m.insert("unsorted", fa::unsorted ); + m.insert("upload", fa::upload ); + m.insert("usd", fa::usd ); + m.insert("user", fa::user ); + m.insert("usermd", fa::usermd ); + m.insert("userplus", fa::userplus ); + m.insert("usersecret", fa::usersecret ); + m.insert("usertimes", fa::usertimes ); + m.insert("users", fa::users ); + m.insert("venus", fa::venus ); + m.insert("venusdouble", fa::venusdouble ); + m.insert("venusmars", fa::venusmars ); + m.insert("viacoin", fa::viacoin ); + m.insert("videocamera", fa::videocamera ); + m.insert("vimeo", fa::vimeo ); + m.insert("vimeosquare", fa::vimeosquare ); + m.insert("vine", fa::vine ); + m.insert("vk", fa::vk ); + m.insert("volumedown", fa::volumedown ); + m.insert("volumeoff", fa::volumeoff ); + m.insert("volumeup", fa::volumeup ); + m.insert("warning", fa::warning ); + m.insert("wechat", fa::wechat ); + m.insert("weibo", fa::weibo ); + m.insert("weixin", fa::weixin ); + m.insert("whatsapp", fa::whatsapp ); + m.insert("wheelchair", fa::wheelchair ); + m.insert("wifi", fa::wifi ); + m.insert("wikipediaw", fa::wikipediaw ); + m.insert("windows", fa::windows ); + m.insert("won", fa::won ); + m.insert("wordpress", fa::wordpress ); + m.insert("wrench", fa::wrench ); + m.insert("xing", fa::xing ); + m.insert("xingsquare", fa::xingsquare ); + m.insert("ycombinator", fa::ycombinator ); + m.insert("ycombinatorsquare", fa::ycombinatorsquare ); + m.insert("yahoo", fa::yahoo ); + m.insert("yc", fa::yc ); + m.insert("ycsquare", fa::ycsquare ); + m.insert("yelp", fa::yelp ); + m.insert("yen", fa::yen ); + m.insert("youtube", fa::youtube ); + m.insert("youtubeplay", fa::youtubeplay ); + m.insert("youtubesquare", fa::youtubesquare ); + + return true; +} + +void QtAwesome::addNamedCodepoint( const QString& name, int codePoint) +{ + namedCodepoints_.insert( name, codePoint); +} + + +/// Sets a default option. These options are passed on to the icon painters +void QtAwesome::setDefaultOption(const QString& name, const QVariant& value) +{ + defaultOptions_.insert( name, value ); +} + + +/// Returns the default option for the given name +QVariant QtAwesome::defaultOption(const QString& name) +{ + return defaultOptions_.value( name ); +} + + +// internal helper method to merge to option amps +static QVariantMap mergeOptions( const QVariantMap& defaults, const QVariantMap& override ) +{ + QVariantMap result= defaults; + if( !override.isEmpty() ) { + QMapIterator itr(override); + while( itr.hasNext() ) { + itr.next(); + result.insert( itr.key(), itr.value() ); + } + } + return result; +} + + +/// Creates an icon with the given code-point +/// +/// awesome->icon( icon_group ) +/// +QIcon QtAwesome::icon(int character, const QVariantMap &options) +{ + // create a merged QVariantMap to have default options and icon-specific options + QVariantMap optionMap = mergeOptions( defaultOptions_, options ); + optionMap.insert("text", QString( QChar(static_cast(character)) ) ); + + return icon( fontIconPainter_, optionMap ); +} + + + +/// Creates an icon with the given name +/// +/// You can use the icon names as defined on http://fortawesome.github.io/Font-Awesome/design.html withour the 'icon-' prefix +/// @param name the name of the icon +/// @param options extra option to pass to the icon renderer +QIcon QtAwesome::icon(const QString& name, const QVariantMap& options) +{ + // when it's a named codepoint + if( namedCodepoints_.count(name) ) { + return icon( namedCodepoints_.value(name), options ); + } + + + // create a merged QVariantMap to have default options and icon-specific options + QVariantMap optionMap = mergeOptions( defaultOptions_, options ); + + // this method first tries to retrieve the icon + QtAwesomeIconPainter* painter = painterMap_.value(name); + if( !painter ) { + return QIcon(); + } + + return icon( painter, optionMap ); +} + +/// Create a dynamic icon by simlpy supplying a painter object +/// The ownership of the painter is NOT transfered. +/// @param painter a dynamic painter that is going to paint the icon +/// @param optionmap the options to pass to the painter +QIcon QtAwesome::icon(QtAwesomeIconPainter* painter, const QVariantMap& optionMap ) +{ + // Warning, when you use memoryleak detection. You should turn it of for the next call + // QIcon's placed in gui items are often cached and not deleted when my memory-leak detection checks for leaks. + // I'm not sure if it's a Qt bug or something I do wrong + QtAwesomeIconPainterIconEngine* engine = new QtAwesomeIconPainterIconEngine( this, painter, optionMap ); + return QIcon( engine ); +} + +/// Adds a named icon-painter to the QtAwesome icon map +/// As the name applies the ownership is passed over to QtAwesome +/// +/// @param name the name of the icon +/// @param painter the icon painter to add for this name +void QtAwesome::give(const QString& name, QtAwesomeIconPainter* painter) +{ + delete painterMap_.value( name ); // delete the old one + painterMap_.insert( name, painter ); +} + +/// Creates/Gets the icon font with a given size in pixels. This can be usefull to use a label for displaying icons +/// Example: +/// +/// QLabel* label = new QLabel( QChar( icon_group ) ); +/// label->setFont( awesome->font(16) ) +QFont QtAwesome::font( int size ) +{ + QFont font( fontName_); + font.setPixelSize(size); + return font; +} diff --git a/src/QtAwesome/QtAwesome.h b/src/QtAwesome/QtAwesome.h new file mode 100644 index 00000000..0aea5749 --- /dev/null +++ b/src/QtAwesome/QtAwesome.h @@ -0,0 +1,762 @@ +/** + * QtAwesome - use font-awesome (or other font icons) in your c++ / Qt Application + * + * MIT Licensed + * + * Copyright 2013-2015 - Reliable Bits Software by Blommers IT. All Rights Reserved. + * Author Rick Blommers + */ + +#ifndef QTAWESOME_H +#define QTAWESOME_H + +#include +#include +#include +#include +#include + + +/// A list of all icon-names with the codepoint (unicode-value) on the right +/// You can use the names on the page http://fortawesome.github.io/Font-Awesome/design.html +namespace fa { + enum icon { + fa_500px = 0xf26e, + adjust = 0xf042, + adn = 0xf170, + aligncenter = 0xf037, + alignjustify = 0xf039, + alignleft = 0xf036, + alignright = 0xf038, + amazon = 0xf270, + ambulance = 0xf0f9, + anchor = 0xf13d, + android = 0xf17b, + angellist = 0xf209, + angledoubledown = 0xf103, + angledoubleleft = 0xf100, + angledoubleright = 0xf101, + angledoubleup = 0xf102, + angledown = 0xf107, + angleleft = 0xf104, + angleright = 0xf105, + angleup = 0xf106, + apple = 0xf179, + archive = 0xf187, + areachart = 0xf1fe, + arrowcircledown = 0xf0ab, + arrowcircleleft = 0xf0a8, + arrowcircleodown = 0xf01a, + arrowcircleoleft = 0xf190, + arrowcircleoright = 0xf18e, + arrowcircleoup = 0xf01b, + arrowcircleright = 0xf0a9, + arrowcircleup = 0xf0aa, + arrowdown = 0xf063, + arrowleft = 0xf060, + arrowright = 0xf061, + arrowup = 0xf062, + arrows = 0xf047, + arrowsalt = 0xf0b2, + arrowsh = 0xf07e, + arrowsv = 0xf07d, + asterisk = 0xf069, + at = 0xf1fa, + automobile = 0xf1b9, + backward = 0xf04a, + balancescale = 0xf24e, + ban = 0xf05e, + bank = 0xf19c, + barchart = 0xf080, + barcharto = 0xf080, + barcode = 0xf02a, + bars = 0xf0c9, + battery0 = 0xf244, + battery1 = 0xf243, + battery2 = 0xf242, + battery3 = 0xf241, + battery4 = 0xf240, + batteryempty = 0xf244, + batteryfull = 0xf240, + batteryhalf = 0xf242, + batteryquarter = 0xf243, + batterythreequarters = 0xf241, + bed = 0xf236, + beer = 0xf0fc, + behance = 0xf1b4, + behancesquare = 0xf1b5, + bell = 0xf0f3, + bello = 0xf0a2, + bellslash = 0xf1f6, + bellslasho = 0xf1f7, + bicycle = 0xf206, + binoculars = 0xf1e5, + birthdaycake = 0xf1fd, + bitbucket = 0xf171, + bitbucketsquare = 0xf172, + bitcoin = 0xf15a, + blacktie = 0xf27e, + bold = 0xf032, + bolt = 0xf0e7, + bomb = 0xf1e2, + book = 0xf02d, + bookmark = 0xf02e, + bookmarko = 0xf097, + briefcase = 0xf0b1, + btc = 0xf15a, + bug = 0xf188, + building = 0xf1ad, + buildingo = 0xf0f7, + bullhorn = 0xf0a1, + bullseye = 0xf140, + bus = 0xf207, + buysellads = 0xf20d, + cab = 0xf1ba, + calculator = 0xf1ec, + calendar = 0xf073, + calendarchecko = 0xf274, + calendarminuso = 0xf272, + calendaro = 0xf133, + calendarpluso = 0xf271, + calendartimeso = 0xf273, + camera = 0xf030, + cameraretro = 0xf083, + car = 0xf1b9, + caretdown = 0xf0d7, + caretleft = 0xf0d9, + caretright = 0xf0da, + caretsquareodown = 0xf150, + caretsquareoleft = 0xf191, + caretsquareoright = 0xf152, + caretsquareoup = 0xf151, + caretup = 0xf0d8, + cartarrowdown = 0xf218, + cartplus = 0xf217, + cc = 0xf20a, + ccamex = 0xf1f3, + ccdinersclub = 0xf24c, + ccdiscover = 0xf1f2, + ccjcb = 0xf24b, + ccmastercard = 0xf1f1, + ccpaypal = 0xf1f4, + ccstripe = 0xf1f5, + ccvisa = 0xf1f0, + certificate = 0xf0a3, + chain = 0xf0c1, + chainbroken = 0xf127, + check = 0xf00c, + checkcircle = 0xf058, + checkcircleo = 0xf05d, + checksquare = 0xf14a, + checksquareo = 0xf046, + chevroncircledown = 0xf13a, + chevroncircleleft = 0xf137, + chevroncircleright = 0xf138, + chevroncircleup = 0xf139, + chevrondown = 0xf078, + chevronleft = 0xf053, + chevronright = 0xf054, + chevronup = 0xf077, + child = 0xf1ae, + chrome = 0xf268, + circle = 0xf111, + circleo = 0xf10c, + circleonotch = 0xf1ce, + circlethin = 0xf1db, + clipboard = 0xf0ea, + clocko = 0xf017, + clone = 0xf24d, + close = 0xf00d, + cloud = 0xf0c2, + clouddownload = 0xf0ed, + cloudupload = 0xf0ee, + cny = 0xf157, + code = 0xf121, + codefork = 0xf126, + codepen = 0xf1cb, + coffee = 0xf0f4, + cog = 0xf013, + cogs = 0xf085, + columns = 0xf0db, + comment = 0xf075, + commento = 0xf0e5, + commenting = 0xf27a, + commentingo = 0xf27b, + comments = 0xf086, + commentso = 0xf0e6, + compass = 0xf14e, + compress = 0xf066, + connectdevelop = 0xf20e, + contao = 0xf26d, + copy = 0xf0c5, + copyright = 0xf1f9, + creativecommons = 0xf25e, + creditcard = 0xf09d, + crop = 0xf125, + crosshairs = 0xf05b, + css3 = 0xf13c, + cube = 0xf1b2, + cubes = 0xf1b3, + cut = 0xf0c4, + cutlery = 0xf0f5, + dashboard = 0xf0e4, + dashcube = 0xf210, + database = 0xf1c0, + dedent = 0xf03b, + delicious = 0xf1a5, + desktop = 0xf108, + deviantart = 0xf1bd, + diamond = 0xf219, + digg = 0xf1a6, + dollar = 0xf155, + dotcircleo = 0xf192, + download = 0xf019, + dribbble = 0xf17d, + dropbox = 0xf16b, + drupal = 0xf1a9, + edit = 0xf044, + eject = 0xf052, + ellipsish = 0xf141, + ellipsisv = 0xf142, + empire = 0xf1d1, + envelope = 0xf0e0, + envelopeo = 0xf003, + envelopesquare = 0xf199, + eraser = 0xf12d, + eur = 0xf153, + euro = 0xf153, + exchange = 0xf0ec, + exclamation = 0xf12a, + exclamationcircle = 0xf06a, + exclamationtriangle = 0xf071, + expand = 0xf065, + expeditedssl = 0xf23e, + externallink = 0xf08e, + externallinksquare = 0xf14c, + eye = 0xf06e, + eyeslash = 0xf070, + eyedropper = 0xf1fb, + facebook = 0xf09a, + facebookf = 0xf09a, + facebookofficial = 0xf230, + facebooksquare = 0xf082, + fastbackward = 0xf049, + fastforward = 0xf050, + fax = 0xf1ac, + feed = 0xf09e, + female = 0xf182, + fighterjet = 0xf0fb, + file = 0xf15b, + filearchiveo = 0xf1c6, + fileaudioo = 0xf1c7, + filecodeo = 0xf1c9, + fileexcelo = 0xf1c3, + fileimageo = 0xf1c5, + filemovieo = 0xf1c8, + fileo = 0xf016, + filepdfo = 0xf1c1, + filephotoo = 0xf1c5, + filepictureo = 0xf1c5, + filepowerpointo = 0xf1c4, + filesoundo = 0xf1c7, + filetext = 0xf15c, + filetexto = 0xf0f6, + filevideoo = 0xf1c8, + filewordo = 0xf1c2, + filezipo = 0xf1c6, + fileso = 0xf0c5, + film = 0xf008, + filter = 0xf0b0, + fire = 0xf06d, + fireextinguisher = 0xf134, + firefox = 0xf269, + flag = 0xf024, + flagcheckered = 0xf11e, + flago = 0xf11d, + flash = 0xf0e7, + flask = 0xf0c3, + flickr = 0xf16e, + floppyo = 0xf0c7, + folder = 0xf07b, + foldero = 0xf114, + folderopen = 0xf07c, + folderopeno = 0xf115, + font = 0xf031, + fonticons = 0xf280, + forumbee = 0xf211, + forward = 0xf04e, + foursquare = 0xf180, + frowno = 0xf119, + futbolo = 0xf1e3, + gamepad = 0xf11b, + gavel = 0xf0e3, + gbp = 0xf154, + ge = 0xf1d1, + gear = 0xf013, + gears = 0xf085, + genderless = 0xf22d, + getpocket = 0xf265, + gg = 0xf260, + ggcircle = 0xf261, + gift = 0xf06b, + git = 0xf1d3, + gitsquare = 0xf1d2, + github = 0xf09b, + githubalt = 0xf113, + githubsquare = 0xf092, + gittip = 0xf184, + glass = 0xf000, + globe = 0xf0ac, + google = 0xf1a0, + googleplus = 0xf0d5, + googleplussquare = 0xf0d4, + googlewallet = 0xf1ee, + graduationcap = 0xf19d, + gratipay = 0xf184, + group = 0xf0c0, + hsquare = 0xf0fd, + hackernews = 0xf1d4, + handgrabo = 0xf255, + handlizardo = 0xf258, + handodown = 0xf0a7, + handoleft = 0xf0a5, + handoright = 0xf0a4, + handoup = 0xf0a6, + handpapero = 0xf256, + handpeaceo = 0xf25b, + handpointero = 0xf25a, + handrocko = 0xf255, + handscissorso = 0xf257, + handspocko = 0xf259, + handstopo = 0xf256, + hddo = 0xf0a0, + header = 0xf1dc, + headphones = 0xf025, + heart = 0xf004, + hearto = 0xf08a, + heartbeat = 0xf21e, + history = 0xf1da, + home = 0xf015, + hospitalo = 0xf0f8, + hotel = 0xf236, + hourglass = 0xf254, + hourglass1 = 0xf251, + hourglass2 = 0xf252, + hourglass3 = 0xf253, + hourglassend = 0xf253, + hourglasshalf = 0xf252, + hourglasso = 0xf250, + hourglassstart = 0xf251, + houzz = 0xf27c, + html5 = 0xf13b, + icursor = 0xf246, + ils = 0xf20b, + image = 0xf03e, + inbox = 0xf01c, + indent = 0xf03c, + industry = 0xf275, + info = 0xf129, + infocircle = 0xf05a, + inr = 0xf156, + instagram = 0xf16d, + institution = 0xf19c, + internetexplorer = 0xf26b, + intersex = 0xf224, + ioxhost = 0xf208, + italic = 0xf033, + joomla = 0xf1aa, + jpy = 0xf157, + jsfiddle = 0xf1cc, + key = 0xf084, + keyboardo = 0xf11c, + krw = 0xf159, + language = 0xf1ab, + laptop = 0xf109, + lastfm = 0xf202, + lastfmsquare = 0xf203, + leaf = 0xf06c, + leanpub = 0xf212, + legal = 0xf0e3, + lemono = 0xf094, + leveldown = 0xf149, + levelup = 0xf148, + lifebouy = 0xf1cd, + lifebuoy = 0xf1cd, + lifering = 0xf1cd, + lifesaver = 0xf1cd, + lightbulbo = 0xf0eb, + linechart = 0xf201, + link = 0xf0c1, + linkedin = 0xf0e1, + linkedinsquare = 0xf08c, + linux = 0xf17c, + list = 0xf03a, + listalt = 0xf022, + listol = 0xf0cb, + listul = 0xf0ca, + locationarrow = 0xf124, + lock = 0xf023, + longarrowdown = 0xf175, + longarrowleft = 0xf177, + longarrowright = 0xf178, + longarrowup = 0xf176, + magic = 0xf0d0, + magnet = 0xf076, + mailforward = 0xf064, + mailreply = 0xf112, + mailreplyall = 0xf122, + male = 0xf183, + map = 0xf279, + mapmarker = 0xf041, + mapo = 0xf278, + mappin = 0xf276, + mapsigns = 0xf277, + mars = 0xf222, + marsdouble = 0xf227, + marsstroke = 0xf229, + marsstrokeh = 0xf22b, + marsstrokev = 0xf22a, + maxcdn = 0xf136, + meanpath = 0xf20c, + medium = 0xf23a, + medkit = 0xf0fa, + meho = 0xf11a, + mercury = 0xf223, + microphone = 0xf130, + microphoneslash = 0xf131, + minus = 0xf068, + minuscircle = 0xf056, + minussquare = 0xf146, + minussquareo = 0xf147, + mobile = 0xf10b, + mobilephone = 0xf10b, + money = 0xf0d6, + moono = 0xf186, + mortarboard = 0xf19d, + motorcycle = 0xf21c, + mousepointer = 0xf245, + music = 0xf001, + navicon = 0xf0c9, + neuter = 0xf22c, + newspapero = 0xf1ea, + objectgroup = 0xf247, + objectungroup = 0xf248, + odnoklassniki = 0xf263, + odnoklassnikisquare = 0xf264, + opencart = 0xf23d, + openid = 0xf19b, + opera = 0xf26a, + optinmonster = 0xf23c, + outdent = 0xf03b, + pagelines = 0xf18c, + paintbrush = 0xf1fc, + paperplane = 0xf1d8, + paperplaneo = 0xf1d9, + paperclip = 0xf0c6, + paragraph = 0xf1dd, + paste = 0xf0ea, + pause = 0xf04c, + paw = 0xf1b0, + paypal = 0xf1ed, + pencil = 0xf040, + pencilsquare = 0xf14b, + pencilsquareo = 0xf044, + phone = 0xf095, + phonesquare = 0xf098, + photo = 0xf03e, + pictureo = 0xf03e, + piechart = 0xf200, + piedpiper = 0xf1a7, + piedpiperalt = 0xf1a8, + pinterest = 0xf0d2, + pinterestp = 0xf231, + pinterestsquare = 0xf0d3, + plane = 0xf072, + play = 0xf04b, + playcircle = 0xf144, + playcircleo = 0xf01d, + plug = 0xf1e6, + plus = 0xf067, + pluscircle = 0xf055, + plussquare = 0xf0fe, + plussquareo = 0xf196, + poweroff = 0xf011, + print = 0xf02f, + puzzlepiece = 0xf12e, + qq = 0xf1d6, + qrcode = 0xf029, + question = 0xf128, + questioncircle = 0xf059, + quoteleft = 0xf10d, + quoteright = 0xf10e, + ra = 0xf1d0, + random = 0xf074, + rebel = 0xf1d0, + recycle = 0xf1b8, + reddit = 0xf1a1, + redditsquare = 0xf1a2, + refresh = 0xf021, + registered = 0xf25d, + remove = 0xf00d, + renren = 0xf18b, + reorder = 0xf0c9, + repeat = 0xf01e, + reply = 0xf112, + replyall = 0xf122, + retweet = 0xf079, + rmb = 0xf157, + road = 0xf018, + rocket = 0xf135, + rotateleft = 0xf0e2, + rotateright = 0xf01e, + rouble = 0xf158, + rss = 0xf09e, + rsssquare = 0xf143, + rub = 0xf158, + ruble = 0xf158, + rupee = 0xf156, + safari = 0xf267, + save = 0xf0c7, + scissors = 0xf0c4, + search = 0xf002, + searchminus = 0xf010, + searchplus = 0xf00e, + sellsy = 0xf213, + send = 0xf1d8, + sendo = 0xf1d9, + server = 0xf233, + share = 0xf064, + sharealt = 0xf1e0, + sharealtsquare = 0xf1e1, + sharesquare = 0xf14d, + sharesquareo = 0xf045, + shekel = 0xf20b, + sheqel = 0xf20b, + shield = 0xf132, + ship = 0xf21a, + shirtsinbulk = 0xf214, + shoppingcart = 0xf07a, + signin = 0xf090, + signout = 0xf08b, + signal = 0xf012, + simplybuilt = 0xf215, + sitemap = 0xf0e8, + skyatlas = 0xf216, + skype = 0xf17e, + slack = 0xf198, + sliders = 0xf1de, + slideshare = 0xf1e7, + smileo = 0xf118, + soccerballo = 0xf1e3, + sort = 0xf0dc, + sortalphaasc = 0xf15d, + sortalphadesc = 0xf15e, + sortamountasc = 0xf160, + sortamountdesc = 0xf161, + sortasc = 0xf0de, + sortdesc = 0xf0dd, + sortdown = 0xf0dd, + sortnumericasc = 0xf162, + sortnumericdesc = 0xf163, + sortup = 0xf0de, + soundcloud = 0xf1be, + spaceshuttle = 0xf197, + spinner = 0xf110, + spoon = 0xf1b1, + spotify = 0xf1bc, + square = 0xf0c8, + squareo = 0xf096, + stackexchange = 0xf18d, + stackoverflow = 0xf16c, + star = 0xf005, + starhalf = 0xf089, + starhalfempty = 0xf123, + starhalffull = 0xf123, + starhalfo = 0xf123, + staro = 0xf006, + steam = 0xf1b6, + steamsquare = 0xf1b7, + stepbackward = 0xf048, + stepforward = 0xf051, + stethoscope = 0xf0f1, + stickynote = 0xf249, + stickynoteo = 0xf24a, + stop = 0xf04d, + streetview = 0xf21d, + strikethrough = 0xf0cc, + stumbleupon = 0xf1a4, + stumbleuponcircle = 0xf1a3, + subscript = 0xf12c, + subway = 0xf239, + suitcase = 0xf0f2, + suno = 0xf185, + superscript = 0xf12b, + support = 0xf1cd, + table = 0xf0ce, + tablet = 0xf10a, + tachometer = 0xf0e4, + tag = 0xf02b, + tags = 0xf02c, + tasks = 0xf0ae, + taxi = 0xf1ba, + television = 0xf26c, + tencentweibo = 0xf1d5, + terminal = 0xf120, + textheight = 0xf034, + textwidth = 0xf035, + th = 0xf00a, + thlarge = 0xf009, + thlist = 0xf00b, + thumbtack = 0xf08d, + thumbsdown = 0xf165, + thumbsodown = 0xf088, + thumbsoup = 0xf087, + thumbsup = 0xf164, + ticket = 0xf145, + times = 0xf00d, + timescircle = 0xf057, + timescircleo = 0xf05c, + tint = 0xf043, + toggledown = 0xf150, + toggleleft = 0xf191, + toggleoff = 0xf204, + toggleon = 0xf205, + toggleright = 0xf152, + toggleup = 0xf151, + trademark = 0xf25c, + train = 0xf238, + transgender = 0xf224, + transgenderalt = 0xf225, + trash = 0xf1f8, + trasho = 0xf014, + tree = 0xf1bb, + trello = 0xf181, + tripadvisor = 0xf262, + trophy = 0xf091, + truck = 0xf0d1, + fa_try = 0xf195, + tty = 0xf1e4, + tumblr = 0xf173, + tumblrsquare = 0xf174, + turkishlira = 0xf195, + tv = 0xf26c, + twitch = 0xf1e8, + twitter = 0xf099, + twittersquare = 0xf081, + umbrella = 0xf0e9, + underline = 0xf0cd, + undo = 0xf0e2, + university = 0xf19c, + unlink = 0xf127, + unlock = 0xf09c, + unlockalt = 0xf13e, + unsorted = 0xf0dc, + upload = 0xf093, + usd = 0xf155, + user = 0xf007, + usermd = 0xf0f0, + userplus = 0xf234, + usersecret = 0xf21b, + usertimes = 0xf235, + users = 0xf0c0, + venus = 0xf221, + venusdouble = 0xf226, + venusmars = 0xf228, + viacoin = 0xf237, + videocamera = 0xf03d, + vimeo = 0xf27d, + vimeosquare = 0xf194, + vine = 0xf1ca, + vk = 0xf189, + volumedown = 0xf027, + volumeoff = 0xf026, + volumeup = 0xf028, + warning = 0xf071, + wechat = 0xf1d7, + weibo = 0xf18a, + weixin = 0xf1d7, + whatsapp = 0xf232, + wheelchair = 0xf193, + wifi = 0xf1eb, + wikipediaw = 0xf266, + windows = 0xf17a, + won = 0xf159, + wordpress = 0xf19a, + wrench = 0xf0ad, + xing = 0xf168, + xingsquare = 0xf169, + ycombinator = 0xf23b, + ycombinatorsquare = 0xf1d4, + yahoo = 0xf19e, + yc = 0xf23b, + ycsquare = 0xf1d4, + yelp = 0xf1e9, + yen = 0xf157, + youtube = 0xf167, + youtubeplay = 0xf16a, + youtubesquare = 0xf166 + }; +} + + + +//--------------------------------------------------------------------------------------- + +class QtAwesomeIconPainter; + +/// The main class for managing icons +/// This class requires a 2-phase construction. You must first create the class and then initialize it via an init* method +class QtAwesome : public QObject +{ +Q_OBJECT + +public: + + QtAwesome(QObject *parent = 0); + virtual ~QtAwesome(); + + void init( const QString& fontname ); + bool initFontAwesome(); + + void addNamedCodepoint( const QString& name, int codePoint ); + QHash namedCodePoints() { return namedCodepoints_; } + + void setDefaultOption( const QString& name, const QVariant& value ); + QVariant defaultOption( const QString& name ); + + QIcon icon( int character, const QVariantMap& options = QVariantMap() ); + QIcon icon( const QString& name, const QVariantMap& options = QVariantMap() ); + QIcon icon(QtAwesomeIconPainter* painter, const QVariantMap& optionMap = QVariantMap() ); + + void give( const QString& name, QtAwesomeIconPainter* painter ); + + QFont font( int size ); + + /// Returns the font-name that is used as icon-map + QString fontName() { return fontName_ ; } + +private: + QString fontName_; ///< The font name used for this map + QHash namedCodepoints_; ///< A map with names mapped to code-points + + QHash painterMap_; ///< A map of custom painters + QVariantMap defaultOptions_; ///< The default icon options + QtAwesomeIconPainter* fontIconPainter_; ///< A special painter fo painting codepoints +}; + + +//--------------------------------------------------------------------------------------- + + +/// The QtAwesomeIconPainter is a specialized painter for painting icons +/// your can implement an iconpainter to create custom font-icon code +class QtAwesomeIconPainter +{ +public: + virtual ~QtAwesomeIconPainter() {} + virtual void paint( QtAwesome* awesome, QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state, const QVariantMap& options ) = 0; +}; + + + +#endif // QTAWESOME_H diff --git a/src/QtAwesome/QtAwesome.pri b/src/QtAwesome/QtAwesome.pri new file mode 100644 index 00000000..5e4002df --- /dev/null +++ b/src/QtAwesome/QtAwesome.pri @@ -0,0 +1,10 @@ + +INCLUDEPATH += $$PWD + +SOURCES += $$PWD/QtAwesome.cpp + +HEADERS += $$PWD/QtAwesome.h + +RESOURCES += $$PWD/QtAwesome.qrc + + diff --git a/src/QtAwesome/QtAwesome.pro b/src/QtAwesome/QtAwesome.pro new file mode 100644 index 00000000..173ebc08 --- /dev/null +++ b/src/QtAwesome/QtAwesome.pro @@ -0,0 +1,28 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2013-04-18T13:28:42 +# +#------------------------------------------------- + +TARGET = QtAwesome +TEMPLATE = lib +CONFIG += staticlib c++11 + +SOURCES += QtAwesome.cpp +HEADERS += QtAwesome.h + +isEmpty(PREFIX) { + unix { + PREFIX = /usr + } else { + PREFIX = $$[QT_INSTALL_PREFIX] + } +} + +install_headers.files = QtAwesome.h +install_headers.path = $$PREFIX/include +target.path = $$PREFIX/lib +INSTALLS += install_headers target + +RESOURCES += \ + QtAwesome.qrc diff --git a/src/QtAwesome/QtAwesome.qrc b/src/QtAwesome/QtAwesome.qrc new file mode 100644 index 00000000..9c1536d2 --- /dev/null +++ b/src/QtAwesome/QtAwesome.qrc @@ -0,0 +1,5 @@ + + + fonts/fontawesome-4.4.0.ttf + + diff --git a/src/QtAwesome/README.md b/src/QtAwesome/README.md new file mode 100644 index 00000000..c2f2d999 --- /dev/null +++ b/src/QtAwesome/README.md @@ -0,0 +1,205 @@ +QtAwesome - Font Awesome support for Qt applications +==================================================== + +Description +----------- + +QtAwesome is a simple library that can be used to add [Font Awesome](http://fortawesome.github.io/Font-Awesome/) icons to your [Qt application](http://qt-project.org/). + +NOTE: Though the name is QtAwesome and currently it's very Font Awesome based, you can use every other icon/glyph font you want. + +The class can also be used to manage your own dynamic code-drawn icons, by adding named icon-painters. + + +Updated to FontAwesome 4 +------------------------ + +This library has been updated to Font Awesome version 4. + +The current Font Awesome version is **4.4.0**. + +* You can find the previous FontAwesome 4 c++11 library in the [c++11 branch](https://github.com/gamecreature/QtAwesome/tree/c++11). +* You can find the previous FontAwesome 3 library in the [fontawesome-3 branch](https://github.com/gamecreature/QtAwesome/tree/fontawesome-3). + + +**Note about previous c++11** + +I removed the C++11 requirement. And moved the c++11 code to a c++11 branch. +It's not that I don't like c++11, but the typed enum made the code less flexible then it is now. +Just integers it is. Simpler is better. + + + + +Installation +------------ + +The easiest way to include QtAweome in your project is to copy the QtAwesome directory to your +project tree and add the following `include()` to your Qt project file: + + include(QtAwesome/QtAwesome.pri) + +Now you are good to go! + + +Usage +----- + +You probably want to create a single QtAwesome object for your whole application: + +```` + QtAwesome* awesome = new QtAwesome( qApp ) + awesome->initFontAwesome(); // This line is important as it loads the font and initializes the named icon map + +```` + +* Add an accessor to this object (i.e. a global function, member of your application object, or whatever you like). +* Use an icon name from the [Font Awesome Cheatsheet](http://fortawesome.github.io/Font-Awesome/cheatsheet/). + + +Example +-------- + +```c++ +// You should create a single object of QtAwesome. +QtAwesome* awesome = new QtAwesome( qApp ); +awesome->initFontAwesome(); + +// Next create your icon with the help of the icon-enumeration (no dashes): +QPushButton* beerButton new QPushButton( awesome->icon( fa::beer ), "Cheers!" ); + +// You can also use 'string' names to access the icons. (The string version omits the 'fa-' or 'icon-' prefix and has no dashes ) +QPushButton* coffeeButton new QPushButton( awesome->icon( "coffee" ), "Black please!" ); + +// When you create an icon you can supply some options for your icons: +// The available options can be found at the "Default options"-section + +QVariantMap options; +options.insert( "color" , QColor(255,0,0) ); +QPushButton* musicButton = new QPushButton( awesome->icon( fa::music, options ), "Music" ); + +// You can also change the default options. +// for example if you always would like to have green icons you could call) +awesome->setDefaultOption( "color-disabled", QColor(0,255,0) ); + +// You can also directly render a label with this font +QLabel* label = new QLabel( QChar( fa::group ) ); +label->setFont( awesome->font(16) ); + +``` + +Example custom painter +---------------------- + +This example registers a custom painter for supporting a duplicate icon (it draws 2 "plus marks"): + +```c++ +class DuplicateIconPainter : public QtAwesomeIconPainter +{ +public: + virtual void paint( QtAwesome* awesome, QPainter* painter, const QRect& rectIn, QIcon::Mode mode, QIcon::State state, const QVariantMap& options ) + { + int drawSize = qRound(rectIn.height()*0.5); + int offset = rectIn.height() / 4; + QChar chr = QChar( static_cast(fa::plus) ); + + painter->setFont( awesome->font( drawSize ) ); + + painter->setPen( QColor(100,100,100) ); + painter->drawText( QRect( QPoint(offset*2, offset*2), QSize(drawSize, drawSize) ), chr , QTextOption( Qt::AlignCenter|Qt::AlignVCenter ) ); + + painter->setPen( QColor(50,50,50) ); + painter->drawText( QRect( QPoint(rectIn.width()-drawSize-offset, rectIn.height()-drawSize-offset), QSize(drawSize, drawSize) ), chr , QTextOption( Qt::AlignCenter|Qt::AlignVCenter ) ); + + } +}; + +awesome->give("duplicate", new DuplicateIconPainter() ); +``` + + +Default options: +---------------- + + The following options are default in the QtAwesome class. + +```c++ +setDefaultOption( "color", QColor(50,50,50) ); +setDefaultOption( "color-disabled", QColor(70,70,70,60)); +setDefaultOption( "color-active", QColor(10,10,10)); +setDefaultOption( "color-selected", QColor(10,10,10)); + +setDefaultOption( "text", QString() ); // internal option +setDefaultOption( "text-disabled", QString() ); +setDefaultOption( "text-active", QString() ); +setDefaultOption( "text-selected", QString() ); + +setDefaultOption( "scale-factor", 0.9 ); +``` + + When creating an icon, it first populates the options-map with the default options from the QtAwesome object. + After that the options are expanded/overwritten by the options supplied to the icon. + + It is possible to use another glyph per icon-state. For example to make an icon-unlock symbol switch to locked when selected, + you could supply the following option: + +```c++ + options.insert("text-selected", QString( fa::lock ) ); +``` + +License +------- + +MIT License. Copyright 2013 - Reliable Bits Software by Blommers IT. [http://blommersit.nl/](http://blommersit.nl) + +The Font Awesome font is licensed under the SIL Open Font License - [http://scripts.sil.org/OFL](http://scripts.sil.org/OFL) +The Font Awesome pictograms are licensed under the CC BY 3.0 License - [http://creativecommons.org/licenses/by/3.0/](http://creativecommons.org/licenses/by/3.0/) +"Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + +Contact +------- + +* email: +* twitter: [https://twitter.com/gamecreature](https://twitter.com/gamecreature) +* website: [http://blommersit.nl](http://blommersit.nl) (warning Dutch content ahead) +* github: [https://github.com/gamecreature/QtAwesome](https://github.com/gamecreature/QtAwesome) + + +Known issues and workarounds +---------------------------- + +On Mac OS X, placing an qtAwesome icon in QMainWindow menu, doesn't work directly. +See the following issue: [https://github.com/gamecreature/QtAwesome/issues/10] + +A workaround for this problem is converting it to a Pixmap icon like this: + +```c++ +QAction* menuAction = new QAction("test"); +menuAction->setIcon( awesome->icon(fa::beer).pixmap(32,32)) ); +``` + + +Remarks +------- + +I've created this project because I needed some nice icons for my own Qt project. After doing a lot of +css/html5 work and being spoiled by the ease of twitter bootstrap with Font Awesome, +I thought it would be nice to be able to use these icons for my Qt project. + +I've slightly changed the code from the original, added some more documentation, but it's still +a work in progress. So feel free to drop me an e-mail for your suggestions and improvements! + +There are still some things todo, like: + + * document the usage of another icon font + * add some tests + * do some code cleanup + +Thanks go to the contributors of this project! + +And of course last but not least, + +Many thanks go to Dave Gandy an the other Font Awesome contributors!! [http://fortawesome.github.com/Font-Awesome](http://fortawesome.github.com/Font-Awesome) +And of course to the Qt team/contributors for supplying this great cross-platform c++ library. + +Contributions are welcome! Feel free to fork and send a pull request through Github. diff --git a/src/QtAwesome/fonts/fontawesome-4.4.0.ttf b/src/QtAwesome/fonts/fontawesome-4.4.0.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d7994e13086b1ac1a216bd754c93e1bccd65f237 GIT binary patch literal 138204 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 literal 0 HcmV?d00001 diff --git a/win/icon.ico b/win/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dd37c000ced3921018eaec7a81e0833828e61710 GIT binary patch literal 68174 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 literal 0 HcmV?d00001 diff --git a/win/windows_res.rc b/win/windows_res.rc new file mode 100644 index 00000000..23bbeaf7 --- /dev/null +++ b/win/windows_res.rc @@ -0,0 +1,3 @@ +#include + +IDI_ICON1 ICON DISCARDABLE "icon.ico"