Engauge Digitizer
2
Main Page
Classes
Files
File List
File Members
FileCmd
FileCmdScript.cpp
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 "FileCmdAbstract.h"
8
#include "FileCmdFactory.h"
9
#include "FileCmdScript.h"
10
#include "FileCmdSerialize.h"
11
#include "Logger.h"
12
#include "MainWindow.h"
13
#include <QFile>
14
#include <QXmlStreamReader>
15
#include "Xml.h"
16
17
FileCmdScript::FileCmdScript
(
const
QString &fileCmdScriptFile)
18
{
19
// Read commands into stack. The file is known to exist since it was checked in parseCmdLine
20
QFile file (fileCmdScriptFile);
21
22
QXmlStreamReader reader (&file);
23
file.open(QIODevice::ReadOnly | QIODevice::Text);
24
25
// Load commands
26
FileCmdFactory
factory;
27
while
(!reader.atEnd() && !reader.hasError()) {
28
29
if
((loadNextFromReader (reader) == QXmlStreamReader::StartElement) &&
30
(reader.name() == FILE_CMD_SERIALIZE_CMD)) {
31
32
// Extract and append new command to command stack
33
m_fileCmdStack.push_back (factory.
createFileCmd
(reader));
34
}
35
}
36
file.close();
37
}
38
39
FileCmdScript::~FileCmdScript()
40
{
41
}
42
43
bool
FileCmdScript::canRedo
()
const
44
{
45
LOG4CPP_INFO_S ((*mainCat)) <<
"FileCmdScript::canRedo"
;
46
47
return
(m_fileCmdStack.count () > 0);
48
}
49
50
void
FileCmdScript::redo
(
MainWindow
&mainWindow)
51
{
52
LOG4CPP_INFO_S ((*mainCat)) <<
"FileCmdScript::redo"
;
53
54
m_fileCmdStack.first()->redo(mainWindow);
55
m_fileCmdStack.pop_front();
56
}
FileCmdScript::FileCmdScript
FileCmdScript(const QString &fileCmdScriptFile)
Single constructor.
Definition:
FileCmdScript.cpp:17
FileCmdScript::canRedo
bool canRedo() const
Returns true if there is at least one command on the stack.
Definition:
FileCmdScript.cpp:43
FileCmdFactory::createFileCmd
FileCmdAbstract * createFileCmd(QXmlStreamReader &reader) const
Create one FileCmdAbstract from the specified xml subtree.
Definition:
FileCmdFactory.cpp:25
FileCmdScript::redo
void redo(MainWindow &mainWindow)
Apply the next command. Requires non-empty stack.
Definition:
FileCmdScript.cpp:50
FileCmdFactory
Factory that creates FileCmds from a file cmd script file, in xml format.
Definition:
FileCmdFactory.h:15
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition:
MainWindow.h:77
Generated on Sun May 1 2016 15:27:46 for Engauge Digitizer by
1.8.11