Skip to content

Commit

Permalink
- Display the simulation output parser error.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@23604 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Nov 30, 2014
1 parent 1da7f35 commit 7fd6d2c
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/Modeling/MessagesWidget.cpp
Expand Up @@ -402,7 +402,7 @@ bool MessagesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sour
\param pMessagesWidget - a pointer to MessagesWidget.
*/
MessagesTreeView::MessagesTreeView(MessagesWidget *pMessagesWidget)
: mpMessagesWidget(pMessagesWidget)
: QTreeView(pMessagesWidget), mpMessagesWidget(pMessagesWidget)
{
setItemDelegate(new ItemDelegate(this, true));
setTextElideMode(Qt::ElideMiddle);
Expand Down
21 changes: 18 additions & 3 deletions OMEdit/OMEditGUI/Simulation/SimulationOutputHandler.cpp
Expand Up @@ -303,6 +303,7 @@ SimulationOutputHandler::SimulationOutputHandler(SimulationOutputWidget *pSimula
mXmlSimpleReader.setErrorHandler(this);
mpXmlInputSource = new QXmlInputSource;
mpXmlInputSource->setData(simulationOutput.prepend("<root>"));
mOutputBuffer = mpXmlInputSource->data();
mXmlSimpleReader.parse(mpXmlInputSource, true);
}

Expand All @@ -317,6 +318,7 @@ SimulationOutputHandler::~SimulationOutputHandler()
void SimulationOutputHandler::parseSimulationOutput(QString output)
{
mpXmlInputSource->setData(output);
mOutputBuffer.append(mpXmlInputSource->data());
mXmlSimpleReader.parseContinue();
}

Expand Down Expand Up @@ -377,8 +379,21 @@ bool SimulationOutputHandler::endElement(const QString &namespaceURI, const QStr
*/
bool SimulationOutputHandler::fatalError(const QXmlParseException &exception)
{
qWarning() << "Fatal error on line" << exception.lineNumber()
<< ", column" << exception.columnNumber() << ":"
<< exception.message();
// read the error message
QString error = QObject::tr("Fatal error on line %1, column %2: %3\nXML ::\n%4")
.arg(exception.lineNumber())
.arg(exception.columnNumber())
.arg(exception.message())
.arg(mOutputBuffer);
SimulationMessage *pSimulationMessage = new SimulationMessage(mpSimulationMessageModel->getRootSimulationMessage());
pSimulationMessage->mStream = "stderr";
pSimulationMessage->mType = StringHandler::getSimulationMessageType("error");
pSimulationMessage->mText = error;
pSimulationMessage->mLevel = 0;
if (mpSimulationOutputWidget->isOutputStructured()) {
mpSimulationMessageModel->insertSimulationMessage(pSimulationMessage);
} else {
mpSimulationOutputWidget->writeSimulationMessage(pSimulationMessage);
}
return false;
}
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Simulation/SimulationOutputHandler.h
Expand Up @@ -102,6 +102,7 @@ class SimulationOutputHandler : private QXmlDefaultHandler
int mLevel;
SimulationMessage* mpSimulationMessage;
QMap<int, SimulationMessage*> mSimulationMessagesLevelMap;
QString mOutputBuffer;
SimulationMessageModel *mpSimulationMessageModel;
QXmlSimpleReader mXmlSimpleReader;
QXmlInputSource *mpXmlInputSource;
Expand Down
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/Simulation/SimulationOutputWidget.cpp
Expand Up @@ -46,7 +46,7 @@
\param pSimulationOutputWidget - a pointer to SimulationOutputWidget.
*/
SimulationOutputTree::SimulationOutputTree(SimulationOutputWidget *pSimulationOutputWidget)
: mpSimulationOutputWidget(pSimulationOutputWidget)
: QTreeView(pSimulationOutputWidget), mpSimulationOutputWidget(pSimulationOutputWidget)
{
setObjectName("TreeWithBranches");
setItemDelegate(new ItemDelegate(this, true));
Expand Down

0 comments on commit 7fd6d2c

Please sign in to comment.