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
{
CAtcStationListModel::CAtcStationListModel(AtcStationMode stationMode, QObject *parent) :
CListModelBase("ModelAtcList", parent), m_stationMode(NotSet)
CListModelBase("ModelAtcList", parent)
{
this->setStationMode(stationMode);

View File

@@ -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

View File

@@ -26,11 +26,28 @@ namespace BlackGui
public CListModelDbObjects<BlackMisc::Simulation::CDistributor, BlackMisc::Simulation::CDistributorList, QString, true>
{
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

View File

@@ -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

View File

@@ -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