HAL
file_actions.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 #include "gui/action/action.h"
28 #include <QString>
29 
30 
31 namespace hal {
32  class MainWindow;
33  class GateLibraryManager;
34  class GuiPluginManager;
35  class SettingsItemKeybind;
36 
37  class FileActions : public QWidget
38  {
39  Q_OBJECT
50 
51  MainWindow* mMainWindowReference;
52  GateLibraryManager* mGatelibReference;
53  GuiPluginManager* mGuiPluginReference;
54 
55  Action* mActionCreate;
56  Action* mActionOpen;
57  Action* mActionClose;
58  Action* mActionSave;
59  Action* mActionSaveAs;
60 
61  QString mNewFileIconStyle;
62  QString mNewFileIconPath;
63  QString mOpenProjIconPath;
64  QString mOpenProjIconStyle;
65  QString mCloseIconPath;
66  QString mCloseIconStyle;
67  QString mSaveIconPath;
68  QString mSaveAsIconPath;
69 
70  QString mEnabledIconStyle;
71  QString mDisabledIconStyle;
72  SettingsItemKeybind* mSettingCreateFile;
73  SettingsItemKeybind* mSettingOpenFile;
74  SettingsItemKeybind* mSettingSaveFile;
75 
76  public Q_SLOTS:
77  void handleFileStatusChanged(bool gateLibrary, bool isDirty);
78 
79  public:
80  FileActions(QWidget* parent = nullptr);
81 
87  QString newFileIconPath() const { return mNewFileIconPath; }
88 
94  QString newFileIconStyle() const { return mNewFileIconStyle; }
95 
101  QString openProjIconPath() const { return mOpenProjIconPath; }
102 
108  QString openProjIconStyle() const { return mOpenProjIconStyle; }
109 
115  QString saveIconPath() const {return mSaveIconPath; }
116 
122  QString saveAsIconPath() const { return mSaveAsIconPath; }
123 
129  QString closeIconPath() const { return mCloseIconPath; }
130 
136  QString closeIconStyle() const { return mCloseIconStyle; }
137 
143  QString enabledIconStyle() const { return mEnabledIconStyle; }
144 
150  QString disabledIconStyle() const { return mDisabledIconStyle; }
151 
157  void setNewFileIconPath(const QString& path) { mNewFileIconPath = path; }
158 
164  void setNewFileIconStyle(const QString &style) { mNewFileIconStyle = style; }
165 
171  void setOpenProjIconPath(const QString& path) { mOpenProjIconPath = path; }
172 
178  void setOpenProjIconStyle(const QString& style) { mOpenProjIconStyle = style; };
179 
185  void setSaveIconPath(const QString& path) { mSaveIconPath = path; }
186 
192  void setSaveAsIconPath(const QString& path) { mSaveAsIconPath = path; }
193 
199  void setCloseIconPath(const QString& path) { mCloseIconPath = path; }
200 
207  void setCloseIconStyle(const QString& style) { mCloseIconStyle = style; }
208 
214  void setEnabledIconStyle(const QString& style) { mEnabledIconStyle = style; }
215 
221  void setDisabledIconStyle(const QString& style) { mDisabledIconStyle = style; }
222 
223  Action* create() const { return mActionCreate; }
224  Action* open() const { return mActionOpen; }
225  Action* close() const { return mActionClose; }
226  Action* save() const { return mActionSave; }
227  Action* saveAs() const { return mActionSaveAs; }
228 
229  void setup(GateLibraryManager* glcw = nullptr, GuiPluginManager* plmgr = nullptr);
230 
231  void repolish();
232  };
233 }
Provides an interface for triggerable functionality that can be inserted into widgets and also connec...
Definition: action.h:42
QString closeIconStyle() const
Definition: file_actions.h:136
void setCloseIconPath(const QString &path)
Definition: file_actions.h:199
QString openProjIconStyle
Definition: file_actions.h:49
void handleFileStatusChanged(bool gateLibrary, bool isDirty)
QString newFileIconPath
Definition: file_actions.h:46
FileActions(QWidget *parent=nullptr)
void setDisabledIconStyle(const QString &style)
Definition: file_actions.h:221
QString saveAsIconPath() const
Definition: file_actions.h:122
QString disabledIconStyle
Definition: file_actions.h:43
Action * close() const
Definition: file_actions.h:225
void setOpenProjIconStyle(const QString &style)
Definition: file_actions.h:178
void setup(GateLibraryManager *glcw=nullptr, GuiPluginManager *plmgr=nullptr)
Action * create() const
Definition: file_actions.h:223
Action * save() const
Definition: file_actions.h:226
QString saveIconPath() const
Definition: file_actions.h:115
QString newFileIconPath() const
Definition: file_actions.h:87
QString openProjIconPath() const
Definition: file_actions.h:101
Action * saveAs() const
Definition: file_actions.h:227
QString closeIconStyle
Definition: file_actions.h:45
QString closeIconPath
Definition: file_actions.h:44
QString openProjIconStyle() const
Definition: file_actions.h:108
void setEnabledIconStyle(const QString &style)
Definition: file_actions.h:214
QString saveAsIconPath
Definition: file_actions.h:41
void setSaveAsIconPath(const QString &path)
Definition: file_actions.h:192
void setSaveIconPath(const QString &path)
Definition: file_actions.h:185
QString closeIconPath() const
Definition: file_actions.h:129
void setNewFileIconStyle(const QString &style)
Definition: file_actions.h:164
void setCloseIconStyle(const QString &style)
Definition: file_actions.h:207
QString newFileIconStyle
Definition: file_actions.h:47
QString disabledIconStyle() const
Definition: file_actions.h:150
QString saveIconPath
Definition: file_actions.h:40
QString newFileIconStyle() const
Definition: file_actions.h:94
QString enabledIconStyle() const
Definition: file_actions.h:143
void setOpenProjIconPath(const QString &path)
Definition: file_actions.h:171
QString openProjIconPath
Definition: file_actions.h:48
QString enabledIconStyle
Definition: file_actions.h:42
void setNewFileIconPath(const QString &path)
Definition: file_actions.h:157
Action * open() const
Definition: file_actions.h:224
The top level widget.
Definition: main_window.h:65
A SettingsItem to modify keybinds.
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
Q_SLOTSQ_SLOTS
QObject * parent() const const
QStyle * style() const const