Skip to content

Commit df40b88

Browse files
committed
GUI: Change DRC widget from block to chip
Signed-off-by: LucasYuki <lucasyuki@yahoo.com.br>
1 parent 6db0147 commit df40b88

File tree

5 files changed

+46
-37
lines changed

5 files changed

+46
-37
lines changed

src/gui/src/drcWidget.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ DRCWidget::DRCWidget(QWidget* parent)
5050
logger_(nullptr),
5151
view_(new ObjectTree(this)),
5252
model_(new DRCItemModel(this)),
53-
block_(nullptr),
53+
chip_(nullptr),
5454
categories_(new QComboBox(this)),
5555
load_(new QPushButton("Load...", this)),
5656
renderer_(std::make_unique<DRCRenderer>())
@@ -119,7 +119,7 @@ void DRCWidget::setLogger(utl::Logger* logger)
119119

120120
void DRCWidget::selectReport()
121121
{
122-
if (!block_) {
122+
if (!chip_) {
123123
logger_->error(utl::GUI, 104, "No database has been loaded");
124124
}
125125

@@ -227,17 +227,19 @@ void DRCWidget::doubleClicked(const QModelIndex& index)
227227
showMarker(index, true);
228228
}
229229

230-
void DRCWidget::setBlock(odb::dbBlock* block)
230+
void DRCWidget::setChip(odb::dbChip* chip)
231231
{
232-
block_ = block;
232+
chip_ = chip;
233233

234-
addOwner(block_);
234+
addOwner(chip_->getBlock());
235235
updateMarkerGroups();
236236
}
237237

238238
void DRCWidget::showEvent(QShowEvent* event)
239239
{
240-
addOwner(block_);
240+
if (chip_) {
241+
addOwner(chip_->getBlock());
242+
}
241243

242244
updateMarkerGroups();
243245
toggleRenderer(true);
@@ -267,7 +269,7 @@ void DRCWidget::toggleRenderer(bool visible)
267269
void DRCWidget::updateModel()
268270
{
269271
const std::string name = categories_->currentText().toStdString();
270-
odb::dbMarkerCategory* category = block_->findMarkerCategory(name.c_str());
272+
odb::dbMarkerCategory* category = chip_->findMarkerCategory(name.c_str());
271273

272274
model_->removeRows(0, model_->rowCount());
273275

@@ -385,13 +387,13 @@ void DRCWidget::loadReport(const QString& filename)
385387
odb::dbMarkerCategory* DRCWidget::loadTRReport(const QString& filename)
386388
{
387389
const std::string file = filename.toStdString();
388-
return odb::dbMarkerCategory::fromTR(block_, "DRC", file);
390+
return odb::dbMarkerCategory::fromTR(chip_, "DRC", file);
389391
}
390392

391393
odb::dbMarkerCategory* DRCWidget::loadJSONReport(const QString& filename)
392394
{
393395
const std::string file = filename.toStdString();
394-
const auto categories = odb::dbMarkerCategory::fromJSON(block_, file);
396+
const auto categories = odb::dbMarkerCategory::fromJSON(chip_, file);
395397

396398
if (categories.size() > 1) {
397399
logger_->warn(utl::GUI,
@@ -414,7 +416,7 @@ void DRCWidget::updateMarkerGroups()
414416

415417
void DRCWidget::updateMarkerGroupsWithIgnore(odb::dbMarkerCategory* ignore)
416418
{
417-
if (block_ == nullptr) {
419+
if (chip_ == nullptr) {
418420
return;
419421
}
420422

@@ -425,7 +427,7 @@ void DRCWidget::updateMarkerGroupsWithIgnore(odb::dbMarkerCategory* ignore)
425427
categories_->clear();
426428

427429
categories_->addItem("");
428-
for (auto* category : block_->getMarkerCategories()) {
430+
for (auto* category : chip_->getMarkerCategories()) {
429431
if (ignore == category) {
430432
continue;
431433
}
@@ -452,7 +454,7 @@ void DRCWidget::inDbMarkerCategoryDestroy(odb::dbMarkerCategory* category)
452454
void DRCWidget::inDbMarkerCreate(odb::dbMarker* marker)
453455
{
454456
const std::string name = categories_->currentText().toStdString();
455-
odb::dbMarkerCategory* category = block_->findMarkerCategory(name.c_str());
457+
odb::dbMarkerCategory* category = chip_->findMarkerCategory(name.c_str());
456458

457459
if (marker->getCategory()->getTopCategory() == category) {
458460
updateModel();
@@ -462,7 +464,7 @@ void DRCWidget::inDbMarkerCreate(odb::dbMarker* marker)
462464
void DRCWidget::inDbMarkerDestroy(odb::dbMarker* marker)
463465
{
464466
const std::string name = categories_->currentText().toStdString();
465-
odb::dbMarkerCategory* category = block_->findMarkerCategory(name.c_str());
467+
odb::dbMarkerCategory* category = chip_->findMarkerCategory(name.c_str());
466468

467469
if (marker->getCategory()->getTopCategory() == category) {
468470
updateModel();

src/gui/src/drcWidget.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class DRCWidget : public QDockWidget, public odb::dbBlockCallBackObj
7272

7373
public slots:
7474
void loadReport(const QString& filename);
75-
void setBlock(odb::dbBlock* block);
75+
void setChip(odb::dbChip* chip);
7676
void clicked(const QModelIndex& index);
7777
void doubleClicked(const QModelIndex& index);
7878
void selectReport();
@@ -103,7 +103,7 @@ class DRCWidget : public QDockWidget, public odb::dbBlockCallBackObj
103103
ObjectTree* view_;
104104
DRCItemModel* model_;
105105

106-
odb::dbBlock* block_;
106+
odb::dbChip* chip_;
107107

108108
QComboBox* categories_;
109109
QPushButton* load_;

src/gui/src/mainWindow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ MainWindow::MainWindow(bool load_settings, QWidget* parent)
362362
&MainWindow::reportSlackHistogramPaths);
363363

364364
connect(this, &MainWindow::blockLoaded, this, &MainWindow::setBlock);
365-
connect(this, &MainWindow::blockLoaded, drc_viewer_, &DRCWidget::setBlock);
365+
connect(this, &MainWindow::chipLoaded, drc_viewer_, &DRCWidget::setChip);
366366
connect(
367367
this, &MainWindow::blockLoaded, clock_viewer_, &ClockWidget::setBlock);
368368
connect(drc_viewer_,

src/odb/include/odb/db.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8201,15 +8201,15 @@ class dbMarkerCategory : public dbObject
82018201
void writeTR(const std::string& path) const;
82028202
void writeTR(std::ofstream& report) const;
82038203

8204-
static std::set<dbMarkerCategory*> fromJSON(dbBlock* block,
8204+
static std::set<dbMarkerCategory*> fromJSON(dbChip* chip,
82058205
const std::string& path);
8206-
static std::set<dbMarkerCategory*> fromJSON(dbBlock* block,
8206+
static std::set<dbMarkerCategory*> fromJSON(dbChip* chip,
82078207
const char* source,
82088208
std::ifstream& report);
8209-
static dbMarkerCategory* fromTR(dbBlock* block,
8209+
static dbMarkerCategory* fromTR(dbChip* chip,
82108210
const char* name,
82118211
const std::string& path);
8212-
static dbMarkerCategory* fromTR(dbBlock* block,
8212+
static dbMarkerCategory* fromTR(dbChip* chip,
82138213
const char* name,
82148214
const char* source,
82158215
std::ifstream& report);

src/odb/src/db/dbMarkerCategory.cpp

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -468,31 +468,31 @@ void dbMarkerCategory::writeTR(std::ofstream& report) const
468468
obj->writeTR(report);
469469
}
470470

471-
std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbBlock* block,
471+
std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbChip* chip,
472472
const std::string& path)
473473
{
474474
std::ifstream report(path);
475475
if (!report.is_open()) {
476-
_dbBlock* _block = (_dbBlock*) block;
477-
utl::Logger* logger = _block->getLogger();
476+
_dbChip* _chip = (_dbChip*) chip;
477+
utl::Logger* logger = _chip->getLogger();
478478

479479
logger->error(utl::ODB, 31, "Unable to open marker report: {}", path);
480480
}
481481

482482
std::set<dbMarkerCategory*> categories
483-
= fromJSON(block, path.c_str(), report);
483+
= fromJSON(chip, path.c_str(), report);
484484

485485
report.close();
486486

487487
return categories;
488488
}
489489

490-
std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbBlock* block,
490+
std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbChip* chip,
491491
const char* source,
492492
std::ifstream& report)
493493
{
494-
_dbBlock* _block = (_dbBlock*) block;
495-
utl::Logger* logger = _block->getLogger();
494+
_dbChip* _chip = (_dbChip*) chip;
495+
utl::Logger* logger = _chip->getLogger();
496496

497497
_dbMarkerCategory::PropertyTree tree;
498498
try {
@@ -504,7 +504,7 @@ std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbBlock* block,
504504
std::set<dbMarkerCategory*> categories;
505505
for (const auto& [name, subtree] : tree) {
506506
dbMarkerCategory* top_category
507-
= dbMarkerCategory::createOrReplace(block, name.c_str());
507+
= dbMarkerCategory::createOrReplace(chip, name.c_str());
508508
categories.insert(top_category);
509509
_dbMarkerCategory* top_category_ = (_dbMarkerCategory*) top_category;
510510

@@ -514,36 +514,36 @@ std::set<dbMarkerCategory*> dbMarkerCategory::fromJSON(dbBlock* block,
514514
return categories;
515515
}
516516

517-
dbMarkerCategory* dbMarkerCategory::fromTR(dbBlock* block,
517+
dbMarkerCategory* dbMarkerCategory::fromTR(dbChip* chip,
518518
const char* name,
519519
const std::string& path)
520520
{
521521
std::ifstream report(path);
522522
if (!report.is_open()) {
523-
_dbBlock* _block = (_dbBlock*) block;
524-
utl::Logger* logger = _block->getLogger();
523+
_dbChip* _chip = (_dbChip*) chip;
524+
utl::Logger* logger = _chip->getLogger();
525525

526526
logger->error(
527527
utl::ODB, 30, "Unable to open TritonRoute DRC report: {}", path);
528528
}
529529

530-
dbMarkerCategory* category = fromTR(block, name, path.c_str(), report);
530+
dbMarkerCategory* category = fromTR(chip, name, path.c_str(), report);
531531

532532
report.close();
533533

534534
return category;
535535
}
536536

537-
dbMarkerCategory* dbMarkerCategory::fromTR(dbBlock* block,
537+
dbMarkerCategory* dbMarkerCategory::fromTR(dbChip* chip,
538538
const char* name,
539539
const char* source,
540540
std::ifstream& report)
541541
{
542-
dbMarkerCategory* marker_category = createOrReplace(block, name);
542+
dbMarkerCategory* marker_category = createOrReplace(chip, name);
543543
marker_category->setSource(source);
544544

545-
_dbBlock* _block = (_dbBlock*) block;
546-
utl::Logger* logger = _block->getLogger();
545+
_dbChip* _chip = (_dbChip*) chip;
546+
utl::Logger* logger = _chip->getLogger();
547547

548548
const std::regex violation_type("\\s*violation type: (.*)");
549549
const boost::regex srcs("\\s*srcs: (.*)");
@@ -553,7 +553,8 @@ dbMarkerCategory* dbMarkerCategory::fromTR(dbBlock* block,
553553
"\\s*\\(\\s*(.*),\\s*(.*)\\s*\\)\\s*-\\s*\\(\\s*(.*),\\s*(.*)\\s*\\)");
554554

555555
int line_number = 0;
556-
dbTech* tech = block->getTech();
556+
dbTech* tech = chip->getTech();
557+
dbBlock* block = chip->getBlock();
557558
while (!report.eof()) {
558559
std::string line;
559560
std::smatch base_match;
@@ -820,17 +821,23 @@ dbMarkerCategory* dbMarkerCategory::createOrReplace(dbChip* chip,
820821
return create(chip, name);
821822
}
822823

824+
// For compatibility purposes only, Markers are now stored on the chip
825+
// This should be removed in the future
823826
dbMarkerCategory* dbMarkerCategory::create(dbBlock* block, const char* name)
824827
{
825828
return create(block->getChip(), name);
826829
}
827830

831+
// For compatibility purposes only, Markers are now stored on the chip
832+
// This should be removed in the future
828833
dbMarkerCategory* dbMarkerCategory::createOrGet(dbBlock* block,
829834
const char* name)
830835
{
831836
return createOrGet(block->getChip(), name);
832837
}
833838

839+
// For compatibility purposes only, Markers are now stored on the chip
840+
// This should be removed in the future
834841
dbMarkerCategory* dbMarkerCategory::createOrReplace(dbBlock* block,
835842
const char* name)
836843
{

0 commit comments

Comments
 (0)