From 576952b690ee342fe81f00befb3f27f826ca7322 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 5 Feb 2014 21:23:54 +0000 Subject: [PATCH] Allow to clear, insert, and push values of the model. --- src/blackgui/listmodelbase.cpp | 35 ++++++++++++++++++++++++++++++++++ src/blackgui/listmodelbase.h | 8 ++++++++ 2 files changed, 43 insertions(+) diff --git a/src/blackgui/listmodelbase.cpp b/src/blackgui/listmodelbase.cpp index 00dc5c316..012670958 100644 --- a/src/blackgui/listmodelbase.cpp +++ b/src/blackgui/listmodelbase.cpp @@ -4,6 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "listmodelbase.h" +#include "blackmisc/statusmessagelist.h" #include "blackmisc/avatcstationlist.h" #include "blackmisc/avaircraftlist.h" #include "blackmisc/nwserverlist.h" @@ -103,6 +104,39 @@ namespace BlackGui return this->m_list.size(); } + /* + * Push back + */ + template + void CListModelBase::push_back(const ObjectType &object) + { + beginInsertRows(QModelIndex(), this->m_list.size(), this->m_list.size()); + this->m_list.push_back(object); + endInsertRows(); + } + + /* + * Push back + */ + template + void CListModelBase::insert(const ObjectType &object) + { + beginInsertRows(QModelIndex(), 0, 0); + this->m_list.insert(this->m_list.begin(), object); + endInsertRows(); + } + + /* + * Clear + */ + template + void CListModelBase::clear() + { + beginResetModel(); + this->m_list.clear(); + endResetModel(); + } + /* * Sort */ @@ -145,6 +179,7 @@ namespace BlackGui // 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; template class CListModelBase; template class CListModelBase; template class CListModelBase; diff --git a/src/blackgui/listmodelbase.h b/src/blackgui/listmodelbase.h index b07f953a5..e8d13af08 100644 --- a/src/blackgui/listmodelbase.h +++ b/src/blackgui/listmodelbase.h @@ -155,6 +155,14 @@ namespace BlackGui */ virtual void sort(int column, Qt::SortOrder order); + //! \brief Similar to ListType::push_back + virtual void push_back(const ObjectType &object); + + //! \brief Similar to ListType::insert here inserts at first position + virtual void insert(const ObjectType &object); + + //! \brief clear the list + virtual void clear(); }; } #endif // guard