WIP: enabling schematic view of netlist - needs debugging

This commit is contained in:
Matthias Koefferlein 2022-08-07 23:41:29 +02:00
parent de026fac86
commit 51b521f2b7
6 changed files with 40 additions and 18 deletions

View File

@ -2377,6 +2377,19 @@ CircuitDeviceTerminalItemData::search_text ()
// ----------------------------------------------------------------------------------
// NetlistBrowserModel implementation
NetlistBrowserModel::NetlistBrowserModel (QWidget *parent, db::Netlist *netlist, NetColorizer *colorizer)
: QAbstractItemModel (parent), mp_l2ndb (0), mp_lvsdb (0), mp_colorizer (colorizer)
{
mp_root.reset (new RootItemData ());
mp_indexer.reset (new SingleIndexedNetlistModel (netlist));
mp_colorizer->colors_changed.add (this, &NetlistBrowserModel::colors_changed);
m_object_column = 0;
m_status_column = -1;
m_first_column = 2;
m_second_column = -1;
}
NetlistBrowserModel::NetlistBrowserModel (QWidget *parent, db::LayoutToNetlist *l2ndb, NetColorizer *colorizer)
: QAbstractItemModel (parent), mp_l2ndb (l2ndb), mp_lvsdb (0), mp_colorizer (colorizer)
{

View File

@ -229,6 +229,7 @@ class LAYUI_PUBLIC NetlistBrowserModel
Q_OBJECT
public:
NetlistBrowserModel (QWidget *parent, db::Netlist *netlist, NetColorizer *colorizer);
NetlistBrowserModel (QWidget *parent, db::LayoutToNetlist *l2ndb, NetColorizer *colorizer);
NetlistBrowserModel (QWidget *parent, db::LayoutVsSchematic *lvsdb, NetColorizer *colorizer);
~NetlistBrowserModel ();

View File

@ -216,9 +216,6 @@ NetlistBrowserPage::NetlistBrowserPage (QWidget * /*parent*/)
connect (forward, SIGNAL (clicked ()), this, SLOT (navigate_forward ()));
connect (backward, SIGNAL (clicked ()), this, SLOT (navigate_back ()));
// @@@ connect (show_netlist, SIGNAL (clicked ()), this, SLOT (mode_changed ()));
// @@@ connect (show_xref, SIGNAL (clicked ()), this, SLOT (mode_changed ()));
connect (actionExportAll, SIGNAL (triggered ()), this, SLOT (export_all ()));
connect (actionExportSelected, SIGNAL (triggered ()), this, SLOT (export_selected ()));
@ -489,16 +486,25 @@ NetlistBrowserPage::select_path (const lay::NetlistObjectsPath &path)
NetlistBrowserModel *model;
model = dynamic_cast<NetlistBrowserModel *> (nl_directory_tree->model ());
tl_assert (model != 0);
nl_directory_tree->setCurrentIndex (model->index_from_path (path));
if (model) {
nl_directory_tree->setCurrentIndex (model->index_from_path (path));
}
/*
TODO: to support path selection in schematic, we had to translate the netlist circuits
into reference circuits first using the xref translation (if available)
This does not work:
model = dynamic_cast<NetlistBrowserModel *> (sch_directory_tree->model ());
tl_assert (model != 0);
sch_directory_tree->setCurrentIndex (model->index_from_path (path));
if (model) {
sch_directory_tree->setCurrentIndex (model->index_from_path (path));
}
*/
model = dynamic_cast<NetlistBrowserModel *> (xref_directory_tree->model ());
tl_assert (model != 0);
xref_directory_tree->setCurrentIndex (model->index_from_path (path));
if (model) {
xref_directory_tree->setCurrentIndex (model->index_from_path (path));
}
}
}
@ -821,12 +827,6 @@ NetlistBrowserPage::info_button_pressed ()
mp_info_dialog->show ();
}
void
NetlistBrowserPage::mode_changed ()
{
// @@@ setup_trees ();
}
static QModelIndex find_next (QTreeView *view, QAbstractItemModel *model, const QRegExp &to_find, const QModelIndex &from)
{
QModelIndex index = from;
@ -1094,8 +1094,7 @@ NetlistBrowserPage::setup_trees ()
if (lvsdb) {
// NOTE: with the tree as the parent, the tree will take over ownership of the model
// @@@ should be schematic
NetlistBrowserModel *new_model = new NetlistBrowserModel (sch_directory_tree, l2ndb, &m_colorizer);
NetlistBrowserModel *new_model = new NetlistBrowserModel (sch_directory_tree, lvsdb->reference_netlist (), &m_colorizer);
set_tree_model (sch_directory_tree, new_model);

View File

@ -213,7 +213,6 @@ private slots:
void xref_selection_changed ();
void browse_color_for_net ();
void select_color_for_net ();
void mode_changed ();
protected:
bool eventFilter (QObject *watched, QEvent *event);

View File

@ -122,6 +122,15 @@ static std::string search_string_from_names (const std::pair<const Obj *, const
}
NetlistBrowserTreeModel::NetlistBrowserTreeModel (QWidget *parent, db::Netlist *netlist)
: QAbstractItemModel (parent), mp_l2ndb (0), mp_lvsdb (0)
{
mp_indexer.reset (new SingleIndexedNetlistModel (netlist));
m_object_column = 0;
m_status_column = -1;
}
NetlistBrowserTreeModel::NetlistBrowserTreeModel (QWidget *parent, db::LayoutToNetlist *l2ndb)
: QAbstractItemModel (parent), mp_l2ndb (l2ndb), mp_lvsdb (0)
{

View File

@ -57,6 +57,7 @@ class LAYUI_PUBLIC NetlistBrowserTreeModel
Q_OBJECT
public:
NetlistBrowserTreeModel (QWidget *parent, db::Netlist *netlist);
NetlistBrowserTreeModel (QWidget *parent, db::LayoutToNetlist *l2ndb);
NetlistBrowserTreeModel (QWidget *parent, db::LayoutVsSchematic *lvsdb);
~NetlistBrowserTreeModel ();