mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from typing import Optional
|
|
|
|
from PySide6.QtCore import Qt
|
|
from PySide6.QtWidgets import QHBoxLayout, QLabel, QSlider, QSpinBox
|
|
from dcs.weather import CloudPreset
|
|
|
|
from game.weather.clouds import Clouds
|
|
|
|
|
|
class DcsCloudDensitySelector(QHBoxLayout):
|
|
def __init__(self, clouds: Optional[Clouds]) -> None:
|
|
super().__init__()
|
|
self.unit_changing = False
|
|
|
|
self.label = QLabel("Density : ")
|
|
self.addWidget(self.label)
|
|
|
|
self.density = QSlider(Qt.Orientation.Horizontal)
|
|
self.density.setRange(0, 10)
|
|
if clouds:
|
|
self.density.setValue(clouds.density)
|
|
self.density.valueChanged.connect(self.on_slider_change)
|
|
self.addWidget(self.density, 1)
|
|
|
|
self.density_spinner = QSpinBox()
|
|
self.density_spinner.setValue(self.density.value())
|
|
self.density_spinner.setFixedWidth(75)
|
|
self.density_spinner.valueChanged.connect(self.update_slider)
|
|
self.addWidget(self.density_spinner, 1)
|
|
|
|
def on_slider_change(self, value: int) -> None:
|
|
self.density_spinner.setValue(value)
|
|
|
|
def update_slider(self, value: int) -> None:
|
|
self.density.setValue(value)
|
|
|
|
def update_ui(self, preset: Optional[CloudPreset]) -> None:
|
|
self.label.setVisible(preset is None)
|
|
self.density.setVisible(preset is None)
|
|
self.density_spinner.setVisible(preset is None)
|
|
|
|
if preset:
|
|
self.density.setValue(0)
|