mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-29 07:39:43 -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
|
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
|
sync_transceiver (true); // force an update
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1637,8 +1644,6 @@ void Configuration::impl::accept ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
write_settings (); // make visible to all
|
write_settings (); // make visible to all
|
||||||
|
|
||||||
QDialog::accept();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Configuration::impl::reject ()
|
void Configuration::impl::reject ()
|
||||||
|
@ -58,7 +58,6 @@ FrequencyList::FrequencyList (Frequencies frequencies, QObject * parent)
|
|||||||
: QSortFilterProxyModel {parent}
|
: QSortFilterProxyModel {parent}
|
||||||
, m_ {frequencies, parent}
|
, m_ {frequencies, parent}
|
||||||
{
|
{
|
||||||
// setDynamicSortFilter (true);
|
|
||||||
setSourceModel (&*m_);
|
setSourceModel (&*m_);
|
||||||
setSortRole (SortRole);
|
setSortRole (SortRole);
|
||||||
}
|
}
|
||||||
@ -73,9 +72,8 @@ FrequencyList& FrequencyList::operator = (Frequencies frequencies)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto FrequencyList::frequencies () -> Frequencies
|
auto FrequencyList::frequencies () const -> Frequencies
|
||||||
{
|
{
|
||||||
submit ();
|
|
||||||
return m_->frequencies ();
|
return m_->frequencies ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
|
|
||||||
// Load and store contents
|
// Load and store contents
|
||||||
FrequencyList& operator = (Frequencies);
|
FrequencyList& operator = (Frequencies);
|
||||||
Frequencies frequencies ();
|
Frequencies frequencies () const;
|
||||||
|
|
||||||
// Model API
|
// Model API
|
||||||
QModelIndex add (Frequency);
|
QModelIndex add (Frequency);
|
||||||
|
@ -119,7 +119,6 @@ StationList::StationList (Bands const * bands, Stations stations, QObject * pare
|
|||||||
: QSortFilterProxyModel {parent}
|
: QSortFilterProxyModel {parent}
|
||||||
, m_ {bands, stations, parent}
|
, m_ {bands, stations, parent}
|
||||||
{
|
{
|
||||||
// setDynamicSortFilter (true);
|
|
||||||
setSourceModel (&*m_);
|
setSourceModel (&*m_);
|
||||||
setSortRole (SortRole);
|
setSortRole (SortRole);
|
||||||
}
|
}
|
||||||
@ -134,9 +133,8 @@ StationList& StationList::operator = (Stations stations)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto StationList::stations () -> Stations
|
auto StationList::stations () const -> Stations
|
||||||
{
|
{
|
||||||
submit ();
|
|
||||||
return m_->stations ();
|
return m_->stations ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,6 +430,7 @@ bool StationList::impl::setData (QModelIndex const& model_index, QVariant const&
|
|||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
stations_[row].antenna_description_ = value.toString ();
|
stations_[row].antenna_description_ = value.toString ();
|
||||||
|
qDebug () << "stations edited:" << stations_;
|
||||||
Q_EMIT dataChanged (model_index, model_index, roles);
|
Q_EMIT dataChanged (model_index, model_index, roles);
|
||||||
changed = true;
|
changed = true;
|
||||||
break;
|
break;
|
||||||
|
@ -65,7 +65,7 @@ public:
|
|||||||
|
|
||||||
// Load and store contents.
|
// Load and store contents.
|
||||||
StationList& operator = (Stations);
|
StationList& operator = (Stations);
|
||||||
Stations stations ();
|
Stations stations () const;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Model API
|
// Model API
|
||||||
@ -83,6 +83,10 @@ private:
|
|||||||
pimpl<impl> m_;
|
pimpl<impl> m_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if !defined (QT_NO_DEBUG_STREAM)
|
||||||
|
QDebug operator << (QDebug debug, StationList::Station const&);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Station equivalence
|
// Station equivalence
|
||||||
inline
|
inline
|
||||||
bool operator == (StationList::Station const& lhs, StationList::Station const& rhs)
|
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::Station);
|
||||||
Q_DECLARE_METATYPE (StationList::Stations);
|
Q_DECLARE_METATYPE (StationList::Stations);
|
||||||
|
|
||||||
#if !defined (QT_NO_DEBUG_STREAM)
|
|
||||||
QDebug operator << (QDebug debug, StationList::Station const&);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user