From 20da2b173e5df4029edb1635fbd4371ef94f7e33 Mon Sep 17 00:00:00 2001 From: baydam Date: Thu, 7 Jul 2016 23:06:55 +0000 Subject: [PATCH] Bug Fix: Clicking the zoom toolbars button of the output panel while there is no mesh present will crash the software. --- MainWindow.cpp | 4 +++- MapperGLCanvasToolbar.cpp | 10 +++++----- MapperGLCanvasToolbar.h | 5 +++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/MainWindow.cpp b/MainWindow.cpp index a6eb903..4f27019 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -137,7 +137,6 @@ void MainWindow::handlePaintItemSelectionChanged() addEllipseAction->setEnabled(paintItemSelected); // Enable some menus and buttons sourceCanvasToolbar->enableZoomToolBar(paintItemSelected); - destinationCanvasToolbar->enableZoomToolBar(paintItemSelected); sourceMenu->setEnabled(paintItemSelected); // Update canvases. @@ -153,6 +152,9 @@ void MainWindow::handleMappingItemSelectionChanged(const QModelIndex &index) // Set current mapping and paint setCurrentMapping(mappingId); setCurrentPaint(paintId); + // Enable destination zoom toolbar buttons and avoid loop + if (!destinationCanvasToolbar->buttonsAreEnable()) + destinationCanvasToolbar->enableZoomToolBar(true); // Update canvases. updateCanvases(); diff --git a/MapperGLCanvasToolbar.cpp b/MapperGLCanvasToolbar.cpp index c12c9cc..7b8e229 100644 --- a/MapperGLCanvasToolbar.cpp +++ b/MapperGLCanvasToolbar.cpp @@ -119,12 +119,12 @@ void MapperGLCanvasToolbar::showZoomToolBar(bool visible) void MapperGLCanvasToolbar::enableZoomToolBar(bool enabled) { - // Enable/Disable all button - _zoomInButton->setEnabled(enabled); - _zoomOutButton->setEnabled(enabled); - _resetZoomButton->setEnabled(enabled); - _fitToViewButton->setEnabled(enabled); + foreach (QPushButton *button, findChildren()) { + button->setEnabled(enabled); + } _dropdownMenu->setEnabled(enabled); + // Notify changes + _areEnable = enabled; } void MapperGLCanvasToolbar::updateDropdownMenu(qreal factor) diff --git a/MapperGLCanvasToolbar.h b/MapperGLCanvasToolbar.h index 966ef26..db3ab66 100644 --- a/MapperGLCanvasToolbar.h +++ b/MapperGLCanvasToolbar.h @@ -36,6 +36,9 @@ public: void enableZoomToolBar(bool enabled); + // Return enable statut + bool buttonsAreEnable() { return _areEnable; } + public slots: // Update and feedback zoom level void updateDropdownMenu(qreal factor = 1); @@ -53,6 +56,8 @@ protected: // Dropdown menu QComboBox* _dropdownMenu; + bool _areEnable; + }; MM_END_NAMESPACE