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 gateLibraryAffected, bool isDirty);
78  void handleFileOpenChanged(bool gateLibraryAffected, bool isOpen);
79 
80  public:
81  FileActions(QWidget* parent = nullptr);
82 
88  QString newFileIconPath() const { return mNewFileIconPath; }
89 
95  QString newFileIconStyle() const { return mNewFileIconStyle; }
96 
102  QString openProjIconPath() const { return mOpenProjIconPath; }
103 
109  QString openProjIconStyle() const { return mOpenProjIconStyle; }
110 
116  QString saveIconPath() const {return mSaveIconPath; }
117 
123  QString saveAsIconPath() const { return mSaveAsIconPath; }
124 
130  QString closeIconPath() const { return mCloseIconPath; }
131 
137  QString closeIconStyle() const { return mCloseIconStyle; }
138 
144  QString enabledIconStyle() const { return mEnabledIconStyle; }
145 
151  QString disabledIconStyle() const { return mDisabledIconStyle; }
152 
158  void setNewFileIconPath(const QString& path) { mNewFileIconPath = path; }
159 
165  void setNewFileIconStyle(const QString &style) { mNewFileIconStyle = style; }
166 
172  void setOpenProjIconPath(const QString& path) { mOpenProjIconPath = path; }
173 
179  void setOpenProjIconStyle(const QString& style) { mOpenProjIconStyle = style; };
180 
186  void setSaveIconPath(const QString& path) { mSaveIconPath = path; }
187 
193  void setSaveAsIconPath(const QString& path) { mSaveAsIconPath = path; }
194 
200  void setCloseIconPath(const QString& path) { mCloseIconPath = path; }
201 
208  void setCloseIconStyle(const QString& style) { mCloseIconStyle = style; }
209 
215  void setEnabledIconStyle(const QString& style) { mEnabledIconStyle = style; }
216 
222  void setDisabledIconStyle(const QString& style) { mDisabledIconStyle = style; }
223 
224  Action* create() const { return mActionCreate; }
225  Action* open() const { return mActionOpen; }
226  Action* close() const { return mActionClose; }
227  Action* save() const { return mActionSave; }
228  Action* saveAs() const { return mActionSaveAs; }
229 
230  void setup(GateLibraryManager* glcw = nullptr, GuiPluginManager* plmgr = nullptr);
231 
232  void repolish();
233  };
234 }
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:137
void setCloseIconPath(const QString &path)
Definition: file_actions.h:200
QString openProjIconStyle
Definition: file_actions.h:49
QString newFileIconPath
Definition: file_actions.h:46
FileActions(QWidget *parent=nullptr)
void setDisabledIconStyle(const QString &style)
Definition: file_actions.h:222
QString saveAsIconPath() const
Definition: file_actions.h:123
QString disabledIconStyle
Definition: file_actions.h:43
Action * close() const
Definition: file_actions.h:226
void setOpenProjIconStyle(const QString &style)
Definition: file_actions.h:179
void setup(GateLibraryManager *glcw=nullptr, GuiPluginManager *plmgr=nullptr)
Action * create() const
Definition: file_actions.h:224
Action * save() const
Definition: file_actions.h:227
QString saveIconPath() const
Definition: file_actions.h:116
QString newFileIconPath() const
Definition: file_actions.h:88
QString openProjIconPath() const
Definition: file_actions.h:102
Action * saveAs() const
Definition: file_actions.h:228
QString closeIconStyle
Definition: file_actions.h:45
QString closeIconPath
Definition: file_actions.h:44
QString openProjIconStyle() const
Definition: file_actions.h:109
void setEnabledIconStyle(const QString &style)
Definition: file_actions.h:215
QString saveAsIconPath
Definition: file_actions.h:41
void setSaveAsIconPath(const QString &path)
Definition: file_actions.h:193
void setSaveIconPath(const QString &path)
Definition: file_actions.h:186
QString closeIconPath() const
Definition: file_actions.h:130
void setNewFileIconStyle(const QString &style)
Definition: file_actions.h:165
void setCloseIconStyle(const QString &style)
Definition: file_actions.h:208
QString newFileIconStyle
Definition: file_actions.h:47
QString disabledIconStyle() const
Definition: file_actions.h:151
void handleFileStatusChanged(bool gateLibraryAffected, bool isDirty)
QString saveIconPath
Definition: file_actions.h:40
QString newFileIconStyle() const
Definition: file_actions.h:95
QString enabledIconStyle() const
Definition: file_actions.h:144
void setOpenProjIconPath(const QString &path)
Definition: file_actions.h:172
QString openProjIconPath
Definition: file_actions.h:48
QString enabledIconStyle
Definition: file_actions.h:42
void setNewFileIconPath(const QString &path)
Definition: file_actions.h:158
Action * open() const
Definition: file_actions.h:225
void handleFileOpenChanged(bool gateLibraryAffected, bool isOpen)
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