From b5e0387f1e57825b4d7b1bf5153556138ef952a6 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Sun, 17 Nov 2019 16:14:24 +0100 Subject: [PATCH] ui: Added GitHub and Patreon buttons to start window --- bin/app/data/gui/startscreen/github_icon.png | Bin 0 -> 4268 bytes bin/app/data/gui/startscreen/patreon_icon.png | Bin 0 -> 2380 bytes bin/app/data/gui/startscreen/startscreen.css | 10 +++++-- src/lib_gui/qt/window/QtMainWindow.cpp | 4 +-- src/lib_gui/qt/window/QtStartScreen.cpp | 28 ++++++++++++++++++ src/lib_gui/qt/window/QtStartScreen.h | 12 ++++---- 6 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 bin/app/data/gui/startscreen/github_icon.png create mode 100644 bin/app/data/gui/startscreen/patreon_icon.png diff --git a/bin/app/data/gui/startscreen/github_icon.png b/bin/app/data/gui/startscreen/github_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ea6ff545a246caa64074ba809bbc86fcb8589071 GIT binary patch literal 4268 zcmaJ_c|25m+@2YcEGe=tO+zT_42H4qTL_VT8D=nHX3PwRki9HfBH7BIQ7JCj_beeI z(PA%IQuZumf5*MI`@VnN`<~A^=eL~adA{p8f1EgTGXqv8J|+MFz-nZuYe^f)M;9Xl z?T$df2WbN@Nzaya1?NEuL=w;dEfmfT4L0&cdZI1SNK}yDE3_&AKqrE+vL)G?nkc*D ze5H{`7-_OEp2h|MR5i$Wq`Nno1a?DvVz6qEm4+4w7=u!S*eICFn&NfPUKqn*0{Tj@ znU#C6w>ts_(NG7gl9g!!zGxB>O!oD`5|znnkUw>mY4f9P83_1K2+3Ow@|RP#rsiNB z903hhkd~8jmxV&XaJV#7UI7k=N`hgsP?(G??SxA~<&_oS$}mOn-v@+djezn{w$#=C z+ZJu52Js@1@X9hWfq{Y2fpXF~f~O1=fj}H-z+h4|gcLCdOG1*RuteeC3c6^bI{||y zVQ^URks{I!=TB0D&^-Ms1Yi6=vRLBZX`&@ehK$6^K&54mLi!CfHU0mgzP|sUi6l$( z|N8r{!bGbeJX*#QO~m;V+-ZgL5I!=6SJok*kt7_!3WxLgokepm90^DC!r{R>SKwfA zQ=~fvd$e)kPllD+ zRvxaUgpifj{ms?Ix%>N~v83Nz6pahhl84G`Y3tCq(0}C~HG?mnW?2_azyzRC`UIRW z_|Kq~G5_t0?0@_67Z>#}zWf~rt)x_q6t=RejnvErW>9V+3xJmC z`WZuvjAn72w+0gZ!c zA#ROc&m%S~RCo}xuD5jUEbXg(tZCM@w!T|#S$ju3+PKnZvOq!Te!k1i>ZlAY2d$hq zcr3hl)6*dTc>dY=Qd5hg9F-3ZJx12?th3 zY?KG;EA_?MEA`bUgvx84mEd_1K6WD6Zh&~3v&UiJT=<@uGaZ9%(IN9U?-o?uhZNz# z0#o|=;zl}_TF1jsmf+jyEQ<#bNr0KCAUYnr%4g{D(N{m#MffRnz-^cE<1DqGVEx5r zS9<&IEpl`xM442IxYkCk*}6`7oUa@Kl_Om(Wi)GrS2ItP;Ou5QroVSmsVXN0)hk8e z;lQ7wszq5KKkzMEul9)W#^WhAdM9n0$1xd~J`)gN+?&lyrT2u#TL&e_WNZu=06!YS z_X6e%y?CXFn(qe)=6ByvLZ1sdi9L_*4O%9s*q`)g@<+ngXLPynb=p>5ndD-SPd(4C`aTbdZ?bxKHELC zZeth7;3PqZD?s#@He`g7m$B$qvPY*AnR5l@#vg7e+&xsaNZJ7s<$W$OK|T@wSM zh`E>hGt7-jtmLJrt}Ivhf&`2+J~l%A7}}Xca7jJxI^wvclcjQLM5Eta<3kf9Toscy z2I56cmFzMI1s+2ser!B|B({ns8CaFV`-AdpPxNlkWi`M4xfYlJ>bcQa_Db9t&LAY; zx^2E~@4$Karl&<}9jvxNSjTQMt#zzn;Qqi*Jw&F8Na(c1_Jsc6N8&(xJElah#X~^m zO$FtV=RBR5){5SC5(*jhk?uKK7`fi`Y}eJ#ci%vh-fi6~JE0;=vP_jpjlbT?{#e-Q zg~+X2Dcc7K^U`4_pWG;HNCdX~rJUssvKg;+f3y~ob_om7(fWQVrk~|8c+5Oyh)!0u zH&@f%C3-|i_!B$Ex|tDNvP7;t@z^Uj(%<;2W8RZEAuh0EPbru^)k9_D$^x*({E+n& z{y0*heI0x$J9Uj|T}LA6SZHS^U1@BX{##YX50iv${&P>g_W{k;`KLa}>>L)9+be$H za1Hq$db|JP;I|C#s!D6abpfQ!SMEJxNrX5Po=~2~$zN$@d{C4ae%`0;u5lJIc<5zV zW0x;w_KUnGPtktlP2P#J6QNQr*8K9PVlhCrtEJW_VcAdqvfOn2!G(Z&x2T5n3f@d6yv9qGdpFIWgxra94$P&Yhsnc!#t)-Gv2pxFx>U@5&M# z7#U*2+|*`pSdAT(GQiPE$Ex`}N+I!wwb~zatxGDuvCL1$dV-cI>A&21r3eoG;Lk8> zhmAcpb*$KgS=PzD#t!=+rn>kYXx#YR)Dn+tD7G%>f%NHRvzUhtr}1(z(HiB$A-%vD z`5X-Jp!>%UspC}u?_WmmD;h%*I*Zz09eZ~A{G;;OSqJ&?c>WA=&gyqG%p)(6V*26E z{`k1QNoE~O9dKi0)Wme|c} zpD9V60svR6jT^^lPq@XY4fnzWFP@(qA|#AoRZ#%ui7nS&g(Xw!JO=DIRz0X4b&exr zkY`td`J1Q{ea9M&%2%T#Ta;&a<1sj6L)n2PV_y7NO8EsgholQRo&m^2^@skl2bJt` zu{-&e43fXh6JRAQ*3k{gK53WkKIN2vD)Z{THopDGy|Ji5&I%H;Ecs!{lt{IB9_h<_F@CJB{)}FVpTFvK zXP(=eD=e5uI3>NH`X-wAtvibZtmZ?rL z7wsuLRIVuCeEjQ}R}+ZAfvu;^h{(w;f2~*YCtDTpuuti0eA}tHeTR8%o~dzA^q5{z zUQNy_)>BQCr4&n zY9ifZI%XxIcTU~-B#>+|02RG{!zI=^*x31j0>MV-*^bTh_(BK8Ju&5MRoaw8+1sG1 zL%CEWY*}Ha7nicSa&3PfVrP_f!DVI}!S&!{Ym;aR{feM{vMO6NOZr%GWB(&Z`wMOR z#)*@43&=FFCXmN^kEWAz)MHgZ6DzNPf8RC_rbOG((u3cI+!P)?mdoPYwy+W=xS^mz zfWC?vOdizPc*paTy;7&k%4PvouNbGIDHnoj<91_&*-aZqO)}LOa&*pZeF>N7l>Pz< zd;rv0z9>AUFFFYW!822_#dpkxb^lmTJyFw~@j`t0>4*7~9p0D`MHX1=O>e$JdK(YU zaj~=9#M%X_gvkYeC*Lkko|dT;vWBG#k0&O6W2g6_Mv4}FWx^J#7cBEjg3w2YH@g)Q zuPcXBzOk0d9;`^u*e`sV2s~bPHkR-tDYRo6Xua4hTUwLG+tvh)QIX*oR|Y1Ov28Zk zylyfJyrpjDH=Jjhz5$=Jg(|PB@fV!q?btPZ{rS$TKfdo!+1YTi23~<47U94_5&pH} znfUigS(B@ik&Xh(E?Ua@PItu=bDG)ZUT{R;eznP5G{Em}%@vdRrM`+tN6I(JQMxzt zzG?+!S4Ta~BX5?vtMn^pahCg%YIEzN%1z!wZj%6cu}N6lF1c=c&0t!fJ{z?E+8|pX ztL03D#Wef7T$WgBgBg5GX1JT$UHCk!=iSaW`dgj`dWdyaEzWVS!D%kH>i&#|Y?8|9 z-4$lE_MykI*a<$47lk7Bjbdv}w_`*zdXZuGN3Iu`_YOWZs2xJ(qa;J)R&SUlR@|sR zt8oL;Vk6BgD)ama+gNdT3rq5$E=wTS_vPNL5v7O8(WRT)ia$MvhreFxtoojl@A>L* z?V3N9{Or`QzB8zrK~Wzy9(B6iNvvA2IDC!4FDT_F{|-W_zsO%Zd!zcZU$$SrY)QbT z+}KQlk=a`^_W*hzPZ#yMhjHq8PQ9i6db5c4WxBN_N7p?>>OOl+NcT)WrFk4NdiE{l z;%pD)D#!i39~nk@^PUQri!2Iu0oQ(*7KqFFs)#t$B7j`oGM}O2VyLY`9N-5vh@n;< zRNIc6&UJhY@?%IVdD-=xjGWJqn^0=jZBU)tv{v1U7ED&2v5=oi(iJ2&r=CAe0V;*$ zW$8S9fv(wveNqLlBQuhxlIr{{L<<*+21HMjNzwF5+p`Q`+5~JF9k>|vUCpaTL{(Py zw>le+8;vV|Ci0p)i8;A|+2>n*&Llb{e1az3q!#5`h2t?5>RN5A0%e*-$ySQrj$M&HIK~a9W)6d?W8J*D|_Nsk$ zGP@D92-<(_m%Dt`w&=aK1L=et-x-8!#A~nMjd>p5y_E~xqvBa(g-xz$rbrZzJy}@V zMDqqtV5Q@0Jnd^ZegdA!J_j+KUwf*Q89r!GpX^tCjM-_vCiKDr%LHG*Tq?b|4*FY1 zr|I5VzQbkN?NfI!QSV9w{6i7N+PZuZNn#B7s)KDhPO1TQJe zZL1UgBIOOdRP;I*>7?O<3ezgLDn5OQ67L#>r1#{bKe8hz0Pg XLyRvu{aX3a{{tgEGu={c*U0|?Dtn-9 literal 0 HcmV?d00001 diff --git a/bin/app/data/gui/startscreen/patreon_icon.png b/bin/app/data/gui/startscreen/patreon_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..997704fdf6fae4427ab7160a48177d699ba232ca GIT binary patch literal 2380 zcmbVOc{mhW8$V;1VGPP(vcxp@)QmM*W}0kKhT&Qhh7cJ`)!bgbV@z zAYx@{X3rZL+a?I(^<6}-e%`=;>M;2*01cOgKY0o8e4$WF*Kh!YQQHOq*YkG)0C5d) zaEWjsTN|DX3Bq~#gn0Yn=s}@8GyukQL*6vVH^K`;526K!8`25bF9<{4d^?QCV!l8k z0tr|bG6iEA66TB1!|CEQu|xz0gE0>C@iVkHv-q~1=Mk{}5fPz=czkqpG%i{P7ZP>~ zuVr9hfY;Qu=cSvLe0gK%h z`rf|g84=+3w^DHUx3YKz;G`5&=wI>z{I z@qbI^Yo%YJyi$n>WBm7HBO_CSsxx1yxnM=4wUP=odT2EDZKyJ+K zrt&K$RHj;PnGGojA!b#H6lFe(FZP=ws+?^oyJ*kEajbqS=8|eXi-L&C%aB zUb(33E`hD1Xlj;&RD*s-yt!~S`=gHCYz#}8)l;zQwa*ro3Ht?cVB;xEjR~dKCl$EJ z^PTABRBm=Ev-PtZ1TB>_&CPM}1AH`HnI>f6xb{nK5uX@T_k|Xt-~T$~<(+ys5&Ywl zv_F1eHk`)2r<=A5OcS zanlSzVA*TFhGgXsbS(%5Fzs3o)=4o^^U9d#;15)YQ$44>sXj&r%>6b_t;lhlJlP;lr&FY3^;55o~vQy(q*1H)O+0DoW31F0!!fzES%UGOkY?8#&g zIK|kh8n5Yx*Nb@uebv%qM zAoinsqE}!w8k*axtFfFs=kEV{t_QTiikTWzdGYt&V8yQ1z0~3q?r!6XH-lYs!U-aC zUBCBHe+J}Wm5G-#L#Ld~(@wFbWe+)0+gi1UpYc`%ti7Ds;a_NX2Psc*+k%`Dc=`G% zm$lvHYx8;_;ei~`Zm<)VT!(9NG(C_^*|IIHQBOAF(}jzJ>bDJrJdj+;g*TIZQ%>VG zj{{3WSG2C7p##ISukP#}j-e%o~q^ z%&9)G`1||SxuVSqg~N$Xsfa=(S0lAu$^_RnhW<6LB5{`M1FpuxG!@vnj{X+dlzvY{ z`P37@Ny4-m^q2{F^t#2Vc8q`C9Rg!h2T+^pz8}K9^ zpOiw@-I@n&8kX~n^%D3~!)VB?N}5lH9txKRx8ANQj~wnyUax$;^&Nz zO1NXttaW{sA*Q*7&v-|NNGj1;`;I)2X_`*>R2v?0v3===QClhAUXO*zrW>MAL$Qeb zYRElR?i#l?`36I!Vk9slTZCk11HB6xT4#2RPXAa~tjgHa`Ob12C>f()BD?*wT}Ij5 zwH=f=x+XB6nx0WRehXF|W@LN5*BX4|q^py|K;l|yVKdlYoSv+4d=_2l z{PyzwH5!;76(xo)?4io3{qFC3wy0}l4T3978sdkN-b7twbCOtU6bsYjpBvz#;~-z) zUYd$@vBt)UTVwp85?4@;CbHT}Md*-&F)J3VPjU(~Dk!op>vNBLCi+ccPU0p|bxYRe zPPXJT@5{P*f?)X1z{-5yKt)8eh99;sfEHH1lRsj|&d0Kc3pdm_`~i zeH2$ptlQ4K2AZ%%fv55wWms;2gRJJoN!?jg&^UD8v;QoI4DlHN} YgP-EjF10f7?Ct-JmAQ>soeA~)U!FGYmH+?% literal 0 HcmV?d00001 diff --git a/bin/app/data/gui/startscreen/startscreen.css b/bin/app/data/gui/startscreen/startscreen.css index 35d47fdc..3ee9789c 100644 --- a/bin/app/data/gui/startscreen/startscreen.css +++ b/bin/app/data/gui/startscreen/startscreen.css @@ -1,14 +1,18 @@ -#projectButton { +#projectButton, #infoButton { background: white; border: 1px solid lightgray; border-radius: 8px; color: black; - padding: 3px 5px 2px; + padding: 4px 5px 3px; font-size: 14px; min-width: 6em; } -#projectButton:hover { +#infoButton { + padding: 4px 15px 3px; +} + +#projectButton:hover, #infoButton:hover { color: white; background: #2D3F85; } diff --git a/src/lib_gui/qt/window/QtMainWindow.cpp b/src/lib_gui/qt/window/QtMainWindow.cpp index 3bc570cb..2125c132 100644 --- a/src/lib_gui/qt/window/QtMainWindow.cpp +++ b/src/lib_gui/qt/window/QtMainWindow.cpp @@ -514,12 +514,12 @@ void QtMainWindow::showErrorHelpMessage() void QtMainWindow::showChangelog() { - QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/SourcetrailBugTracker/#changelog")); + QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/Sourcetrail/blob/master/CHANGELOG.md")); } void QtMainWindow::showBugtracker() { - QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/SourcetrailBugTracker/issues")); + QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/Sourcetrail/issues")); } void QtMainWindow::showLicenses() diff --git a/src/lib_gui/qt/window/QtStartScreen.cpp b/src/lib_gui/qt/window/QtStartScreen.cpp index f49c4ff5..edcce9a0 100644 --- a/src/lib_gui/qt/window/QtStartScreen.cpp +++ b/src/lib_gui/qt/window/QtStartScreen.cpp @@ -1,6 +1,7 @@ #include "QtStartScreen.h" #include +#include #include #include #include @@ -86,6 +87,8 @@ QtStartScreen::QtStartScreen(QWidget *parent) , m_pythonIcon(QString::fromStdWString(ResourcePaths::getGuiPath().concatenate(L"icon/python_icon.png").wstr())) , m_javaIcon(QString::fromStdWString(ResourcePaths::getGuiPath().concatenate(L"icon/java_icon.png").wstr())) , m_projectIcon(QString::fromStdWString(ResourcePaths::getGuiPath().concatenate(L"icon/empty_icon.png").wstr())) + , m_githubIcon(QString::fromStdWString(ResourcePaths::getGuiPath().concatenate(L"startscreen/github_icon.png").wstr())) + , m_patreonIcon(QString::fromStdWString(ResourcePaths::getGuiPath().concatenate(L"startscreen/patreon_icon.png").wstr())) { } @@ -174,6 +177,31 @@ void QtStartScreen::setupStartScreen() col->addSpacing(15); + QPushButton* githubButton = new QPushButton("Contribute on GitHub", this); + githubButton->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac + githubButton->setObjectName("infoButton"); + githubButton->setIcon(m_githubIcon); + githubButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + connect(githubButton, &QPushButton::clicked, [](){ + QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/Sourcetrail", QUrl::TolerantMode)); + }); + col->addWidget(githubButton); + + col->addSpacing(8); + + // QPushButton* patreonButton = new QPushButton("Support on Patreon", this); + QPushButton* patreonButton = new QPushButton("Become a Patron", this); + patreonButton->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac + patreonButton->setObjectName("infoButton"); + patreonButton->setIcon(m_patreonIcon); + patreonButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + connect(patreonButton, &QPushButton::clicked, [](){ + QDesktopServices::openUrl(QUrl("https://www.patreon.com/sourcetrail", QUrl::TolerantMode)); + }); + col->addWidget(patreonButton); + + col->addSpacing(15); + { QLabel* newsHeader = new QLabel("News:"); newsHeader->setObjectName("boldLabel"); diff --git a/src/lib_gui/qt/window/QtStartScreen.h b/src/lib_gui/qt/window/QtStartScreen.h index 61bb3f56..86bc5a5a 100644 --- a/src/lib_gui/qt/window/QtStartScreen.h +++ b/src/lib_gui/qt/window/QtStartScreen.h @@ -48,11 +48,13 @@ private slots: private: std::vector m_recentProjectsButtons; - QIcon m_cppIcon; - QIcon m_cIcon; - QIcon m_pythonIcon; - QIcon m_javaIcon; - QIcon m_projectIcon; + const QIcon m_cppIcon; + const QIcon m_cIcon; + const QIcon m_pythonIcon; + const QIcon m_javaIcon; + const QIcon m_projectIcon; + const QIcon m_githubIcon; + const QIcon m_patreonIcon; }; #endif // QT_START_SCREEN_H