mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 13:48:42 -05: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…
Reference in New Issue
Block a user