refs #560, allow to load / save from view/model

* added load/save functions
* changed menu from multiple bool members to flag
* shortcut for save
* cleaned up filter dialog handling
This commit is contained in:
Klaus Basan
2015-12-19 03:37:13 +01:00
parent 8aa449bc13
commit 9fcc846b7a
7 changed files with 226 additions and 54 deletions

View File

@@ -604,6 +604,18 @@ namespace BlackGui
return mimeData;
}
template <typename ObjectType, typename ContainerType, bool UseCompare>
QJsonObject CListModelBase<ObjectType, ContainerType, UseCompare>::toJson() const
{
return container().toJson();
}
template <typename ObjectType, typename ContainerType, bool UseCompare>
QString CListModelBase<ObjectType, ContainerType, UseCompare>::toJsonString(QJsonDocument::JsonFormat format) const
{
return container().toJsonString(format);
}
// see here for the reason of thess forward instantiations
// http://www.parashift.com/c++-faq/separate-template-class-defn-from-decl.html
template class CListModelBase<BlackMisc::Aviation::CLivery, BlackMisc::Aviation::CLiveryList, true>;

View File

@@ -100,6 +100,12 @@ namespace BlackGui
//! \note Meant for scenarios where the container is directly updated and a subsequent signal is required
void sendDataChanged(int startRowIndex, int endRowIndex);
//! Convert to JSON
virtual QJsonObject toJson() const = 0;
//! Convert to JSON string
virtual QString toJsonString(QJsonDocument::JsonFormat format = QJsonDocument::Indented) const = 0;
signals:
//! Asynchronous update finished
void asyncUpdateFinished();
@@ -225,6 +231,12 @@ namespace BlackGui
//! \copydoc QStandardItemModel::mimeData
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override;
//! \copydoc CListModelBaseNonTemplate::toJosn
virtual QJsonObject toJson() const override;
//! \copydoc CListModelBaseNonTemplate::toJsonString
virtual QString toJsonString(QJsonDocument::JsonFormat format = QJsonDocument::Indented) const override;
//! Filter available
bool hasFilter() const;