void SlotInspectorSection::on_layerModelRemoved(const LayerModel& removed) { // OPTIMIZEME m_lmSection->removeAll(); for (const auto& lm : m_model.layers) { if (lm.id() != removed.id()) { displayLayerModel(lm); } } }
void SlotInspectorSection::displayLayerModel(const LayerModel& lm) { auto lm_id = lm.id(); // Layout auto frame = new QFrame; auto lay = new QGridLayout; lay->setContentsMargins(0, 0, 0, 0); lay->setSpacing(0); frame->setLayout(lay); frame->setFrameShape(QFrame::StyledPanel); // LM label QString name = lm.objectName(); name.resize(name.indexOf("Layer")); auto id = lm.processModel().id(); lay->addWidget(new QLabel {QString{name + ".%1"} .arg(*id.val()) }, 0, 0); // To front button auto pb = new QPushButton {tr("Front")}; connect(pb, &QPushButton::clicked, [=]() { PutLayerModelToFront cmd{m_model, lm_id}; cmd.redo(); }); lay->addWidget(pb, 1, 0); // Delete button auto deleteButton = new QPushButton{{tr("Delete")}}; connect(deleteButton, &QPushButton::pressed, this, [=] () { auto cmd = new RemoveLayerModelFromSlot{m_model, lm_id}; emit m_parent->commandDispatcher()->submitCommand(cmd); }); lay->addWidget(deleteButton, 1, 1); m_lmSection->addContent(frame); }