diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp index fe71bc7..529d61b 100644 --- a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp @@ -14,6 +14,7 @@ EditorWidget::EditorWidget(QWidget *parent) : QWidget(parent) connect(treeWidget, &LayerTreeWidget::displayLayerChange, this, &EditorWidget::onLayerChange); connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshPreview, this, &EditorWidget::triggerRefreshPreview); + connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireSelfRefresh, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); // &EditorWidget::triggerRefreshPreview); // test QFile settingFile; diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp index f197005..e3ecee9 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp @@ -98,16 +98,23 @@ void InfoDisplayWidget::generateLayerForm() detailButton->setFixedSize(QSize(20, 20)); deleteButton->setText("×"); deleteButton->setFixedSize(QSize(20, 20)); - connect(detailButton, &QPushButton::clicked, [styleList, item, this]() { + connect(detailButton, &QPushButton::clicked, [styleList, item, this, index]() { QDialog dlg(this); dlg.setWindowTitle("样式详情"); dlg.resize(400, 200); - auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Save | QDialogButtonBox::Cancel, &dlg); + QGridLayout *contentLayout = new QGridLayout(&dlg); + QLineEdit* name = new QLineEdit(styleNames[index], &dlg); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Save | QDialogButtonBox::Cancel); + contentLayout->addWidget(buttonBox); connect(buttonBox, &QDialogButtonBox::accepted, &dlg, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, &dlg, &QDialog::reject); bool updateStyle = dlg.exec(); if (updateStyle) { + styleNames[index] = name->text(); + qDebug() << name->text(); // 在此处修改新样式信息至内存 + emit requireRefreshPreview(); + emit requireSelfRefresh(); } }); connect(deleteButton, &QPushButton::clicked, [styleList,item,this]() { @@ -115,6 +122,7 @@ void InfoDisplayWidget::generateLayerForm() delete item; // 删除layer对应样式 emit requireRefreshPreview(); + emit requireSelfRefresh(); }); layout->addWidget(name); layout->addWidget(detailButton); @@ -137,3 +145,11 @@ void InfoDisplayWidget::generateLayerForm() void InfoDisplayWidget::generateElementForm() { } + +void InfoDisplayWidget::triggerSelfRefresh() +{ + if (this->displayLayer != nullptr) + this->generateLayerForm(); + else + this->generateElementForm(); +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h index c95586d..5426425 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h @@ -17,7 +17,13 @@ class InfoDisplayWidget : public QWidget void setElement(GraphicElement *element); void generateLayerForm(); void generateElementForm(); + + public slots: + void triggerSelfRefresh(); signals: void requireRefreshPreview(); + void requireSelfRefresh(); + + };