HAL
action_open_netlist_file.cpp
Go to the documentation of this file.
1
#include "
gui/user_action/action_open_netlist_file.h
"
2
#include "
gui/file_manager/file_manager.h
"
3
4
namespace
hal
5
{
6
const
char
*
sOpenMethodsPersist
[] = {
"Undefined"
,
"CreateNew"
,
"ImportFile"
,
"OpenProject"
,
nullptr
};
7
8
ActionOpenNetlistFileFactory::ActionOpenNetlistFileFactory
()
9
:
UserActionFactory
(
"OpenNetlistFile"
) {;}
10
11
ActionOpenNetlistFileFactory
*
ActionOpenNetlistFileFactory::sFactory
=
new
ActionOpenNetlistFileFactory
;
12
13
UserAction
*
ActionOpenNetlistFileFactory::newAction
()
const
14
{
15
return
new
ActionOpenNetlistFile
;
16
}
17
18
QString
ActionOpenNetlistFile::tagname
()
const
19
{
20
return
ActionOpenNetlistFileFactory::sFactory
->
tagname
();
21
}
22
23
ActionOpenNetlistFile::ActionOpenNetlistFile
(
OpenMethod
method,
const
QString
&filename_)
24
: mFilename(filename_), mMethod(method)
25
{
26
mProjectModified
=
false
;
27
}
28
29
bool
ActionOpenNetlistFile::exec
()
30
{
31
switch
(mMethod)
32
{
33
case
Undefined
:
34
return
false
;
35
case
CreateNew
:
36
FileManager::get_instance
()->
newProject
();
37
break
;
38
case
ImportFile
:
39
FileManager::get_instance
()->
importFile
(mFilename);
40
break
;
41
case
OpenProject
:
42
FileManager::get_instance
()->
openProject
(mFilename);
43
break
;
44
}
45
return
UserAction::exec
();
46
}
47
48
void
ActionOpenNetlistFile::addToHash
(
QCryptographicHash
& cryptoHash)
const
49
{
50
cryptoHash.
addData
(mFilename.
toUtf8
());
51
cryptoHash.
addData
((
char
*) &mMethod,
sizeof
(mMethod));
52
}
53
54
void
ActionOpenNetlistFile::writeToXml
(
QXmlStreamWriter
& xmlOut)
const
55
{
56
xmlOut.
writeTextElement
(
"filename"
, mFilename);
57
xmlOut.
writeTextElement
(
"method"
,
sOpenMethodsPersist
[mMethod]);
58
}
59
60
void
ActionOpenNetlistFile::readFromXml
(
QXmlStreamReader
& xmlIn)
61
{
62
mMethod =
Undefined
;
63
while
(xmlIn.
readNextStartElement
())
64
{
65
if
(xmlIn.
name
() ==
"filename"
)
66
mFilename = xmlIn.
readElementText
();
67
if
(xmlIn.
name
() ==
"method"
)
68
{
69
QString
meth = xmlIn.
readElementText
();
70
for
(
int
i=0;
sOpenMethodsPersist
[i]; i++)
71
if
(
sOpenMethodsPersist
[i] == meth)
72
{
73
mMethod =
static_cast<
OpenMethod
>
(i);
74
break
;
75
}
76
}
77
}
78
}
79
}
action_open_netlist_file.h
hal::ActionOpenNetlistFileFactory
UserActionFactory for ActionOpenNetlistFile.
Definition:
action_open_netlist_file.h:63
hal::ActionOpenNetlistFileFactory::newAction
UserAction * newAction() const
Definition:
action_open_netlist_file.cpp:13
hal::ActionOpenNetlistFileFactory::sFactory
static ActionOpenNetlistFileFactory * sFactory
Definition:
action_open_netlist_file.h:67
hal::ActionOpenNetlistFileFactory::ActionOpenNetlistFileFactory
ActionOpenNetlistFileFactory()
Definition:
action_open_netlist_file.cpp:8
hal::ActionOpenNetlistFile
Loads a netlist.
Definition:
action_open_netlist_file.h:38
hal::ActionOpenNetlistFile::readFromXml
void readFromXml(QXmlStreamReader &xmlIn) override
Definition:
action_open_netlist_file.cpp:60
hal::ActionOpenNetlistFile::tagname
QString tagname() const override
Definition:
action_open_netlist_file.cpp:18
hal::ActionOpenNetlistFile::ActionOpenNetlistFile
ActionOpenNetlistFile(OpenMethod method=Undefined, const QString &filename_=QString())
Definition:
action_open_netlist_file.cpp:23
hal::ActionOpenNetlistFile::exec
bool exec() override
Definition:
action_open_netlist_file.cpp:29
hal::ActionOpenNetlistFile::OpenMethod
OpenMethod
Definition:
action_open_netlist_file.h:40
hal::ActionOpenNetlistFile::OpenProject
@ OpenProject
Definition:
action_open_netlist_file.h:40
hal::ActionOpenNetlistFile::ImportFile
@ ImportFile
Definition:
action_open_netlist_file.h:40
hal::ActionOpenNetlistFile::Undefined
@ Undefined
Definition:
action_open_netlist_file.h:40
hal::ActionOpenNetlistFile::CreateNew
@ CreateNew
Definition:
action_open_netlist_file.h:40
hal::ActionOpenNetlistFile::writeToXml
void writeToXml(QXmlStreamWriter &xmlOut) const override
Definition:
action_open_netlist_file.cpp:54
hal::ActionOpenNetlistFile::addToHash
void addToHash(QCryptographicHash &cryptoHash) const override
Definition:
action_open_netlist_file.cpp:48
hal::FileManager::importFile
void importFile(QString filename)
Definition:
file_manager.cpp:328
hal::FileManager::openProject
void openProject(QString projPath)
Definition:
file_manager.cpp:450
hal::FileManager::get_instance
static FileManager * get_instance()
Definition:
file_manager.cpp:80
hal::FileManager::newProject
void newProject()
Definition:
file_manager.cpp:271
hal::UserActionFactory
The UserActionFactory is the abstract base class for registration.
Definition:
user_action.h:225
hal::UserActionFactory::tagname
QString tagname() const
Definition:
user_action.h:242
hal::UserAction
The UserAction class is the abstract base class for user interactions.
Definition:
user_action.h:57
hal::UserAction::mProjectModified
bool mProjectModified
Definition:
user_action.h:190
hal::UserAction::exec
virtual bool exec()
Definition:
user_action.cpp:23
file_manager.h
hal
Definition:
parser_liberty.cpp:10
hal::sOpenMethodsPersist
const char * sOpenMethodsPersist[]
Definition:
action_open_netlist_file.cpp:6
QCryptographicHash
QCryptographicHash::addData
void addData(const char *data, int length)
QString
QString::toUtf8
QByteArray toUtf8() const const
QXmlStreamReader
QXmlStreamReader::name
QStringRef name() const const
QXmlStreamReader::readElementText
QString readElementText(QXmlStreamReader::ReadElementTextBehaviour behaviour)
QXmlStreamReader::readNextStartElement
bool readNextStartElement()
QXmlStreamWriter
QXmlStreamWriter::writeTextElement
void writeTextElement(const QString &qualifiedName, const QString &text)
plugins
gui
src
user_action
action_open_netlist_file.cpp
Generated on Fri Feb 14 2025 14:22:43 for HAL by
1.9.1