From 21a973babdbeb58d762e2e347ff4d46fb23ea7b1 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Mon, 20 Feb 2023 20:09:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0InfoDisplay=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E8=87=AA=E6=88=91=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Editor/EditorWidget.cpp | 1 + .../src/Editor/RightBar/InfoDisplayWidget.cpp | 20 +++++++++++++++++-- .../src/Editor/RightBar/InfoDisplayWidget.h | 6 ++++++ 3 files changed, 25 insertions(+), 2 deletions(-) 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(); + + };