From cc4768ff77944232ea783d39c01609c1f5924209 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sat, 7 Apr 2018 14:11:44 +0300 Subject: [PATCH] Fixed issue #836. Change Detail Name - Update List of Details. --HG-- branch : develop --- src/app/valentina/mainwindow.cpp | 15 ++++++++++++--- src/app/valentina/mainwindow.h | 3 ++- src/libs/vtools/tools/drawTools/vdrawtool.h | 4 ++-- src/libs/vtools/tools/vtoolseamallowance.cpp | 5 +++++ src/libs/vtools/undocommands/savepieceoptions.cpp | 4 ++++ src/libs/vtools/undocommands/savepieceoptions.h | 3 +++ src/libs/vwidgets/vabstractmainwindow.cpp | 9 ++++++++- src/libs/vwidgets/vabstractmainwindow.h | 3 ++- 8 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 319c10b46..37d6100f0 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -1458,13 +1458,22 @@ void MainWindow::ShowToolTip(const QString &toolTip) //--------------------------------------------------------------------------------------------------------------------- /** - * @brief triggers the update of the groups + * @brief triggers the update of the visibility groups */ -void MainWindow::UpdateGroups() +void MainWindow::UpdateVisibilityGroups() { groupsWidget->UpdateGroups(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief triggers the update of the details list + */ +void MainWindow::UpdateDetailsList() +{ + detailsWidget->UpdateList(); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief showEvent handle after show window. @@ -4155,7 +4164,7 @@ void MainWindow::InitDocksContain() qCDebug(vMainWindow, "Initialization groups dock."); groupsWidget = new VWidgetGroups(doc, this); ui->dockWidgetGroups->setWidget(groupsWidget); - connect(doc,&VAbstractPattern::UpdateGroups , this, &MainWindow::UpdateGroups); + connect(doc,&VAbstractPattern::UpdateGroups , this, &MainWindow::UpdateVisibilityGroups); detailsWidget = new VWidgetDetails(pattern, doc, this); connect(doc, &VPattern::FullUpdateFromFile, detailsWidget, &VWidgetDetails::UpdateList); diff --git a/src/app/valentina/mainwindow.h b/src/app/valentina/mainwindow.h index 841653c2a..60a4fbe04 100644 --- a/src/app/valentina/mainwindow.h +++ b/src/app/valentina/mainwindow.h @@ -69,7 +69,8 @@ public: public slots: void ProcessCMD(); virtual void ShowToolTip(const QString &toolTip) Q_DECL_OVERRIDE; - virtual void UpdateGroups() Q_DECL_OVERRIDE; + virtual void UpdateVisibilityGroups() Q_DECL_OVERRIDE; + virtual void UpdateDetailsList() Q_DECL_OVERRIDE; signals: void RefreshHistory(); diff --git a/src/libs/vtools/tools/drawTools/vdrawtool.h b/src/libs/vtools/tools/drawTools/vdrawtool.h index f06c4a2b9..79da4bf2e 100644 --- a/src/libs/vtools/tools/drawTools/vdrawtool.h +++ b/src/libs/vtools/tools/drawTools/vdrawtool.h @@ -293,7 +293,7 @@ void VDrawTool::ContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 itemI SCASSERT(window != nullptr) { AddItemToGroup *addItemToGroup = new AddItemToGroup(item, doc, groupId); - connect(addItemToGroup, &AddItemToGroup::UpdateGroups, window, &VAbstractMainWindow::UpdateGroups); + connect(addItemToGroup, &AddItemToGroup::UpdateGroups, window, &VAbstractMainWindow::UpdateVisibilityGroups); qApp->getUndoStack()->push(addItemToGroup); } } @@ -306,7 +306,7 @@ void VDrawTool::ContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 itemI SCASSERT(window != nullptr) { RemoveItemFromGroup *removeItemFromGroup = new RemoveItemFromGroup(item, doc, groupId); - connect(removeItemFromGroup, &RemoveItemFromGroup::UpdateGroups, window, &VAbstractMainWindow::UpdateGroups); + connect(removeItemFromGroup, &RemoveItemFromGroup::UpdateGroups, window, &VAbstractMainWindow::UpdateVisibilityGroups); qApp->getUndoStack()->push(removeItemFromGroup); } } diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index cda38b259..5458c4cd7 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -51,6 +51,7 @@ #include "../undocommands/togglepiecestate.h" #include "../vwidgets/vmaingraphicsview.h" #include "../vwidgets/vnobrushscalepathitem.h" +#include "../vwidgets/vabstractmainwindow.h" #include "../qmuparser/qmutokenparser.h" #include @@ -1437,6 +1438,10 @@ void VToolSeamAllowance::SaveDialogChange(const QString &undoText) const bool groupChange = not undocommands.isEmpty(); SavePieceOptions *saveCommand = new SavePieceOptions(oldDet, newDet, doc, m_id); + if (VAbstractMainWindow *window = qobject_cast(qApp->getMainWindow())) + { // Better not to crash here, just silently do not update list. + connect(saveCommand, &SavePieceOptions::UpdateGroups, window, &VAbstractMainWindow::UpdateDetailsList); + } if (groupChange) { diff --git a/src/libs/vtools/undocommands/savepieceoptions.cpp b/src/libs/vtools/undocommands/savepieceoptions.cpp index c4ff37590..41972e3c6 100644 --- a/src/libs/vtools/undocommands/savepieceoptions.cpp +++ b/src/libs/vtools/undocommands/savepieceoptions.cpp @@ -93,6 +93,8 @@ void SavePieceOptions::undo() { tool->Update(m_oldDet); } + + emit UpdateGroups(); } else { @@ -138,6 +140,8 @@ void SavePieceOptions::redo() { tool->Update(m_newDet); } + + emit UpdateGroups(); } else { diff --git a/src/libs/vtools/undocommands/savepieceoptions.h b/src/libs/vtools/undocommands/savepieceoptions.h index 3bf80ed7c..86f92ba71 100644 --- a/src/libs/vtools/undocommands/savepieceoptions.h +++ b/src/libs/vtools/undocommands/savepieceoptions.h @@ -36,6 +36,7 @@ class SavePieceOptions : public VUndoCommand { + Q_OBJECT public: SavePieceOptions(const VPiece &oldDet, const VPiece &newDet, VAbstractPattern *doc, quint32 id, QUndoCommand *parent = nullptr); @@ -47,6 +48,8 @@ public: virtual int id() const Q_DECL_OVERRIDE; quint32 DetId() const; VPiece NewDet() const; +signals: + void UpdateGroups(); private: Q_DISABLE_COPY(SavePieceOptions) diff --git a/src/libs/vwidgets/vabstractmainwindow.cpp b/src/libs/vwidgets/vabstractmainwindow.cpp index f158d8a39..1d85b3e9a 100644 --- a/src/libs/vwidgets/vabstractmainwindow.cpp +++ b/src/libs/vwidgets/vabstractmainwindow.cpp @@ -158,6 +158,13 @@ void VAbstractMainWindow::ExportDataToCSV() } //--------------------------------------------------------------------------------------------------------------------- -void VAbstractMainWindow::UpdateGroups() +void VAbstractMainWindow::UpdateVisibilityGroups() { + // do nothing +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractMainWindow::UpdateDetailsList() +{ + // do nothing } diff --git a/src/libs/vwidgets/vabstractmainwindow.h b/src/libs/vwidgets/vabstractmainwindow.h index a3db738ff..cb84fa510 100644 --- a/src/libs/vwidgets/vabstractmainwindow.h +++ b/src/libs/vwidgets/vabstractmainwindow.h @@ -46,7 +46,8 @@ public: public slots: virtual void ShowToolTip(const QString &toolTip)=0; - virtual void UpdateGroups(); + virtual void UpdateVisibilityGroups(); + virtual void UpdateDetailsList(); protected slots: void WindowsLocale();