Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
FileCmd
FileCmdFactory.cpp
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#include "
EngaugeAssert.h
"
8
#include "
FileCmdClose.h
"
9
#include "
FileCmdExport.h
"
10
#include "
FileCmdImport.h
"
11
#include "
FileCmdOpen.h
"
12
#include "
FileCmdFactory.h
"
13
#include "
FileCmdSerialize.h
"
14
#include <QXmlStreamReader>
15
#include "
Xml.h
"
16
17
FileCmdFactory::FileCmdFactory
()
18
{
19
}
20
21
FileCmdFactory::~FileCmdFactory
()
22
{
23
}
24
25
FileCmdAbstract
*
FileCmdFactory::createFileCmd
(QXmlStreamReader &reader)
const
26
{
27
FileCmdAbstract
*cmd =
nullptr
;
28
29
QXmlStreamAttributes attributes = reader.attributes();
30
if
(!attributes.hasAttribute (
FILE_CMD_SERIALIZE_CMD_TYPE
)) {
31
xmlExitWithError
(reader,
32
QString (
"Missing attribute %1"
).arg (
FILE_CMD_SERIALIZE_CMD_TYPE
));
33
}
34
35
// Get common attributes
36
QString cmdType = attributes.value (
FILE_CMD_SERIALIZE_CMD_TYPE
).toString();
37
38
if
(cmdType ==
FILE_CMD_SERIALIZE_CMD_FILE_CLOSE
) {
39
cmd =
new
FileCmdClose
(reader);
40
}
else
if
(cmdType ==
FILE_CMD_SERIALIZE_CMD_FILE_EXPORT
) {
41
cmd =
new
FileCmdExport
(reader);
42
}
else
if
(cmdType ==
FILE_CMD_SERIALIZE_CMD_FILE_IMPORT
) {
43
cmd =
new
FileCmdImport
(reader);
44
}
else
if
(cmdType ==
FILE_CMD_SERIALIZE_CMD_FILE_OPEN
) {
45
cmd =
new
FileCmdOpen
(reader);
46
}
else
{
47
48
// Invalid xml
49
ENGAUGE_ASSERT
(
false
);
50
51
}
52
53
return
cmd;
54
}
55
EngaugeAssert.h
ENGAUGE_ASSERT
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
Definition
EngaugeAssert.h:17
FileCmdClose.h
FileCmdExport.h
FileCmdFactory.h
FileCmdImport.h
FileCmdOpen.h
FileCmdSerialize.h
FILE_CMD_SERIALIZE_CMD_FILE_CLOSE
const QString FILE_CMD_SERIALIZE_CMD_FILE_CLOSE
FILE_CMD_SERIALIZE_CMD_FILE_OPEN
const QString FILE_CMD_SERIALIZE_CMD_FILE_OPEN
FILE_CMD_SERIALIZE_CMD_FILE_EXPORT
const QString FILE_CMD_SERIALIZE_CMD_FILE_EXPORT
FILE_CMD_SERIALIZE_CMD_TYPE
const QString FILE_CMD_SERIALIZE_CMD_TYPE
FILE_CMD_SERIALIZE_CMD_FILE_IMPORT
const QString FILE_CMD_SERIALIZE_CMD_FILE_IMPORT
xmlExitWithError
void xmlExitWithError(QXmlStreamReader &reader, const QString &message)
Show specified message for an error while reading xml, then quit.
Definition
Xml.cpp:25
Xml.h
FileCmdAbstract
Base class for 'file commands' that are used specifically for regression testing of file import/open/...
Definition
FileCmdAbstract.h:23
FileCmdClose
Command for closing a file.
Definition
FileCmdClose.h:16
FileCmdExport
Command for exporting a file.
Definition
FileCmdExport.h:16
FileCmdFactory::createFileCmd
FileCmdAbstract * createFileCmd(QXmlStreamReader &reader) const
Create one FileCmdAbstract from the specified xml subtree.
Definition
FileCmdFactory.cpp:25
FileCmdFactory::FileCmdFactory
FileCmdFactory()
Single constructor.
Definition
FileCmdFactory.cpp:17
FileCmdFactory::~FileCmdFactory
virtual ~FileCmdFactory()
Definition
FileCmdFactory.cpp:21
FileCmdImport
Command for importing a file.
Definition
FileCmdImport.h:16
FileCmdOpen
Command for opening a file.
Definition
FileCmdOpen.h:16
Generated on
for Engauge Digitizer by
1.17.0