schema_editor/comdel/display/library_display.cpp

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