From ca30af4238f60600a75c8eccfa902afde19c4c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ignacio=20Mu=C3=B1oz=20Fernandez?= Date: Wed, 25 Nov 2020 15:59:38 +0100 Subject: [PATCH] wip: finished work on the TopPanel Widget, added weather icons, changed timeofday icons --- qt_ui/uiconstants.py | 26 ++++++-- qt_ui/widgets/QConditionsWidget.py | 60 ++++++++++++------ resources/stylesheets/style-dcs.css | 21 +++++- resources/ui/conditions/timeofday/dawn.png | Bin 0 -> 692 bytes resources/ui/conditions/timeofday/day.png | Bin 0 -> 634 bytes resources/ui/conditions/timeofday/dusk.png | Bin 0 -> 671 bytes resources/ui/conditions/timeofday/night.png | Bin 0 -> 482 bytes resources/ui/conditions/weather/day-clear.png | Bin 0 -> 634 bytes .../ui/conditions/weather/day-cloudy-fog.png | Bin 0 -> 345 bytes resources/ui/conditions/weather/day-fog.png | Bin 0 -> 484 bytes .../conditions/weather/day-partly-cloudy.png | Bin 0 -> 470 bytes resources/ui/conditions/weather/day-rain.png | Bin 0 -> 567 bytes .../conditions/weather/day-thunderstorm.png | Bin 0 -> 584 bytes .../conditions/weather/day-totally-cloud.png | Bin 0 -> 332 bytes .../ui/conditions/weather/night-clear.png | Bin 0 -> 320 bytes .../conditions/weather/night-cloudy-fog.png | Bin 0 -> 345 bytes resources/ui/conditions/weather/night-fog.png | Bin 0 -> 437 bytes .../weather/night-partly-cloudy.png | Bin 0 -> 405 bytes .../ui/conditions/weather/night-rain.png | Bin 0 -> 496 bytes .../conditions/weather/night-thundersotrm.png | Bin 0 -> 481 bytes .../weather/night-totally-cloud.png | Bin 0 -> 332 bytes 21 files changed, 81 insertions(+), 26 deletions(-) create mode 100644 resources/ui/conditions/timeofday/dawn.png create mode 100644 resources/ui/conditions/timeofday/day.png create mode 100644 resources/ui/conditions/timeofday/dusk.png create mode 100644 resources/ui/conditions/timeofday/night.png create mode 100644 resources/ui/conditions/weather/day-clear.png create mode 100644 resources/ui/conditions/weather/day-cloudy-fog.png create mode 100644 resources/ui/conditions/weather/day-fog.png create mode 100644 resources/ui/conditions/weather/day-partly-cloudy.png create mode 100644 resources/ui/conditions/weather/day-rain.png create mode 100644 resources/ui/conditions/weather/day-thunderstorm.png create mode 100644 resources/ui/conditions/weather/day-totally-cloud.png create mode 100644 resources/ui/conditions/weather/night-clear.png create mode 100644 resources/ui/conditions/weather/night-cloudy-fog.png create mode 100644 resources/ui/conditions/weather/night-fog.png create mode 100644 resources/ui/conditions/weather/night-partly-cloudy.png create mode 100644 resources/ui/conditions/weather/night-rain.png create mode 100644 resources/ui/conditions/weather/night-thundersotrm.png create mode 100644 resources/ui/conditions/weather/night-totally-cloud.png diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 614388aa..f29861e8 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -87,10 +87,10 @@ def load_icons(): ICONS["Terrain_TheChannel"] = QPixmap("./resources/ui/terrain_channel.gif") ICONS["Terrain_Syria"] = QPixmap("./resources/ui/terrain_syria.gif") - ICONS["Dawn"] = QPixmap("./resources/ui/daytime/dawn.png") - ICONS["Day"] = QPixmap("./resources/ui/daytime/day.png") - ICONS["Dusk"] = QPixmap("./resources/ui/daytime/dusk.png") - ICONS["Night"] = QPixmap("./resources/ui/daytime/night.png") + ICONS["Dawn"] = QPixmap("./resources/ui/conditions/timeofday/dawn.png") + ICONS["Day"] = QPixmap("./resources/ui/conditions/timeofday/day.png") + ICONS["Dusk"] = QPixmap("./resources/ui/conditions/timeofday/dusk.png") + ICONS["Night"] = QPixmap("./resources/ui/conditions/timeofday/night.png") ICONS["Money"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/money_icon.png") ICONS["PassTurn"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/hourglass.png") @@ -121,6 +121,24 @@ def load_icons(): ICONS["TaskSEAD"] = QPixmap("./resources/ui/tasks/sead.png") ICONS["TaskEmpty"] = QPixmap("./resources/ui/tasks/empty.png") + """ + Weather Icons + """ + ICONS["Weather_day-clear"] = QPixmap("./resources/ui/conditions/weather/day-clear.png") + ICONS["Weather_day-cloudy-fog"] = QPixmap("./resources/ui/conditions/weather/day-cloudy-fog.png") + ICONS["Weather_day-fog"] = QPixmap("./resources/ui/conditions/weather/day-fog.png") + ICONS["Weather_day-partly-cloudy"] = QPixmap("./resources/ui/conditions/weather/day-partly-cloudy.png") + ICONS["Weather_day-rain"] = QPixmap("./resources/ui/conditions/weather/day-rain.png") + ICONS["Weather_day-thunderstorm"] = QPixmap("./resources/ui/conditions/weather/day-thunderstorm.png") + ICONS["Weather_day-totally-cloud"] = QPixmap("./resources/ui/conditions/weather/day-totally-cloud.png") + ICONS["Weather_night-clear"] = QPixmap("./resources/ui/conditions/weather/night-clear.png") + ICONS["Weather_night-cloudy-fog"] = QPixmap("./resources/ui/conditions/weather/night-cloudy-fog.png") + ICONS["Weather_night-fog"] = QPixmap("./resources/ui/conditions/weather/night-fog.png") + ICONS["Weather_night-partly-cloudy"] = QPixmap("./resources/ui/conditions/weather/night-partly-cloudy.png") + ICONS["Weather_night-rain"] = QPixmap("./resources/ui/conditions/weather/night-rain.png") + ICONS["Weather_night-thunderstorm"] = QPixmap("./resources/ui/conditions/weather/night-thunderstorm.png") + ICONS["Weather_night-totally-cloud"] = QPixmap("./resources/ui/conditions/weather/night-totally-cloud.png") + EVENT_ICONS: Dict[str, QPixmap] = {} diff --git a/qt_ui/widgets/QConditionsWidget.py b/qt_ui/widgets/QConditionsWidget.py index 89713ad9..9e93c752 100644 --- a/qt_ui/widgets/QConditionsWidget.py +++ b/qt_ui/widgets/QConditionsWidget.py @@ -1,10 +1,12 @@ import datetime +import logging from PySide2.QtCore import Qt from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QVBoxLayout, QFrame, QSizePolicy, QStyle, QPushButton, QGridLayout from PySide2.QtGui import QFont from game.weather import Conditions, TimeOfDay, Weather +from game.utils import meter_to_nm from dcs.weather import Weather as PydcsWeather from qt_ui.windows.weather.QWeatherInfoWindow import QWeatherInfoWindow @@ -88,12 +90,15 @@ class QWeatherWidget(QGroupBox): self.layout.addLayout(self.textLayout) self.forecastClouds = QLabel('') + self.forecastClouds.setProperty('style', 'text-sm') self.textLayout.addWidget(self.forecastClouds) self.forecastRain = QLabel('') + self.forecastRain.setProperty('style', 'text-sm') self.textLayout.addWidget(self.forecastRain) self.forecastFog = QLabel('') + self.forecastFog.setProperty('style', 'text-sm') self.textLayout.addWidget(self.forecastFog) self.details = QPushButton("Weather") @@ -114,53 +119,66 @@ class QWeatherWidget(QGroupBox): self.turn self.conditions = conditions - if conditions and turn > 0: + if not conditions: self.details.setDisabled(True) else: self.details.setDisabled(False) - self.updateIcon() - self.updateText() + self.updateForecast() - pass - - def updateIcon(self): - """ - Updates the Forecast Icon based on turn conditions - """ - - - pass - - def updateText(self): + def updateForecast(self): """ Updates the Forecast Text based on turn conditions """ - cloudDensity = self.conditions.weather.clouds.density - precipitation = self.conditions.weather.clouds.precipitation + cloudDensity = self.conditions.weather.clouds.density or 0 + precipitation = self.conditions.weather.clouds.precipitation or None + fog = self.conditions.weather.fog or None + + icon = [] + + is_night = self.conditions.time_of_day == TimeOfDay.Night + time = 'night' if is_night else 'day' if cloudDensity <= 0: self.forecastClouds.setText('Sunny') + icon = [time, 'clear'] if cloudDensity > 0 and cloudDensity < 3: self.forecastClouds.setText('Partly Cloudy') + icon = [time, 'partly-cloudy'] - if cloudDensity > 3 and cloudDensity < 6: + if cloudDensity >= 3 and cloudDensity < 5: self.forecastClouds.setText('Mostly Cloudy') + icon = [time, 'partly-cloudy'] - if cloudDensity > 6: + if cloudDensity >= 5: self.forecastClouds.setText('Totally Cloudy') - + icon = [time, 'partly-cloudy'] if precipitation == PydcsWeather.Preceptions.Rain: self.forecastRain.setText('Rain') + icon = [time, 'rain'] + elif precipitation == PydcsWeather.Preceptions.Thunderstorm: self.forecastRain.setText('Thunderstorm') + icon = [time, 'thunderstorm'] + else: self.forecastRain.setText('No Rain') - if not self.conditions.weather.fog: - self.textLayout.removeWidget(self.forecastFog) + if not fog: + self.forecastFog.setText('No fog') + else: + visvibilityNm = round(meter_to_nm(fog.visibility), 1) + self.forecastFog.setText('Fog vis: {}nm'.format(visvibilityNm)) + icon = [time, ('cloudy' if cloudDensity > 1 else None), 'fog'] + + + icon_key = "Weather_{}".format('-'.join(filter(None.__ne__, icon))) + + icon = CONST.ICONS.get(icon_key) or CONST.ICONS['Weather_night-partly-cloudy'] + + self.weather_icon.setPixmap(icon) def updateDetailsBtn(self): diff --git a/resources/stylesheets/style-dcs.css b/resources/stylesheets/style-dcs.css index e5de6b27..2737b213 100644 --- a/resources/stylesheets/style-dcs.css +++ b/resources/stylesheets/style-dcs.css @@ -504,10 +504,22 @@ QWidget[style="baseMenuHeader"]{ color:white; }*/ -QLabel[style="small"]{ +QLabel[style="small"], QLabel[style="text-xs"]{ font-size: 8px; } +QLabel[style="text-sm"]{ + font-size: 10px; +} + +QLabel[style="text-md"] { + font-size: 12px; +} + +QLabel[style="text-xl"] { + font-size: 14px; +} + QFrame[style="QConditionsWidget"] { margin: 0px; border: 0px; @@ -521,4 +533,11 @@ QGroupBox[style="QWeatherWidget"] { margin-right: 5px; margin-top: 1ex; margin-bottom: 5px; +} + +QGroupBox[style="QWeatherWidget"] QLabel[style="text-sm"] { + padding: 0px; + margin: 0px; + font-size: 9px; + line-height: 9px; } \ No newline at end of file diff --git a/resources/ui/conditions/timeofday/dawn.png b/resources/ui/conditions/timeofday/dawn.png new file mode 100644 index 0000000000000000000000000000000000000000..f2be3bc08ebc2bd522f25069d2b76406b1b36fdd GIT binary patch literal 692 zcmV;l0!#ggP)k}io$k~PU^F?Vn>nc11yB#5{N zmVIyDx#ymH=gpguTKJa%Tmr8At>o>%9059;)hR8)LrIePxNTVs02>=Er;Oto>x-HS z15bK;?*Nv)Y3tpf%OxW?&b4D17DUEp?_i3agEJ$4Q_T-bn%oB(EAXitH-?H)4= zoN6k0L~Osea+S|3z*QP07iff%VFTLCwLjQI<{T`UODH{QYY{74K>}UI$#U%%Qx=YJlgY4FrZ)3 zUY|}$x@>0OB<)ggXuUSG?`dLY_62w+X}8A=5*%jNBy~9Ly_sE4a$g4Ou}yW(*ZO?^ zG^--uxpVu%qGFnLpuC_1W>yCdO4{j{CMDhT@elvsmSrHq31jX{S`q2M2Q#bZ(3w|N z#h-V=XB#L1H-M`V-ZAHlC2iCspUiI4cI)a0|s4vv$VJmyZY$%4bZ=j^lg zTIX^1OvEZyQ3AMvOaIfrdyJRK(NfYwOGFeaW&j&-7rk|+Ohv?G9qvKg!@7puVHalb zy_N}dqO->M0enmD&V~(SvH?uzc`tfoDDW;h7fOj&Bt3_#75(!V!8j)HEawy%zlO6- z5w9|`7Q_DHN47aULR-^?D-7I8p*QG7OSVH8&DhXNiTB`lZu!O<@lK54C$=s%@4QQu zD>{b0JlFONor#Dw5plaHijUR2q9~>!VkjcoBH~o$TAw-kaAfX|EVj~<{>5O9-^~8$ z1-K`2&h_lysLHjkn$ub%&x?q-91)u$VmcxozVn?&Y594dLmWuHLThLuKzsMb#!v3=2+su~Q8C+ZjZy-5e zu(^zZZoEW)o%jweWcmMzZ literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/timeofday/dusk.png b/resources/ui/conditions/timeofday/dusk.png new file mode 100644 index 0000000000000000000000000000000000000000..152f98e1c48b770c8526596494000eed4660ce11 GIT binary patch literal 671 zcmV;Q0$}}#P)#B8WGp@122V{LfH3)$UrE*QrzLPqk^GIx7~Dp$=#Q8i2-H1gHvf1E@RI*J^(bh^gjQx7|f8TE7yr&(>und?urs=f0LkVFPDA@sJ&{W`AzB*^~|EoON41vht0=bbzN0WGv-a|Xfm2mhty;0QT3Ag zBh5WiSO1Fu=aRvgx~0T?oBB3!E?3*UUj3BByXN3^CeCD~r(+Ze^Z*@&E^sp<#?=ns zG4L`X+RKD}4r~SXM#MdJ18^eaH5w5kdBue-EZ}?^KUDb0%B@JfleouI|3Z=GSe9R3 zRNn^_ZnqiWT6+GR+Rfzx0EOT6Lu#+4ws7j+uR!B(sEz8kw1R_k@Ol#GyV_idcJU6B zL_|!hCxLe6zWG{!LEuG1OjV*?b3{3U+6r6&)?|jC0)r9pJ8>F-Az)jEGYRxZ#Q35T zs$C@yUA?8QboPY2ox?d&PQUC9q!4?6wW+%vxCpEQhM9fu-M}<30K8AUFThAdIKL%V z7HD7k(hK;SLM|QDUFt{mow{R5%`+j|)QvSUU&b=3g+G_Q8`l_=GHL(-002ovPDHLk FV1ii7D<=Q| literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/timeofday/night.png b/resources/ui/conditions/timeofday/night.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff11ed90bae2d5e5e8359d35785ef2c378c4226 GIT binary patch literal 482 zcmV<80UiE{P){oEX&TwzR~hN8169dynD`sdqq4R z&p)HhTn2hXq(emRRQ1VCq{~nV z4jiN%plIfoK(6L&5BLNI(=yKh6$>y@=X?nG04{*uGy;s7`C$W1$uu`W0qArYV9uH^ z#OP*#`^aQefMQ(#mIN8PtX3O|RCP;4`bA_`M2pUiI4cI)a0|s4vv$VJmyZY$%4bZ=j^lg zTIX^1OvEZyQ3AMvOaIfrdyJRK(NfYwOGFeaW&j&-7rk|+Ohv?G9qvKg!@7puVHalb zy_N}dqO->M0enmD&V~(SvH?uzc`tfoDDW;h7fOj&Bt3_#75(!V!8j)HEawy%zlO6- z5w9|`7Q_DHN47aULR-^?D-7I8p*QG7OSVH8&DhXNiTB`lZu!O<@lK54C$=s%@4QQu zD>{b0JlFONor#Dw5plaHijUR2q9~>!VkjcoBH~o$TAw-kaAfX|EVj~<{>5O9-^~8$ z1-K`2&h_lysLHjkn$ub%&x?q-91)u$VmcxozVn?&Y594dLmWuHLThLuKzsMb#!v3=2+su~Q8C+ZjZy-5e zu(^zZZoEW)o%jweWcmMzZ literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/weather/day-cloudy-fog.png b/resources/ui/conditions/weather/day-cloudy-fog.png new file mode 100644 index 0000000000000000000000000000000000000000..ebee0024d0cf2b85570230bc18ba7baa513d8f2b GIT binary patch literal 345 zcmV-f0jBPx$6G=otR9J=WmBDesKnz8tncSg-Ex{dx66gTZ0VR+QpaRkXC4>%e2O$+eDtNhQ zgYeh}o86rD&G_K8tpC@N)*^*Mp)e3206XA|E1$sPKg5^7*$E$jle<3x(_G?n6S)AZ z#skvnjgfZfkYq%QNJd(&7 zb!}HPa|WuR29ng%3=L~e*VXH1#9h9PmNY0(n_5h0**1i(=Y5&0kaf00000NkvXXu0mjf@Px$o=HSOR9J=WmhVx+Fbu^lj_+iIj^GWF5xM~xp-j+>kPQeE&<#j8=mwMtS|<4M zp)wf9`PZcMj_bSg^-{^wlb;mFnEwP|1ss6I&^>oEb4YYujlgJ(CIIY!=N9wc81t#W z;XbSK~YBfmQx8NKmjBXTLz?I69Tm+pH_Vbsluz!;SI2AUjW(EB)JCl z@u~~psFhZpOtT%ipLnNfYuU7Hgrg%Bis~3h^H} z&1>4?doH#jQfTZ45qa{B_kpuD#!P!>H{puRj4>(jAtHY-i#BE%_Lpe4KhB(QFCs5P znN?f{gDxOZ$H`+C;3y)k_s1^+Z3a#s5X{9$M7D#SX}(J5z$TU}97BiF%s-Cto9~7j au8l8O2=VmnA-Q1y0000Px$kV!;AR9J=Wmi=+UFbu`*F3^m?2F(U!1V*46umRbiY(O?>Hh>LECmcmI9l=Tm~###+5uBMIIncfIYXk0B=BIgpEpl0&IZ~ zLvj|9v;41s5;)2`vcC7JXp(E;DUNd9ElNuyf(w~DOhulzknBv#?;purj_g zeM00~>6JL{+&^)cON6#SHHf$)Xd)>d?oYR$l@XE08YLR}P~wKaJXU~SMw;s0_jv&7 z=YFpP0)7pW-FL#b=*_V^Pel6N12DJf!=mP=@$5&E+YY)gV>c~Z;f-P9>JN%%`Mv9I z5lEeLD|vtQ-uLq%`=yx}iVA5yG4O4JlDZ*x_|<#g*}iAYm@&iR3;To5nq{WDq5uE@ M07*qoM6N<$g1$=7JOBUy literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/weather/day-rain.png b/resources/ui/conditions/weather/day-rain.png new file mode 100644 index 0000000000000000000000000000000000000000..f79a52895dbe09db3228e9a20303c6f730bd80d1 GIT binary patch literal 567 zcmV-70?7S|P)Px$@kvBMR9J=WR?%_7Fbp-l4v-Pj4YC1@kP)&$*??@&Yyh2rbb_)$G6EZr4PJkq z$|H6laiG2HRd+rP*^=IqB{|Oh6#>u!`20-(0D!4>Pmcie5C8yHBv}j``Ebs?57-v8 z&0;{BlN3NVHO&&d1CT}optB6XI-pMgEV+{2o&}F*uYm%AxA0|aYzaD^xdb^$fD?c> z(H#NQTt_)Gk2MR=f^+~5Tq?T&;2rmxIl(gq?*Np6AeAsp0`>+pj|EWE!BE>d0A(l( z+_UO0h0sQp2U?9&8XragwL4#GvEe*741j?(@iPOzs!Q*XZ?o$;ZW!D$uomAdTSKfH z8Xf8QX8X`#$(qmtwc;Juf^z5HeNGVq>gcN)Ym^!DIl;x>dMp5Yj4VyF*o)Nsy*Y?} zW`4z{yiLHy*p^k*GVL0(Z@8_iO|o4{Ve4yi;}u+r1sS(~8W9Y9@uwIg`QkT#G( zAstfjzYUp=;1U3@0QS;`!zsT3;sANSah_l;|EIz*r%s2_5wY`s0FW`Ybhgylh_#k$ zuikMafRq`rY#7rz0Pya?bI6N@b7i-tm+QGt$|cyvOGe!VQz^dtGM9iwF9SLFib?9d z57b8hDFN(zI{WOJ&Hj1BnZ!BwqKd_0(K+X)_xZmBPx%0!c(cR9J=Wmg{lqKn#UFslX+;gSZ1Iff6Wz4nhZ)4&n~t4xj@_1-Jv;!FPW| ziVy4c12367b0?bF3F}?y96eS_mi;dRT!8vfy_Y9)c+Ijb|Ca<7$!r3^nlIT7T=~qh z>@uLc1#UpGgrplOfEM6Ey{!>%lL(lx64*t)=fDbBMa~?&OadPuQ~>YX%gw&!LOLn* zIq(O#3dq&I-E7|gHE^=ue&^v=5rVG;1Oqq)9#;{9 z@pS0fWxzfb1v}d*d2{GZ)^K{PxB#N>I=I_d6joYnbbZ4Kc*I=RF=ILRRlVg!a2 z;j4jrbhcu9?Q019Y)Xw8p3I+s9VG8w8!-0?iYL8%J|e&d>zH#Q=t`dRCIwvVc>x}# z?)otDFeP~}aq)XGAY(6?jbOvaH`7T!RbZ5Xv(HRc; z2nih|E(baH?p6iSDCrtci`Bq WP7xLKDHPx$21!IgR9J=WmC<#=FbqYXJ3&Us2#nAT$_Uw@Y|xCr26TjsKqnv@zy@T4+Ybbo z9O_yj^rya`j->Z&$&OSg6bep&6|m#V5!e9rvxTdXa1U&OAzEwxLcAOA7HA?P^P8|^ z2j~(p3yax5!@$9cC;JSnE$$sy%pu$Y`*Y7T;+NcV1U{yUe_D~j`u=Ngf!a*BqXFG` z#hYl-Ctoi!)Vqf>N_zNiPa4kLo;&LG0QbJVr1Iu6;3oIlW!9>#*1?l>et333^?-Q% zg0AkxghX;D=}pogsgsnygA=u+rKC#IR|w(NnSXhR;-8I|0ccYiKc2wIh~K@W5W;p! eUZGIPx#`bk7VR9J=Wm0bR@6BugYF8hCV{Y@6 zJN5KoErQK+0u0YgfSIjbfGUUi!VC^C_SCkg2bM`efbAz=x1^ePx$6G=otR9J=WmBDesKnz8tncSg-Ex{dx66gTZ0VR+QpaRkXC4>%e2O$+eDtNhQ zgYeh}o86rD&G_K8tpC@N)*^*Mp)e3206XA|E1$sPKg5^7*$E$jle<3x(_G?n6S)AZ z#skvnjgfZfkYq%QNJd(&7 zb!}HPa|WuR29ng%3=L~e*VXH1#9h9PmNY0(n_5h0**1i(=Y5&0kaf00000NkvXXu0mjf@Px$Z%IT!R9J=WmeFy-Fc3uF&E!8W!5u&<2qjPgbU+DokaQ3_2&n*40d#<=Af|%N zN6thDV>3h!Ki(P5*eB`sbhjrPdi1z6tP7`-a$o?Iz~0P?E_iB*C9QOhQI~|7KMy5+ zIpJE;TvFlhSxVBOr1$8AyMTNWtX;b;PencnNDC)e2ew^!T1hjv&r_0@lE%?oCTZ#O zo5)_qnYlH9(#No2%`zsFGzv1bxk->gDiGWp-#PI$dBn$}P&=yn}z+Bzn_|MSPhVXN*r$%XJ fXCI{=J?@5Y14r_Jo35^L00000NkvXXu0mjfa6`j= literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/weather/night-partly-cloudy.png b/resources/ui/conditions/weather/night-partly-cloudy.png new file mode 100644 index 0000000000000000000000000000000000000000..9c442a00bb5d5529ad88e84a7565839e3c8a9142 GIT binary patch literal 405 zcmV;G0c!qPx$Pf0{UR9J=WR$FnyFc4goKn=kRY6b~}ltCbrLCm0G5JND7rU+~XHG{YaHb1NB zHIe1#WTsQ^k7jhI+q={HEMUco{|>iwK#~c77XaVRxq9jNG2)cuiNA3nd03Jp5lLl8 zzDOQKMv@K5lH{3WtG!B{nMJ-gBosk?Q*jYUxRmWUhddK`OEQm;+*K-jBm1;2m`e8% zpF%!)z?RFlokE`JaM|OR7)@+!wItuV3V7-Xcmhyq>l{nKIoAUC1dz)2Lh^%Trab^? zVlgavs!F`7k0jFp=eBBhVXp0B^fOEYQuv*!$HKHes-N3K{>~SfVn&?71VS3{t&WOr z1bi2>p$R+`p#;2AHw$s>v<|;gBf|GN%p`Y;)An#r|2QWPxY_Pxp6Tx z3;c|qiduuH6TJ@-b)$C(1<*e9L9$}Sia(1hxHa-iBd(==00000NkvXXu0mjfBB!oE literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/weather/night-rain.png b/resources/ui/conditions/weather/night-rain.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2adbd1734ee9f40dfd71a2cb74a91e7c9444e0 GIT binary patch literal 496 zcmVPx$s!2paR9J=WmG5(7$V#}xmfLuTupq47J8we7=HUBOqc+>Bx-AZl$SK<#A50F0s z9;~_sSdGLT`a=h7XtSvt z3a)Ea&ODdXu3$MpW>yaGxih|hc-mZrTvQQE)nw9ZiFuPx$n@L1LR9J=WmfdlKKn#SLR6q%oKnI}&N}vRHV3*(yLIA-aG<-tK{Mc+dpiT$B|%c)3pfhM5!eD38+Skh zv_LO=(z)Q3fb<4%3No%Egd1Di&jHU3yazS|Ab&Eo_0HCxtAYe52KG3KU1V+d$bSgD zh?O_8FBRc^YPLe4ngZ;CW3033LhWG3S5K;dIi1a^vjEu$zrwPuMW7eg&nWO9lfkl& zh_jheL3hf{p`8OR@#-N0ACWn4p^FemlEkYRJ;E4)sM&9Juy12?nG4OvJK$>;T{(h- z%$0$5N+Fj=s*$tAgM^zP)lRn7W8E#R#wsQn z$c0#AYu@qJd4_RQxc~nSSjnFC-hf;iOe;33T00000NkvXXu0mjfX3^PT literal 0 HcmV?d00001 diff --git a/resources/ui/conditions/weather/night-totally-cloud.png b/resources/ui/conditions/weather/night-totally-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..e56dcf903ead3f81813aa608dd1e88a894ca8b48 GIT binary patch literal 332 zcmV-S0ki&zP)Px$21!IgR9J=WmC<#=FbqYXJ3&Us2#nAT$_Uw@Y|xCr26TjsKqnv@zy@T4+Ybbo z9O_yj^rya`j->Z&$&OSg6bep&6|m#V5!e9rvxTdXa1U&OAzEwxLcAOA7HA?P^P8|^ z2j~(p3yax5!@$9cC;JSnE$$sy%pu$Y`*Y7T;+NcV1U{yUe_D~j`u=Ngf!a*BqXFG` z#hYl-Ctoi!)Vqf>N_zNiPa4kLo;&LG0QbJVr1Iu6;3oIlW!9>#*1?l>et333^?-Q% zg0AkxghX;D=}pogsgsnygA=u+rKC#IR|w(NnSXhR;-8I|0ccYiKc2wIh~K@W5W;p! eUZGI