Engauge Digitizer  2
Functions
Xml.cpp File Reference
#include "Logger.h"
#include <QFileDevice>
#include <QMessageBox>
#include <QObject>
#include "QtToString.h"
#include "Xml.h"
Include dependency graph for Xml.cpp:

Go to the source code of this file.

Functions

QXmlStreamReader::TokenType loadNextFromReader (QXmlStreamReader &reader)
 Load next token from xml reader. More...
 
void xmlExitWithError (QXmlStreamReader &reader, const QString &message)
 Show specified message for an error while reading xml, then quit. More...
 

Function Documentation

◆ loadNextFromReader()

QXmlStreamReader::TokenType loadNextFromReader ( QXmlStreamReader &  reader)

Load next token from xml reader.

Definition at line 14 of file Xml.cpp.

15 {
16  QXmlStreamReader::TokenType tokenType = reader.readNext();
17 
18  LOG4CPP_DEBUG_S ((*mainCat)) << "loadNextFromReader "
19  << " tokenType=" << QXmlStreamReaderTokenTypeToString (tokenType).toLatin1().data()
20  << " tag=" << reader.name().toLatin1().data();
21 
22  return tokenType;
23 }
QString QXmlStreamReaderTokenTypeToString(QXmlStreamReader::TokenType tokenType)
Definition: QtToString.cpp:89
log4cpp::Category * mainCat
Definition: Logger.cpp:14
#define LOG4CPP_DEBUG_S(logger)
Definition: convenience.h:20

◆ xmlExitWithError()

void xmlExitWithError ( QXmlStreamReader &  reader,
const QString &  message 
)

Show specified message for an error while reading xml, then quit.

The reader will provide filename (if available) and line number

Definition at line 25 of file Xml.cpp.

27 {
28  // Try to extract as much useful context as possible
29  QString context;
30  QFileDevice *fileDevice = dynamic_cast<QFileDevice*> (reader.device());
31  if (fileDevice == nullptr) {
32 
33  context = QString ("%1 %2: ")
34  .arg (QObject::tr ("Start at line"))
35  .arg (reader.lineNumber());
36 
37  } else {
38 
39  context = QString ("%1 %2 %3 %4: ")
40  .arg (QObject::tr ("File"))
41  .arg (fileDevice->fileName())
42  .arg (QObject::tr ("at line"))
43  .arg (reader.lineNumber());
44 
45  }
46 
47  // Context plus original message gets displayed
48  QString adornedMsg = QString ("%1%2. %3")
49  .arg (context)
50  .arg (message)
51  .arg (QObject::tr ("Quitting"));
52 
53  QMessageBox::critical (nullptr,
54  QObject::tr ("Error reading xml"),
55  adornedMsg);
56 
57  LOG4CPP_ERROR_S ((*mainCat)) << "xmlExitWithError error='" << adornedMsg.toLatin1().data() << "'";
58 
59  exit (-1);
60 }
#define LOG4CPP_ERROR_S(logger)
Definition: convenience.h:12
log4cpp::Category * mainCat
Definition: Logger.cpp:14