mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	Fix another issue with station details not being saved
Due to what appears to be a Qt bug, any in progress user edit to a table fields is not updated in the underlying data models until QDialog::accept() is called, this means that model validation before calling QDialog::accept() is tricky. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5164 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									f7b0d3904a
								
							
						
					
					
						commit
						177aaef501
					
				| @ -1490,6 +1490,13 @@ void Configuration::impl::accept () | ||||
|     { | ||||
|       return;			// not accepting
 | ||||
|     } | ||||
| 
 | ||||
|   QDialog::accept();            // do this before accessing custom
 | ||||
|                                 // models so that any changes in
 | ||||
|                                 // delegates in views get flushed to
 | ||||
|                                 // the underlying models before we
 | ||||
|                                 // access them
 | ||||
| 
 | ||||
|   sync_transceiver (true);	// force an update
 | ||||
| 
 | ||||
|   //
 | ||||
| @ -1637,8 +1644,6 @@ void Configuration::impl::accept () | ||||
|     } | ||||
|   | ||||
|   write_settings ();		// make visible to all
 | ||||
| 
 | ||||
|   QDialog::accept(); | ||||
| } | ||||
| 
 | ||||
| void Configuration::impl::reject () | ||||
|  | ||||
| @ -58,7 +58,6 @@ FrequencyList::FrequencyList (Frequencies frequencies, QObject * parent) | ||||
|   : QSortFilterProxyModel {parent} | ||||
|   , m_ {frequencies, parent} | ||||
| { | ||||
|   // setDynamicSortFilter (true);
 | ||||
|   setSourceModel (&*m_); | ||||
|   setSortRole (SortRole); | ||||
| } | ||||
| @ -73,9 +72,8 @@ FrequencyList& FrequencyList::operator = (Frequencies frequencies) | ||||
|   return *this; | ||||
| } | ||||
| 
 | ||||
| auto FrequencyList::frequencies () -> Frequencies | ||||
| auto FrequencyList::frequencies () const -> Frequencies | ||||
| { | ||||
|   submit (); | ||||
|   return m_->frequencies (); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -41,7 +41,7 @@ public: | ||||
| 
 | ||||
|   // Load and store contents
 | ||||
|   FrequencyList& operator = (Frequencies); | ||||
|   Frequencies frequencies (); | ||||
|   Frequencies frequencies () const; | ||||
| 
 | ||||
|   // Model API
 | ||||
|   QModelIndex add (Frequency); | ||||
|  | ||||
| @ -119,7 +119,6 @@ StationList::StationList (Bands const * bands, Stations stations, QObject * pare | ||||
|   : QSortFilterProxyModel {parent} | ||||
|   , m_ {bands, stations, parent} | ||||
| { | ||||
|   // setDynamicSortFilter (true);
 | ||||
|   setSourceModel (&*m_); | ||||
|   setSortRole (SortRole); | ||||
| } | ||||
| @ -134,9 +133,8 @@ StationList& StationList::operator = (Stations stations) | ||||
|   return *this; | ||||
| } | ||||
| 
 | ||||
| auto StationList::stations () -> Stations | ||||
| auto StationList::stations () const -> Stations | ||||
| { | ||||
|   submit (); | ||||
|   return m_->stations (); | ||||
| } | ||||
| 
 | ||||
| @ -432,6 +430,7 @@ bool StationList::impl::setData (QModelIndex const& model_index, QVariant const& | ||||
| 
 | ||||
|         case 2: | ||||
|           stations_[row].antenna_description_ = value.toString (); | ||||
|           qDebug () << "stations edited:" << stations_; | ||||
|           Q_EMIT dataChanged (model_index, model_index, roles); | ||||
|           changed = true; | ||||
|           break; | ||||
|  | ||||
| @ -65,7 +65,7 @@ public: | ||||
| 
 | ||||
|   // Load and store contents.
 | ||||
|   StationList& operator = (Stations); | ||||
|   Stations stations (); | ||||
|   Stations stations () const; | ||||
| 
 | ||||
|   //
 | ||||
|   // Model API
 | ||||
| @ -83,6 +83,10 @@ private: | ||||
|   pimpl<impl> m_; | ||||
| }; | ||||
| 
 | ||||
| #if !defined (QT_NO_DEBUG_STREAM) | ||||
| QDebug operator << (QDebug debug, StationList::Station const&); | ||||
| #endif | ||||
| 
 | ||||
| // Station equivalence
 | ||||
| inline | ||||
| bool operator == (StationList::Station const& lhs, StationList::Station const& rhs) | ||||
| @ -95,8 +99,4 @@ bool operator == (StationList::Station const& lhs, StationList::Station const& r | ||||
| Q_DECLARE_METATYPE (StationList::Station); | ||||
| Q_DECLARE_METATYPE (StationList::Stations); | ||||
| 
 | ||||
| #if !defined (QT_NO_DEBUG_STREAM) | ||||
| QDebug operator << (QDebug debug, StationList::Station const&); | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user