HAL
bool_wizardpage.h
Go to the documentation of this file.
1
// MIT License
2
//
3
// Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4
// Copyright (c) 2019 Marc Fyrbiak, Sebastian Wallat, Max Hoffmann ("ORIGINAL AUTHORS"). All rights reserved.
5
// Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
6
// Copyright (c) 2021 Jörn Langheinrich, Julian Speith, Nils Albartus, René Walendy, Simon Klix ("ORIGINAL AUTHORS"). All Rights reserved.
7
//
8
// Permission is hereby granted, free of charge, to any person obtaining a copy
9
// of this software and associated documentation files (the "Software"), to deal
10
// in the Software without restriction, including without limitation the rights
11
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
// copies of the Software, and to permit persons to whom the Software is
13
// furnished to do so, subject to the following conditions:
14
//
15
// The above copyright notice and this permission notice shall be included in all
16
// copies or substantial portions of the Software.
17
//
18
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
// SOFTWARE.
25
26
#pragma once
27
28
#include "
gui/gatelibrary_management/gatelibrary_pages/generalinfo_wizardpage.h
"
29
30
#include <QWizardPage>
31
#include <QGridLayout>
32
#include <QTabWidget>
33
#include <QLineEdit>
34
#include <QTextEdit>
35
#include <QLabel>
36
#include <QSet>
37
38
namespace
hal
{
39
class
GateLibraryWizard
;
40
41
class
BoolWizardPage
;
42
43
class
BooleanFunctionEdit
:
public
QLineEdit
44
{
45
Q_OBJECT
46
public
:
47
48
// Would like to define the state as enum, however,
49
// something seems to go wrong when QSS style converts it to string
50
// enum State {Empty, Valid, Invalid};
51
// Q_ENUM(State)
52
Q_PROPERTY
(
QString
state
READ
state
WRITE
setState
NOTIFY
stateChanged
);
53
54
private
:
55
QString
mState;
56
std::set<std::string> mLegalVariables;
57
58
static
const
char
* STATE_EMPTY;
59
static
const
char
* STATE_VALID;
60
static
const
char
* STATE_INVALID;
61
Q_SIGNALS
:
62
void
stateChanged
(
QString
s);
63
void
legalVariablesChanged
(std::set<std::string> legalVar);
64
private
Q_SLOTS
:
65
void
handleEditingFinished();
66
public
:
67
BooleanFunctionEdit
(std::set<std::string>& legalVar,
QWidget
*
parent
=
nullptr
);
68
QString
state
()
const
{
return
mState; }
69
void
setState
(
const
QString
& s);
70
void
setLegalVariables
(std::set<std::string>& legalVar);
71
bool
isValid
()
const
{
return
mState == STATE_VALID; }
72
};
73
74
class
BoolWizardPage
:
public
QWizardPage
75
{
76
Q_OBJECT
77
public
:
78
BoolWizardPage
(
QWidget
*
parent
=
nullptr
);
79
void
initializePage
()
override
;
80
bool
isComplete
()
const override
;
81
void
setData
(
GateType
* gate);
82
std::unordered_map<std::string, BooleanFunction>
getBoolFunctions
();
83
Q_SIGNALS
:
84
void
hasChanged
();
85
private
Q_SLOTS
:
86
void
handleStateChanged(
const
QString
& stat);
87
void
handleTextChanged(
const
QString
& txt);
88
private
:
89
QGridLayout
* mLayout;
90
GateLibraryWizard
* mWizard;
91
QList<BooleanFunctionEdit*>
mEditFunctions;
92
QList<QString>
mOutputPins;
93
GateType
* mGate =
nullptr
;
94
};
95
}
hal::BoolWizardPage
Definition:
bool_wizardpage.h:75
hal::BoolWizardPage::BoolWizardPage
BoolWizardPage(QWidget *parent=nullptr)
Definition:
bool_wizardpage.cpp:69
hal::BoolWizardPage::getBoolFunctions
std::unordered_map< std::string, BooleanFunction > getBoolFunctions()
Definition:
bool_wizardpage.cpp:207
hal::BoolWizardPage::setData
void setData(GateType *gate)
Definition:
bool_wizardpage.cpp:165
hal::BoolWizardPage::initializePage
void initializePage() override
Definition:
bool_wizardpage.cpp:77
hal::BoolWizardPage::isComplete
bool isComplete() const override
Definition:
bool_wizardpage.cpp:193
hal::BoolWizardPage::hasChanged
void hasChanged()
hal::BooleanFunctionEdit
Definition:
bool_wizardpage.h:44
hal::BooleanFunctionEdit::setState
void setState(const QString &s)
Definition:
bool_wizardpage.cpp:20
hal::BooleanFunctionEdit::setLegalVariables
void setLegalVariables(std::set< std::string > &legalVar)
Definition:
bool_wizardpage.cpp:31
hal::BooleanFunctionEdit::state
QString state
Definition:
bool_wizardpage.h:52
hal::BooleanFunctionEdit::isValid
bool isValid() const
Definition:
bool_wizardpage.h:71
hal::BooleanFunctionEdit::legalVariablesChanged
void legalVariablesChanged(std::set< std::string > legalVar)
hal::BooleanFunctionEdit::state
QString state() const
Definition:
bool_wizardpage.h:68
hal::BooleanFunctionEdit::BooleanFunctionEdit
BooleanFunctionEdit(std::set< std::string > &legalVar, QWidget *parent=nullptr)
Definition:
bool_wizardpage.cpp:11
hal::BooleanFunctionEdit::stateChanged
void stateChanged(QString s)
hal::GateLibraryWizard
Definition:
gatelibrary_wizard.h:47
hal::GateType
Definition:
gate_type.h:52
generalinfo_wizardpage.h
hal
Definition:
parser_liberty.cpp:10
QGridLayout
QLineEdit
QList
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_PROPERTY
Q_PROPERTY(...)
QObject::Q_SIGNALS
Q_SIGNALSQ_SIGNALS
QObject::Q_SLOTS
Q_SLOTSQ_SLOTS
QObject::parent
QObject * parent() const const
QString
QWidget
QWizardPage
plugins
gui
include
gui
gatelibrary_management
gatelibrary_pages
bool_wizardpage.h
Generated on Fri Feb 14 2025 14:22:41 for HAL by
1.9.1