refs #618, allow to set mode for distributors (simplified mode used for selection in dialog)

This commit is contained in:
Klaus Basan
2016-03-15 00:56:37 +01:00
parent 93176b5bd4
commit 17cbd31095
5 changed files with 74 additions and 6 deletions

View File

@@ -21,7 +21,7 @@ namespace BlackGui
namespace Models namespace Models
{ {
CAtcStationListModel::CAtcStationListModel(AtcStationMode stationMode, QObject *parent) : CAtcStationListModel::CAtcStationListModel(AtcStationMode stationMode, QObject *parent) :
CListModelBase("ModelAtcList", parent), m_stationMode(NotSet) CListModelBase("ModelAtcList", parent)
{ {
this->setStationMode(stationMode); this->setStationMode(stationMode);

View File

@@ -20,11 +20,7 @@ namespace BlackGui
CDistributorListModel::CDistributorListModel(QObject *parent) : CDistributorListModel::CDistributorListModel(QObject *parent) :
CListModelDbObjects("ModelDistributorList", parent) CListModelDbObjects("ModelDistributorList", parent)
{ {
this->m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey)); this->setDistributorMode(Normal);
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));
// force strings for translation in resource files // force strings for translation in resource files
(void)QT_TRANSLATE_NOOP("ModelDistributorList", "key"); (void)QT_TRANSLATE_NOOP("ModelDistributorList", "key");
@@ -32,5 +28,44 @@ namespace BlackGui
(void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias1"); (void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias1");
(void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias2"); (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 } // class
} // namespace } // namespace

View File

@@ -26,11 +26,28 @@ namespace BlackGui
public CListModelDbObjects<BlackMisc::Simulation::CDistributor, BlackMisc::Simulation::CDistributorList, QString, true> public CListModelDbObjects<BlackMisc::Simulation::CDistributor, BlackMisc::Simulation::CDistributorList, QString, true>
{ {
public: public:
//! What kind of stations
enum DistributorMode
{
NotSet,
Normal,
Minimal
};
//! Constructor //! Constructor
explicit CDistributorListModel(QObject *parent = nullptr); explicit CDistributorListModel(QObject *parent = nullptr);
//! Destructor //! Destructor
virtual ~CDistributorListModel() {} virtual ~CDistributorListModel() {}
//! Set mode
void setDistributorMode(DistributorMode distributorMode);
//! Mode
DistributorMode getDistributorMode() const { return this->m_distributorMode; }
private:
DistributorMode m_distributorMode = NotSet;
}; };
} // ns } // ns
} // ns } // ns

View File

@@ -22,5 +22,15 @@ namespace BlackGui
this->standardInit(new CDistributorListModel(this)); this->standardInit(new CDistributorListModel(this));
this->setMenu(MenuDefaultDbViews); this->setMenu(MenuDefaultDbViews);
} }
void CDistributorView::setDistributorMode(CDistributorListModel::DistributorMode distributorMode)
{
derivedModel()->setDistributorMode(distributorMode);
}
CDistributorListModel::DistributorMode CDistributorView::getDistributorMode() const
{
return derivedModel()->getDistributorMode();
}
} }
} // namespace } // namespace

View File

@@ -27,6 +27,12 @@ namespace BlackGui
public: public:
//! Constructor //! Constructor
explicit CDistributorView(QWidget *parent = nullptr); explicit CDistributorView(QWidget *parent = nullptr);
//! Set mode
void setDistributorMode(BlackGui::Models::CDistributorListModel::DistributorMode distributorMode);
//! Mode
BlackGui::Models::CDistributorListModel::DistributorMode getDistributorMode() const;
}; };
} // ns } // ns
} // ns } // ns