From 0e9ffcc352363f33e96529a7cbe507c1d05d9f6c Mon Sep 17 00:00:00 2001 From: Matthias Meulien Date: Mon, 8 Jul 2024 23:43:36 +0200 Subject: [PATCH] Fix sunrise or sunset lines overlapping precipitation histogram Refs: #93 --- docs/screenshot-hourly-forecast.jpg | Bin 18243 -> 18065 bytes src/hourlyforecastbox.cc | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/screenshot-hourly-forecast.jpg b/docs/screenshot-hourly-forecast.jpg index 6a1b70ce6800b2b61595f5d59b34589946b46529..4127ff49d09cc8d1070f8554231a8d68620e1971 100644 GIT binary patch literal 18065 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 literal 18243 zcmeIacU05M*Do9hy?5y#MLHq`q$(W(QUZjIpw!TN6C_du40!UFn z=?K!B2$%Cbp7T5RDeIp1z3blf{_#%M`mU^RX7=paGqd-e&)$>kPuEKT3Jq1TDgX-$ z0KmHW0Iuf&N&q1CALWlH@TTD4;rvku@bGZ)2nmRY2nh%YiAcyvh=|FE2?yMT|9D|QoUW0gg7lsw)l4WFcuYcHBooqcKlKcy=Tb_{zk^U#)lW$)K;IB# z`nRrbI{dRY000jM8;FaAfAgad<&Dg+@UaO0VCmm0{LvkrD9E#Bf{L1k4x*=@h@iZU zdrx8SdJaHxQwf_ANC|idIE_FI7(Fi!l$PR9Qy(rGRAqq?CylbZ(jq{3jGenPjjb24?zqLcM({m|fH`ZZua$_uh4Q{7mN+zOgse3+Sk z*>|-dlNo>Sb8thjn*Q3C^UEpnwTCCm3z+|(zyD+Mn<{!Y%l};*re?yW{ewQ4{uQU9 z`tghJlFLxBN7n$Vqg|tUnd3KeCf(i2*8sM~t6ak$kymeWmzg@!*R3YjeVpBfN z%+{jHG!x}r5vt*vnd%$q&{d{4(O)DgIiuUTMHX(YDD<_x<&9T7LG7L3vE(=M?-xo7 zzeX6U+>-qkP}w?HdtBI87~i-4qC|J0c*8O<*rVm+HvB`$-qu%T8Vt>Os9>3zMPTXM zpwKTovXI4=^QwXw6R0{uv$-2Xsi60|oMv5s&PMuE1csTDR0ZA4oL?m@Ka@I1@s@<&OwcMGZ zVt-@ikF=a<^;IeZ6=rQd#oA)!@sbn0Nz_{$iHy5lUawmUqt9;%j93jBq%wW(m@tBJ z2TRX83VR=e1)zqLgxh}M@ZJY;k|=|nU|X!hr!2QV`d$OF>g=qSQmVt72DdIqR!zK+ zt8-%BC%mr7<<5aGE&E`FiH)RmDiieg6~J+m!xo$W^JGrg7ZoLOTNYNwAvEk7F|QD{ zsT%1FQZ7gY{bdWaHpY@SR({K!RrQ=L;u^3d%XH zh8C*fj)W{^&E#27)Vy^gWY+meWMbTGDJ~U}Lqp6=Q4pc5D?`HzAh+tYb+NSCnYr9! z`!5E6v$}y<`<&>6Adb^ThMhVgk+sxHbT{+;qm^p_!RMooefM4-)$hh}Pu|O?iwjsP z4%I+qAn2bcaUs+{Kxs%dsR9A`7VgYxa8_E`+j|*7^;5F(wm0#5abb69h8&%7TD<9MeW-6E3Q1<}4WnAB+dmcu~%&F3T%U-2O` z{uGNXOK%);L`M}P$`m>6z!NFIKg2`|or+S`BVdmUXU6$NVqBFvfQ0QPEWm6EQIsHB zV$t+sDhf{CxsCbPycXmZU0Ob!w*N`D{1c6mrrsNF)}O-=@J-A^|Gse$ezTevBJ)>H z{{F(IPwAGkiLDv3C}le%PyXpP{N zNB+EUK>`40!KGG8FB3^T80%2P%U{j-$}2Fr}NG+D34v%Up@ z*m`bXg2;+{-Ei%{-U??UZs!oSvo9Vz5963>wOD{KupYa5=1ta>3xB2|52 ze#8n)wy#L)-cI=`rIp0*Qctn=rUmR&+8R_QBxj5Jh*i>$Uyuy+;2u2{{z8X7F1NhZ zs?QtYZ$7m@tp_E7M$*G4#|;JjGVV^LP|VS8><%z?%sG^yuyr7cMuD%4(&&k{DT440 z$gn(InQ(oWnHAc)AlyQYM8>%i1{xDZKF8Ek-8?i%B-g9WDf7;q0+3DkmeMotepyJC z#L8=*jvt+x9u_sR%0@#?iCf+Gp2OHJpFL}Kc|%) zOof(HVMh7-Cr^JiZf#lWG;2nQDY7gG3g?$-ce==|A> zET==<(E|UKz|5?&N+X|F(A5|aB|T0|af@j`O->A0k}T~%+NZV4f1q?U!lcoI7-YPN z>b>%8n#OFb2l-VXj>WO(6z)2|3g6rwWmtcioZ%(IcfWv*?;SdQY? zX*JfN_o}9V79gAi6aXrV<#fsSa9^yCTk{s#rAFZczOS4NTj$Ajhx|>%_9=zJyY|_b zja&PjA!=TY=8u+>+-5bvE#PO3P_s-e@lSVN74lp*S;_ic4Y{(yBxlf zleii26a5r=^n#x&QX?&0i!rAvYsH(}2kn?Nk({u_Y_wOKB;>EQH~-;%B%PU^bBA4Y z2KVs1*I#j|LkH1UbZ_D6J!*Im2ie{JD6L!YUGCGsn2shOpft3WaLd6qR2pT{r_nt+EtYBOI|g^#5$Q$>eXslKPrGhMuew{AC-W@Ku$!hNxCL8{WpD&cD_+aIn0Q431LP^oeew6?1c$bJ6u>21aV z7SSFfnnccIK|15|QX|G+y%rVuZy7W1;+f~lA9?C6RweIfBl@I@3K}QyN70+5KXrL$Nc<^aKVFiC%TKLd@WkC5mMN4(oR)V z*?AKH03=M-&$4BRMT>8 znw%M+jEhVK3^9AW{HCQnO=NK@gQI1<32#{X4{oQ_dn!38{Ev5o_jBe&(PS{k&$3GE zQJ#W+Ewf>iUn^u&gf3y<|FYH-vW|D#?ytPxi6yA(E%;gYT=VJ^eyqx=-DTRZx8#hk zcSp|e{mMelbv_1ds4W)G#8h`yp1WZ&@3~B(d72Dzv#*ipx&ym45RDl^o7Rz$_8t9-{ zr;{WbFzBimAB98YfQ^At@rb};R*9@acl1aH@Fo$rYiZ-Tq)vRW!vjhbIE zDj;br387Y{E7qbHUdKSk;#I#jY*5ZMH12_lS`J`B5d-~Vy=XMeLpfb)g)8O zk$Hqq(8sf`$fC5rG`{*N^6}DP1M8mOEvx~@=DR^bQ$okCzH`w5yQ&RchxtfGgE48* z!SEfA(KxCu)qDCJcu-$mB36ROWnRuwv3272`DNZ5mw;Y$Z5(?Tc=^#C4kt3&yP0c; zY~G$OJ*>alJ7vOB|7uU>%CJ>CrLW>uR7^vGQ67Q-`w0;mehU({Cl%zxu?qJv>R2q{ z{NitLhiQGcZ7D~Rw;Xu4U`n!j4<@)o^VB=7kg+4sLi54n+BOg;69OvAS>T<## zot&c~8DLwehkOSnfFBd&?LfAm^aNf)(LqDWcWU)9YQ&f>x;Ilo%r8ug``B4(n)PDj z9Q&|FcNWNpea{3qk)s|9)2PTE@YiFJ{)C98`k3()G9?9xgP0g{HBUbl5vD5|_mAsc zEdr+B(y6u_d6An^3ngGXhk(ohKEb(cE(6P_s(DFU#7C^YgtPoyEwW6vgbDk-e1x8l{^(=&DuXoSvNS5}0}OM!Nn`EE&@ zWM(%e*oH?%zTw=$5fO&7!X?Z_mR-i!7f{>f)#EdQN1*z!G-6JvXkN4tcN{87e*0$l+Tp z-R|8Iz3==q`EV+n^5nF0$9;3c7%AQEK5iFm9=Q5t`?9uIsm^G1ZfnbtIF?y4po*zD zxh#>M0)=V|OnCs2K9U1YPvzR=es0=?CnsQWZQudNn636|a=BiWH9zaRcr$CF^q6n! z+xmf$G9lS`1j(o$0AFFgDx3sgb7`H)^A_^~+Rps72aJw^1Zv>5qk%HQz`0|n3?wEE zF8Yq7alequKz`tRxHBKVHn(rw!|0Er(Q59kqlT)*!n$f$Ge&|~j0h00Y37r3l+>R0 zx0zeb@!b_&NoQfnJCvqn8>EBt-t|4A9}C|g`Bq?rBr6g>mN~7x*+YR7V!zkNj9mrV zexOnM^{;~>B`pB@En@dM3LuTp`7sMWsB+nB{>IFZd4p5*OPECV>uo9 zrt*OBlIT{xor#xn-t)-LXCy50T(IhLELyf%_EV<|D@pQOLENs>e6EJV^tz@3RW$pa z%atvl4#5VjBP$5NPB$OUzG0@LyLF2kuY-HtRlvQMd8C`UHdPY?ZJ-fTqj62Z5WK{8 zm>RgPUF4gffgsDY5|d2a?0-P{>_^PWY-+lfrs3vSGNud9kZ{+FC)VlRfu??HR4r@H zO^zeJ0Tri#{DJ93ObI#+K48FsrM$vMaJZv5<8g1eX?04o6yo4G@H5`yLR#;-TSbW$ zi&mHv>$bDVw!rOU+Q{%XxL@kNC;e>vCBpc9KCRbr$cVYs$+qYg0V8XWwV_sUU|?T; zU~eJT$M<`QdJiwp*>0S$+-txL7TRCsLs0%lVjpu~CLfN4-HKWZf#uSb%tpm|ab0!Y z{Qk{3Fi#l|RzTP&=Glh@b6g{ty)mJ6lg;g2x=g8Zb`CMY{4kK5kA*?p$b4kpF{Ag4 zE<=k9hi!Y>qmKjjrG>~c<^9r_)HTs~7&?z@Gmj08^)7c5{j+Pq8IRR!=%ixIF>@>+ zKN6Msqzs%~8_5D~r3hqug1_HsAo?Cp)HbqFCZ^?i1PZxIrKeG`4m0F75BoIdvLiI* z!{WmwO@__*uvTGr=BU$a>k8i{dVaZC!lLP{eRo9k&RPEqY(tzMY}L8hG>}vhL9=u> zHA}0t&ovb7P#BjQm*J~IVm$zvzd*QCeOPytTiO-IuE~*fOY`bd(D!VZ)HEVkeN}9@ zI5^RsU=Y`P8!jD|&jO?Za^6{Cu1n$waGo}GGd@G6< zgfzK#ot*N=Z;#jc%*>XNy@E%^e@}SU@Job-xEiO{qW5w}b!hsKRMQQq@Q%rMNt0|! z`rK;cR=p1f8++fb&h+58mRK$|T3UnON?Es8HU)zSIpsnGmtrY@RV!sbQ~A*$Hg9M8 zWJJiU^rfWR=D-zY+h#ZZ{@qD=AU%sJmMd*z$^h4tINw*`gRgnh2w{DZ51d|1U1|7|308j1W9%1Zdz z$kVXq=0C*nr=tG1wiCY)o$1{0}Av z|Nj5oX=fbn%BV2W3tN@_;29l<=Rx!Ag?*;dv2`rXEre431O?rLJa^jM)1j9}@kN7g z?%qTD7M&xugxaT$MOA2^RLDzi^-qBqD~_V7Z{FT-`&%qIF+j#m!uQawQk`pne)poq z!wtqOdeY+P^KOPJ4_&*MFcl@77Y&t-U#4s6`*C7Fs^=$_F_Iz!6RX1Xu&3bv2)g+HoYJ`(hzkJr@R z_-et)NNI=7I998(JAd@=>{|Wy|8K?=86u9SDT@$Gctd@@y58faDP*tu)c?=J1JL&%w z$Qw%`DEU88|G&XE0m>1!u~}SEkt50ef)Q++7+Sy)t9efj0H6YQLWOiOYgzAD-CEE? zxFl5f`|G`Ks}W7S75B{Fs+C4i>Le#7RZS;OC@%kp>HR;yaOnLm`<@I=ANmX%IXVUN zKA}ehVE;(?WjyZNRjZm=4UVTY5PRX?3-*qvDg(hV5(-f->?`u7G2@s z;Hi^ac*6izobpZojduR86o6yxf(goW^A@k+T$vM&a@#_gO%5krp)Q>iMdXZ|h4(mX zw$ERo#-tEt_U-=usV|jM4ax6Mof<8#KFfuem0A$gtzL=hpF`h(hP?8Qb?sWX60QNs z7|7k5h&2|iC1o86O&xJ5zF0B;!6#5nmXDrqV7R!}ZMGBgO?cXRJU>qo#BOxFdBdDo}o#qu4GO2dmf18!~{>rW<* z_F(y|#H2GTj>sRqnHfBeL9dc|$NLGyO)?9>_zCZbxalT-DZRnzc-T9qU7b=39Z-YC zokP_xo)ckev4c%-{Ms!U5jOXI?Rf=JJ^ME9F`h9_9I)$aCWv}p-n|FAerp7cZA2rpXv>+MC>OWin}E zK0_ZldA2}D+$#;_kPWoL2dLauda|$*?1}$&%m43gO5j(ACuI?vTO8o0DH_t!k%oF8 z_OS6Vc!5qAs=Yywdhg@u0Tm(PIctF!1m?!w$|Vz~A9%DP%Fb1%x?X~9`Nrv8(nj43 zd3EXui>&JyPFkiE`DKo9WZv^T>J-m;0Ou=%)W2A2qd?}4Oa%&Bsjgf#$Jir81x}~g zDZxcnjQe*b&&kPu#yh&Aha;L#MyAzk%G&r|_r`gnKg2KYDl^UFfj7j51)d%K9^D@wEG z#o*cf%?jdm1kI#wI%2Hsu z!nn%j2UMzG*0Tw>%H)R@ zOeQX%=`-^p9w=;W=NVdQps-ud(p*Expn31njMf?v$r&oxYx&7g`=T z)UQ)<;Rs+M*OTX>kX{l&HQ#8#^~}tIb^ZaIHzn9{zEkHVLMTOtmHw(i*VgZDt=^>X zat>YI>vE4yLB>iFYRi*tZca5Dos_fRFQ199d0^0!W_qY9|K&(tXbza3zu*N15r_q! z(aiQt5mQf@jf{L%kg>#3`$XGh0+Qt>rqwB!m_3A?z--T8r75M?{+g^ZCAK|TG}0&A zwGn}GA?{29U7=jDgn;c&>Yb4P>MwNmVF}T_i+gcr~8hxoliIZkWJFbh@aDT z2!wdVWdKRfGNQeQl7N%7O{nIgA@C-pWr`yMeLX!Jq;;H8jvX8Cy@OR>KRNyB(LSBN z65zQ1&F)`iIE^`$ViLoADj2Gn<~3ehYk%(y>T!o<7aj zVTi+PKft+{@ioa`D-Typ>6Qfu1G`kF=xf+dsY`Cl{cGiuu5*1!(f?KYvQRY zipw;0n`PStp*n9#wSlB!ss;%4{P=sOkHL)xQ;y%bPbH@2#J9^fKs$0GObn?KrM|jF zG+dOwL|9zwJ_>`suL+FmH-MEB@zZ+m$Tkp(FZeK$f@UlYGnYWO$O$UaEI?!Kb+*$8 zt4D2B-;2(=ZOC4P-dJ6mre-O?|%6G zQafL7bapc6XFB&gsIH2}eu4gXRY3wsRcr3W`?F4ik`80o8tCwg(EcEghF-kxi||o# z<0Br66(8a`RV;<)L#HMUuUi?4DFFXczb5#*fBy zz9M97jz|N+a3;u^T!sA_a0qX)Xy4(Pg-4PqCOK4NDHbb^nYUvm0~SaLNO z3D9O_+EB|hJ`q4^B%t2gTMLS81P40GXy?}swFeFz)e={k4>1Phs zlX(I;qkR~M{ekXT+Do$^)MixS=%#4TX=`>XK=9lK=;8u)X8l)yHT*tFyyw_NAFL6I z)*sTo0*y#n70dJG%@NKRvHfKJ^B4df9$HFD7t>;d7}+reslVA_WMIBOsURpc&+y&E zIKG=~VthlTyn2b-M5KJbeL_ojDi+j}ebFad!pSvI^gxrE=s9o@;Go`V&anp@!AM|A zgL+($`~KJrwg^>(R(Z*q3|@sd=1P(r{70fsoCjN2)8$SUe|741N(X_43f;hLmm^aA zyPljsnPuiBQB_9kTca5}4dXkMYV@GP{z8KUX(>EWVsbu(6Pdsxc2UpM7d`8O=G@f{ zcG5H^n}wmqBrzPm+5;LDN}B{b58i>%dfGt0hhe_1qUdWt?+y$1!=AefZs#J5mwihq zA;U+B6XthMR$`?-KSjvvh~^kGHHuw|-D7*nHXh-34Z!xPWvnyGkX1`eUG2rSjtAJ~LQug?mp&j(k4}^@+}-NJIo>H&;@Ml2p)M+1bV?Njsfjou$RB z$C+XWQ-!KAAv7Ih7a}wnvcO%c3U#lTCr_dh>8XAhfL>|xT*X`LtG50mn7YZeGWI+T z<^Cx+^7v%9%gtC|mD<0|kD_yqCBTuBNnx|v&FaKTBEkQ@-LjC{rR&5rM!H*_G!GNYRH`UK?^})aGrOQ<(NZ(B?9%hg zR*-$VA^4jC<;$XZ0+KAKYPJmFhRG{p^DENX=AoN|GgG~H@-=|wy~q2NPOCL?oS`e* zl4!(oaO2BwFedet1iD3%gtt7YA(4i1a#mIXua^YOcciLDKvSVbk0vXIL81e9PLg4O zxi9%8aI!qtgST|^Mqzla4fC+d#UDZ)r9B14;pibw^$SvQ>mkNBILXgRTbjC;EK_%I zJd=ZA!MR6PeEMhj3p{c3*MLR(afL^)!uh*XhQ)EIO4F>x1rhjfS=7;3Pu}`-Sk`{F z=q;E{7uqK6RY{*r^S}`n$Mlxd&$mIUUE5T#N8I{P1;dzAv$8G3l^e*vX^hkH)4(%X zI$3;_t^v*eN{b_|{*N)*r~WD)zK0)%QoXKk)6&B7y}u0V5{wmb0qO**5^+m%5lQrifzY}(#KpVU~#@3opb%o_An3B$@g z8My;WH4+rc;c}FJLT4o++I9{t;^o*}pnB9ZwM~QRYDw7ro`pZtuINHLZ%EQpK+%PUbMmtZFxSz{? zC_nbm?Is3s-S2_odzB4)C=(0x(O3XG=HY1Qd24; z5ur2w?f83E@vP?v*j{nj2IVJE3z$bfEv-UI+(eNg%Ay%fePR5J`P`psGFA%UWRTk^ zEX<2>@i(mBcqqNrtP$}NCZ4e+k<#16v1J^s4+k|ZT^%L^=`iOJ7hsC*ndFCRbCmH3ymeJuP89|pto5t(i*DD zliVr&=oZs7Cs=NxlXSpR%RH52H(KA2rimG!B;Z{t5>K84H*Mr*8Rw~gc?4sQ8T_em zdrLYXLPb_TwpBg)N)wMo^&P>6+Bf)l;ZH8sosdWPi7;7F|578Xui8#U%RP~(&k4Gp z6&VL$UrMI!n>!KZZ>{=GzcA(8Qfiq=#?BC7OmcT-yi>+6m9)wiq? z%1DX}6KJI=2r%C4%nm9IKIac3GcE+Ux7Je*rk_Snek~a?lB1z@QvVD>WcOP|89YX+ zO|gD}zx@j^#q|uky>}2f>Zj-vBJB(A7jjWkcz! zfXoT&$fmoxqlv%{*I$>&wU{k{tyEOG=*G`cjOy;Ch{ z`~g-Vf*SUXSBv^s9FV=9)3G`s!CU){#L;I&39T;7J0OS7tGZm@nQncIj%JGBH$V>p z@tD3P(7F)dILgRNlKT9N3VJvqGFMjjKyB#Mp~6$Jv3a}l?P$Gl9rcpCpw>2y!B)m%5b>xj)%oQ6h%sl2vcu+5p!$n>gyEv4& zbhTa2fc?wQ$3n%LEF@N}<>P|XzXP1z!wi0R*M?M7Ek`5-g4bq@u`#*}e0l{rRs`&_ zu0(HffEeEw@ae~APF-(?oEnV}SrvxTG<{MMcanV?o9~3aO7zW-VA1GnPz`fnBugj0 z^B2kqb7A0QH%&ceiQ-+oxEGx9<)A*9LRDbZN+~k|B~_s$!hOu6U+oIy}926)kN{`)O;KGX@uvgDy44efZBJ8BJOKQXjQBRu?{->8Gv6-?sfJ z@wB6F7u)aWTwrJVXK)r1tZLQ8Q-eb&_gtBbaa(5dBLnEe9#wANiuYDg}8~e zkXh|7SDRML^?bPEsZ3$-l#g-i(|C!X)eKP|R^x%$$2k|m zP0^B7Z=puqT-b|Dhb2^Pcz5`uG=br2E=e^+-jd`Uc%Ke;4F*%BbYxA1>P6-Rib8vN zg|*D+8!2uQb-wUsZM+5vv|z3FFmNHXv9AHYLqVj5K7$kM=9M0U2bOMz5ck)q0^g^` z)XcOMaAftWp;q!Iq2f3c>YW~A_`8(mLK&IM-H-NDrbEwR8gJ@ca$q(&1+4_@98Ov7 z)m&k{k35`Jt!rHb{)NF!Y>dc3Vi*t{ru zQ&TX-j!+z2bgz#$)oOl9lg zAJz&(CE^q6tf`_tBoO+>JnAM-$>1~DPdr0GoOSak(el-_%!1{|f@4I=)5m31Ir&z6 z47_c0x~+WdFmwqp@6V{UMV9A+)O#Uw&*4+2hDu=((49uK`H@fZ%89K0ZIT!Q{KsPu z94Z2j2f#hYW!F*KfJ52UE*)&UzSRIGDMBR^jLi5Z|!Zc%eG6vDenkJ5}sE*IsFO z-_Kt6NT@NC3EG-EtHrIHsHd2~iNSznD^LL3m4r0k&8hTMo-(c_-hXi8z}Y`a(P@h> zCrxJ3*wKN{kz00?#&cSUktmjMvm}<@HPh=AzAo1IYZarUAG+LT4?MH^DD5)oQc+ra z8n(funcXQ6;K6(3V!kA?w}%dHiWLfJvL2VrRf}X-Uj_+cam8wvmOaEQ-8+1$Bw^a3 zr{y1q;omGOG3`rWk66K_eZl3k(53yZ)rzlip(Y4LE?)TZm6*Pa9?1K!CNfw3sREmj znU&4K{8p%DnKTOlv7uq3f$7{T(-&M9v8ns7)rRds{nDPT*#Had9X9V9g$MNbt^SF) zpBq-TtZi4S&^=%6UyCg*2(^!M^p4SNAnU^sAXESH<^GDod$$T_`N^y#z^ z8pr6H-5>+}IEOt%T(xld#E)<@MKEKwj-Jj}cQ)R);uS&=2w~}@VxK~jn}rS%2G5`O zOxX=&ly1YPAercSR6o%UCEH_3P$J7$qTvGhkj@?#F&^v6n;aBZ6)ZHw-NkMVErD+kTR}pd$D&}IF;W(@Vx^CXZ!e&F z^x2cZsy5$n09kRE#8m2!udgDv2~ej@G5ys8N80 z3?kLHvWwLR+fv7!GmI2wyd65JtFTvLrKqBYiOFe9bmmLgw>Vg2tNOCM-4=MuM-Ke( zRi}~>^kxxlpWpm;*1LVjbzZ0R65!QY;DR^{}!%?iI)lu-YMo77Y zcNRsZ0=8b0=+GFB@-6zo)1dmoY4F4`OU`GMI@obbW#6Cu#j5a84<{gOMn$k9N?x4D zkZTu!YyY3@$L+(e7CM=Q?;l?78?tJoUV%>j$_{C^a6XyuuGKW0%GK1mxx6I`c-d?Z zgkH&^D$lS=vYW?WJ2;#9=rXNxjQ=6<FQa)g0xF}4aEfYvJ*vwYE|4zp>l*4 z-;H=Imq!sn77@B*J*U9=I86R${fYo?LDiTAsY;V9`S9S4a>Z_#Yi9|OZ0QK77X_N^)+#Teib$ohB(zqF)8R=eRQax8{5!R~@|{{7*b29q zbaW+&UEcAz)YD9F`Q)Z(5-DbWoZEo{oC;oil2gJutKx1VvO3n4`B0ahz_O2Mb-d5V z7~f5~gO8;hAAYXEpkknJL5I}j>bN%q;k|)696pK|RmjJJ#_M3?oA4Uj%l8gLdJ8v1 za?fHePgP4NtT*$NiNaJ^^L!r0>%(WebVI=daaN4-YUA%A4Iw1B8i!qv%0k{5eAz8o zmQ4}msw7q>(NH$81l-%shs@{&9y40;G_EkecR|%ntH^y=sZCpP3wKy9G={qsZqQPC z6W2S6v%kU3bPN}jSN5W)rFtH5L0WlcCC*STG*{Yja9)6|6ZD;RmaPa^xQ-|#%eS(m-x-T(Y=FqTcbgxg`yCF0d zxzPSVb2oYLfQ8!k>&nFm+#6se5Tu-F^R9D{o}3o4%4hj4#PwfUFTwxuHsv38pG^LC z<)w5Ix-Zn6W};@|l4qV-Z(D{kxGP>fDU{cA-*=}sPc%Ig$M|JJjV;z;66!1$5;VNO z&Scw4>@1FBoWnvh!Y1KDOv#C8Pt*Y0s@~+p@#%&~*4;IioViQ7+mI1D;`myUJtS#! ziq<-qL#Lu#rZjsUhk11&RA^1YevYjvD~jRUawV;8!I*2%!lGxA;tVyt+UeO z+|Fu1;EBsYoAlBHocd@vlBqEEjbk7Zq5)-~-3 zKAW@f$nEaoBs)Zo^n8~{MQLOSRzEz2ej!PDoE&E2L!Q5-TP#7o@t;J=b`~86-@Zhw^IV?>WO80u|XAf%AGL3`L zB;9pYaHNo*VxGg>k3AuJ(9(euOGu4cR7I#)#$cxAo9Gy>tYiH_ZQG+;sUJd9?qzRC zWqv35po#6>Y5M=-l28>xj}T&&X~hTy<98WzDKl-hcB$mLbLUH5D2Uq!uqAVY!>z2} zaTm^f$Bi0lVw6dtHIuJV64y-5F+~`1`F|>#ib}{kr$oUi*oi1D3zuA`1-kX1P!%%g z41pgy>}As^L^O<>+t0`NyciALqJ3#WYk+ihmhuWqHkukac`00LUMYHbDm&%+xZqui z>0>jNTG<#~y73pKS|CY+I+daDfU6s<^n26mtRfBT*gItrUrlEyRp)&y+EVRgS}DSG zo-T=lGW0)u-F#Y7Uzvk)Bx=+M^bdoI4vbQMARyiGE{b_ktreb4)*3k`II*XH*YZj8 zCuBJ+XCWDlZfwA#S3(cJ=vEt05$PWt$-~biJZJ;1@=Nm2{#dmPHmcaPF=G>1N=#bJ>&!kNP zTY|+&SI-5tGx0~zclOAtMOExtY-ea`Mw63ca6XD2Oc}JP(X#-+=i!MH+T#R7B215Z z-^f(A`+s>7d9E`EpWoz;F0qJC7AF;GccP|ySycaFwqEZm@A2n)0OM`vB{^|y9k+8$ z7r9411}R%;x~4RsbK(g5Z3suPAyH2WmwMbUOb}Yw^EI!lSey zYSj=Jo}7lNU^Ck3PB!amA8nRhMX?E%aD+73pKl9jIyHc1(PDDQYXIc(8Zhv9y=`?a z-KM0h)vP!g%E#p<>s(djpn$WXz*^yVQg*C<#x&Dov=%5*5P!RKe}Kr?+Fw_Vi8q`^ z_h%=LFX@$G?z3uF7F4hfFz^g@Ii@yH+K+D~vU)hE8Y`PFo9yDpdjf1}V13s&ALW>< z-}$A3|Gn4*w^aX8#9YFsWl_(j^mBo>RE2m88Q%?wpPe_u>81zBYBA zPpvK%!C{UYa;D^Vf9r2WWQE^8PQ$-~QkI=ymX4Me_ya&WyBc6Q^LMrs*!%B&r|e3b zN#hu9736e|1{<;V;$|t$i9cA7F}TRVJKl$$=fwI5n=IS1aCz(MnFM$|s>=^ZS&(ja z_p75ryMLe25@&Q!?`qH~TXM6cwanNUiHnMY@TwyZzVdI#8!rJIG|8{P4>524MekLH zr@&Ohv&sn6V}tAx4r)&I%s z2xwVZ+y{xau}K26Z7JWKlNQ0?qNKmi!kJaS5R>wgp;b25RROZt292u1nF0jRSU z|KK?O(k|+k;`1}#vSV4&?XTsBa^z_hA>Tj`x2RA5Cd;6AH~$^Nkbe!(&F%Qt0?3{D(pR5`Wat^uzs3wqwGd%X6ie zz5CVC)x$^syPW2&U$kn>4~tGrsYnyq>P<*mk)3WLuL@b{>Zl)1wq25@6vxh?T=>#+ dFgKB#tA{HBlH1SzNIapx3B&*QkB8T@{{w^Hf5-p; diff --git a/src/hourlyforecastbox.cc b/src/hourlyforecastbox.cc index 45849a6..f3e3633 100644 --- a/src/hourlyforecastbox.cc +++ b/src/hourlyforecastbox.cc @@ -58,9 +58,15 @@ HourlyForecastBox::HourlyForecastBox(int pos_x, int pos_y, int width, void HourlyForecastBox::do_paint() { this->draw_labels(); this->draw_frame_and_values(); + + this->draw_sunrise_sunset_lines(); this->draw_precipitation_histogram(); + // ⚠️ Draw sunrise and sunset lines before precipitation histogram + // otherwise vertical lines related to sun may overlap the histogram + // bars… See also draw_precipitation_histogram() implementation for + // more ugly stuff related to that! + this->draw_temperature_curve(); - this->draw_sunrise_sunset_lines(); } bool HourlyForecastBox::handle_key_press(int key) { @@ -370,6 +376,12 @@ void HourlyForecastBox::draw_precipitation_histogram() const { max_number(forecast.rain, forecast.snow), false); // rain and snow are in mm/h but save space with shortest unit + FillArea(x_screen + 1, + y_screen - tiny_font.get()->height - this->vertical_padding, + this->bar_width - 2, tiny_font.get()->height - 1, WHITE); + // ⚠️ Clear the bottom of a possible vertical line + // corresponding to sunrise or sunset + SetFont(tiny_font.get(), DGRAY); DrawString(bar_center_x - StringWidth(precipitation_text.c_str()) / 2.0, y_screen - tiny_font.get()->height - 2, @@ -398,8 +410,8 @@ void HourlyForecastBox::draw_precipitation_histogram() const { void HourlyForecastBox::draw_sunrise_sunset_lines() const { BOOST_LOG_TRIVIAL(debug) << "Drawing sunrise and sunset lines"; const auto separator_start_y = - this->weather_icon_y + this->icon_size + this->vertical_padding; - const auto separator_stop_y = this->temperature_y - vertical_padding; + this->weather_icon_y + this->icon_size; + const auto separator_stop_y = this->curve_y_offset; for (size_t bar_index = 0; bar_index < HourlyForecastBox::visible_bars; ++bar_index) {