Propagate proper ctx, fixes fetchMore
This commit is contained in:
parent
3cfdb4e0c1
commit
b8870bb99c
@ -297,7 +297,7 @@ void DesignWidget::newContext(Context *ctx)
|
|||||||
auto belGetter = [](Context *ctx, BelId id) { return ctx->getBelName(id); };
|
auto belGetter = [](Context *ctx, BelId id) { return ctx->getBelName(id); };
|
||||||
|
|
||||||
getTreeByElementType(ElementType::BEL)
|
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)));
|
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); };
|
auto wireGetter = [](Context *ctx, WireId id) { return ctx->getWireName(id); };
|
||||||
getTreeByElementType(ElementType::WIRE)
|
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)));
|
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); };
|
auto pipGetter = [](Context *ctx, PipId id) { return ctx->getPipName(id); };
|
||||||
getTreeByElementType(ElementType::PIP)
|
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)));
|
new TreeModel::ElementXYRoot<PipId>(ctx, pipMap, pipGetter, ElementType::PIP)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
getTreeByElementType(ElementType::CELL)
|
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)
|
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();
|
updateTree();
|
||||||
}
|
}
|
||||||
@ -367,8 +367,8 @@ void DesignWidget::updateTree()
|
|||||||
nets.push_back(pair.first);
|
nets.push_back(pair.first);
|
||||||
}
|
}
|
||||||
|
|
||||||
getTreeByElementType(ElementType::CELL)->updateElements(ctx, cells);
|
getTreeByElementType(ElementType::CELL)->updateElements(cells);
|
||||||
getTreeByElementType(ElementType::NET)->updateElements(ctx, nets);
|
getTreeByElementType(ElementType::NET)->updateElements(nets);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QtProperty *DesignWidget::addTopLevelProperty(const QString &id)
|
QtProperty *DesignWidget::addTopLevelProperty(const QString &id)
|
||||||
|
@ -154,20 +154,21 @@ Model::Model(QObject *parent) : QAbstractItemModel(parent), root_(new Item("Elem
|
|||||||
|
|
||||||
Model::~Model() {}
|
Model::~Model() {}
|
||||||
|
|
||||||
void Model::loadData(std::unique_ptr<Item> data)
|
void Model::loadData(Context *ctx, std::unique_ptr<Item> data)
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
|
ctx_ = ctx;
|
||||||
root_ = std::move(data);
|
root_ = std::move(data);
|
||||||
endResetModel();
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Model::updateElements(Context *ctx, std::vector<IdString> elements)
|
void Model::updateElements(std::vector<IdString> elements)
|
||||||
{
|
{
|
||||||
if (!ctx)
|
if (!ctx_)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
root_->updateElements(ctx, elements);
|
root_->updateElements(ctx_, elements);
|
||||||
endResetModel();
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,8 +352,8 @@ class Model : public QAbstractItemModel
|
|||||||
Model(QObject *parent = nullptr);
|
Model(QObject *parent = nullptr);
|
||||||
~Model();
|
~Model();
|
||||||
|
|
||||||
void loadData(std::unique_ptr<Item> data);
|
void loadData(Context *ctx, std::unique_ptr<Item> data);
|
||||||
void updateElements(Context *ctx, std::vector<IdString> elements);
|
void updateElements(std::vector<IdString> elements);
|
||||||
Item *nodeFromIndex(const QModelIndex &idx) const;
|
Item *nodeFromIndex(const QModelIndex &idx) const;
|
||||||
QModelIndex indexFromNode(Item *node)
|
QModelIndex indexFromNode(Item *node)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user