QElectroTech 0.100.0-dev
Loading...
Searching...
No Matches
qetdiagrameditor.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2024 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef QET_DIAGRAM_EDITOR_H
19#define QET_DIAGRAM_EDITOR_H
20
22#include "qetmainwindow.h"
23
24#include <QActionGroup>
25#include <QCloseEvent>
26#include <QDir>
27#include <QMdiArea>
28#include <QSignalMapper>
29#include <QUndoGroup>
30
31class QMdiSubWindow;
32class QETProject;
33class QETResult;
34class ProjectView;
35class CustomElement;
36class Diagram;
37class DiagramView;
38class Element;
41class RecentFiles;
45
46#ifdef BUILD_WITHOUT_KF5
47#else
48class KAutoSaveFile;
49#endif
55{
56 Q_OBJECT
57
58 public:
60 const QStringList & = QStringList(),
61 QWidget * = nullptr);
62 ~QETDiagramEditor() override;
63 void closeEvent (QCloseEvent *) override;
64 QList<ProjectView *> openedProjects () const;
66 bool openAndAddProject (const QString &, bool = true);
67 QList<QString> editedFiles () const;
68 ProjectView *viewForFile (const QString &) const;
71 bool drawGrid() const;
72#ifdef BUILD_WITHOUT_KF5
73#else
74 void openBackupFiles (QList<KAutoSaveFile *> backup_files);
75#endif
76
77 protected:
78 bool event(QEvent *) override;
79 private:
81 void setUpElementsPanel ();
83 void setUpUndoStack ();
86 void setUpActions ();
87 void setUpToolBar ();
88 void setUpMenu ();
89
90 bool addProject(QETProject *, bool = true);
92 Element *currentElement() const;
96 ProjectView *findProject(const QString &) const;
97 QMdiSubWindow *subWindowForWidget(QWidget *) const;
98
99 public slots:
100 void save();
101 void saveAs();
102 bool newProject();
103 bool openProject();
104 bool openRecentFile(const QString &);
106 bool closeProject(QETProject *);
107 void zoomGroupTriggered (QAction *action);
108 void selectGroupTriggered (QAction *action);
109 void addItemGroupTriggered (QAction *action);
110 void selectionGroupTriggered (QAction *action);
111 void rowColumnGroupTriggered (QAction *action);
112 void slot_updateActions();
120 void setWindowedMode();
121 void setTabbedMode();
122 void readSettings();
123 void writeSettings();
126 void activateWidget(QWidget *);
133 void removeDiagram(Diagram *);
135 void moveDiagramUp(Diagram *);
136 void moveDiagramDown(Diagram *);
143 void showError(const QETResult &);
144 void showError(const QString &);
145 void subWindowActivated(QMdiSubWindow *subWindows);
146
147 private slots:
148 void selectionChanged();
149
150 public:
151 QAction
156
157 QActionGroup
161
162 private:
163 QActionGroup
170
171 QAction
177 *m_export_to_pdf = nullptr,
212 *m_find = nullptr;
213
214 QList <QAction *> m_zoom_action_toolBar;
215
216 QMdiArea m_workspace;
217 QSignalMapper windowMapper;
219
220 QDockWidget
224
226
231
232 QToolBar
233 *main_tool_bar = nullptr,
234 *view_tool_bar = nullptr,
238
239 QUndoGroup undo_group;
242 bool m_first_show = true;
244};
245#endif
Definition autonumberingdockwidget.h:31
The Diagram class This class represents an electric diagram. It manages its various child elements,...
Definition diagram.h:56
Definition diagrampropertieseditordockwidget.h:26
Definition diagramview.h:39
Definition element.h:43
The ElementsCollectionWidget class This widget embedd a tree view that display the element collection...
Definition elementscollectionwidget.h:45
The ElementsLocation class This class represents the location, the location of an element or of a cat...
Definition elementslocation.h:47
The ElementsPanelWidget class This class embeds an elements panel under a toolbar providing various a...
Definition elementspanelwidget.h:29
The ProjectView class This class provides a widget displaying the diagrams of a particular project us...
Definition projectview.h:80
Definition qetdiagrameditor.h:55
QAction * m_project_export_conductor_num
Export the wire num to csv.
Definition qetdiagrameditor.h:197
void slot_updateAutoNumDock()
QETDiagramEditor::slot_updateAutoNumDock Update Auto Num Dock Widget when changing Project.
Definition qetdiagrameditor.cpp:1576
QToolBar * diagram_tool_bar
Definition qetdiagrameditor.h:235
QActionGroup * m_depth_action_group
Action related to edit a selected item.
Definition qetdiagrameditor.h:160
QAction * m_export_to_images
Export diagrams of the current project as imagess.
Definition qetdiagrameditor.h:176
bool m_first_show
Definition qetdiagrameditor.h:242
QList< QString > editedFiles() const
Definition qetdiagrameditor.cpp:1848
void projectWasClosed(ProjectView *)
QETDiagramEditor::projectWasClosed Manage the close of a project.
Definition qetdiagrameditor.cpp:2074
QAction * m_save_file
Save current project.
Definition qetdiagrameditor.h:210
void setUpUndoStack()
QETDiagramEditor::setUpUndoStack Setup the undostack and undo stack widget.
Definition qetdiagrameditor.cpp:210
QActionGroup m_add_item_actions_group
Definition qetdiagrameditor.h:166
void editDiagramProperties(DiagramView *)
Definition qetdiagrameditor.cpp:1974
QAction * m_csv_export
generate nomenclature
Definition qetdiagrameditor.h:192
QAction * m_cut
Cut selection to clipboard.
Definition qetdiagrameditor.h:154
void closeEvent(QCloseEvent *) override
Definition qetdiagrameditor.cpp:873
QAction * m_export_to_pdf
Export project to pdf.
Definition qetdiagrameditor.h:177
ElementsPanelWidget * pa
Elements panel.
Definition qetdiagrameditor.h:229
QAction * m_rotate_texts
Direct selected text items to a specific angle.
Definition qetdiagrameditor.h:206
QList< QAction * > m_zoom_action_toolBar
Definition qetdiagrameditor.h:214
QAction * m_remove_diagram_from_project
Delete a diagram from the current project.
Definition qetdiagrameditor.h:189
void setWindowedMode()
Definition qetdiagrameditor.cpp:1997
QETProject * currentProject() const
QETDiagramEditor::currentProject.
Definition qetdiagrameditor.cpp:1225
AutoNumberingDockWidget * m_autonumbering_dock
Definition qetdiagrameditor.h:240
QMenu * windows_menu
Definition qetdiagrameditor.h:230
void openBackupFiles(QList< KAutoSaveFile * > backup_files)
QETDiagramEditor::openBackupFiles.
Definition qetdiagrameditor.cpp:1899
void slot_updateModeActions()
QETDiagramEditor::slot_updateModeActions Manage action who need an opened diagram or project to be up...
Definition qetdiagrameditor.cpp:1742
QToolBar * main_tool_bar
Definition qetdiagrameditor.h:233
void addProjectView(ProjectView *)
QETDiagramEditor::addProjectView Add a new project view to workspace and build the connection between...
Definition qetdiagrameditor.cpp:1794
void setUpElementsPanel()
QETDiagramEditor::setUpElementsPanel Setup the element panel and element panel widget.
Definition qetdiagrameditor.cpp:156
QAction * m_delete_selection
Delete selection.
Definition qetdiagrameditor.h:204
bool drawGrid() const
QETDiagramEditor::drawGrid.
Definition qetdiagrameditor.cpp:1888
QETDiagramEditor(const QETDiagramEditor &)
void moveDiagramUpx10(Diagram *)
Definition qetdiagrameditor.cpp:2219
QAction * m_copy
Copy selection to clipboard.
Definition qetdiagrameditor.h:155
void selectionChanged()
QETDiagramEditor::selectionChanged This slot is called when a diagram selection was changed.
Definition qetdiagrameditor.cpp:2334
void moveDiagramDown(Diagram *)
Definition qetdiagrameditor.cpp:2178
void selectionGroupTriggered(QAction *action)
QETDiagramEditor::selectionGroupTriggered This slot is called when an action should be made on the cu...
Definition qetdiagrameditor.cpp:1463
QAction * m_mode_selection
Set edition mode.
Definition qetdiagrameditor.h:174
void activateProject(QETProject *)
Definition qetdiagrameditor.cpp:2054
QMdiSubWindow * subWindowForWidget(QWidget *) const
Definition qetdiagrameditor.cpp:1335
QAction * m_project_terminalBloc
generate terminal block
Definition qetdiagrameditor.h:196
QDir open_dialog_dir
Definition qetdiagrameditor.h:218
void moveDiagramUpTop(Diagram *)
Definition qetdiagrameditor.cpp:2198
void selectGroupTriggered(QAction *action)
QETDiagramEditor::selectGroupTriggered This slot is called when selection need to change.
Definition qetdiagrameditor.cpp:1379
QAction * m_mode_visualise
Set visualisation mode.
Definition qetdiagrameditor.h:175
QAction * m_terminal_strip_dialog
Launch terminal strip dialog.
Definition qetdiagrameditor.h:195
QAction * m_tabbed_view_mode
Actions related to file (open, close, save...)
Definition qetdiagrameditor.h:172
void zoomGroupTriggered(QAction *action)
Definition qetdiagrameditor.cpp:1355
SearchAndReplaceWidget m_search_and_replace_widget
Definition qetdiagrameditor.h:243
QAction * m_add_summary
Add summary graphics item.
Definition qetdiagrameditor.h:194
void editProjectProperties(ProjectView *)
Definition qetdiagrameditor.cpp:2097
void setUpElementsCollectionWidget()
QETDiagramEditor::setUpElementsCollectionWidget Set up the dock widget of element collection.
Definition qetdiagrameditor.cpp:189
QAction * m_edit_diagram_properties
Show a dialog to edit diagram properties.
Definition qetdiagrameditor.h:152
void setUpActions()
QETDiagramEditor::setUpActions Set up all Qaction.
Definition qetdiagrameditor.cpp:263
void slot_updateActions()
QETDiagramEditor::slot_updateActions Manage actions.
Definition qetdiagrameditor.cpp:1527
QAction * m_tile_window
Export to file the internal database of the current project.
Definition qetdiagrameditor.h:199
bool event(QEvent *) override
QETDiagramEditor::event Reimplemented to : -Load elements collection when WindowActivate.
Definition qetdiagrameditor.cpp:906
QAction * m_print
Print diagrams of the current project.
Definition qetdiagrameditor.h:178
QAction * m_cascade_window
Show MDI subwindows as cascade.
Definition qetdiagrameditor.h:200
QActionGroup m_select_actions_group
Action related to zoom for diagram.
Definition qetdiagrameditor.h:168
Element * currentElement() const
Definition qetdiagrameditor.cpp:1254
DiagramView * currentDiagramView() const
Definition qetdiagrameditor.cpp:1240
QSignalMapper windowMapper
Definition qetdiagrameditor.h:217
QDockWidget * m_qdw_elmt_collection
Dock for the elements panel.
Definition qetdiagrameditor.h:222
QAction * m_edit_selection
To edit selected item.
Definition qetdiagrameditor.h:203
QAction * redo
Redo the latest cancelled operation.
Definition qetdiagrameditor.h:181
bool openProject()
Definition qetdiagrameditor.cpp:998
void slot_updatePasteAction()
QETDiagramEditor::slot_updatePasteAction Gere les actions ayant besoin du presse-papier.
Definition qetdiagrameditor.cpp:1779
void generateTerminalBlock()
QETDiagramEditor::generateTerminalBlock.
Definition qetdiagrameditor.cpp:2347
void writeSettings()
QETDiagramEditor::writeSettings Write the settings.
Definition qetdiagrameditor.cpp:2043
void slot_updateUndoStack()
QETDiagramEditor::slot_updateUndoStack Update the undo stack view.
Definition qetdiagrameditor.cpp:1590
void slot_updateComplexActions()
QETDiagramEditor::slot_updateComplexActions Manage the actions who need some conditions to be enable ...
Definition qetdiagrameditor.cpp:1601
QActionGroup m_row_column_actions_group
Definition qetdiagrameditor.h:158
bool newProject()
QETDiagramEditor::newProject Create a new project with an empty diagram.
Definition qetdiagrameditor.cpp:969
QAction * undo
Cancel the latest action.
Definition qetdiagrameditor.h:180
int activeSubWindowIndex
Definition qetdiagrameditor.h:241
QAction * m_close_file
Close current project file.
Definition qetdiagrameditor.h:209
QToolBar * m_depth_tool_bar
Definition qetdiagrameditor.h:237
void addDiagramToProject(QETProject *)
QETDiagramEditor::addDiagramToProject Add a diagram to project.
Definition qetdiagrameditor.cpp:2118
QActionGroup * m_group_view_mode
Action group for project.
Definition qetdiagrameditor.h:165
void slot_updateWindowsMenu()
Definition qetdiagrameditor.cpp:1929
QToolBar * m_add_item_tool_bar
Definition qetdiagrameditor.h:236
void moveDiagramDownx10(Diagram *)
Definition qetdiagrameditor.cpp:2239
void save()
QETDiagramEditor::save Ask the current active project to save.
Definition qetdiagrameditor.cpp:920
QAction * m_conductor_reset
Reset paths of selected conductors.
Definition qetdiagrameditor.h:153
void rowColumnGroupTriggered(QAction *action)
Definition qetdiagrameditor.cpp:1500
bool addProject(QETProject *, bool=true)
Definition qetdiagrameditor.cpp:1164
QAction * m_group_selected_texts
Definition qetdiagrameditor.h:208
void setUpToolBar()
QETDiagramEditor::setUpToolBar.
Definition qetdiagrameditor.cpp:717
QAction * m_save_file_as
Save current project as a specific file.
Definition qetdiagrameditor.h:211
DiagramPropertiesEditorDockWidget * m_selection_properties_editor
Definition qetdiagrameditor.h:227
QActionGroup * grp_visu_sel
Action group for visualisation vs edition mode.
Definition qetdiagrameditor.h:164
QAction * m_export_project_db
Definition qetdiagrameditor.h:198
QDockWidget * qdw_pa
Directory to use for file dialogs such as File > save.
Definition qetdiagrameditor.h:221
void removeDiagramFromProject()
Definition qetdiagrameditor.cpp:2262
void findElementInPanel(const ElementsLocation &)
QETDiagramEditor::findElementInPanel Find the item for location in the element panel.
Definition qetdiagrameditor.cpp:2294
void activateWidget(QWidget *)
Definition qetdiagrameditor.cpp:1348
void reloadOldElementPanel()
Definition qetdiagrameditor.cpp:2254
QAction * m_windowed_view_mode
Display projects as windows.
Definition qetdiagrameditor.h:173
QAction * m_paste
Paste clipboard content on the current diagram.
Definition qetdiagrameditor.h:182
QAction * m_quit_editor
Quit the diagram editor.
Definition qetdiagrameditor.h:179
QAction * m_auto_conductor
Enable/Disable the use of auto conductor.
Definition qetdiagrameditor.h:183
QMdiArea m_workspace
Only zoom action must displayed in the toolbar.
Definition qetdiagrameditor.h:216
QAction * m_next_window
Switch to the next document.
Definition qetdiagrameditor.h:202
void showError(const QETResult &)
Definition qetdiagrameditor.cpp:2302
~QETDiagramEditor() override
Definition qetdiagrameditor.cpp:148
void setTabbedMode()
Definition qetdiagrameditor.cpp:2007
void setUpSelectionPropertiesEditor()
QETDiagramEditor::setUpSelectionPropertiesEditor Setup the dock for edit the current selection.
Definition qetdiagrameditor.cpp:237
QActionGroup m_file_actions_group
Action related to global selections.
Definition qetdiagrameditor.h:169
void setUpMenu()
QETDiagramEditor::setUpMenu.
Definition qetdiagrameditor.cpp:775
void saveAs()
QETDiagramEditor::saveAs Ask the current active project to save as.
Definition qetdiagrameditor.cpp:945
ProjectView * findProject(DiagramView *) const
Definition qetdiagrameditor.cpp:1272
ProjectView * currentProjectView() const
Definition qetdiagrameditor.cpp:1206
void setUpAutonumberingWidget()
QETDiagramEditor::setUpAutonumberingWidget Setup the dock for AutoNumbering Selection.
Definition qetdiagrameditor.cpp:248
bool openAndAddProject(const QString &, bool=true)
Definition qetdiagrameditor.cpp:1053
ElementsCollectionWidget * m_element_collection_widget
Dock for the undo list.
Definition qetdiagrameditor.h:225
void readSettings()
QETDiagramEditor::readSettings Read the settings.
Definition qetdiagrameditor.cpp:2018
QAction * m_previous_window
Switch to the previous document.
Definition qetdiagrameditor.h:201
void moveDiagramUp(Diagram *)
Definition qetdiagrameditor.cpp:2158
void addItemGroupTriggered(QAction *action)
QETDiagramEditor::addItemGroupTriggered This slot is called when an item must be added to the current...
Definition qetdiagrameditor.cpp:1404
QAction * m_project_add_diagram
Add a diagram to the current project.
Definition qetdiagrameditor.h:188
QAction * m_draw_grid
Switch the background grid display or not.
Definition qetdiagrameditor.h:186
QAction * m_find_element
Find the selected element in the panel.
Definition qetdiagrameditor.h:207
QAction * m_grey_background
Switch the background color in white or grey.
Definition qetdiagrameditor.h:185
QAction * m_project_edit_properties
Edit the properties of the current project.
Definition qetdiagrameditor.h:187
QAction * m_find
Definition qetdiagrameditor.h:212
QList< ProjectView * > openedProjects() const
Definition qetdiagrameditor.cpp:1190
void removeDiagram(Diagram *)
Definition qetdiagrameditor.cpp:2135
bool openRecentFile(const QString &)
Definition qetdiagrameditor.cpp:986
QAction * m_add_nomenclature
Add nomenclature graphics item;.
Definition qetdiagrameditor.h:193
QDockWidget * qdw_undo
Definition qetdiagrameditor.h:223
QAction * m_clean_project
Clean the content of the current project by removing useless items.
Definition qetdiagrameditor.h:190
QUndoGroup undo_group
Definition qetdiagrameditor.h:239
void subWindowActivated(QMdiSubWindow *subWindows)
QETDiagramEditor::subWindowActivated Slot used to update menu and undo stack when subwindows of MDIar...
Definition qetdiagrameditor.cpp:2322
QActionGroup m_zoom_actions_group
Action related to adding (add text image shape...)
Definition qetdiagrameditor.h:167
QToolBar * view_tool_bar
Definition qetdiagrameditor.h:234
QAction * conductor_default
Show a dialog to edit default conductor properties.
Definition qetdiagrameditor.h:184
void diagramWasAdded(DiagramView *)
QETDiagramEditor::diagramWasAdded Manage the adding of diagram view in a project.
Definition qetdiagrameditor.cpp:2276
ProjectView * viewForFile(const QString &) const
Definition qetdiagrameditor.cpp:1866
QAction * m_rotate_selection
Rotate selected elements and text items by 90 degrees.
Definition qetdiagrameditor.h:205
bool closeProject(ProjectView *)
Definition qetdiagrameditor.cpp:1022
QActionGroup m_selection_actions_group
Action related to add/remove rows/column in diagram.
Definition qetdiagrameditor.h:159
QAction * m_project_folio_list
Sommaire des schemas.
Definition qetdiagrameditor.h:191
Definition qetmainwindow.h:26
Definition qetproject.h:62
Definition qetresult.h:26
Definition recentfiles.h:26
Definition searchandreplacewidget.h:40