diff --git a/src/blackgui/models/atcstationlistmodel.cpp b/src/blackgui/models/atcstationlistmodel.cpp index 3981014da..f1075e1d2 100644 --- a/src/blackgui/models/atcstationlistmodel.cpp +++ b/src/blackgui/models/atcstationlistmodel.cpp @@ -21,7 +21,7 @@ namespace BlackGui namespace Models { CAtcStationListModel::CAtcStationListModel(AtcStationMode stationMode, QObject *parent) : - CListModelBase("ModelAtcList", parent), m_stationMode(NotSet) + CListModelBase("ModelAtcList", parent) { this->setStationMode(stationMode); diff --git a/src/blackgui/models/distributorlistmodel.cpp b/src/blackgui/models/distributorlistmodel.cpp index e441a3a5f..61f6f5427 100644 --- a/src/blackgui/models/distributorlistmodel.cpp +++ b/src/blackgui/models/distributorlistmodel.cpp @@ -20,11 +20,7 @@ namespace BlackGui CDistributorListModel::CDistributorListModel(QObject *parent) : CListModelDbObjects("ModelDistributorList", parent) { - this->m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey)); - this->m_columns.addColumn(CColumn::standardString("description", CDistributor::IndexDescription)); - this->m_columns.addColumn(CColumn::standardString("alias1", CDistributor::IndexAlias1)); - this->m_columns.addColumn(CColumn::standardString("alias2", CDistributor::IndexAlias2)); - this->m_columns.addColumn(CColumn::standardString("changed", CDistributor::IndexUtcTimestampFormattedYmdhms)); + this->setDistributorMode(Normal); // force strings for translation in resource files (void)QT_TRANSLATE_NOOP("ModelDistributorList", "key"); @@ -32,5 +28,44 @@ namespace BlackGui (void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias1"); (void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias2"); } + + void CDistributorListModel::setDistributorMode(CDistributorListModel::DistributorMode distributorMode) + { + if (this->m_distributorMode == distributorMode) { return; } + this->m_distributorMode = distributorMode; + this->m_columns.clear(); + switch (distributorMode) + { + case NotSet: + case Normal: + { + this->m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey)); + this->m_columns.addColumn(CColumn::standardString("description", CDistributor::IndexDescription)); + this->m_columns.addColumn(CColumn::standardString("alias1", CDistributor::IndexAlias1)); + this->m_columns.addColumn(CColumn::standardString("alias2", CDistributor::IndexAlias2)); + this->m_columns.addColumn(CColumn::standardString("changed", CDistributor::IndexUtcTimestampFormattedYmdhms)); + + // default sort order + this->setSortColumnByPropertyIndex(CDistributor::IndexDbStringKey); + this->m_sortOrder = Qt::AscendingOrder; + } + break; + + case Minimal: + { + this->m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey)); + this->m_columns.addColumn(CColumn::standardString("description", CDistributor::IndexDescription)); + + // default sort order + this->setSortColumnByPropertyIndex(CDistributor::IndexDbStringKey); + this->m_sortOrder = Qt::AscendingOrder; + } + break; + + default: + qFatal("Wrong mode"); + break; + } + } } // class } // namespace diff --git a/src/blackgui/models/distributorlistmodel.h b/src/blackgui/models/distributorlistmodel.h index 7909ad1a1..3bc93c8a3 100644 --- a/src/blackgui/models/distributorlistmodel.h +++ b/src/blackgui/models/distributorlistmodel.h @@ -26,11 +26,28 @@ namespace BlackGui public CListModelDbObjects { public: + //! What kind of stations + enum DistributorMode + { + NotSet, + Normal, + Minimal + }; + //! Constructor explicit CDistributorListModel(QObject *parent = nullptr); //! Destructor virtual ~CDistributorListModel() {} + + //! Set mode + void setDistributorMode(DistributorMode distributorMode); + + //! Mode + DistributorMode getDistributorMode() const { return this->m_distributorMode; } + + private: + DistributorMode m_distributorMode = NotSet; }; } // ns } // ns diff --git a/src/blackgui/views/distributorview.cpp b/src/blackgui/views/distributorview.cpp index 2bfa8bce5..232e594ab 100644 --- a/src/blackgui/views/distributorview.cpp +++ b/src/blackgui/views/distributorview.cpp @@ -22,5 +22,15 @@ namespace BlackGui this->standardInit(new CDistributorListModel(this)); this->setMenu(MenuDefaultDbViews); } + + void CDistributorView::setDistributorMode(CDistributorListModel::DistributorMode distributorMode) + { + derivedModel()->setDistributorMode(distributorMode); + } + + CDistributorListModel::DistributorMode CDistributorView::getDistributorMode() const + { + return derivedModel()->getDistributorMode(); + } } } // namespace diff --git a/src/blackgui/views/distributorview.h b/src/blackgui/views/distributorview.h index 34b55c94c..8d8a5b775 100644 --- a/src/blackgui/views/distributorview.h +++ b/src/blackgui/views/distributorview.h @@ -27,6 +27,12 @@ namespace BlackGui public: //! Constructor explicit CDistributorView(QWidget *parent = nullptr); + + //! Set mode + void setDistributorMode(BlackGui::Models::CDistributorListModel::DistributorMode distributorMode); + + //! Mode + BlackGui::Models::CDistributorListModel::DistributorMode getDistributorMode() const; }; } // ns } // ns