Skip to content

Commit d3f32ac

Browse files
committed
NodeFinderSVGConverter: connect models, set column to hide
1 parent d118b58 commit d3f32ac

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

editor/manager/nodefindermgr.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,12 @@ QWidget *NodeFinderMgr::getDockWidget(EditingModes mode)
173173

174174
for(int i = 0; i < m->columnCount(); i++)
175175
{
176-
auto del = converter->getDelegateFor(i, mode, w);
176+
bool showCol = true;
177+
auto del = converter->getDelegateFor(i, mode, w, showCol);
177178
if(del)
178179
w->setDelegate(i, del);
180+
181+
w->setColumnVisible(i, showCol);
179182
}
180183

181184
return w;

editor/manager/nodefindersvgconverter.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ NodeFinderSVGConverter::NodeFinderSVGConverter(NodeFinderMgr *parent) :
4040
tracksModel = new NodeFinderStationTracksModel(&m_plan, &m_xmlPlan, nodeMgr, this);
4141
turnoutModel = new NodeFinderTurnoutModel(&m_plan, &m_xmlPlan, nodeMgr, this);
4242

43+
//Connect models to keep views updated
44+
connect(labelsModel, &NodeFinderLabelModel::labelsChanged, turnoutModel, &NodeFinderTurnoutModel::refreshData);
45+
connect(tracksModel, &NodeFinderStationTracksModel::tracksChanged, turnoutModel, &NodeFinderTurnoutModel::refreshData);
46+
4347
m_info.setCallback([this](QDomElement &e) { storeElement(e); });
4448
}
4549

@@ -297,8 +301,10 @@ IObjectModel *NodeFinderSVGConverter::getModel(EditingModes mode) const
297301
return nullptr;
298302
}
299303

300-
QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingModes mode, QObject *parent) const
304+
QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingModes mode, QObject *parent, bool &outShowCol) const
301305
{
306+
outShowCol = true;
307+
302308
switch (mode)
303309
{
304310
case EditingModes::LabelEditing:
@@ -311,6 +317,12 @@ QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingMo
311317
}
312318
break;
313319
}
320+
case EditingModes::StationTrackEditing:
321+
{
322+
if(col == NodeFinderStationTracksModel::SpecialMixedColumn)
323+
outShowCol = false; //Hide column to the user
324+
break;
325+
}
314326
case EditingModes::TrackPathEditing:
315327
{
316328
if(col == NodeFinderTurnoutModel::StationTrackSideCol)
@@ -322,6 +334,7 @@ QAbstractItemDelegate *NodeFinderSVGConverter::getDelegateFor(int col, EditingMo
322334
if(col == NodeFinderTurnoutModel::StationTrackCol)
323335
{
324336
CompletionDelegate *delegate = new CompletionDelegate(tracksModel, parent);
337+
delegate->setColumn(NodeFinderStationTracksModel::SpecialMixedColumn);
325338
return delegate;
326339
}
327340
break;

editor/manager/nodefindersvgconverter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class NodeFinderSVGConverter : public QObject
5656

5757
IObjectModel *getModel(EditingModes mode) const;
5858

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

6161
inline NodeFinderElementWalker walkElements(const QStringList& tagOrder)
6262
{

0 commit comments

Comments
 (0)