Fix crash while synchronize measurements.
(cherry picked from commit 1b5705388c
)
This commit is contained in:
parent
42afd0e2f6
commit
ec17a82cdc
|
@ -3,6 +3,7 @@
|
||||||
- Fix issue in VAbstractCurve::CurveIntersectAxis.
|
- Fix issue in VAbstractCurve::CurveIntersectAxis.
|
||||||
- Improve editing a spline path through control points for locked angles.
|
- Improve editing a spline path through control points for locked angles.
|
||||||
- [smart-pattern/valentina#73] Notes for tools.
|
- [smart-pattern/valentina#73] Notes for tools.
|
||||||
|
- Fix crash while synchronize measurements.
|
||||||
|
|
||||||
# Version 0.7.36 October 24, 2020
|
# Version 0.7.36 October 24, 2020
|
||||||
- [#892] Show tooltip for piece node point.
|
- [#892] Show tooltip for piece node point.
|
||||||
|
@ -101,6 +102,7 @@
|
||||||
- Elide a variable description in the formula wizard.
|
- Elide a variable description in the formula wizard.
|
||||||
- Fix removing a pin in the Seam Allowance tool dialog.
|
- Fix removing a pin in the Seam Allowance tool dialog.
|
||||||
- Fix label size for case with two pins.
|
- Fix label size for case with two pins.
|
||||||
|
- Fix crash while synchronize measurements.
|
||||||
|
|
||||||
# Version 0.6.1 October 23, 2018
|
# Version 0.6.1 October 23, 2018
|
||||||
- [#885] Regression. Broken support for multi size measurements.
|
- [#885] Regression. Broken support for multi size measurements.
|
||||||
|
|
|
@ -200,7 +200,11 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
comboBoxDraws(nullptr), patternPieceLabel(nullptr),
|
comboBoxDraws(nullptr), patternPieceLabel(nullptr),
|
||||||
currentDrawIndex(0), currentToolBoxIndex(0),
|
currentDrawIndex(0), currentToolBoxIndex(0),
|
||||||
drawMode(true),
|
drawMode(true),
|
||||||
leftGoToStage(nullptr), rightGoToStage(nullptr), autoSaveTimer(nullptr), guiEnabled(true),
|
leftGoToStage(nullptr),
|
||||||
|
rightGoToStage(nullptr),
|
||||||
|
autoSaveTimer(nullptr),
|
||||||
|
measurementsSyncTimer(new QTimer(this)),
|
||||||
|
guiEnabled(true),
|
||||||
toolOptions(nullptr),
|
toolOptions(nullptr),
|
||||||
groupsWidget(nullptr),
|
groupsWidget(nullptr),
|
||||||
detailsWidget(nullptr),
|
detailsWidget(nullptr),
|
||||||
|
@ -265,16 +269,20 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
ui->dockWidgetLayoutPages->setVisible(false);
|
ui->dockWidgetLayoutPages->setVisible(false);
|
||||||
|
|
||||||
connect(watcher, &QFileSystemWatcher::fileChanged, this, &MainWindow::MeasurementsChanged);
|
connect(watcher, &QFileSystemWatcher::fileChanged, this, &MainWindow::MeasurementsChanged);
|
||||||
connect(qApp, &QApplication::focusChanged, this, [this](QWidget *old, QWidget *now)
|
|
||||||
|
measurementsSyncTimer->setTimerType(Qt::VeryCoarseTimer);
|
||||||
|
connect(measurementsSyncTimer, &QTimer::timeout, this, [this]()
|
||||||
|
{
|
||||||
|
if (isActiveWindow())
|
||||||
{
|
{
|
||||||
if (old == nullptr && isAncestorOf(now) == true)
|
|
||||||
{// focus IN
|
|
||||||
static bool asking = false;
|
static bool asking = false;
|
||||||
if (not asking && mChanges && not mChangesAsked)
|
if (not asking && mChanges && not mChangesAsked)
|
||||||
{
|
{
|
||||||
asking = true;
|
asking = true;
|
||||||
mChangesAsked = true;
|
mChangesAsked = true;
|
||||||
const auto answer = QMessageBox::question(this, tr("Measurements"),
|
measurementsSyncTimer->stop();
|
||||||
|
const auto answer =
|
||||||
|
QMessageBox::question(this, tr("Measurements"),
|
||||||
tr("Measurements were changed. Do you want to sync measurements now?"),
|
tr("Measurements were changed. Do you want to sync measurements now?"),
|
||||||
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
|
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
|
||||||
if (answer == QMessageBox::Yes)
|
if (answer == QMessageBox::Yes)
|
||||||
|
@ -284,10 +292,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
asking = false;
|
asking = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// In case we will need it
|
|
||||||
// else if (isAncestorOf(old) == true && now == nullptr)
|
|
||||||
// focus OUT
|
|
||||||
});
|
});
|
||||||
|
|
||||||
#if defined(Q_OS_MAC)
|
#if defined(Q_OS_MAC)
|
||||||
|
@ -1968,6 +1972,7 @@ void MainWindow::MeasurementsChanged(const QString &path)
|
||||||
{
|
{
|
||||||
mChanges = true;
|
mChanges = true;
|
||||||
mChangesAsked = false;
|
mChangesAsked = false;
|
||||||
|
measurementsSyncTimer->start(1500);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1977,6 +1982,7 @@ void MainWindow::MeasurementsChanged(const QString &path)
|
||||||
{
|
{
|
||||||
mChanges = true;
|
mChanges = true;
|
||||||
mChangesAsked = false;
|
mChangesAsked = false;
|
||||||
|
measurementsSyncTimer->start(1500);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2009,6 +2015,7 @@ void MainWindow::SyncMeasurements()
|
||||||
doc->LiteParseTree(Document::FullLiteParse);
|
doc->LiteParseTree(Document::FullLiteParse);
|
||||||
mChanges = false;
|
mChanges = false;
|
||||||
mChangesAsked = true;
|
mChangesAsked = true;
|
||||||
|
measurementsSyncTimer->stop();
|
||||||
UpdateWindowTitle();
|
UpdateWindowTitle();
|
||||||
ui->actionSyncMeasurements->setEnabled(mChanges);
|
ui->actionSyncMeasurements->setEnabled(mChanges);
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,6 +271,7 @@ private:
|
||||||
QLabel *leftGoToStage;
|
QLabel *leftGoToStage;
|
||||||
QLabel *rightGoToStage;
|
QLabel *rightGoToStage;
|
||||||
QTimer *autoSaveTimer;
|
QTimer *autoSaveTimer;
|
||||||
|
QTimer *measurementsSyncTimer;
|
||||||
bool guiEnabled;
|
bool guiEnabled;
|
||||||
QPointer<QComboBox> dimensionA{nullptr};
|
QPointer<QComboBox> dimensionA{nullptr};
|
||||||
QPointer<QComboBox> dimensionB{nullptr};
|
QPointer<QComboBox> dimensionB{nullptr};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user