From c2fad3cde4976034871d06860366272b5d8a5c9e Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sun, 3 Apr 2016 19:29:52 +0300 Subject: [PATCH] Fixed GUI issue. After full parse some widgets was incorrectly reseted. --HG-- branch : release --- ChangeLog.txt | 1 + src/app/valentina/mainwindow.cpp | 93 +++++++++++++------------------- 2 files changed, 37 insertions(+), 57 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 8c8cf25ea..000b9e4c2 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,4 +1,5 @@ # Version 0.4.4 +- Fixed GUI issue. After full parse some widgets was incorrectly reseted. - [#464] Crash. Issue with modeling node objects. - [#463] Wrong export to DXF format. - Fixed issue with deleting detail nodes. diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index ee1f3cde4..d18ac8f2c 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -1855,30 +1855,14 @@ void MainWindow::ActionDraw(bool checked) RestoreCurrentScene(); mode = Draw::Calculation; - comboBoxDraws->setEnabled(true); comboBoxDraws->setCurrentIndex(currentDrawIndex);//restore current pattern peace drawMode = true; SetEnableTool(true); + SetEnableWidgets(true); doc->setCurrentData(); ui->toolBox->setCurrentIndex(currentToolBoxIndex); - ui->actionHistory->setEnabled(true); - ui->actionOptionDraw->setEnabled(true); - ui->actionNewDraw->setEnabled(true); - ui->actionTable->setEnabled(true); - ui->actionArrowTool->setEnabled(true); - ui->actionShowCurveDetails->setEnabled(true); - actionDockWidgetToolOptions->setEnabled(true); - if (qApp->getUndoStack()->canUndo()) - { - undoAction->setEnabled(true); - } - if (qApp->getUndoStack()->canRedo()) - { - redoAction->setEnabled(true); - } - if (qApp->patternType() == MeasurementsType::Standard) { ui->toolBarOption->setVisible(true); @@ -1938,7 +1922,6 @@ void MainWindow::ActionDetails(bool checked) drawMode = false; } comboBoxDraws->setCurrentIndex(comboBoxDraws->count()-1); - comboBoxDraws->setEnabled(false); if (mode == Draw::Calculation) { @@ -1946,24 +1929,9 @@ void MainWindow::ActionDetails(bool checked) } mode = Draw::Modeling; SetEnableTool(true); + SetEnableWidgets(true); ui->toolBox->setCurrentIndex(4); - ui->actionHistory->setEnabled(false); - ui->actionOptionDraw->setEnabled(false); - ui->actionNewDraw->setEnabled(false); - ui->actionTable->setEnabled(false); - ui->actionArrowTool->setEnabled(true); - ui->actionShowCurveDetails->setEnabled(false); - actionDockWidgetToolOptions->setEnabled(true); - if (qApp->getUndoStack()->canUndo()) - { - undoAction->setEnabled(true); - } - if (qApp->getUndoStack()->canRedo()) - { - redoAction->setEnabled(true); - } - if (qApp->patternType() == MeasurementsType::Standard) { ui->toolBarOption->setVisible(true); @@ -2026,7 +1994,6 @@ void MainWindow::ActionLayout(bool checked) drawMode = false; } comboBoxDraws->setCurrentIndex(-1); - comboBoxDraws->setEnabled(false); if (mode == Draw::Calculation) { @@ -2034,17 +2001,9 @@ void MainWindow::ActionLayout(bool checked) } mode = Draw::Layout; SetEnableTool(true); + SetEnableWidgets(true); ui->toolBox->setCurrentIndex(5); - ui->actionHistory->setEnabled(false); - ui->actionOptionDraw->setEnabled(false); - ui->actionNewDraw->setEnabled(false); - ui->actionArrowTool->setEnabled(false); - ui->actionTable->setEnabled(false); - ui->actionShowCurveDetails->setEnabled(false); - actionDockWidgetToolOptions->setEnabled(false); - undoAction->setEnabled(false); - redoAction->setEnabled(false); mouseCoordinate->setText(""); if (qApp->patternType() == MeasurementsType::Standard) @@ -2414,7 +2373,7 @@ void MainWindow::FullParseFile() return; } - QString patternPiece = QString(); + QString patternPiece; if (comboBoxDraws->currentIndex() != -1) { patternPiece = comboBoxDraws->itemText(comboBoxDraws->currentIndex()); @@ -2422,6 +2381,18 @@ void MainWindow::FullParseFile() comboBoxDraws->blockSignals(true); comboBoxDraws->clear(); comboBoxDraws->addItems(doc->getPatternPieces()); + if (not drawMode) + { + comboBoxDraws->setCurrentIndex(comboBoxDraws->count()-1); + } + else + { + const qint32 index = comboBoxDraws->findText(patternPiece); + if ( index != -1 ) + { + comboBoxDraws->setCurrentIndex(index); + } + } comboBoxDraws->blockSignals(false); ui->actionPattern_properties->setEnabled(true); @@ -2499,30 +2470,38 @@ void MainWindow::SetEnabledGUI(bool enabled) */ void MainWindow::SetEnableWidgets(bool enable) { - comboBoxDraws->setEnabled(enable); - ui->actionOptionDraw->setEnabled(enable); + const bool drawStage = (mode == Draw::Calculation); + const bool designStage = (drawStage || mode == Draw::Modeling); + + comboBoxDraws->setEnabled(enable && drawStage); + ui->actionOptionDraw->setEnabled(enable && drawStage); if (enable && not curFile.isEmpty()) { ui->actionSave->setEnabled(enable); } ui->actionSaveAs->setEnabled(enable); - ui->actionPattern_properties->setEnabled(enable); - ui->actionEdit_pattern_code->setEnabled(enable); + ui->actionPattern_properties->setEnabled(enable && designStage); + ui->actionEdit_pattern_code->setEnabled(enable && designStage); ui->actionZoomIn->setEnabled(enable); ui->actionZoomOut->setEnabled(enable); - ui->actionArrowTool->setEnabled(enable); - ui->actionHistory->setEnabled(enable); - ui->actionNewDraw->setEnabled(enable); + ui->actionArrowTool->setEnabled(enable && designStage); + ui->actionHistory->setEnabled(enable && drawStage); + ui->actionNewDraw->setEnabled(enable && drawStage); ui->actionDraw->setEnabled(enable); ui->actionDetails->setEnabled(enable); ui->actionLayout->setEnabled(enable); - ui->actionTable->setEnabled(enable); + ui->actionTable->setEnabled(enable && drawStage); ui->actionZoomFitBest->setEnabled(enable); ui->actionZoomOriginal->setEnabled(enable); - ui->actionShowCurveDetails->setEnabled(enable); - ui->actionLoadIndividual->setEnabled(enable); - ui->actionLoadStandard->setEnabled(enable); - ui->actionUnloadMeasurements->setEnabled(enable); + ui->actionShowCurveDetails->setEnabled(enable && drawStage); + ui->actionLoadIndividual->setEnabled(enable && designStage); + ui->actionLoadStandard->setEnabled(enable && designStage); + ui->actionUnloadMeasurements->setEnabled(enable && designStage); + + actionDockWidgetToolOptions->setEnabled(enable && designStage); + + undoAction->setEnabled(enable && designStage && qApp->getUndoStack()->canUndo()); + redoAction->setEnabled(enable && designStage && qApp->getUndoStack()->canRedo()); //Now we don't want allow user call context menu sceneDraw->SetDisableTools(!enable, doc->GetNameActivPP());