HAL
plugin_parameter_dialog.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 <QDialog>
31 #include <QMap>
32 #include <QList>
33 #include <set>
34 
35 class QFormLayout;
36 class QDialogButtonBox;
37 class QPushButton;
38 class QLineEdit;
39 class QSpinBox;
40 class QLabel;
41 
42 namespace hal {
43 
44  class BasePluginInterface;
45 
47  {
48  Q_OBJECT
49 
50  PluginParameter mParameter;
51  QPushButton* mButton;
52  QLineEdit* mEditor;
53  private Q_SLOTS:
54  void handleActivateFileDialog();
55 
56  public:
58  QString getFilename() const;
59  };
60 
62  {
63  Q_OBJECT
64 
65  PluginParameter mParameter;
66  QPushButton* mButton;
67  QSpinBox* mNodeId;
68  QLabel* mNodeName;
69  std::set<u32> mValidIds;
70  private Q_SLOTS:
71  void handleActivateModuleDialog();
72  void handleActivateGateDialog();
73  private:
74  void setModule(int id);
75  void setGate(int id);
76  bool isValidId(int id) const;
77  public:
79  int getNodeId() const;
80  };
81 
83  {
84  Q_OBJECT
85 
86  QString mPluginName;
87  GuiExtensionInterface* mGuiExtensionInterface;
88  QList<PluginParameter> mParameterList;
89  QMap<QString,QWidget*> mWidgetMap;
90 
91  QMap<QString,QString> mTabNames;
92 
93  private:
94  void setupHash();
95  void setupForm(QFormLayout* form, const QString& tabTag = QString());
96  QDialogButtonBox* setupButtonBox();
97 
98  private Q_SLOTS:
99  void handlePushbuttonClicked();
100 
101  public Q_SLOTS:
102  void accept() override;
103 
104  public:
105  PluginParameterDialog(const QString& pname, GuiExtensionInterface* geif, QWidget* parent = nullptr);
106  };
107 }
Apache License January AND DISTRIBUTION Definitions License shall mean the terms and conditions for and distribution as defined by Sections through of this document Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License Legal Entity shall mean the union of the acting entity and all other entities that control are controlled by or are under common control with that entity For the purposes of this definition control direct or to cause the direction or management of such whether by contract or including but not limited to software source documentation and configuration files Object form shall mean any form resulting from mechanical transformation or translation of a Source form
PluginParameterDialog(const QString &pname, GuiExtensionInterface *geif, QWidget *parent=nullptr)
PluginParameterFileDialog(const PluginParameter &par, QWidget *parent=nullptr)
PluginParameterNodeDialog(const PluginParameter &par, QWidget *parent=nullptr)
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
QObject * parent() const const