Fixed crash after open broken file. Now program will show error message.
--HG-- branch : develop
This commit is contained in:
parent
8407f714a5
commit
2bfff3f592
|
@ -2258,6 +2258,8 @@ void MainWindow::LoadPattern(const QString &fileName)
|
||||||
|
|
||||||
FullParseFile();
|
FullParseFile();
|
||||||
|
|
||||||
|
if (guiEnabled)
|
||||||
|
{ // No errors occurred
|
||||||
bool patternModified = this->isWindowModified();
|
bool patternModified = this->isWindowModified();
|
||||||
setCurrentFile(fileName);
|
setCurrentFile(fileName);
|
||||||
if (patternModified)
|
if (patternModified)
|
||||||
|
@ -2272,6 +2274,7 @@ void MainWindow::LoadPattern(const QString &fileName)
|
||||||
//Fit scene size to best size for first show
|
//Fit scene size to best size for first show
|
||||||
ZoomFirstShow();
|
ZoomFirstShow();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void MainWindow::ReopenFilesAfterCrash(QStringList &args)
|
void MainWindow::ReopenFilesAfterCrash(QStringList &args)
|
||||||
|
|
|
@ -366,16 +366,18 @@ void VPattern::Parse(const Document &parse)
|
||||||
*/
|
*/
|
||||||
VDataTool *VPattern::getTool(const quint32 &id)
|
VDataTool *VPattern::getTool(const quint32 &id)
|
||||||
{
|
{
|
||||||
if (tools.contains(id))
|
ToolExists(id);
|
||||||
{
|
|
||||||
return tools.value(id);
|
return tools.value(id);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPattern::ToolExists(const quint32 &id) const
|
||||||
{
|
{
|
||||||
const QString error = QString(tr("Can't find tool id = %1 in table.")).arg(id);
|
if (tools.contains(id) == false)
|
||||||
throw VException(error);
|
{
|
||||||
|
throw VExceptionBadId(tr("Can't find tool in table."), id);
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -430,6 +432,7 @@ void VPattern::setCurrentData()
|
||||||
}
|
}
|
||||||
if (tools.size() > 0)
|
if (tools.size() > 0)
|
||||||
{
|
{
|
||||||
|
ToolExists(id);
|
||||||
const VDataTool *vTool = tools.value(id);
|
const VDataTool *vTool = tools.value(id);
|
||||||
*data = vTool->getData();
|
*data = vTool->getData();
|
||||||
}
|
}
|
||||||
|
@ -460,6 +463,7 @@ void VPattern::UpdateToolData(const quint32 &id, VContainer *data)
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
||||||
SCASSERT(data != nullptr);
|
SCASSERT(data != nullptr);
|
||||||
|
ToolExists(id);
|
||||||
VDataTool *tool = tools.value(id);
|
VDataTool *tool = tools.value(id);
|
||||||
SCASSERT(tool != nullptr);
|
SCASSERT(tool != nullptr);
|
||||||
tool->VDataTool::setData(data);
|
tool->VDataTool::setData(data);
|
||||||
|
@ -473,6 +477,7 @@ void VPattern::UpdateToolData(const quint32 &id, VContainer *data)
|
||||||
void VPattern::IncrementReferens(quint32 id) const
|
void VPattern::IncrementReferens(quint32 id) const
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
||||||
|
ToolExists(id);
|
||||||
VDataTool *tool = tools.value(id);
|
VDataTool *tool = tools.value(id);
|
||||||
SCASSERT(tool != nullptr);
|
SCASSERT(tool != nullptr);
|
||||||
tool->incrementReferens();
|
tool->incrementReferens();
|
||||||
|
@ -486,6 +491,7 @@ void VPattern::IncrementReferens(quint32 id) const
|
||||||
void VPattern::DecrementReferens(quint32 id) const
|
void VPattern::DecrementReferens(quint32 id) const
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
||||||
|
ToolExists(id);
|
||||||
VDataTool *tool = tools.value(id);
|
VDataTool *tool = tools.value(id);
|
||||||
SCASSERT(tool != nullptr);
|
SCASSERT(tool != nullptr);
|
||||||
tool->decrementReferens();
|
tool->decrementReferens();
|
||||||
|
|
|
@ -285,6 +285,7 @@ private:
|
||||||
void ParseCurrentPP();
|
void ParseCurrentPP();
|
||||||
void CheckTagExists(const QString &tag);
|
void CheckTagExists(const QString &tag);
|
||||||
QString GetLabelBase(unsigned int index)const;
|
QString GetLabelBase(unsigned int index)const;
|
||||||
|
void ToolExists(const quint32 &id) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user