mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 10:30:06 +00:00 
			
		
		
		
	added inital radar site based alerts (only default radar site)
This commit is contained in:
		
							parent
							
								
									2bc971eb94
								
							
						
					
					
						commit
						dea53bddb4
					
				
					 7 changed files with 197 additions and 128 deletions
				
			
		|  | @ -6,6 +6,8 @@ | ||||||
| #include <scwx/qt/types/location_types.hpp> | #include <scwx/qt/types/location_types.hpp> | ||||||
| #include <scwx/qt/util/geographic_lib.hpp> | #include <scwx/qt/util/geographic_lib.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
|  | #include <scwx/qt/config/radar_site.hpp> | ||||||
|  | #include <scwx/qt/settings/general_settings.hpp> | ||||||
| 
 | 
 | ||||||
| #include <boost/asio/post.hpp> | #include <boost/asio/post.hpp> | ||||||
| #include <boost/asio/thread_pool.hpp> | #include <boost/asio/thread_pool.hpp> | ||||||
|  | @ -85,8 +87,7 @@ common::Coordinate AlertManager::Impl::CurrentCoordinate( | ||||||
|    settings::AudioSettings& audioSettings = settings::AudioSettings::Instance(); |    settings::AudioSettings& audioSettings = settings::AudioSettings::Instance(); | ||||||
|    common::Coordinate       coordinate {}; |    common::Coordinate       coordinate {}; | ||||||
| 
 | 
 | ||||||
|    if (locationMethod == types::LocationMethod::Fixed || |    if (locationMethod == types::LocationMethod::Fixed) | ||||||
|          locationMethod == types::LocationMethod::Radius) |  | ||||||
|    { |    { | ||||||
|       coordinate.latitude_  = audioSettings.alert_latitude().GetValue(); |       coordinate.latitude_  = audioSettings.alert_latitude().GetValue(); | ||||||
|       coordinate.longitude_ = audioSettings.alert_longitude().GetValue(); |       coordinate.longitude_ = audioSettings.alert_longitude().GetValue(); | ||||||
|  | @ -101,6 +102,14 @@ common::Coordinate AlertManager::Impl::CurrentCoordinate( | ||||||
|          coordinate.longitude_            = trackedCoordinate.longitude(); |          coordinate.longitude_            = trackedCoordinate.longitude(); | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
|  |    else if (locationMethod == types::LocationMethod::RadarSite) | ||||||
|  |    { | ||||||
|  |       std::string siteId = | ||||||
|  |          settings::GeneralSettings::Instance().default_radar_site().GetValue(); | ||||||
|  |       auto radarSite = config::RadarSite::Get(siteId); | ||||||
|  |       coordinate.latitude_  = radarSite->latitude(); | ||||||
|  |       coordinate.longitude_ = radarSite->longitude(); | ||||||
|  |    } | ||||||
| 
 | 
 | ||||||
|    return coordinate; |    return coordinate; | ||||||
| } | } | ||||||
|  | @ -119,6 +128,8 @@ void AlertManager::Impl::HandleAlert(const types::TextEventKey& key, | ||||||
|       audioSettings.alert_location_method().GetValue()); |       audioSettings.alert_location_method().GetValue()); | ||||||
|    common::Coordinate currentCoordinate = CurrentCoordinate(locationMethod); |    common::Coordinate currentCoordinate = CurrentCoordinate(locationMethod); | ||||||
|    std::string        alertCounty = audioSettings.alert_county().GetValue(); |    std::string        alertCounty = audioSettings.alert_county().GetValue(); | ||||||
|  |    auto               alertRadius = | ||||||
|  |       units::length::meters<double>(audioSettings.alert_radius().GetValue()); | ||||||
| 
 | 
 | ||||||
|    auto message = textEventManager_->message_list(key).at(messageIndex); |    auto message = textEventManager_->message_list(key).at(messageIndex); | ||||||
| 
 | 
 | ||||||
|  | @ -146,22 +157,16 @@ void AlertManager::Impl::HandleAlert(const types::TextEventKey& key, | ||||||
|       bool activeAtLocation = (locationMethod == types::LocationMethod::All); |       bool activeAtLocation = (locationMethod == types::LocationMethod::All); | ||||||
| 
 | 
 | ||||||
|       if (locationMethod == types::LocationMethod::Fixed || |       if (locationMethod == types::LocationMethod::Fixed || | ||||||
|           locationMethod == types::LocationMethod::Track) |           locationMethod == types::LocationMethod::Track || | ||||||
|  |           locationMethod == types::LocationMethod::RadarSite) | ||||||
|       { |       { | ||||||
|          // Determine if the alert is active at the current coordinte
 |          // Determine if the alert is active at the current coordinte
 | ||||||
|          auto alertCoordinates = segment->codedLocation_->coordinates(); |          auto alertCoordinates = segment->codedLocation_->coordinates(); | ||||||
| 
 | 
 | ||||||
|          activeAtLocation = util::GeographicLib::AreaContainsPoint( |  | ||||||
|             alertCoordinates, currentCoordinate); |  | ||||||
|       } |  | ||||||
|       else if (locationMethod == types::LocationMethod::Radius) |  | ||||||
|       { |  | ||||||
|          auto alertCoordinates = segment->codedLocation_->coordinates(); |  | ||||||
| 
 |  | ||||||
|          activeAtLocation = util::GeographicLib::AreaInRangeOfPoint( |          activeAtLocation = util::GeographicLib::AreaInRangeOfPoint( | ||||||
|                alertCoordinates, |                alertCoordinates, | ||||||
|                currentCoordinate, |                currentCoordinate, | ||||||
|                units::length::meters<double>(1e6)); |                alertRadius); | ||||||
|       } |       } | ||||||
|       else if (locationMethod == types::LocationMethod::County) |       else if (locationMethod == types::LocationMethod::County) | ||||||
|       { |       { | ||||||
|  |  | ||||||
|  | @ -37,12 +37,16 @@ public: | ||||||
|       alertLocationMethod_.SetDefault(defaultAlertLocationMethodValue); |       alertLocationMethod_.SetDefault(defaultAlertLocationMethodValue); | ||||||
|       alertLatitude_.SetDefault(0.0); |       alertLatitude_.SetDefault(0.0); | ||||||
|       alertLongitude_.SetDefault(0.0); |       alertLongitude_.SetDefault(0.0); | ||||||
|  |       alertRadius_.SetDefault(0.0); | ||||||
|       ignoreMissingCodecs_.SetDefault(false); |       ignoreMissingCodecs_.SetDefault(false); | ||||||
| 
 | 
 | ||||||
|       alertLatitude_.SetMinimum(-90.0); |       alertLatitude_.SetMinimum(-90.0); | ||||||
|       alertLatitude_.SetMaximum(90.0); |       alertLatitude_.SetMaximum(90.0); | ||||||
|       alertLongitude_.SetMinimum(-180.0); |       alertLongitude_.SetMinimum(-180.0); | ||||||
|       alertLongitude_.SetMaximum(180.0); |       alertLongitude_.SetMaximum(180.0); | ||||||
|  |       alertRadius_.SetMinimum(0.0); | ||||||
|  |       alertRadius_.SetMaximum(9999999999); | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|       alertLocationMethod_.SetValidator( |       alertLocationMethod_.SetValidator( | ||||||
|          SCWX_SETTINGS_ENUM_VALIDATOR(types::LocationMethod, |          SCWX_SETTINGS_ENUM_VALIDATOR(types::LocationMethod, | ||||||
|  | @ -86,6 +90,7 @@ public: | ||||||
|    SettingsVariable<std::string> alertLocationMethod_ {"alert_location_method"}; |    SettingsVariable<std::string> alertLocationMethod_ {"alert_location_method"}; | ||||||
|    SettingsVariable<double>      alertLatitude_ {"alert_latitude"}; |    SettingsVariable<double>      alertLatitude_ {"alert_latitude"}; | ||||||
|    SettingsVariable<double>      alertLongitude_ {"alert_longitude"}; |    SettingsVariable<double>      alertLongitude_ {"alert_longitude"}; | ||||||
|  |    SettingsVariable<double>      alertRadius_ {"alert_radius"}; | ||||||
|    SettingsVariable<std::string> alertCounty_ {"alert_county"}; |    SettingsVariable<std::string> alertCounty_ {"alert_county"}; | ||||||
|    SettingsVariable<bool>        ignoreMissingCodecs_ {"ignore_missing_codecs"}; |    SettingsVariable<bool>        ignoreMissingCodecs_ {"ignore_missing_codecs"}; | ||||||
| 
 | 
 | ||||||
|  | @ -101,6 +106,7 @@ AudioSettings::AudioSettings() : | ||||||
|                       &p->alertLocationMethod_, |                       &p->alertLocationMethod_, | ||||||
|                       &p->alertLatitude_, |                       &p->alertLatitude_, | ||||||
|                       &p->alertLongitude_, |                       &p->alertLongitude_, | ||||||
|  |                       &p->alertRadius_, | ||||||
|                       &p->alertCounty_, |                       &p->alertCounty_, | ||||||
|                       &p->ignoreMissingCodecs_}); |                       &p->ignoreMissingCodecs_}); | ||||||
|    RegisterVariables(p->variables_); |    RegisterVariables(p->variables_); | ||||||
|  | @ -133,6 +139,11 @@ SettingsVariable<double>& AudioSettings::alert_longitude() const | ||||||
|    return p->alertLongitude_; |    return p->alertLongitude_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | SettingsVariable<double>& AudioSettings::alert_radius() const | ||||||
|  | { | ||||||
|  |    return p->alertRadius_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| SettingsVariable<std::string>& AudioSettings::alert_county() const | SettingsVariable<std::string>& AudioSettings::alert_county() const | ||||||
| { | { | ||||||
|    return p->alertCounty_; |    return p->alertCounty_; | ||||||
|  | @ -166,6 +177,7 @@ bool operator==(const AudioSettings& lhs, const AudioSettings& rhs) | ||||||
|            lhs.p->alertLocationMethod_ == rhs.p->alertLocationMethod_ && |            lhs.p->alertLocationMethod_ == rhs.p->alertLocationMethod_ && | ||||||
|            lhs.p->alertLatitude_ == rhs.p->alertLatitude_ && |            lhs.p->alertLatitude_ == rhs.p->alertLatitude_ && | ||||||
|            lhs.p->alertLongitude_ == rhs.p->alertLongitude_ && |            lhs.p->alertLongitude_ == rhs.p->alertLongitude_ && | ||||||
|  |            lhs.p->alertRadius_ == rhs.p->alertRadius_ && | ||||||
|            lhs.p->alertCounty_ == rhs.p->alertCounty_ && |            lhs.p->alertCounty_ == rhs.p->alertCounty_ && | ||||||
|            lhs.p->alertEnabled_ == rhs.p->alertEnabled_); |            lhs.p->alertEnabled_ == rhs.p->alertEnabled_); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ public: | ||||||
|    SettingsVariable<std::string>& alert_location_method() const; |    SettingsVariable<std::string>& alert_location_method() const; | ||||||
|    SettingsVariable<double>&      alert_latitude() const; |    SettingsVariable<double>&      alert_latitude() const; | ||||||
|    SettingsVariable<double>&      alert_longitude() const; |    SettingsVariable<double>&      alert_longitude() const; | ||||||
|  |    SettingsVariable<double>&      alert_radius() const; | ||||||
|    SettingsVariable<std::string>& alert_county() const; |    SettingsVariable<std::string>& alert_county() const; | ||||||
|    SettingsVariable<bool>& alert_enabled(awips::Phenomenon phenomenon) const; |    SettingsVariable<bool>& alert_enabled(awips::Phenomenon phenomenon) const; | ||||||
|    SettingsVariable<bool>& ignore_missing_codecs() const; |    SettingsVariable<bool>& ignore_missing_codecs() const; | ||||||
|  |  | ||||||
|  | @ -14,8 +14,8 @@ namespace types | ||||||
| 
 | 
 | ||||||
| static const std::unordered_map<LocationMethod, std::string> | static const std::unordered_map<LocationMethod, std::string> | ||||||
|    locationMethodName_ {{LocationMethod::Fixed, "Fixed"}, |    locationMethodName_ {{LocationMethod::Fixed, "Fixed"}, | ||||||
|                         {LocationMethod::Radius, "Radius"}, |  | ||||||
|                         {LocationMethod::Track, "Track"}, |                         {LocationMethod::Track, "Track"}, | ||||||
|  |                         {LocationMethod::RadarSite, "RadarSite"}, | ||||||
|                         {LocationMethod::County, "County"}, |                         {LocationMethod::County, "County"}, | ||||||
|                         {LocationMethod::All, "All"}, |                         {LocationMethod::All, "All"}, | ||||||
|                         {LocationMethod::Unknown, "?"}}; |                         {LocationMethod::Unknown, "?"}}; | ||||||
|  |  | ||||||
|  | @ -14,8 +14,8 @@ namespace types | ||||||
| enum class LocationMethod | enum class LocationMethod | ||||||
| { | { | ||||||
|    Fixed, |    Fixed, | ||||||
|    Radius, |  | ||||||
|    Track, |    Track, | ||||||
|  |    RadarSite, | ||||||
|    County, |    County, | ||||||
|    All, |    All, | ||||||
|    Unknown |    Unknown | ||||||
|  |  | ||||||
|  | @ -134,6 +134,7 @@ public: | ||||||
|           &alertAudioLocationMethod_, |           &alertAudioLocationMethod_, | ||||||
|           &alertAudioLatitude_, |           &alertAudioLatitude_, | ||||||
|           &alertAudioLongitude_, |           &alertAudioLongitude_, | ||||||
|  |           &alertAudioRadius_, | ||||||
|           &alertAudioCounty_, |           &alertAudioCounty_, | ||||||
|           &hoverTextWrap_, |           &hoverTextWrap_, | ||||||
|           &tooltipMethod_, |           &tooltipMethod_, | ||||||
|  | @ -252,6 +253,7 @@ public: | ||||||
|    settings::SettingsInterface<std::string> alertAudioLocationMethod_ {}; |    settings::SettingsInterface<std::string> alertAudioLocationMethod_ {}; | ||||||
|    settings::SettingsInterface<double>      alertAudioLatitude_ {}; |    settings::SettingsInterface<double>      alertAudioLatitude_ {}; | ||||||
|    settings::SettingsInterface<double>      alertAudioLongitude_ {}; |    settings::SettingsInterface<double>      alertAudioLongitude_ {}; | ||||||
|  |    settings::SettingsInterface<double>      alertAudioRadius_ {}; | ||||||
|    settings::SettingsInterface<std::string> alertAudioCounty_ {}; |    settings::SettingsInterface<std::string> alertAudioCounty_ {}; | ||||||
| 
 | 
 | ||||||
|    std::unordered_map<awips::Phenomenon, settings::SettingsInterface<bool>> |    std::unordered_map<awips::Phenomenon, settings::SettingsInterface<bool>> | ||||||
|  | @ -474,6 +476,7 @@ void SettingsDialogImpl::ConnectSignals() | ||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|          case QDialogButtonBox::ButtonRole::ResetRole: // Restore Defaults
 |          case QDialogButtonBox::ButtonRole::ResetRole: // Restore Defaults
 | ||||||
|  |             logger_->info("ButtonRole Reset"); | ||||||
|             ResetToDefault(); |             ResetToDefault(); | ||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|  | @ -900,6 +903,10 @@ void SettingsDialogImpl::SetupAudioTab() | ||||||
| 
 | 
 | ||||||
|          bool coordinateEntryEnabled = |          bool coordinateEntryEnabled = | ||||||
|             locationMethod == types::LocationMethod::Fixed; |             locationMethod == types::LocationMethod::Fixed; | ||||||
|  |          bool radiusEntryEnable = | ||||||
|  |             locationMethod == types::LocationMethod::Fixed || | ||||||
|  |             locationMethod == types::LocationMethod::Track || | ||||||
|  |             locationMethod == types::LocationMethod::RadarSite; | ||||||
|          bool countyEntryEnabled = |          bool countyEntryEnabled = | ||||||
|             locationMethod == types::LocationMethod::County; |             locationMethod == types::LocationMethod::County; | ||||||
| 
 | 
 | ||||||
|  | @ -912,6 +919,11 @@ void SettingsDialogImpl::SetupAudioTab() | ||||||
|          self_->ui->resetAlertAudioLongitudeButton->setEnabled( |          self_->ui->resetAlertAudioLongitudeButton->setEnabled( | ||||||
|             coordinateEntryEnabled); |             coordinateEntryEnabled); | ||||||
| 
 | 
 | ||||||
|  |          self_->ui->alertAudioRadiusSpinBox->setEnabled( | ||||||
|  |             radiusEntryEnable); | ||||||
|  |          self_->ui->resetAlertAudioRadiusButton->setEnabled( | ||||||
|  |             radiusEntryEnable); | ||||||
|  | 
 | ||||||
|          self_->ui->alertAudioCountyLineEdit->setEnabled(countyEntryEnabled); |          self_->ui->alertAudioCountyLineEdit->setEnabled(countyEntryEnabled); | ||||||
|          self_->ui->alertAudioCountySelectButton->setEnabled( |          self_->ui->alertAudioCountySelectButton->setEnabled( | ||||||
|             countyEntryEnabled); |             countyEntryEnabled); | ||||||
|  | @ -983,6 +995,11 @@ void SettingsDialogImpl::SetupAudioTab() | ||||||
|    alertAudioLongitude_.SetResetButton( |    alertAudioLongitude_.SetResetButton( | ||||||
|       self_->ui->resetAlertAudioLongitudeButton); |       self_->ui->resetAlertAudioLongitudeButton); | ||||||
| 
 | 
 | ||||||
|  |    alertAudioRadius_.SetSettingsVariable(audioSettings.alert_radius()); | ||||||
|  |    alertAudioRadius_.SetEditWidget(self_->ui->alertAudioRadiusSpinBox); | ||||||
|  |    alertAudioRadius_.SetResetButton( | ||||||
|  |       self_->ui->resetAlertAudioRadiusButton); | ||||||
|  | 
 | ||||||
|    auto& alertAudioPhenomena = types::GetAlertAudioPhenomena(); |    auto& alertAudioPhenomena = types::GetAlertAudioPhenomena(); | ||||||
|    auto  alertAudioLayout = |    auto  alertAudioLayout = | ||||||
|       static_cast<QGridLayout*>(self_->ui->alertAudioGroupBox->layout()); |       static_cast<QGridLayout*>(self_->ui->alertAudioGroupBox->layout()); | ||||||
|  |  | ||||||
|  | @ -698,6 +698,62 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|  |               <item row="0" column="1" colspan="2"> | ||||||
|  |                <widget class="QLineEdit" name="alertAudioSoundLineEdit"/> | ||||||
|  |               </item> | ||||||
|  |               <item row="2" column="6"> | ||||||
|  |                <widget class="QToolButton" name="resetAlertAudioLatitudeButton"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>...</string> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="icon"> | ||||||
|  |                  <iconset resource="../../../../scwx-qt.qrc"> | ||||||
|  |                   <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="0" column="5"> | ||||||
|  |                <widget class="QToolButton" name="alertAudioSoundStopButton"> | ||||||
|  |                 <property name="icon"> | ||||||
|  |                  <iconset resource="../../../../scwx-qt.qrc"> | ||||||
|  |                   <normaloff>:/res/icons/font-awesome-6/stop-solid.svg</normaloff>:/res/icons/font-awesome-6/stop-solid.svg</iconset> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="3" column="1" colspan="2"> | ||||||
|  |                <widget class="QDoubleSpinBox" name="alertAudioLongitudeSpinBox"> | ||||||
|  |                 <property name="decimals"> | ||||||
|  |                  <number>4</number> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="minimum"> | ||||||
|  |                  <double>-180.000000000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="maximum"> | ||||||
|  |                  <double>180.000000000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="singleStep"> | ||||||
|  |                  <double>0.000100000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="5" column="3"> | ||||||
|  |                <widget class="QToolButton" name="alertAudioCountySelectButton"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>...</string> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="0" column="6"> | ||||||
|  |                <widget class="QToolButton" name="resetAlertAudioSoundButton"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>...</string> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="icon"> | ||||||
|  |                  <iconset resource="../../../../scwx-qt.qrc"> | ||||||
|  |                   <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|               <item row="1" column="6"> |               <item row="1" column="6"> | ||||||
|                <widget class="QToolButton" name="resetAlertAudioLocationMethodButton"> |                <widget class="QToolButton" name="resetAlertAudioLocationMethodButton"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|  | @ -709,6 +765,30 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|  |               <item row="0" column="4"> | ||||||
|  |                <widget class="QToolButton" name="alertAudioSoundTestButton"> | ||||||
|  |                 <property name="icon"> | ||||||
|  |                  <iconset resource="../../../../scwx-qt.qrc"> | ||||||
|  |                   <normaloff>:/res/icons/font-awesome-6/play-solid.svg</normaloff>:/res/icons/font-awesome-6/play-solid.svg</iconset> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="2" column="1" colspan="2"> | ||||||
|  |                <widget class="QDoubleSpinBox" name="alertAudioLatitudeSpinBox"> | ||||||
|  |                 <property name="decimals"> | ||||||
|  |                  <number>4</number> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="minimum"> | ||||||
|  |                  <double>-90.000000000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="maximum"> | ||||||
|  |                  <double>90.000000000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="singleStep"> | ||||||
|  |                  <double>0.000100000000000</double> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|               <item row="3" column="0"> |               <item row="3" column="0"> | ||||||
|                <widget class="QLabel" name="label_16"> |                <widget class="QLabel" name="label_16"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|  | @ -716,6 +796,13 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|  |               <item row="5" column="0"> | ||||||
|  |                <widget class="QLabel" name="label_19"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>County</string> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|               <item row="0" column="3"> |               <item row="0" column="3"> | ||||||
|                <widget class="QToolButton" name="alertAudioSoundSelectButton"> |                <widget class="QToolButton" name="alertAudioSoundSelectButton"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|  | @ -723,6 +810,60 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|  |               <item row="1" column="1" colspan="2"> | ||||||
|  |                <widget class="QComboBox" name="alertAudioLocationMethodComboBox"> | ||||||
|  |                 <property name="sizePolicy"> | ||||||
|  |                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> | ||||||
|  |                   <horstretch>0</horstretch> | ||||||
|  |                   <verstretch>0</verstretch> | ||||||
|  |                  </sizepolicy> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="5" column="6"> | ||||||
|  |                <widget class="QToolButton" name="resetAlertAudioCountyButton"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>...</string> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="icon"> | ||||||
|  |                  <iconset resource="../../../../scwx-qt.qrc"> | ||||||
|  |                   <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="0" column="0"> | ||||||
|  |                <widget class="QLabel" name="label_17"> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string>Sound</string> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="5" column="2"> | ||||||
|  |                <widget class="QLabel" name="alertAudioCountyLabel"> | ||||||
|  |                 <property name="sizePolicy"> | ||||||
|  |                  <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> | ||||||
|  |                   <horstretch>0</horstretch> | ||||||
|  |                   <verstretch>0</verstretch> | ||||||
|  |                  </sizepolicy> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="text"> | ||||||
|  |                  <string/> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|  |               <item row="5" column="1"> | ||||||
|  |                <widget class="QLineEdit" name="alertAudioCountyLineEdit"> | ||||||
|  |                 <property name="sizePolicy"> | ||||||
|  |                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> | ||||||
|  |                   <horstretch>0</horstretch> | ||||||
|  |                   <verstretch>0</verstretch> | ||||||
|  |                  </sizepolicy> | ||||||
|  |                 </property> | ||||||
|  |                 <property name="readOnly"> | ||||||
|  |                  <bool>true</bool> | ||||||
|  |                 </property> | ||||||
|  |                </widget> | ||||||
|  |               </item> | ||||||
|               <item row="1" column="0"> |               <item row="1" column="0"> | ||||||
|                <widget class="QLabel" name="label_12"> |                <widget class="QLabel" name="label_12"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|  | @ -741,105 +882,31 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|               <item row="0" column="5"> |  | ||||||
|                <widget class="QToolButton" name="alertAudioSoundStopButton"> |  | ||||||
|                 <property name="icon"> |  | ||||||
|                  <iconset resource="../../../../scwx-qt.qrc"> |  | ||||||
|                   <normaloff>:/res/icons/font-awesome-6/stop-solid.svg</normaloff>:/res/icons/font-awesome-6/stop-solid.svg</iconset> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="2" column="6"> |  | ||||||
|                <widget class="QToolButton" name="resetAlertAudioLatitudeButton"> |  | ||||||
|                 <property name="text"> |  | ||||||
|                  <string>...</string> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="icon"> |  | ||||||
|                  <iconset resource="../../../../scwx-qt.qrc"> |  | ||||||
|                   <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="0" column="6"> |  | ||||||
|                <widget class="QToolButton" name="resetAlertAudioSoundButton"> |  | ||||||
|                 <property name="text"> |  | ||||||
|                  <string>...</string> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="icon"> |  | ||||||
|                  <iconset resource="../../../../scwx-qt.qrc"> |  | ||||||
|                   <normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="0" column="4"> |  | ||||||
|                <widget class="QToolButton" name="alertAudioSoundTestButton"> |  | ||||||
|                 <property name="icon"> |  | ||||||
|                  <iconset resource="../../../../scwx-qt.qrc"> |  | ||||||
|                   <normaloff>:/res/icons/font-awesome-6/play-solid.svg</normaloff>:/res/icons/font-awesome-6/play-solid.svg</iconset> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="0" column="0"> |  | ||||||
|                <widget class="QLabel" name="label_17"> |  | ||||||
|                 <property name="text"> |  | ||||||
|                  <string>Sound</string> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="4" column="0"> |               <item row="4" column="0"> | ||||||
|                <widget class="QLabel" name="label_19"> |                <widget class="QLabel" name="label_28"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|                  <string>County</string> |                  <string>Radius</string> | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|               <item row="3" column="1" colspan="2"> |               <item row="4" column="1" colspan="2"> | ||||||
|                <widget class="QDoubleSpinBox" name="alertAudioLongitudeSpinBox"> |                <widget class="QDoubleSpinBox" name="alertAudioRadiusSpinBox"> | ||||||
|                 <property name="decimals"> |                 <property name="decimals"> | ||||||
|                  <number>4</number> |                  <number>4</number> | ||||||
|                 </property> |                 </property> | ||||||
|                 <property name="minimum"> |                 <property name="minimum"> | ||||||
|                  <double>-180.000000000000000</double> |                  <double>0.000000000000000</double> | ||||||
|                 </property> |                 </property> | ||||||
|                 <property name="maximum"> |                 <property name="maximum"> | ||||||
|                  <double>180.000000000000000</double> |                  <double>9999999999999.000000000000000</double> | ||||||
|                 </property> |                 </property> | ||||||
|                 <property name="singleStep"> |                 <property name="singleStep"> | ||||||
|                  <double>0.000100000000000</double> |                  <double>0.010000000000000</double> | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|               <item row="2" column="1" colspan="2"> |  | ||||||
|                <widget class="QDoubleSpinBox" name="alertAudioLatitudeSpinBox"> |  | ||||||
|                 <property name="decimals"> |  | ||||||
|                  <number>4</number> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="minimum"> |  | ||||||
|                  <double>-90.000000000000000</double> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="maximum"> |  | ||||||
|                  <double>90.000000000000000</double> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="singleStep"> |  | ||||||
|                  <double>0.000100000000000</double> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="1" column="1" colspan="2"> |  | ||||||
|                <widget class="QComboBox" name="alertAudioLocationMethodComboBox"> |  | ||||||
|                 <property name="sizePolicy"> |  | ||||||
|                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> |  | ||||||
|                   <horstretch>0</horstretch> |  | ||||||
|                   <verstretch>0</verstretch> |  | ||||||
|                  </sizepolicy> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="0" column="1" colspan="2"> |  | ||||||
|                <widget class="QLineEdit" name="alertAudioSoundLineEdit"/> |  | ||||||
|               </item> |  | ||||||
|               <item row="4" column="6"> |               <item row="4" column="6"> | ||||||
|                <widget class="QToolButton" name="resetAlertAudioCountyButton"> |                <widget class="QToolButton" name="resetAlertAudioRadiusButton"> | ||||||
|                 <property name="text"> |                 <property name="text"> | ||||||
|                  <string>...</string> |                  <string>...</string> | ||||||
|                 </property> |                 </property> | ||||||
|  | @ -849,39 +916,6 @@ | ||||||
|                 </property> |                 </property> | ||||||
|                </widget> |                </widget> | ||||||
|               </item> |               </item> | ||||||
|               <item row="4" column="3"> |  | ||||||
|                <widget class="QToolButton" name="alertAudioCountySelectButton"> |  | ||||||
|                 <property name="text"> |  | ||||||
|                  <string>...</string> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="4" column="2"> |  | ||||||
|                <widget class="QLabel" name="alertAudioCountyLabel"> |  | ||||||
|                 <property name="sizePolicy"> |  | ||||||
|                  <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> |  | ||||||
|                   <horstretch>0</horstretch> |  | ||||||
|                   <verstretch>0</verstretch> |  | ||||||
|                  </sizepolicy> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="text"> |  | ||||||
|                  <string/> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|               <item row="4" column="1"> |  | ||||||
|                <widget class="QLineEdit" name="alertAudioCountyLineEdit"> |  | ||||||
|                 <property name="sizePolicy"> |  | ||||||
|                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> |  | ||||||
|                   <horstretch>0</horstretch> |  | ||||||
|                   <verstretch>0</verstretch> |  | ||||||
|                  </sizepolicy> |  | ||||||
|                 </property> |  | ||||||
|                 <property name="readOnly"> |  | ||||||
|                  <bool>true</bool> |  | ||||||
|                 </property> |  | ||||||
|                </widget> |  | ||||||
|               </item> |  | ||||||
|              </layout> |              </layout> | ||||||
|             </widget> |             </widget> | ||||||
|            </item> |            </item> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AdenKoperczak
						AdenKoperczak