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 00000000..f2be3bc0 Binary files /dev/null and b/resources/ui/conditions/timeofday/dawn.png differ diff --git a/resources/ui/conditions/timeofday/day.png b/resources/ui/conditions/timeofday/day.png new file mode 100644 index 00000000..f215867e Binary files /dev/null and b/resources/ui/conditions/timeofday/day.png differ diff --git a/resources/ui/conditions/timeofday/dusk.png b/resources/ui/conditions/timeofday/dusk.png new file mode 100644 index 00000000..152f98e1 Binary files /dev/null and b/resources/ui/conditions/timeofday/dusk.png differ diff --git a/resources/ui/conditions/timeofday/night.png b/resources/ui/conditions/timeofday/night.png new file mode 100644 index 00000000..3ff11ed9 Binary files /dev/null and b/resources/ui/conditions/timeofday/night.png differ diff --git a/resources/ui/conditions/weather/day-clear.png b/resources/ui/conditions/weather/day-clear.png new file mode 100644 index 00000000..f215867e Binary files /dev/null and b/resources/ui/conditions/weather/day-clear.png differ 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 00000000..ebee0024 Binary files /dev/null and b/resources/ui/conditions/weather/day-cloudy-fog.png differ diff --git a/resources/ui/conditions/weather/day-fog.png b/resources/ui/conditions/weather/day-fog.png new file mode 100644 index 00000000..c2868d7b Binary files /dev/null and b/resources/ui/conditions/weather/day-fog.png differ diff --git a/resources/ui/conditions/weather/day-partly-cloudy.png b/resources/ui/conditions/weather/day-partly-cloudy.png new file mode 100644 index 00000000..6eb07751 Binary files /dev/null and b/resources/ui/conditions/weather/day-partly-cloudy.png differ diff --git a/resources/ui/conditions/weather/day-rain.png b/resources/ui/conditions/weather/day-rain.png new file mode 100644 index 00000000..f79a5289 Binary files /dev/null and b/resources/ui/conditions/weather/day-rain.png differ diff --git a/resources/ui/conditions/weather/day-thunderstorm.png b/resources/ui/conditions/weather/day-thunderstorm.png new file mode 100644 index 00000000..61fcc700 Binary files /dev/null and b/resources/ui/conditions/weather/day-thunderstorm.png differ diff --git a/resources/ui/conditions/weather/day-totally-cloud.png b/resources/ui/conditions/weather/day-totally-cloud.png new file mode 100644 index 00000000..e56dcf90 Binary files /dev/null and b/resources/ui/conditions/weather/day-totally-cloud.png differ diff --git a/resources/ui/conditions/weather/night-clear.png b/resources/ui/conditions/weather/night-clear.png new file mode 100644 index 00000000..eb4da38e Binary files /dev/null and b/resources/ui/conditions/weather/night-clear.png differ diff --git a/resources/ui/conditions/weather/night-cloudy-fog.png b/resources/ui/conditions/weather/night-cloudy-fog.png new file mode 100644 index 00000000..ebee0024 Binary files /dev/null and b/resources/ui/conditions/weather/night-cloudy-fog.png differ diff --git a/resources/ui/conditions/weather/night-fog.png b/resources/ui/conditions/weather/night-fog.png new file mode 100644 index 00000000..bab41451 Binary files /dev/null and b/resources/ui/conditions/weather/night-fog.png differ 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 00000000..9c442a00 Binary files /dev/null and b/resources/ui/conditions/weather/night-partly-cloudy.png differ diff --git a/resources/ui/conditions/weather/night-rain.png b/resources/ui/conditions/weather/night-rain.png new file mode 100644 index 00000000..ac2adbd1 Binary files /dev/null and b/resources/ui/conditions/weather/night-rain.png differ diff --git a/resources/ui/conditions/weather/night-thundersotrm.png b/resources/ui/conditions/weather/night-thundersotrm.png new file mode 100644 index 00000000..7c65921d Binary files /dev/null and b/resources/ui/conditions/weather/night-thundersotrm.png differ 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 00000000..e56dcf90 Binary files /dev/null and b/resources/ui/conditions/weather/night-totally-cloud.png differ