New slot for full parsing. Want use in undo command.
--HG-- branch : feature
This commit is contained in:
parent
40993fd7ba
commit
99314a358f
|
@ -898,8 +898,8 @@ void MainWindow::currentDrawChanged( int index )
|
||||||
{
|
{
|
||||||
if (index != -1)
|
if (index != -1)
|
||||||
{
|
{
|
||||||
doc->setCurrentData();
|
|
||||||
doc->ChangeActivDraw(comboBoxDraws->itemText(index));
|
doc->ChangeActivDraw(comboBoxDraws->itemText(index));
|
||||||
|
doc->setCurrentData();
|
||||||
if (drawMode)
|
if (drawMode)
|
||||||
{
|
{
|
||||||
ArrowTool();
|
ArrowTool();
|
||||||
|
@ -1333,6 +1333,91 @@ void MainWindow::Clear()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::FullParseFile()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
doc->Parse(Document::FullParse);
|
||||||
|
}
|
||||||
|
catch (const VExceptionObjectError &e)
|
||||||
|
{
|
||||||
|
e.CriticalMessageBox(tr("Error parsing file."), this);
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (const VExceptionConversionError &e)
|
||||||
|
{
|
||||||
|
e.CriticalMessageBox(tr("Error can't convert value."), this);
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (const VExceptionEmptyParameter &e)
|
||||||
|
{
|
||||||
|
e.CriticalMessageBox(tr("Error empty parameter."), this);
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (const VExceptionWrongId &e)
|
||||||
|
{
|
||||||
|
e.CriticalMessageBox(tr("Error wrong id."), this);
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (VException &e)
|
||||||
|
{
|
||||||
|
e.CriticalMessageBox(tr("Error parsing file."), this);
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
catch (const std::bad_alloc &)
|
||||||
|
{
|
||||||
|
#ifndef QT_NO_CURSOR
|
||||||
|
QApplication::restoreOverrideCursor();
|
||||||
|
#endif
|
||||||
|
QMessageBox msgBox;
|
||||||
|
msgBox.setWindowTitle(tr("Error!"));
|
||||||
|
msgBox.setText(tr("Error parsing file."));
|
||||||
|
msgBox.setInformativeText("std::bad_alloc");
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||||
|
msgBox.setDefaultButton(QMessageBox::Ok);
|
||||||
|
msgBox.setIcon(QMessageBox::Warning);
|
||||||
|
msgBox.exec();
|
||||||
|
#ifndef QT_NO_CURSOR
|
||||||
|
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||||
|
#endif
|
||||||
|
Clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString patternPiece = QString();
|
||||||
|
if (comboBoxDraws->currentIndex() != -1)
|
||||||
|
{
|
||||||
|
patternPiece = comboBoxDraws->itemText(comboBoxDraws->currentIndex());
|
||||||
|
}
|
||||||
|
disconnect(comboBoxDraws, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &MainWindow::currentDrawChanged);
|
||||||
|
comboBoxDraws->clear();
|
||||||
|
comboBoxDraws->addItems(doc->getPatternPieces());
|
||||||
|
connect(comboBoxDraws, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &MainWindow::currentDrawChanged);
|
||||||
|
ui->actionPattern_properties->setEnabled(true);
|
||||||
|
|
||||||
|
qint32 index = comboBoxDraws->findText(patternPiece);
|
||||||
|
if ( index != -1 )
|
||||||
|
{ // -1 for not found
|
||||||
|
comboBoxDraws->setCurrentIndex(index);
|
||||||
|
}
|
||||||
|
if (comboBoxDraws->count() > 0)
|
||||||
|
{
|
||||||
|
SetEnableTool(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetEnableTool(false);
|
||||||
|
}
|
||||||
|
SetEnableWidgets(true);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief NewPattern create new empty pattern.
|
* @brief NewPattern create new empty pattern.
|
||||||
|
@ -1884,83 +1969,7 @@ void MainWindow::LoadPattern(const QString &fileName)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
FullParseFile();
|
||||||
{
|
|
||||||
doc->Parse(Document::FullParse);
|
|
||||||
}
|
|
||||||
catch (const VExceptionObjectError &e)
|
|
||||||
{
|
|
||||||
e.CriticalMessageBox(tr("Error parsing file."), this);
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (const VExceptionConversionError &e)
|
|
||||||
{
|
|
||||||
e.CriticalMessageBox(tr("Error can't convert value."), this);
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (const VExceptionEmptyParameter &e)
|
|
||||||
{
|
|
||||||
e.CriticalMessageBox(tr("Error empty parameter."), this);
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (const VExceptionWrongId &e)
|
|
||||||
{
|
|
||||||
e.CriticalMessageBox(tr("Error wrong id."), this);
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (VException &e)
|
|
||||||
{
|
|
||||||
e.CriticalMessageBox(tr("Error parsing file."), this);
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch (const std::bad_alloc &)
|
|
||||||
{
|
|
||||||
#ifndef QT_NO_CURSOR
|
|
||||||
QApplication::restoreOverrideCursor();
|
|
||||||
#endif
|
|
||||||
QMessageBox msgBox;
|
|
||||||
msgBox.setWindowTitle(tr("Error!"));
|
|
||||||
msgBox.setText(tr("Error parsing file."));
|
|
||||||
msgBox.setInformativeText("std::bad_alloc");
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Ok);
|
|
||||||
msgBox.setIcon(QMessageBox::Warning);
|
|
||||||
msgBox.exec();
|
|
||||||
#ifndef QT_NO_CURSOR
|
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
|
||||||
#endif
|
|
||||||
Clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
disconnect(comboBoxDraws, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &MainWindow::currentDrawChanged);
|
|
||||||
comboBoxDraws->clear();
|
|
||||||
comboBoxDraws->addItems(doc->getPatternPieces());
|
|
||||||
connect(comboBoxDraws, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &MainWindow::currentDrawChanged);
|
|
||||||
ui->actionPattern_properties->setEnabled(true);
|
|
||||||
|
|
||||||
QString nameDraw = doc->GetNameActivDraw();
|
|
||||||
qint32 index = comboBoxDraws->findText(nameDraw);
|
|
||||||
if ( index != -1 )
|
|
||||||
{ // -1 for not found
|
|
||||||
comboBoxDraws->setCurrentIndex(index);
|
|
||||||
}
|
|
||||||
if (comboBoxDraws->count() > 0)
|
|
||||||
{
|
|
||||||
SetEnableTool(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetEnableTool(false);
|
|
||||||
}
|
|
||||||
SetEnableWidgets(true);
|
|
||||||
|
|
||||||
bool patternModified = doc->isPatternModified();
|
bool patternModified = doc->isPatternModified();
|
||||||
setCurrentFile(fileName);
|
setCurrentFile(fileName);
|
||||||
|
|
|
@ -129,6 +129,7 @@ public slots:
|
||||||
void ShowToolTip(const QString &toolTip);
|
void ShowToolTip(const QString &toolTip);
|
||||||
void OpenRecentFile();
|
void OpenRecentFile();
|
||||||
void Clear();
|
void Clear();
|
||||||
|
void FullParseFile();
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
* @brief ModelChosen emit after calculation all details.
|
* @brief ModelChosen emit after calculation all details.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user