aboutsummaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-11-11 10:53:48 +0100
committerMiodrag Milanovic <mmicko@gmail.com>2018-11-11 10:53:48 +0100
commitb8870bb99c24d2998ca5bb5245589dd9d0703ea4 (patch)
tree8704c16c022ff328879fa5acfc0c98699e8688eb /gui
parent3cfdb4e0c101b67dfe6d0d86174d8ed691ad9b28 (diff)
downloadnextpnr-b8870bb99c24d2998ca5bb5245589dd9d0703ea4.tar.gz
nextpnr-b8870bb99c24d2998ca5bb5245589dd9d0703ea4.tar.bz2
nextpnr-b8870bb99c24d2998ca5bb5245589dd9d0703ea4.zip
Propagate proper ctx, fixes fetchMore
Diffstat (limited to 'gui')
-rw-r--r--gui/designwidget.cc14
-rw-r--r--gui/treemodel.cc9
-rw-r--r--gui/treemodel.h4
3 files changed, 14 insertions, 13 deletions
diff --git a/gui/designwidget.cc b/gui/designwidget.cc
index 8be71f3f..f7805320 100644
--- a/gui/designwidget.cc
+++ b/gui/designwidget.cc
@@ -297,7 +297,7 @@ void DesignWidget::newContext(Context *ctx)
auto belGetter = [](Context *ctx, BelId id) { return ctx->getBelName(id); };
getTreeByElementType(ElementType::BEL)
- ->loadData(std::unique_ptr<TreeModel::ElementXYRoot<BelId>>(
+ ->loadData(ctx, std::unique_ptr<TreeModel::ElementXYRoot<BelId>>(
new TreeModel::ElementXYRoot<BelId>(ctx, belMap, belGetter, ElementType::BEL)));
}
@@ -312,7 +312,7 @@ void DesignWidget::newContext(Context *ctx)
}
auto wireGetter = [](Context *ctx, WireId id) { return ctx->getWireName(id); };
getTreeByElementType(ElementType::WIRE)
- ->loadData(std::unique_ptr<TreeModel::ElementXYRoot<WireId>>(
+ ->loadData(ctx, std::unique_ptr<TreeModel::ElementXYRoot<WireId>>(
new TreeModel::ElementXYRoot<WireId>(ctx, wireMap, wireGetter, ElementType::WIRE)));
}
@@ -326,14 +326,14 @@ void DesignWidget::newContext(Context *ctx)
}
auto pipGetter = [](Context *ctx, PipId id) { return ctx->getPipName(id); };
getTreeByElementType(ElementType::PIP)
- ->loadData(std::unique_ptr<TreeModel::ElementXYRoot<PipId>>(
+ ->loadData(ctx, std::unique_ptr<TreeModel::ElementXYRoot<PipId>>(
new TreeModel::ElementXYRoot<PipId>(ctx, pipMap, pipGetter, ElementType::PIP)));
}
#endif
getTreeByElementType(ElementType::CELL)
- ->loadData(std::unique_ptr<TreeModel::IdStringList>(new TreeModel::IdStringList(ElementType::CELL)));
+ ->loadData(ctx, std::unique_ptr<TreeModel::IdStringList>(new TreeModel::IdStringList(ElementType::CELL)));
getTreeByElementType(ElementType::NET)
- ->loadData(std::unique_ptr<TreeModel::IdStringList>(new TreeModel::IdStringList(ElementType::NET)));
+ ->loadData(ctx, std::unique_ptr<TreeModel::IdStringList>(new TreeModel::IdStringList(ElementType::NET)));
}
updateTree();
}
@@ -367,8 +367,8 @@ void DesignWidget::updateTree()
nets.push_back(pair.first);
}
- getTreeByElementType(ElementType::CELL)->updateElements(ctx, cells);
- getTreeByElementType(ElementType::NET)->updateElements(ctx, nets);
+ getTreeByElementType(ElementType::CELL)->updateElements(cells);
+ getTreeByElementType(ElementType::NET)->updateElements(nets);
}
}
QtProperty *DesignWidget::addTopLevelProperty(const QString &id)
diff --git a/gui/treemodel.cc b/gui/treemodel.cc
index ab7dc263..b834c682 100644
--- a/gui/treemodel.cc
+++ b/gui/treemodel.cc
@@ -154,20 +154,21 @@ Model::Model(QObject *parent) : QAbstractItemModel(parent), root_(new Item("Elem
Model::~Model() {}
-void Model::loadData(std::unique_ptr<Item> data)
+void Model::loadData(Context *ctx, std::unique_ptr<Item> data)
{
beginResetModel();
+ ctx_ = ctx;
root_ = std::move(data);
endResetModel();
}
-void Model::updateElements(Context *ctx, std::vector<IdString> elements)
+void Model::updateElements(std::vector<IdString> elements)
{
- if (!ctx)
+ if (!ctx_)
return;
beginResetModel();
- root_->updateElements(ctx, elements);
+ root_->updateElements(ctx_, elements);
endResetModel();
}
diff --git a/gui/treemodel.h b/gui/treemodel.h
index dbbf1025..d7f337a3 100644
--- a/gui/treemodel.h
+++ b/gui/treemodel.h
@@ -352,8 +352,8 @@ class Model : public QAbstractItemModel
Model(QObject *parent = nullptr);
~Model();
- void loadData(std::unique_ptr<Item> data);
- void updateElements(Context *ctx, std::vector<IdString> elements);
+ void loadData(Context *ctx, std::unique_ptr<Item> data);
+ void updateElements(std::vector<IdString> elements);
Item *nodeFromIndex(const QModelIndex &idx) const;
QModelIndex indexFromNode(Item *node)
{