53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#include "library_display.h"
|
|
|
|
#include <QLabel>
|
|
#include <QListWidget>
|
|
#include <QVBoxLayout>
|
|
|
|
namespace display {
|
|
|
|
Library::Library()
|
|
{
|
|
auto layout = new QVBoxLayout();
|
|
this->setLayout(layout);
|
|
|
|
componentList = new QListWidget();
|
|
busList = new QListWidget();
|
|
|
|
layout->setMargin(4);
|
|
layout->addWidget(new QLabel("Components:"));
|
|
layout->addWidget(componentList, 1);
|
|
layout->addSpacing(8);
|
|
layout->addWidget(new QLabel("Buses:"));
|
|
layout->addWidget(busList, 1);
|
|
|
|
setLibrary(library);
|
|
}
|
|
|
|
void Library::setLibrary(std::optional<domain::Library> library) {
|
|
|
|
componentList->clear();
|
|
busList->clear();
|
|
|
|
if(!library) {
|
|
return;
|
|
}
|
|
|
|
for(auto& component: library->getComponents()) {
|
|
auto item = new QListWidgetItem{QString::fromStdString(component.getName())};
|
|
item->setToolTip(QString::fromStdString(component.getTooltip()));
|
|
componentList->addItem(item);
|
|
}
|
|
|
|
for(auto& bus: library->getBuses()) {
|
|
if(bus.getType() == domain::Bus::REGULAR) {
|
|
auto item = new QListWidgetItem{QString::fromStdString(bus.getName())};
|
|
item->setToolTip(QString::fromStdString(bus.getTooltip()));
|
|
busList->addItem(item);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
} // namespace display
|