Skip to content

Commit

Permalink
NodeFinderSVGConverter: connect models, set column to hide
Browse files Browse the repository at this point in the history
  • Loading branch information
gfgit committed Feb 6, 2022
1 parent d118b58 commit d3f32ac
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
5 changes: 4 additions & 1 deletion editor/manager/nodefindermgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,12 @@ QWidget *NodeFinderMgr::getDockWidget(EditingModes mode)

for(int i = 0; i < m->columnCount(); i++)
{
auto del = converter->getDelegateFor(i, mode, w);
bool showCol = true;
auto del = converter->getDelegateFor(i, mode, w, showCol);
if(del)
w->setDelegate(i, del);

w->setColumnVisible(i, showCol);
}

return w;
Expand Down
15 changes: 14 additions & 1 deletion editor/manager/nodefindersvgconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ NodeFinderSVGConverter::NodeFinderSVGConverter(NodeFinderMgr *parent) :
tracksModel = new NodeFinderStationTracksModel(&m_plan, &m_xmlPlan, nodeMgr, this);
turnoutModel = new NodeFinderTurnoutModel(&m_plan, &m_xmlPlan, nodeMgr, this);

//Connect models to keep views updated
connect(labelsModel, &NodeFinderLabelModel::labelsChanged, turnoutModel, &NodeFinderTurnoutModel::refreshData);
connect(tracksModel, &NodeFinderStationTracksModel::tracksChanged, turnoutModel, &NodeFinderTurnoutModel::refreshData);

m_info.setCallback([this](QDomElement &e) { storeElement(e); });
}

Expand Down Expand Up @@ -297,8 +301,10 @@ IObjectModel *NodeFinderSVGConverter::getModel(EditingModes mode) const
return nullptr;
}

QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingModes mode, QObject *parent) const
QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingModes mode, QObject *parent, bool &outShowCol) const
{
outShowCol = true;

switch (mode)
{
case EditingModes::LabelEditing:
Expand All @@ -311,6 +317,12 @@ QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingMo
}
break;
}
case EditingModes::StationTrackEditing:
{
if(col == NodeFinderStationTracksModel::SpecialMixedColumn)
outShowCol = false; //Hide column to the user
break;
}
case EditingModes::TrackPathEditing:
{
if(col == NodeFinderTurnoutModel::StationTrackSideCol)
Expand All @@ -322,6 +334,7 @@ QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingMo
if(col == NodeFinderTurnoutModel::StationTrackCol)
{
CompletionDelegate *delegate = new CompletionDelegate(tracksModel, parent);
delegate->setColumn(NodeFinderStationTracksModel::SpecialMixedColumn);
return delegate;
}
break;
Expand Down
2 changes: 1 addition & 1 deletion editor/manager/nodefindersvgconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class NodeFinderSVGConverter : public QObject

IObjectModel *getModel(EditingModes mode) const;

QAbstractItemDelegate *getDelegateFor(int col, EditingModes mode, QObject *parent) const;
QAbstractItemDelegate *getDelegateFor(int col, EditingModes mode, QObject *parent, bool &outShowCol) const;

inline NodeFinderElementWalker walkElements(const QStringList& tagOrder)
{
Expand Down

0 comments on commit d3f32ac

Please sign in to comment.