mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 01:40:04 +00:00 
			
		
		
		
	emit dataChanged signal on distance recalculation for proper resorting of radar site list
This commit is contained in:
		
							parent
							
								
									36eaea466e
								
							
						
					
					
						commit
						1811236cae
					
				
					 1 changed files with 30 additions and 17 deletions
				
			
		|  | @ -18,6 +18,14 @@ namespace model | ||||||
| static const std::string logPrefix_ = "scwx::qt::model::radar_site_model"; | static const std::string logPrefix_ = "scwx::qt::model::radar_site_model"; | ||||||
| static const auto        logger_    = scwx::util::Logger::Create(logPrefix_); | static const auto        logger_    = scwx::util::Logger::Create(logPrefix_); | ||||||
| 
 | 
 | ||||||
|  | static constexpr size_t kColumnSiteId    = 0u; | ||||||
|  | static constexpr size_t kColumnPlace     = 1u; | ||||||
|  | static constexpr size_t kColumnState     = 2u; | ||||||
|  | static constexpr size_t kColumnCountry   = 3u; | ||||||
|  | static constexpr size_t kColumnLatitude  = 4u; | ||||||
|  | static constexpr size_t kColumnLongitude = 5u; | ||||||
|  | static constexpr size_t kColumnType      = 6u; | ||||||
|  | static constexpr size_t kColumnDistance  = 7u; | ||||||
| static constexpr size_t kNumColumns      = 8u; | static constexpr size_t kNumColumns      = 8u; | ||||||
| 
 | 
 | ||||||
| class RadarSiteModelImpl | class RadarSiteModelImpl | ||||||
|  | @ -61,15 +69,15 @@ QVariant RadarSiteModel::data(const QModelIndex& index, int role) const | ||||||
| 
 | 
 | ||||||
|       switch (index.column()) |       switch (index.column()) | ||||||
|       { |       { | ||||||
|       case 0: |       case kColumnSiteId: | ||||||
|          return QString::fromStdString(site->id()); |          return QString::fromStdString(site->id()); | ||||||
|       case 1: |       case kColumnPlace: | ||||||
|          return QString::fromStdString(site->place()); |          return QString::fromStdString(site->place()); | ||||||
|       case 2: |       case kColumnState: | ||||||
|          return QString::fromStdString(site->state()); |          return QString::fromStdString(site->state()); | ||||||
|       case 3: |       case kColumnCountry: | ||||||
|          return QString::fromStdString(site->country()); |          return QString::fromStdString(site->country()); | ||||||
|       case 4: |       case kColumnLatitude: | ||||||
|          if (role == Qt::DisplayRole) |          if (role == Qt::DisplayRole) | ||||||
|          { |          { | ||||||
|             return QString::fromStdString( |             return QString::fromStdString( | ||||||
|  | @ -79,7 +87,7 @@ QVariant RadarSiteModel::data(const QModelIndex& index, int role) const | ||||||
|          { |          { | ||||||
|             return site->latitude(); |             return site->latitude(); | ||||||
|          } |          } | ||||||
|       case 5: |       case kColumnLongitude: | ||||||
|          if (role == Qt::DisplayRole) |          if (role == Qt::DisplayRole) | ||||||
|          { |          { | ||||||
|             return QString::fromStdString( |             return QString::fromStdString( | ||||||
|  | @ -89,9 +97,9 @@ QVariant RadarSiteModel::data(const QModelIndex& index, int role) const | ||||||
|          { |          { | ||||||
|             return site->longitude(); |             return site->longitude(); | ||||||
|          } |          } | ||||||
|       case 6: |       case kColumnType: | ||||||
|          return QString::fromStdString(site->type_name()); |          return QString::fromStdString(site->type_name()); | ||||||
|       case 7: |       case kColumnDistance: | ||||||
|          if (role == Qt::DisplayRole) |          if (role == Qt::DisplayRole) | ||||||
|          { |          { | ||||||
|             if (p->distanceDisplay_ == scwx::common::DistanceType::Miles) |             if (p->distanceDisplay_ == scwx::common::DistanceType::Miles) | ||||||
|  | @ -129,21 +137,21 @@ QVariant RadarSiteModel::headerData(int             section, | ||||||
|       { |       { | ||||||
|          switch (section) |          switch (section) | ||||||
|          { |          { | ||||||
|          case 0: |          case kColumnSiteId: | ||||||
|             return tr("Site ID"); |             return tr("Site ID"); | ||||||
|          case 1: |          case kColumnPlace: | ||||||
|             return tr("Place"); |             return tr("Place"); | ||||||
|          case 2: |          case kColumnState: | ||||||
|             return tr("State"); |             return tr("State"); | ||||||
|          case 3: |          case kColumnCountry: | ||||||
|             return tr("Country"); |             return tr("Country"); | ||||||
|          case 4: |          case kColumnLatitude: | ||||||
|             return tr("Latitude"); |             return tr("Latitude"); | ||||||
|          case 5: |          case kColumnLongitude: | ||||||
|             return tr("Longitude"); |             return tr("Longitude"); | ||||||
|          case 6: |          case kColumnType: | ||||||
|             return tr("Type"); |             return tr("Type"); | ||||||
|          case 7: |          case kColumnDistance: | ||||||
|             return tr("Distance"); |             return tr("Distance"); | ||||||
|          default: |          default: | ||||||
|             break; |             break; | ||||||
|  | @ -169,6 +177,11 @@ void RadarSiteModel::HandleMapUpdate(double latitude, double longitude) | ||||||
|                            distanceInMeters); |                            distanceInMeters); | ||||||
|       p->distanceMap_[site->id()] = distanceInMeters; |       p->distanceMap_[site->id()] = distanceInMeters; | ||||||
|    } |    } | ||||||
|  | 
 | ||||||
|  |    QModelIndex topLeft     = createIndex(0, kColumnDistance); | ||||||
|  |    QModelIndex bottomRight = createIndex(rowCount() - 1, kColumnDistance); | ||||||
|  | 
 | ||||||
|  |    emit dataChanged(topLeft, bottomRight); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| RadarSiteModelImpl::RadarSiteModelImpl() : | RadarSiteModelImpl::RadarSiteModelImpl() : | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat