diff --git a/src/blackgui/models/allmodelcontainers.h b/src/blackgui/models/allmodelcontainers.h index bc36ed02f..e969d384c 100644 --- a/src/blackgui/models/allmodelcontainers.h +++ b/src/blackgui/models/allmodelcontainers.h @@ -29,6 +29,7 @@ #include "blackmisc/weather/temperaturelayerlist.h" #include "blackmisc/weather/windlayerlist.h" #include "blackmisc/input/actionhotkeylist.h" +#include "blackmisc/applicationinfolist.h" #include "blackmisc/countrylist.h" #include "blackmisc/namevariantpairlist.h" #include "blackmisc/statusmessagelist.h" diff --git a/src/blackgui/models/allmodels.h b/src/blackgui/models/allmodels.h index 1890bf6c5..660c747c9 100644 --- a/src/blackgui/models/allmodels.h +++ b/src/blackgui/models/allmodels.h @@ -16,6 +16,7 @@ #include "blackgui/models/airlineicaolistmodel.h" #include "blackgui/models/airportlistmodel.h" #include "blackgui/models/airportlistmodel.h" +#include "blackgui/models/applicationinfolistmodel.h" #include "blackgui/models/atcstationlistmodel.h" #include "blackgui/models/clientlistmodel.h" #include "blackgui/models/cloudlayerlistmodel.h" diff --git a/src/blackgui/models/applicationinfolistmodel.cpp b/src/blackgui/models/applicationinfolistmodel.cpp new file mode 100644 index 000000000..10053117c --- /dev/null +++ b/src/blackgui/models/applicationinfolistmodel.cpp @@ -0,0 +1,46 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "blackgui/models/applicationinfolistmodel.h" +#include "blackgui/models/columnformatters.h" +#include "blackgui/models/columns.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace BlackMisc; + +namespace BlackGui +{ + namespace Models + { + CApplicationInfoListModel::CApplicationInfoListModel(QObject *parent) : + CListModelBase("ModelApplicationInfoListModel", parent) + { + m_columns.addColumn(CColumn::standardString("version", CApplicationInfo::IndexVersionString)); + m_columns.addColumn(CColumn::standardString("OS", CApplicationInfo::IndexPlatformInfo)); + m_columns.addColumn(CColumn::standardString("exe.path", CApplicationInfo::IndexExecutablePath)); + m_columns.addColumn(CColumn::standardString("data.path", CApplicationInfo::IndexApplicationDataPath)); + + // default sort order + this->setSortColumnByPropertyIndex(CApplicationInfo::IndexVersionString); + m_sortOrder = Qt::DescendingOrder; + } + + void CApplicationInfoListModel::otherSwiftVersionsFromDataDirectories() + { + this->update(CApplicationInfoList::fromOtherSwiftVersionsFromDataDirectories()); + } + } // namespace +} // namespace diff --git a/src/blackgui/models/applicationinfolistmodel.h b/src/blackgui/models/applicationinfolistmodel.h new file mode 100644 index 000000000..88986832b --- /dev/null +++ b/src/blackgui/models/applicationinfolistmodel.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2018 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKGUI_MODELS_APPLICATIONINFOLISTMODEL_H +#define BLACKGUI_MODELS_APPLICATIONINFOLISTMODEL_H + +#include "blackgui/blackguiexport.h" +#include "blackgui/models/listmodelbase.h" +#include "blackmisc/applicationinfolist.h" +#include + +class QStandardItemModel; + +namespace BlackGui +{ + namespace Models + { + //! Application info list model + class BLACKGUI_EXPORT CApplicationInfoListModel : public CListModelBase + { + public: + //! Constructor + explicit CApplicationInfoListModel(QObject *parent = nullptr); + + //! Destructor + virtual ~CApplicationInfoListModel() {} + + //! \copydoc BlackMisc::CApplicationInfoList::fromOtherSwiftVersionsFromDataDirectories + void otherSwiftVersionsFromDataDirectories(); + }; + } // ns +} // ns +#endif // guard diff --git a/src/blackgui/models/listmodelbase.cpp b/src/blackgui/models/listmodelbase.cpp index 7fb18b469..1bb8c5af8 100644 --- a/src/blackgui/models/listmodelbase.cpp +++ b/src/blackgui/models/listmodelbase.cpp @@ -767,11 +767,12 @@ namespace BlackGui // see here for the reason of thess forward instantiations // https://isocpp.org/wiki/faq/templates#separate-template-fn-defn-from-decl - template class CListModelBase; template class CListModelBase; + template class CListModelBase; template class CListModelBase; template class CListModelBase; template class CListModelBase; + template class CListModelBase; template class CListModelBase; template class CListModelBase; template class CListModelBase;