QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
qetdiagrameditor.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 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;
46
47class KAutoSaveFile;
53{
54 Q_OBJECT
55
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 void openBackupFiles (QList<KAutoSaveFile *> backup_files);
73
74 protected:
75 bool event(QEvent *) override;
76 private:
77 // Declared first so it is initialised before any member whose
78 // constructor may dispatch a Qt event calling event() (e.g. the
79 // QActionGroup members below trigger QObject::setParent events).
80 bool m_first_show = true;
81
83 void setUpElementsPanel ();
85 void setUpUndoStack ();
88 void setUpActions ();
89 void setUpToolBar ();
90 void setUpMenu ();
91
92 bool addProject(QETProject *, bool = true);
94 Element *currentElement() const;
98 ProjectView *findProject(const QString &) const;
99 QMdiSubWindow *subWindowForWidget(QWidget *) const;
102
103 signals:
105
106 public slots:
107 void save();
108 void saveAs();
109 bool newProject();
110 bool openProject();
111 bool openRecentFile(const QString &);
113 bool closeProject(QETProject *);
114 void zoomGroupTriggered (QAction *action);
115 void selectGroupTriggered (QAction *action);
116 void addItemGroupTriggered (QAction *action);
117 void selectionGroupTriggered (QAction *action);
118 void rowColumnGroupTriggered (QAction *action);
119 void slot_updateActions();
127 void setWindowedMode();
128 void setTabbedMode();
129 void readSettings();
130 void readSettingsState();
131 void writeSettings();
134 void activateWidget(QWidget *);
143 void removeDiagram(Diagram *);
144 void removeDiagrams(const QList<Diagram *> &diagrams);
146 void moveDiagramUp(const QList<Diagram *> &diagrams);
147 void moveDiagramDown(const QList<Diagram *> &diagrams);
148 void moveDiagramUpTop(const QList<Diagram *> &diagrams);
149 void moveDiagramUpx10(const QList<Diagram *> &diagrams);
150 void moveDiagramDownx10(const QList<Diagram *> &diagrams);
151 void moveDiagramUpx100(const QList<Diagram *> &diagrams);
152 void moveDiagramDownx100(const QList<Diagram *> &diagrams);
156 void showError(const QETResult &);
157 void showError(const QString &);
158 void subWindowActivated(QMdiSubWindow *subWindows);
159
160 private slots:
161 void selectionChanged();
162
163 public:
164 QAction
169
170 QActionGroup
174
175 private:
176 QActionGroup
183
184 QAction
190 *m_export_to_pdf = nullptr,
200 *m_draw_guides = nullptr,
228 *m_find = nullptr,
229 *m_jump_to_element = nullptr;
230
231 QList <QAction *> m_zoom_action_toolBar;
232
233 void removeDiagramSilent(Diagram *diagram);
234
235 QMdiArea m_workspace;
236 QSignalMapper windowMapper;
238
239 QDockWidget
243
245
250
251 QToolBar
252 *main_tool_bar = nullptr,
253 *view_tool_bar = nullptr,
257
258 QUndoGroup undo_group;
262};
263#endif
Definition autonumberingdockwidget.h:35
The Diagram class This class represents an electric diagram. It manages its various child elements,...
Definition diagram.h:54
Definition diagrampropertieseditordockwidget.h:26
Definition diagramview.h:39
Definition element.h:44
The ElementsCollectionWidget class This widget embedd a tree view that display the element collection...
Definition elementscollectionwidget.h:47
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
Definition kautosavefile.h:38
The ProjectView class This class provides a widget displaying the diagrams of a particular project us...
Definition projectview.h:80
QAction * m_project_export_conductor_num
Export the wire num to csv.
Definition qetdiagrameditor.h:210
QAction * m_terminal_numbering
Action to launch terminal numbering.
Definition qetdiagrameditor.h:212
void slot_updateAutoNumDock()
QETDiagramEditor::slot_updateAutoNumDock Update Auto Num Dock Widget when changing Project.
Definition qetdiagrameditor.cpp:1810
QToolBar * diagram_tool_bar
Definition qetdiagrameditor.h:254
QActionGroup * m_depth_action_group
Action related to edit a selected item.
Definition qetdiagrameditor.h:173
void moveDiagramDown(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2517
void moveDiagramUp(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2499
QAction * m_export_to_images
Export diagrams of the current project as imagess.
Definition qetdiagrameditor.h:189
bool m_first_show
Definition qetdiagrameditor.h:80
QList< QString > editedFiles() const
Definition qetdiagrameditor.cpp:2110
void projectWasClosed(ProjectView *)
QETDiagramEditor::projectWasClosed Manage the close of a project.
Definition qetdiagrameditor.cpp:2347
void updateWindowModifiedState()
QETDiagramEditor::updateWindowModifiedState Reflect the currently active project's unsaved-changes st...
Definition qetdiagrameditor.cpp:2737
QAction * m_save_file
Save current project.
Definition qetdiagrameditor.h:226
void moveDiagramDownx100(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2607
void setUpUndoStack()
QETDiagramEditor::setUpUndoStack Setup the undostack and undo stack widget.
Definition qetdiagrameditor.cpp:225
QActionGroup m_add_item_actions_group
Definition qetdiagrameditor.h:179
void editDiagramProperties(DiagramView *)
Definition qetdiagrameditor.cpp:2233
QAction * m_csv_export
generate nomenclature
Definition qetdiagrameditor.h:205
QAction * m_cut
Cut selection to clipboard.
Definition qetdiagrameditor.h:167
void closeEvent(QCloseEvent *) override
Definition qetdiagrameditor.cpp:980
QAction * m_export_to_pdf
Export project to pdf.
Definition qetdiagrameditor.h:190
ElementsPanelWidget * pa
Elements panel.
Definition qetdiagrameditor.h:248
QAction * m_rotate_texts
Direct selected text items to a specific angle.
Definition qetdiagrameditor.h:222
QList< QAction * > m_zoom_action_toolBar
Definition qetdiagrameditor.h:231
QAction * m_remove_diagram_from_project
Delete a diagram from the current project.
Definition qetdiagrameditor.h:203
void setWindowedMode()
Definition qetdiagrameditor.cpp:2256
QAction * m_draw_guides
Switch the custom guides display or not.
Definition qetdiagrameditor.h:200
QETProject * currentProject() const
QETDiagramEditor::currentProject.
Definition qetdiagrameditor.cpp:1391
AutoNumberingDockWidget * m_autonumbering_dock
Definition qetdiagrameditor.h:259
QMenu * windows_menu
Definition qetdiagrameditor.h:249
void openBackupFiles(QList< KAutoSaveFile * > backup_files)
QETDiagramEditor::openBackupFiles.
Definition qetdiagrameditor.cpp:2159
void slot_updateModeActions()
QETDiagramEditor::slot_updateModeActions Manage action who need an opened diagram or project to be up...
Definition qetdiagrameditor.cpp:1978
QToolBar * main_tool_bar
Definition qetdiagrameditor.h:252
void addProjectView(ProjectView *)
QETDiagramEditor::addProjectView Add a new project view to workspace and build the connection between...
Definition qetdiagrameditor.cpp:2035
void setUpElementsPanel()
QETDiagramEditor::setUpElementsPanel Setup the element panel and element panel widget.
Definition qetdiagrameditor.cpp:168
QAction * m_delete_selection
Delete selection.
Definition qetdiagrameditor.h:219
bool drawGrid() const
QETDiagramEditor::drawGrid.
Definition qetdiagrameditor.cpp:2150
QETDiagramEditor(const QETDiagramEditor &)
void moveDiagramDownx10(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2571
QAction * m_copy
Copy selection to clipboard.
Definition qetdiagrameditor.h:168
void selectionChanged()
QETDiagramEditor::selectionChanged This slot is called when a diagram selection was changed.
Definition qetdiagrameditor.cpp:2754
void selectionGroupTriggered(QAction *action)
QETDiagramEditor::selectionGroupTriggered This slot is called when an action should be made on the cu...
Definition qetdiagrameditor.cpp:1677
QAction * m_mode_selection
Set edition mode.
Definition qetdiagrameditor.h:187
void activateProject(QETProject *)
Definition qetdiagrameditor.cpp:2327
QMdiSubWindow * subWindowForWidget(QWidget *) const
Definition qetdiagrameditor.cpp:1501
QAction * m_project_terminalBloc
generate terminal block
Definition qetdiagrameditor.h:209
QDir open_dialog_dir
Definition qetdiagrameditor.h:237
void selectGroupTriggered(QAction *action)
QETDiagramEditor::selectGroupTriggered This slot is called when selection need to change.
Definition qetdiagrameditor.cpp:1545
QAction * m_mode_visualise
Set visualisation mode.
Definition qetdiagrameditor.h:188
QAction * m_terminal_strip_dialog
Launch terminal strip dialog.
Definition qetdiagrameditor.h:208
QAction * m_tabbed_view_mode
Actions related to file (open, close, save...).
Definition qetdiagrameditor.h:185
void zoomGroupTriggered(QAction *action)
Definition qetdiagrameditor.cpp:1521
SearchAndReplaceWidget m_search_and_replace_widget
Definition qetdiagrameditor.h:261
QAction * m_add_summary
Add summary graphics item.
Definition qetdiagrameditor.h:207
void editProjectProperties(ProjectView *)
Definition qetdiagrameditor.cpp:2370
QETDiagramEditor(const QStringList &=QStringList(), QWidget *=nullptr)
QETDiagramEditor::QETDiagramEditor Constructor.
Definition qetdiagrameditor.cpp:77
void setUpElementsCollectionWidget()
QETDiagramEditor::setUpElementsCollectionWidget Set up the dock widget of element collection.
Definition qetdiagrameditor.cpp:204
QAction * m_edit_diagram_properties
Show a dialog to edit diagram properties.
Definition qetdiagrameditor.h:165
void setUpActions()
QETDiagramEditor::setUpActions Set up all Qaction.
Definition qetdiagrameditor.cpp:278
void slot_updateActions()
QETDiagramEditor::slot_updateActions Manage actions.
Definition qetdiagrameditor.cpp:1756
QAction * m_tile_window
Export to file the internal database of the current project.
Definition qetdiagrameditor.h:214
bool event(QEvent *) override
QETDiagramEditor::event Reimplemented to : -Load elements collection when WindowActivate.
Definition qetdiagrameditor.cpp:1013
QAction * m_print
Print diagrams of the current project.
Definition qetdiagrameditor.h:191
void removeDiagrams(const QList< Diagram * > &diagrams)
QETDiagramEditor::removeDiagrams Deletes a list of folios with a single query.
Definition qetdiagrameditor.cpp:2438
QAction * m_cascade_window
Show MDI subwindows as cascade.
Definition qetdiagrameditor.h:215
QActionGroup m_select_actions_group
Action related to zoom for diagram.
Definition qetdiagrameditor.h:181
Element * currentElement() const
Definition qetdiagrameditor.cpp:1420
DiagramView * currentDiagramView() const
Definition qetdiagrameditor.cpp:1406
QSignalMapper windowMapper
Definition qetdiagrameditor.h:236
QDockWidget * m_qdw_elmt_collection
Dock for the elements panel.
Definition qetdiagrameditor.h:241
QAction * m_edit_selection
To edit selected item.
Definition qetdiagrameditor.h:218
QAction * redo
Redo the latest cancelled operation.
Definition qetdiagrameditor.h:194
bool openProject()
Definition qetdiagrameditor.cpp:1105
void slot_updatePasteAction()
QETDiagramEditor::slot_updatePasteAction Gere les actions ayant besoin du presse-papier.
Definition qetdiagrameditor.cpp:2020
void generateTerminalBlock()
QETDiagramEditor::generateTerminalBlock.
Definition qetdiagrameditor.cpp:2767
void writeSettings()
QETDiagramEditor::writeSettings Write the settings.
Definition qetdiagrameditor.cpp:2316
void slot_updateUndoStack()
QETDiagramEditor::slot_updateUndoStack Update the undo stack view.
Definition qetdiagrameditor.cpp:1824
void slot_updateComplexActions()
QETDiagramEditor::slot_updateComplexActions Manage the actions that need some conditions to be enable...
Definition qetdiagrameditor.cpp:1835
QAction * m_project_export_wiring_list
Action to export the wiring list.
Definition qetdiagrameditor.h:211
QActionGroup m_row_column_actions_group
Definition qetdiagrameditor.h:171
bool newProject()
QETDiagramEditor::newProject Create a new project with an empty diagram.
Definition qetdiagrameditor.cpp:1076
QAction * undo
Cancel the latest action.
Definition qetdiagrameditor.h:193
int activeSubWindowIndex
Definition qetdiagrameditor.h:260
QAction * m_close_file
Close current project file.
Definition qetdiagrameditor.h:225
void readSettingsState()
QETDiagramEditor::readSettingsState Restore the window state (docks, toolbars). Must be called AFTER ...
Definition qetdiagrameditor.cpp:2299
void syncElementsPanel()
QToolBar * m_depth_tool_bar
Definition qetdiagrameditor.h:256
void addDiagramToProject(QETProject *)
QETDiagramEditor::addDiagramToProject Add a diagram to project.
Definition qetdiagrameditor.cpp:2391
QActionGroup * m_group_view_mode
Action group for project.
Definition qetdiagrameditor.h:178
void slot_updateWindowsMenu()
Definition qetdiagrameditor.cpp:2188
void removeDiagramSilent(Diagram *diagram)
Only zoom action must displayed in the toolbar.
Definition qetdiagrameditor.cpp:2487
QToolBar * m_add_item_tool_bar
Definition qetdiagrameditor.h:255
void save()
QETDiagramEditor::save Ask the current active project to save.
Definition qetdiagrameditor.cpp:1027
QAction * m_conductor_reset
Reset paths of selected conductors.
Definition qetdiagrameditor.h:166
void rowColumnGroupTriggered(QAction *action)
Definition qetdiagrameditor.cpp:1729
bool addProject(QETProject *, bool=true)
Definition qetdiagrameditor.cpp:1324
QAction * m_group_selected_texts
Definition qetdiagrameditor.h:224
void setUpToolBar()
QETDiagramEditor::setUpToolBar.
Definition qetdiagrameditor.cpp:817
QAction * m_save_file_as
Save current project as a specific file.
Definition qetdiagrameditor.h:227
QAction * m_auto_break_conductor
Enable/Disable the use of auto break conductor.
Definition qetdiagrameditor.h:197
DiagramPropertiesEditorDockWidget * m_selection_properties_editor
Definition qetdiagrameditor.h:246
QActionGroup * grp_visu_sel
Action group for visualisation vs edition mode.
Definition qetdiagrameditor.h:177
QAction * m_export_project_db
Definition qetdiagrameditor.h:213
QDockWidget * qdw_pa
Directory to use for file dialogs such as File > save.
Definition qetdiagrameditor.h:240
void removeDiagramFromProject()
Definition qetdiagrameditor.cpp:2633
void findElementInPanel(const ElementsLocation &)
QETDiagramEditor::findElementInPanel Find the item for location in the element panel.
Definition qetdiagrameditor.cpp:2662
QAction * m_rotate_group_selection
Rotate the selection as a whole around its shared center, instead of each item in place.
Definition qetdiagrameditor.h:221
void activateWidget(QWidget *)
Definition qetdiagrameditor.cpp:1514
void reloadOldElementPanel()
Definition qetdiagrameditor.cpp:2625
QAction * m_windowed_view_mode
Display projects as windows.
Definition qetdiagrameditor.h:186
QAction * m_paste
Paste clipboard content on the current diagram.
Definition qetdiagrameditor.h:195
void moveDiagramUpx10(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2553
QAction * m_quit_editor
Quit the diagram editor.
Definition qetdiagrameditor.h:192
QAction * m_auto_conductor
Enable/Disable the use of auto conductor.
Definition qetdiagrameditor.h:196
QMdiArea m_workspace
Definition qetdiagrameditor.h:235
friend class TerminalStripEditorWindow
Definition qetdiagrameditor.h:56
QAction * m_next_window
Switch to the next document.
Definition qetdiagrameditor.h:217
void showError(const QETResult &)
Definition qetdiagrameditor.cpp:2670
~QETDiagramEditor() override
Definition qetdiagrameditor.cpp:160
void setTabbedMode()
Definition qetdiagrameditor.cpp:2266
void setUpSelectionPropertiesEditor()
QETDiagramEditor::setUpSelectionPropertiesEditor Setup the dock for edit the current selection.
Definition qetdiagrameditor.cpp:252
QActionGroup m_file_actions_group
Action related to global selections.
Definition qetdiagrameditor.h:182
void setUpMenu()
QETDiagramEditor::setUpMenu.
Definition qetdiagrameditor.cpp:877
void saveAs()
QETDiagramEditor::saveAs Ask the current active project to save as.
Definition qetdiagrameditor.cpp:1052
ProjectView * findProject(DiagramView *) const
Definition qetdiagrameditor.cpp:1438
ProjectView * currentProjectView() const
Definition qetdiagrameditor.cpp:1372
void setUpAutonumberingWidget()
QETDiagramEditor::setUpAutonumberingWidget Setup the dock for AutoNumbering Selection.
Definition qetdiagrameditor.cpp:263
bool openAndAddProject(const QString &, bool=true)
Definition qetdiagrameditor.cpp:1160
ElementsCollectionWidget * m_element_collection_widget
Dock for the undo list.
Definition qetdiagrameditor.h:244
void readSettings()
QETDiagramEditor::readSettings Read the settings.
Definition qetdiagrameditor.cpp:2277
QAction * m_previous_window
Switch to the previous document.
Definition qetdiagrameditor.h:216
void updateUsageTrackersActiveState()
QETDiagramEditor::updateUsageTrackersActiveState Mark the currently active project's usage tracker (t...
Definition qetdiagrameditor.cpp:2713
void addItemGroupTriggered(QAction *action)
QETDiagramEditor::addItemGroupTriggered This slot is called when an item must be added to the current...
Definition qetdiagrameditor.cpp:1570
QAction * m_jump_to_element
Open the "jump to element" quick-open popup.
Definition qetdiagrameditor.h:229
QAction * m_project_add_diagram
Add a diagram to the current project.
Definition qetdiagrameditor.h:202
QAction * m_draw_grid
Switch the background grid display or not.
Definition qetdiagrameditor.h:199
QAction * m_find_element
Find the selected element in the panel.
Definition qetdiagrameditor.h:223
QAction * m_grey_background
Switch the background color in white or grey.
Definition qetdiagrameditor.h:198
QAction * m_project_edit_properties
Edit the properties of the current project.
Definition qetdiagrameditor.h:201
QAction * m_find
Definition qetdiagrameditor.h:228
void moveDiagramUpx100(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2589
QList< ProjectView * > openedProjects() const
Definition qetdiagrameditor.cpp:1356
void removeDiagram(Diagram *)
QETDiagramEditor::removeDiagram Wrapper für einzelne Diagramme, um Abwärtskompatibilität zu erhalten.
Definition qetdiagrameditor.cpp:2426
bool openRecentFile(const QString &)
Definition qetdiagrameditor.cpp:1093
QAction * m_add_nomenclature
Add nomenclature graphics item;.
Definition qetdiagrameditor.h:206
QDockWidget * qdw_undo
Definition qetdiagrameditor.h:242
QAction * m_clean_project
Clean the content of the current project by removing useless items.
Definition qetdiagrameditor.h:204
QUndoGroup undo_group
Definition qetdiagrameditor.h:258
void subWindowActivated(QMdiSubWindow *subWindows)
QETDiagramEditor::subWindowActivated Slot used to update menu and undo stack when subwindows of MDIar...
Definition qetdiagrameditor.cpp:2690
QActionGroup m_zoom_actions_group
Action related to adding (add text image shape...).
Definition qetdiagrameditor.h:180
QToolBar * view_tool_bar
Definition qetdiagrameditor.h:253
void addDiagramToProjectAt(QETProject *, int)
QETDiagramEditor::addDiagramToProjectAt Add a diagram to project, inserted at a specific position.
Definition qetdiagrameditor.cpp:2410
void slot_terminalNumbering()
QETDiagramEditor::slot_terminalNumbering Opens the dialog for automatic terminal numbering and applie...
Definition qetdiagrameditor.cpp:2891
void diagramWasAdded(DiagramView *)
QETDiagramEditor::diagramWasAdded Manage the adding of diagram view in a project.
Definition qetdiagrameditor.cpp:2647
ProjectView * viewForFile(const QString &) const
Definition qetdiagrameditor.cpp:2128
QAction * m_rotate_selection
Rotate selected elements and text items by 90 degrees.
Definition qetdiagrameditor.h:220
bool closeProject(ProjectView *)
Definition qetdiagrameditor.cpp:1129
QActionGroup m_selection_actions_group
Action related to add/remove rows/column in diagram.
Definition qetdiagrameditor.h:172
void moveDiagramUpTop(const QList< Diagram * > &diagrams)
Definition qetdiagrameditor.cpp:2535
QETMainWindow(QWidget *=nullptr, Qt::WindowFlags=Qt::Widget)
Definition qetmainwindow.cpp:35
Definition qetproject.h:77
Definition qetresult.h:26
Definition recentfiles.h:26
Definition searchandreplacewidget.h:40
The TerminalNumberingDialog class Dialog to configure the automatic numbering of terminals.
Definition terminalnumberingdialog.h:20