From f06fbbaef6a238066323c4360a7dbdf0ac778530 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Mon, 20 Mar 2023 14:44:36 +0800 Subject: [PATCH] =?UTF-8?q?FIX:=20=E6=9A=82=E6=97=B6=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BE=E5=B1=82=E5=B1=9E=E6=80=A7=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84crash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Editor/EditorWidgetItem.cpp | 17 +++++++++-------- .../src/Editor/PreviewWindow.cpp | 5 ++--- .../src/Editor/PreviewWindow.h | 1 + .../src/Editor/RightBar/InfoDisplayWidget.cpp | 5 ++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp index eb5f228..b9930ab 100644 --- a/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp @@ -25,6 +25,7 @@ EditorWidgetItem::EditorWidgetItem(QString filePath,QWidget *parent) : QWidget(p treeWidget->refresh(); previewWindow->refresh(); }; + connect(previewWindow, &PreviewWindow::triggerCentralRefresh, centralRefresh); connect(layerInfoDisplayWidget, &InfoDisplayWidget::triggerCentralRefresh, centralRefresh); connect(elementInfoDisplayWidget, &ElementPoolWidget::triggerCentralRefresh, centralRefresh); connect(treeWidget, &LayerTreeWidget::triggerCentralRefresh, centralRefresh); @@ -33,15 +34,15 @@ EditorWidgetItem::EditorWidgetItem(QString filePath,QWidget *parent) : QWidget(p connect(previewWindow, &PreviewWindow::refreshElementPreviewByIndex, elementInfoDisplayWidget, &ElementPoolWidget::refreshPictureByIndex); connect(previewWindow, &PreviewWindow::layerInfoChanged, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); connect(treeWidget, &LayerTreeWidget::displayLayerChange, previewWindow, &PreviewWindow::currentLayerChanged); - connect(treeWidget, &LayerTreeWidget::requireRefreshElementWidget, elementInfoDisplayWidget, &ElementPoolWidget::refresh); - connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshElementWidget, elementInfoDisplayWidget, &ElementPoolWidget::refresh); + //connect(treeWidget, &LayerTreeWidget::requireRefreshElementWidget, elementInfoDisplayWidget, &ElementPoolWidget::refresh); + // connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshElementWidget, elementInfoDisplayWidget, &ElementPoolWidget::refresh); connect(treeWidget, &LayerTreeWidget::displayLayerChange, this, &EditorWidgetItem::onLayerChange); - connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshPreview, this, - &EditorWidgetItem::triggerRefreshPreview); - connect(treeWidget, &LayerTreeWidget::requireRefreshPreview, this, - &EditorWidgetItem::triggerRefreshPreview); - connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireSelfRefresh, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); - connect(elementInfoDisplayWidget, &ElementPoolWidget::refreshLayerTree, treeWidget, &LayerTreeWidget::refresh); + // connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshPreview, this, + // &EditorWidgetItem::triggerRefreshPreview); + // connect(treeWidget, &LayerTreeWidget::requireRefreshPreview, this, + // &EditorWidgetItem::triggerRefreshPreview); + //connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireSelfRefresh, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); + // connect(elementInfoDisplayWidget, &ElementPoolWidget::refreshLayerTree, treeWidget, &LayerTreeWidget::refresh); // &EditorWidget::triggerRefreshPreview); // test QFile settingFile; diff --git a/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp index c4a03b5..dbe317c 100644 --- a/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp +++ b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp @@ -100,19 +100,18 @@ void PreviewWindow::mouseMoveEvent(QMouseEvent* event) auto index = -1; if (typeid(*layer) == typeid(FolderLayerWrapper)) index = dynamic_cast(layer)->getReferencedBy(); - if (index != -1) - emit refreshElementPreviewByIndex(index); layer = layer->getParent(); } } // 更新上一次的位置 + emit triggerCentralRefresh(); m_lastPos = event->pos(); this->repaint(); } void PreviewWindow::mouseReleaseEvent(QMouseEvent* event) { - emit layerInfoChanged(); + //emit layerInfoChanged(); } void PreviewWindow::setBackgroundColor(QColor color) diff --git a/ArchitectureColoredPainting/src/Editor/PreviewWindow.h b/ArchitectureColoredPainting/src/Editor/PreviewWindow.h index 9f9d07c..4fd002d 100644 --- a/ArchitectureColoredPainting/src/Editor/PreviewWindow.h +++ b/ArchitectureColoredPainting/src/Editor/PreviewWindow.h @@ -46,4 +46,5 @@ class PreviewWindow : public QOpenGLWidget, protected QOpenGLFunctions void layerInfoChanged(); void refreshElementPreview(GraphicElement*); void refreshElementPreviewByIndex(int); + void triggerCentralRefresh(); }; diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp index 6869729..56e46b4 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp @@ -21,12 +21,11 @@ void InfoDisplayWidget::generateLayerForm() { while (this->layout()->count() > 0 && (item = this->layout()->takeAt(0)) != nullptr) { - delete item->widget(); - delete item; + item->widget()->deleteLater(); + delete item; } delete this->layout(); } - QFormLayout *layout = new QFormLayout(); layout->setRowWrapPolicy(QFormLayout::WrapAllRows); if (this->displayLayer == nullptr)