diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake
index 3bb29d113..207a2719b 100644
--- a/cmake/qet_compilation_vars.cmake
+++ b/cmake/qet_compilation_vars.cmake
@@ -685,6 +685,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.h
${QET_DIR}/sources/ui/configpage/projectconfigpages.cpp
${QET_DIR}/sources/ui/configpage/projectconfigpages.h
+ ${QET_DIR}/sources/ui/configpage/guidespropertieswidget.cpp
+ ${QET_DIR}/sources/ui/configpage/guidespropertieswidget.h
${QET_DIR}/sources/undocommand/addelementtextcommand.cpp
${QET_DIR}/sources/undocommand/addelementtextcommand.h
diff --git a/ico/22x22/guides.png b/ico/22x22/guides.png
new file mode 100644
index 000000000..d6d8a1e69
Binary files /dev/null and b/ico/22x22/guides.png differ
diff --git a/qelectrotech.qrc b/qelectrotech.qrc
index 4d324408f..7b506d46c 100644
--- a/qelectrotech.qrc
+++ b/qelectrotech.qrc
@@ -222,6 +222,7 @@
ico/24x16/dk.png
ico/24x16/br.png
ico/22x22/grid.png
+ ico/22x22/guides.png
ico/22x22/terminalstrip.png
ico/16x16/diagram.png
ico/16x16/edit-clear-locationbar-rtl.png
diff --git a/sources/SearchAndReplace/searchandreplaceworker.cpp b/sources/SearchAndReplace/searchandreplaceworker.cpp
index ed442893e..9f74248d7 100644
--- a/sources/SearchAndReplace/searchandreplaceworker.cpp
+++ b/sources/SearchAndReplace/searchandreplaceworker.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "searchandreplaceworker.h"
-
+#include "../qetproject.h"
#include "../QPropertyUndoCommand/qpropertyundocommand.h"
#include "../diagram.h"
#include "../diagramcommands.h"
diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
index 56a87af1c..c6e8a3842 100644
--- a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
+++ b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "terminalstripitem.h"
-
+#include "../../qetproject.h"
#include "../diagram.h"
#include "../../project/projectpropertieshandler.h"
diff --git a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
index c11a39f4b..c61b67ad6 100644
--- a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
+++ b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
@@ -17,7 +17,7 @@
*/
#include "addterminalstripitemdialog.h"
#include "ui_addterminalstripitemdialog.h"
-
+#include "../../qetproject.h"
#include "../../undocommand/addgraphicsobjectcommand.h"
#include "../terminalstrip.h"
#include "../GraphicsItem/terminalstripitem.h"
diff --git a/sources/autoNum/assignvariables.cpp b/sources/autoNum/assignvariables.cpp
index 80929e4fc..c4810906e 100644
--- a/sources/autoNum/assignvariables.cpp
+++ b/sources/autoNum/assignvariables.cpp
@@ -23,7 +23,7 @@
#include "../qetgraphicsitem/conductor.h"
#include "../qetgraphicsitem/element.h"
#include "../qetxml.h"
-
+#include "../qetproject.h"
#include
#include
#include
diff --git a/sources/cli_export.cpp b/sources/cli_export.cpp
index c5215e9bb..56b049581 100644
--- a/sources/cli_export.cpp
+++ b/sources/cli_export.cpp
@@ -116,9 +116,12 @@ void renderDiagram(Diagram *diagram, QPainter &painter, const QRectF &target)
// draw_grid_ is set (default true), so toggle it off around the render
// and restore it afterwards.
const bool was_drawing_grid = diagram->displayGrid();
+ const bool was_drawing_guides = diagram->displayGuides();
diagram->setDisplayGrid(false);
+ diagram->setDisplayGuides(false);
diagram->render(&painter, target, source, Qt::KeepAspectRatio);
diagram->setDisplayGrid(was_drawing_grid);
+ diagram->setDisplayGuides(was_drawing_guides);
}
int exportPdf(QETProject &project, const QString &output)
diff --git a/sources/conductorautonumerotation.cpp b/sources/conductorautonumerotation.cpp
index c43efd70a..0f53c870d 100644
--- a/sources/conductorautonumerotation.cpp
+++ b/sources/conductorautonumerotation.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "conductorautonumerotation.h"
-
+#include "qetproject.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "autoNum/assignvariables.h"
#include "autoNum/numerotationcontextcommands.h"
diff --git a/sources/conductornumexport.cpp b/sources/conductornumexport.cpp
index d46f5ecbd..23adb23ed 100644
--- a/sources/conductornumexport.cpp
+++ b/sources/conductornumexport.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "conductornumexport.h"
-
+#include "qetproject.h"
#include "qetapp.h"
#include "diagram.h"
#include "diagramcontent.h"
diff --git a/sources/diagram.cpp b/sources/diagram.cpp
index e875c30d2..7072a95d6 100644
--- a/sources/diagram.cpp
+++ b/sources/diagram.cpp
@@ -39,7 +39,7 @@
#include "qetxml.h"
#include "undocommand/addelementtextcommand.h"
#include "qetinformation.h"
-
+#include "qetproject.h"
#include
#include
@@ -65,7 +65,6 @@ QColor Diagram::background_color = Qt::white;
Diagram::Diagram(QETProject *project) :
QGraphicsScene (project),
m_project (project),
- draw_grid_ (true),
use_border_ (true),
draw_terminals_ (true),
draw_colored_conductors_ (true),
@@ -73,6 +72,11 @@ Diagram::Diagram(QETProject *project) :
m_freeze_new_elements (false),
m_freeze_new_conductors_ (false)
{
+
+ QSettings settings;
+ draw_grid_ = settings.value(QStringLiteral("diagrameditor/grid_display_startup"), true).toBool();
+ draw_guides_ = settings.value(QStringLiteral("diagrameditor/guides_display_startup"), false).toBool();
+
setItemIndexMethod(QGraphicsScene::NoIndex);
/* Set to no index,
* because they can be the source of the crash with conductor and shape ghost.
@@ -121,8 +125,30 @@ Diagram::Diagram(QETProject *project) :
connect(this, &Diagram::diagramActivated,
this, &Diagram::loadCndFolioSeq);
adjustSceneRect();
-}
+ m_guides_list.clear();
+ if (m_project) {
+ for (const auto &pg : m_project->defaultGuides()) {
+ Diagram::Guide g;
+ g.orientation = static_cast(pg.orientation);
+ g.position = pg.position;
+ g.color = pg.color;
+ m_guides_list.append(g);
+ }
+ } else {
+ QSettings settings;
+ int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides"));
+ for (int i = 0; i < size; ++i) {
+ settings.setArrayIndex(i);
+ Diagram::Guide g;
+ g.orientation = static_cast(settings.value(QStringLiteral("orientation"), 0).toInt());
+ g.position = settings.value(QStringLiteral("position"), 0.0).toReal();
+ g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString());
+ m_guides_list.append(g);
+ }
+ settings.endArray();
+ }
+}
/**
@brief Diagram::~Diagram
Destructor
@@ -186,6 +212,14 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
p -> setBrush(Diagram::background_color);
p -> drawRect(r);
+ QSettings settings;
+ QRectF rect = settings.value(
+ QStringLiteral("diagrameditor/zoom-out-beyond-of-folio"),
+ false).toBool() ? r
+ : border_and_titleblock
+ .insideBorderRect()
+ .intersected(r);
+
if (draw_grid_) {
/* Draw the points of the grid
* if background color is black,
@@ -200,19 +234,10 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
p -> setBrush(Qt::NoBrush);
- // If user allow zoom out beyond of folio,
- // we draw grid outside of border.
- QSettings settings;
int xGrid = settings.value(QStringLiteral("diagrameditor/Xgrid"),
Diagram::xGrid).toInt();
int yGrid = settings.value(QStringLiteral("diagrameditor/Ygrid"),
Diagram::yGrid).toInt();
- QRectF rect = settings.value(
- QStringLiteral("diagrameditor/zoom-out-beyond-of-folio"),
- false).toBool() ? r
- : border_and_titleblock
- .insideBorderRect()
- .intersected(r);
qreal limit_x = rect.x() + rect.width();
qreal limit_y = rect.y() + rect.height();
@@ -252,7 +277,23 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
p -> drawPoints(points);
}
- if (use_border_) border_and_titleblock.draw(p);
+ if (draw_guides_) {
+ for (const Diagram::Guide &guide : m_guides_list) {
+ QPen guidePen(guide.color, 1, Qt::DashLine);
+ guidePen.setCosmetic(true);
+ p->setPen(guidePen);
+
+ if (guide.orientation == Diagram::Guide::Vertical) {
+ p->drawLine(guide.position, rect.top(), guide.position, rect.bottom());
+ } else {
+ p->drawLine(rect.left(), guide.position, rect.right(), guide.position);
+ }
+ }
+ }
+ if (use_border_) {
+ border_and_titleblock.draw(p);
+ }
+
p -> restore();
}
@@ -2274,6 +2315,7 @@ ExportProperties Diagram::applyProperties(
// exporte les options de rendu en cours
ExportProperties old_properties;
old_properties.draw_grid = displayGrid();
+ old_properties.draw_guides = displayGuides();
old_properties.draw_border = border_and_titleblock.borderIsDisplayed();
old_properties.draw_titleblock = border_and_titleblock.titleBlockIsDisplayed();
old_properties.draw_terminals = drawTerminals();
@@ -2287,6 +2329,7 @@ ExportProperties Diagram::applyProperties(
setDrawTerminals (new_properties.draw_terminals);
setDrawColoredConductors (new_properties.draw_colored_conductors);
setDisplayGrid (new_properties.draw_grid);
+ setDisplayGuides (new_properties.draw_guides);
border_and_titleblock.displayBorder(new_properties.draw_border);
border_and_titleblock.displayTitleBlock (new_properties.draw_titleblock);
@@ -2635,3 +2678,24 @@ void Diagram::restoreText(Element* elmt)
}
}
}
+
+QUndoStack &Diagram::undoStack() {
+ return *(project()->undoStack());
+}
+
+/**
+ * @brief Diagram::updateProjectGuides
+ * Aktualisiert die internen Hilfslinien dieses Schaltplans
+ * basierend auf den Projekt-Einstellungen und erzwingt ein Neuzeichnen.
+ */
+void Diagram::updateProjectGuides(const QList &guides) {
+ m_guides_list.clear();
+ for (const GuideProperties &pg : guides) {
+ Diagram::Guide g;
+ g.orientation = static_cast(pg.orientation);
+ g.position = pg.position;
+ g.color = pg.color;
+ m_guides_list.append(g);
+ }
+ update();
+}
diff --git a/sources/diagram.h b/sources/diagram.h
index cc988165f..7a884f6de 100644
--- a/sources/diagram.h
+++ b/sources/diagram.h
@@ -24,7 +24,6 @@
#include "elementtextsmover.h"
#include "exportproperties.h"
#include "properties/xrefproperties.h"
-#include "qetproject.h"
#include "qgimanager.h"
#include
@@ -39,12 +38,11 @@ class DiagramPosition;
class DiagramTextItem;
class Element;
class ElementsLocation;
-class QETProject;
-class Terminal;
class DiagramImageItem;
class DiagramEventInterface;
class DiagramFolioList;
class QETProject;
+struct GuideProperties;
/**
@brief The Diagram class
@@ -67,6 +65,13 @@ class Diagram : public QGraphicsScene
// ATTRIBUTES
public:
+ struct Guide {
+ enum Orientation { Horizontal, Vertical };
+ Orientation orientation;
+ qreal position;
+ QColor color;
+ };
+
/**
@brief The BorderOptions enum
Represents available options when rendering a particular diagram:
@@ -119,6 +124,8 @@ class Diagram : public QGraphicsScene
bool draw_grid_;
bool use_border_;
+ bool draw_guides_;
+ QList m_guides_list;
bool draw_terminals_;
bool draw_colored_conductors_;
@@ -207,6 +214,9 @@ class Diagram : public QGraphicsScene
ExportProperties applyProperties(const ExportProperties &);
void setDisplayGrid(bool);
bool displayGrid();
+ void setDisplayGuides(bool);
+ bool displayGuides();
+ void updateProjectGuides(const QList &guides);
void setUseBorder(bool);
bool useBorder();
void setBorderOptions(BorderOptions);
@@ -341,6 +351,16 @@ inline bool Diagram::displayGrid() {
return(draw_grid_);
}
+inline void Diagram::setDisplayGuides(bool dg) {
+ if (draw_guides_ != dg) {
+ draw_guides_ = dg;
+ update();
+ }
+}
+
+inline bool Diagram::displayGuides() {
+ return(draw_guides_);
+}
/**
@brief Diagram::setUseBorder
Set whether the diagram border (including rows/columns headers and the title
@@ -389,14 +409,6 @@ inline Diagram::BorderOptions Diagram::borderOptions() {
return(options);
}
-/**
- @brief Diagram::undoStack
- @return the diagram undo stack
-*/
-inline QUndoStack &Diagram::undoStack() {
- return *(project()->undoStack());
-}
-
/**
@brief Diagram::qgiManager
@return the diagram graphics item manager
diff --git a/sources/diagramevent/diagrameventaddelement.cpp b/sources/diagramevent/diagrameventaddelement.cpp
index 147a57c36..203a0d953 100644
--- a/sources/diagramevent/diagrameventaddelement.cpp
+++ b/sources/diagramevent/diagrameventaddelement.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "diagrameventaddelement.h"
-
+#include "../qetproject.h"
#include "../conductorautonumerotation.h"
#include "../diagram.h"
#include "../undocommand/addgraphicsobjectcommand.h"
diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp
index 271ac6fb3..405b6387a 100644
--- a/sources/diagramview.cpp
+++ b/sources/diagramview.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "diagramview.h"
-
+#include "qetproject.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "diagramcommands.h"
#include "diagramevent/diagrameventaddelement.h"
diff --git a/sources/elementsmover.cpp b/sources/elementsmover.cpp
index b8f3ff3ca..59233c623 100644
--- a/sources/elementsmover.cpp
+++ b/sources/elementsmover.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "elementsmover.h"
-
+#include "qetproject.h"
#include "conductorautonumerotation.h"
#include "diagram.h"
#include "qetgraphicsitem/conductor.h"
diff --git a/sources/exportproperties.cpp b/sources/exportproperties.cpp
index ee929e0bc..941f894b5 100644
--- a/sources/exportproperties.cpp
+++ b/sources/exportproperties.cpp
@@ -30,6 +30,7 @@ ExportProperties::ExportProperties() :
destination_directory(QETApp::documentDir()),
format("PNG"),
draw_grid(false),
+ draw_guides(false),
draw_border(true),
draw_titleblock(true),
draw_terminals(false),
@@ -61,6 +62,8 @@ void ExportProperties::toSettings(QSettings &settings,
format);
settings.setValue(prefix % "drawgrid",
draw_grid);
+ settings.setValue(prefix % "drawguides",
+ draw_guides);
settings.setValue(prefix % "drawborder",
draw_border);
settings.setValue(prefix % "drawtitleblock",
@@ -94,6 +97,8 @@ void ExportProperties::fromSettings(QSettings &settings,
draw_grid = settings.value(prefix % "drawgrid",
false).toBool();
+ draw_guides = settings.value(prefix % "drawguides",
+ false).toBool();
draw_border = settings.value(prefix % "drawborder",
true ).toBool();
draw_titleblock = settings.value(prefix % "drawtitleblock",
diff --git a/sources/exportproperties.h b/sources/exportproperties.h
index 1245e9e04..f104a9c41 100644
--- a/sources/exportproperties.h
+++ b/sources/exportproperties.h
@@ -43,6 +43,7 @@ class ExportProperties {
QDir destination_directory; ///< Target directory for generated files
QString format; ///< Image format of generated files
bool draw_grid; ///< Whether to render the diagram grid
+ bool draw_guides; ///< Whether to render the diagram guides
bool draw_border; ///< Whether to render the border (along with rows/columns headers)
bool draw_titleblock; ///< Whether to render the title block
bool draw_terminals; ///< Whether to render terminals
diff --git a/sources/factory/qetgraphicstablefactory.cpp b/sources/factory/qetgraphicstablefactory.cpp
index 5ab68220f..6fe99971b 100644
--- a/sources/factory/qetgraphicstablefactory.cpp
+++ b/sources/factory/qetgraphicstablefactory.cpp
@@ -25,7 +25,7 @@
#include "../qetgraphicsitem/ViewItem/qetgraphicstableitem.h"
#include "../utils/qetutils.h"
#include "ui/addtabledialog.h"
-
+#include "../qetproject.h"
#include
QetGraphicsTableFactory::QetGraphicsTableFactory()
diff --git a/sources/print/projectprintwindow.cpp b/sources/print/projectprintwindow.cpp
index b8d7b019a..ebd174ddd 100644
--- a/sources/print/projectprintwindow.cpp
+++ b/sources/print/projectprintwindow.cpp
@@ -522,6 +522,7 @@ ExportProperties ProjectPrintWindow::exportProperties() const
exp.draw_terminals = ui->m_draw_terminal_cb->isChecked();
exp.draw_colored_conductors = ui->m_keep_conductor_color_cb->isChecked();
exp.draw_grid = false;
+ exp.draw_guides = false;
return exp;
}
diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp
index 55fc73319..f8f2a3b1d 100644
--- a/sources/qetdiagrameditor.cpp
+++ b/sources/qetdiagrameditor.cpp
@@ -373,8 +373,9 @@ void QETDiagramEditor::setUpActions()
//Draw or not the background grid
m_draw_grid = new QAction ( QET::Icons::Grid, tr("Afficher la grille"), this);
m_draw_grid->setStatusTip(tr("Affiche ou masque la grille des folios"));
+ QSettings settings;
m_draw_grid->setCheckable(true);
- m_draw_grid->setChecked(true);
+ m_draw_grid->setChecked(settings.value("diagrameditor/grid_display_startup", true).toBool());
connect(m_draw_grid, &QAction::triggered, [this](bool checked) {
foreach (ProjectView *prjv, this->openedProjects())
foreach (Diagram *d, prjv->project()->diagrams()) {
@@ -383,6 +384,18 @@ void QETDiagramEditor::setUpActions()
}
});
+ // Draw or not the custom guides
+ m_draw_guides = new QAction ( QIcon(":/ico/22x22/guides.png"), tr("Afficher les guides"), this);
+ m_draw_guides->setStatusTip(tr("Affiche ou masque les guides"));
+ m_draw_guides->setCheckable(true);
+ m_draw_guides->setChecked(settings.value("diagrameditor/guides_display_startup", false).toBool());
+ connect(m_draw_guides, &QAction::triggered, [this](bool checked) {
+ foreach (ProjectView *prjv, this->openedProjects())
+ foreach (Diagram *d, prjv->project()->diagrams()) {
+ d->setDisplayGuides(checked);
+ }
+ });
+
//Edit current diagram properties
m_edit_diagram_properties = new QAction(QET::Icons::DialogInformation, tr("Propriétés du folio"), this);
m_edit_diagram_properties->setShortcut(Qt::CTRL | Qt::Key_L);
@@ -765,6 +778,7 @@ void QETDiagramEditor::setUpToolBar()
view_tool_bar -> addWidget(new DiagramEditorHandlerSizeWidget(this));
view_tool_bar -> addSeparator();
view_tool_bar -> addAction(m_draw_grid);
+ view_tool_bar -> addAction(m_draw_guides);
view_tool_bar -> addAction (m_grey_background);
view_tool_bar -> addSeparator();
view_tool_bar -> addActions(m_zoom_action_toolBar);
@@ -1577,6 +1591,7 @@ void QETDiagramEditor::slot_updateActions()
m_row_column_actions_group. setEnabled(editable_project);
m_grey_background-> setEnabled(opened_diagram);
m_draw_grid-> setEnabled(opened_diagram);
+ m_draw_guides-> setEnabled(opened_diagram);
//Project menu
m_project_edit_properties -> setEnabled(opened_project);
diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h
index 309e108e5..9daf6a122 100644
--- a/sources/qetdiagrameditor.h
+++ b/sources/qetdiagrameditor.h
@@ -193,6 +193,7 @@ class QETDiagramEditor : public QETMainWindow
*conductor_default, ///< Show a dialog to edit default conductor properties
*m_grey_background, ///< Switch the background color in white or grey
*m_draw_grid, ///< Switch the background grid display or not
+ *m_draw_guides = nullptr, ///< Switch the custom guides display or not
*m_project_edit_properties, ///< Edit the properties of the current project.
*m_project_add_diagram, ///< Add a diagram to the current project.
*m_remove_diagram_from_project, ///< Delete a diagram from the current project
diff --git a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp
index 215c2e3c6..49e57bf68 100644
--- a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp
+++ b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "qetgraphicstableitem.h"
-
+#include "../../qetproject.h"
#include "../../QPropertyUndoCommand/qpropertyundocommand.h"
#include "../../createdxf.h"
#include "../../diagram.h"
diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp
index 73d2e3ac3..291608620 100644
--- a/sources/qetgraphicsitem/conductor.cpp
+++ b/sources/qetgraphicsitem/conductor.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "../qetgraphicsitem/conductor.h"
-
+#include "../qetproject.h"
#include "../QPropertyUndoCommand/qpropertyundocommand.h"
#include "../autoNum/numerotationcontextcommands.h"
#include "../conductorautonumerotation.h"
diff --git a/sources/qetgraphicsitem/crossrefitem.cpp b/sources/qetgraphicsitem/crossrefitem.cpp
index 31443266c..8bc328e16 100644
--- a/sources/qetgraphicsitem/crossrefitem.cpp
+++ b/sources/qetgraphicsitem/crossrefitem.cpp
@@ -18,7 +18,7 @@
#include "crossrefitem.h"
#include
-
+#include "../qetproject.h"
#include "../autoNum/assignvariables.h"
#include "../diagram.h"
#include "../diagramposition.h"
diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
index 64a05d603..de47ca808 100644
--- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp
+++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "dynamicelementtextitem.h"
-
+#include "../qetproject.h"
#include "../QPropertyUndoCommand/qpropertyundocommand.h"
#include "../diagram.h"
#include "../qetapp.h"
diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp
index 408e89e4d..74322b66c 100644
--- a/sources/qetgraphicsitem/element.cpp
+++ b/sources/qetgraphicsitem/element.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "element.h"
-
+#include "../qetproject.h"
#include "../PropertiesEditor/propertieseditordialog.h"
#include "../autoNum/numerotationcontextcommands.h"
#include "../diagram.h"
diff --git a/sources/qetgraphicsitem/elementtextitemgroup.cpp b/sources/qetgraphicsitem/elementtextitemgroup.cpp
index b5260f909..eb4cb72e9 100644
--- a/sources/qetgraphicsitem/elementtextitemgroup.cpp
+++ b/sources/qetgraphicsitem/elementtextitemgroup.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "elementtextitemgroup.h"
-
+#include "../qetproject.h"
#include "../QPropertyUndoCommand/qpropertyundocommand.h"
#include "../diagram.h"
#include "../qetapp.h"
diff --git a/sources/qetgraphicsitem/masterelement.cpp b/sources/qetgraphicsitem/masterelement.cpp
index 64504bb09..5d573ca12 100644
--- a/sources/qetgraphicsitem/masterelement.cpp
+++ b/sources/qetgraphicsitem/masterelement.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "masterelement.h"
-
+#include "../qetproject.h"
#include "../diagram.h"
#include "crossrefitem.h"
#include "dynamicelementtextitem.h"
diff --git a/sources/qetgraphicsitem/terminal.cpp b/sources/qetgraphicsitem/terminal.cpp
index 1f06f3361..49fb53ad4 100644
--- a/sources/qetgraphicsitem/terminal.cpp
+++ b/sources/qetgraphicsitem/terminal.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "../qetgraphicsitem/terminal.h"
-
+#include "../qetproject.h"
#include "../conductorautonumerotation.h"
#include "../diagram.h"
#include "../undocommand/addgraphicsobjectcommand.h"
diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp
index 86d884aad..aabd128de 100644
--- a/sources/qetproject.cpp
+++ b/sources/qetproject.cpp
@@ -56,15 +56,27 @@ void QETProject::setBackupEnabled(bool enabled)
@param parent
*/
QETProject::QETProject(QObject *parent) :
- QObject (parent),
- m_titleblocks_collection(this),
- m_data_base(this, this),
- m_project_properties_handler{this}
+QObject (parent),
+m_titleblocks_collection(this),
+m_data_base(this, this),
+m_project_properties_handler{this}
{
setDefaultTitleBlockProperties(TitleBlockProperties::defaultProperties());
m_elements_collection = new XmlElementCollection(this);
init();
+
+ QSettings settings;
+ int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides"));
+ for (int i = 0; i < size; ++i) {
+ settings.setArrayIndex(i);
+ GuideProperties g;
+ g.orientation = settings.value(QStringLiteral("orientation"), 0).toInt();
+ g.position = settings.value(QStringLiteral("position"), 0.0).toReal();
+ g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString());
+ m_default_guides.append(g);
+ }
+ settings.endArray();
}
ProjectPropertiesHandler &QETProject::projectPropertiesHandler()
@@ -205,6 +217,7 @@ void QETProject::init()
});
m_autosave_timer.start();
}
+
}
/**
@@ -502,6 +515,23 @@ TitleBlockProperties QETProject::defaultTitleBlockProperties() const
return(default_titleblock_properties_);
}
+QList QETProject::defaultGuides() const {
+ return m_default_guides;
+}
+
+void QETProject::setDefaultGuides(const QList &guides) {
+ if (m_default_guides != guides) {
+ m_default_guides = guides;
+ setModified(true);
+
+ for (Diagram *diagram : m_diagrams_list) {
+ if (diagram) {
+ diagram->updateProjectGuides(m_default_guides);
+ }
+ }
+ }
+}
+
/**
@brief QETProject::setDefaultTitleBlockProperties
Specify the title block to be used at the creation of a new diagram for this project
@@ -1589,7 +1619,7 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
m_default_xref_properties = XRefProperties:: defaultProperties();
//Read values indicate in project
- QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums;
+ QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums, guides_elmt;
for (QDomNode child = newdiagrams_elmt.firstChild() ; !child.isNull() ; child = child.nextSibling())
{
@@ -1612,6 +1642,8 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
folio_autonums = child_elmt;
else if (child_elmt.tagName()== QLatin1String("element_autonums"))
element_autonums = child_elmt;
+ else if (child_elmt.tagName() == QLatin1String("guides"))
+ guides_elmt = child_elmt;
}
// size, titleblock, conductor, report, conductor autonum, folio autonum, element autonum
@@ -1659,6 +1691,18 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
m_element_autonum.insert(elmt.attribute(QStringLiteral("title")), nc);
}
}
+ // Read guides from XML (if missing, e.g. in old projects, list stays empty)
+ m_default_guides.clear();
+
+ if (!guides_elmt.isNull()) {
+ for (auto elmt : QET::findInDomElement(guides_elmt, QStringLiteral("guide"))) {
+ GuideProperties g;
+ g.orientation = elmt.attribute(QStringLiteral("orientation"), QStringLiteral("0")).toInt();
+ g.position = elmt.attribute(QStringLiteral("position"), QStringLiteral("0.0")).toDouble();
+ g.color = QColor(elmt.attribute(QStringLiteral("color"), QStringLiteral("#ff0000")));
+ m_default_guides.append(g);
+ }
+ }
}
/**
@@ -1769,6 +1813,17 @@ void QETProject::writeDefaultPropertiesXml(QDomElement &xml_element)
}
}
xml_element.appendChild(element_autonums);
+
+ // Export default guides
+ QDomElement guides_elmt = xml_document.createElement("guides");
+ for (const auto &g : m_default_guides) {
+ QDomElement guide_elmt = xml_document.createElement("guide");
+ guide_elmt.setAttribute("orientation", static_cast(g.orientation));
+ guide_elmt.setAttribute("position", g.position);
+ guide_elmt.setAttribute("color", g.color.name());
+ guides_elmt.appendChild(guide_elmt);
+ }
+ xml_element.appendChild(guides_elmt);
}
/**
diff --git a/sources/qetproject.h b/sources/qetproject.h
index 5f13cf4a8..6e96c1e6a 100644
--- a/sources/qetproject.h
+++ b/sources/qetproject.h
@@ -28,7 +28,7 @@
#include "properties/xrefproperties.h"
#include "titleblock/templatescollection.h"
#include "titleblockproperties.h"
-
+#include "diagram.h"
#ifdef BUILD_WITHOUT_KF5
# include "ui/nokde/kautosavefile.h"
#else
@@ -50,6 +50,23 @@ class QTimer;
class TerminalStrip;
+#include
+
+struct GuideProperties {
+ int orientation; // 0 = Horizontal, 1 = Vertical
+ qreal position;
+ QColor color;
+
+ bool operator==(const GuideProperties &other) const {
+ return orientation == other.orientation &&
+ position == other.position &&
+ color == other.color;
+ }
+ bool operator!=(const GuideProperties &other) const {
+ return !(*this == other);
+ }
+};
+
/**
This class represents a QET project. Typically saved as a .qet file, it
consists in an XML document grouping 0 to n diagrams and embedding an elements
@@ -110,6 +127,9 @@ class QETProject : public QObject
BorderProperties defaultBorderProperties() const;
void setDefaultBorderProperties(const BorderProperties &);
+ QList defaultGuides() const;
+ void setDefaultGuides(const QList &guides);
+
TitleBlockProperties defaultTitleBlockProperties() const;
void setDefaultTitleBlockProperties(const TitleBlockProperties &);
@@ -262,6 +282,8 @@ class QETProject : public QObject
QString read_only_file_path_;
/// Default dimensions and properties for new diagrams created within the project
BorderProperties default_border_properties_ = BorderProperties::defaultProperties();
+ /// Default guides for new diagrams created within the project
+ QList m_default_guides;
/// Default conductor properties for new diagrams created within the project
ConductorProperties default_conductor_properties_ = ConductorProperties::defaultProperties();
/// Default title block properties for new diagrams created within the project
diff --git a/sources/ui/configpage/configpages.cpp b/sources/ui/configpage/configpages.cpp
index 5c1537118..1a01a343e 100644
--- a/sources/ui/configpage/configpages.cpp
+++ b/sources/ui/configpage/configpages.cpp
@@ -30,7 +30,7 @@
#include "../reportpropertiewidget.h"
#include "../titleblockpropertieswidget.h"
#include "../xrefpropertieswidget.h"
-
+#include "guidespropertieswidget.h"
#include
#include
#include
@@ -73,6 +73,33 @@ NewDiagramPage::NewDiagramPage(QETProject *project,
rpw = new ReportPropertieWidget(ReportProperties::defaultProperties());
// default properties of xref
xrefpw = new XRefPropertiesWidget(XRefProperties::defaultProperties(), this);
+ // default guides properties
+ m_gpw = new GuidesPropertiesWidget(this);
+
+ QSettings settings;
+ QList loaded_guides;
+ if (m_project) {
+ for (const auto &pg : m_project->defaultGuides()) {
+ Diagram::Guide g;
+ g.orientation = static_cast(pg.orientation);
+ g.position = pg.position;
+ g.color = pg.color;
+ loaded_guides.append(g);
+ }
+ } else {
+ QSettings settings;
+ int size = settings.beginReadArray(QStringLiteral("diagrameditor/defaultguides"));
+ for (int i = 0; i < size; ++i) {
+ settings.setArrayIndex(i);
+ Diagram::Guide g;
+ g.orientation = static_cast(settings.value(QStringLiteral("orientation"), 0).toInt());
+ g.position = settings.value(QStringLiteral("position"), 0.0).toReal();
+ g.color = QColor(settings.value(QStringLiteral("color"), QStringLiteral("#ff0000")).toString());
+ loaded_guides.append(g);
+ }
+ settings.endArray();
+ }
+ m_gpw->setGuides(loaded_guides);
//If there is a project, we edit his properties
if (m_project) {
@@ -98,6 +125,7 @@ NewDiagramPage::NewDiagramPage(QETProject *project,
tab_widget -> addTab (m_cpw, tr("Conducteur"));
tab_widget -> addTab (rpw, tr("Reports de folio"));
tab_widget -> addTab (xrefpw, tr("Références croisées"));
+ tab_widget -> addTab (m_gpw, tr("Guides"));
QVBoxLayout *vlayout1 = new QVBoxLayout();
vlayout1->addWidget(tab_widget);
@@ -155,6 +183,17 @@ void NewDiagramPage::applyConf()
modified_project = true;
}
+ QList proj_guides;
+ for (const auto &g : m_gpw->guides()) {
+ GuideProperties pg;
+ pg.orientation = static_cast(g.orientation);
+ pg.position = g.position;
+ pg.color = g.color;
+ proj_guides.append(pg);
+ }
+ m_project->setDefaultGuides(proj_guides);
+ modified_project = true;
+
if (modified_project) {
m_project -> setModified(modified_project);
}
@@ -176,13 +215,18 @@ void NewDiagramPage::applyConf()
// default xref properties
QHash hash_xrp = xrefpw -> properties();
- foreach (QString key, hash_xrp.keys()) {
- XRefProperties xrp = hash_xrp[key];
- QString str("diagrameditor/defaultxref");
- xrp.toSettings(settings, str += key);
- }
- }
+ // Global in QSettings speichern
+ QList current_guides = m_gpw->guides();
+ settings.beginWriteArray(QStringLiteral("diagrameditor/defaultguides"));
+ for (int i = 0; i < current_guides.size(); ++i) {
+ settings.setArrayIndex(i);
+ settings.setValue(QStringLiteral("orientation"), static_cast(current_guides[i].orientation));
+ settings.setValue(QStringLiteral("position"), current_guides[i].position);
+ settings.setValue(QStringLiteral("color"), current_guides[i].color.name());
+ }
+ settings.endArray();
+ }
}
/**
diff --git a/sources/ui/configpage/configpages.h b/sources/ui/configpage/configpages.h
index 856616588..0a4740f90 100644
--- a/sources/ui/configpage/configpages.h
+++ b/sources/ui/configpage/configpages.h
@@ -29,6 +29,7 @@ class TitleBlockPropertiesWidget;
class ExportPropertiesWidget;
class ReportPropertieWidget;
class XRefPropertiesWidget;
+class GuidesPropertiesWidget;
class QETProject;
class TitleBlockProperties;
@@ -69,6 +70,7 @@ public slots:
ConductorPropertiesWidget *m_cpw; ///< Widget to edit default conductor properties
ReportPropertieWidget *rpw; ///< Widget to edit default report label
XRefPropertiesWidget *xrefpw; ///< Widget to edit default xref properties
+ GuidesPropertiesWidget *m_gpw; ///< Widget to edit guides
TitleBlockProperties savedTbp; ///< Used to save current TBP and retrieve later
};
diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp
index 9fe0c9b8f..d639e3a6a 100644
--- a/sources/ui/configpage/generalconfigurationpage.cpp
+++ b/sources/ui/configpage/generalconfigurationpage.cpp
@@ -22,7 +22,6 @@
#include "ui_generalconfigurationpage.h"
#include "../../utils/qetsettings.h"
#include "../../qetmessagebox.h"
-
#include
#include
#include
@@ -66,6 +65,8 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
break;
}
#endif
+ ui->grid_startup_cb->setChecked(settings.value("diagrameditor/grid_display_startup", true).toBool());
+ ui->guides_startup_cb->setChecked(settings.value("diagrameditor/guides_display_startup", false).toBool());
ui->DiagramEditor_xGrid_sb->setValue(settings.value("diagrameditor/Xgrid", 10).toInt());
ui->DiagramEditor_yGrid_sb->setValue(settings.value("diagrameditor/Ygrid", 10).toInt());
ui->DiagramEditor_xKeyGrid_sb->setValue(settings.value("diagrameditor/key_Xgrid", 10).toInt());
@@ -240,6 +241,9 @@ void GeneralConfigurationPage::applyConf()
settings.setValue("diagrameditor/highlight-integrated-elements", ui->m_highlight_integrated_elements->isChecked());
settings.setValue("diagrameditor/zoom-out-beyond-of-folio", ui->m_zoom_out_beyond_folio->isChecked());
settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value());
+
+ settings.setValue("diagrameditor/grid_display_startup", ui->grid_startup_cb->isChecked());
+ settings.setValue("diagrameditor/guides_display_startup", ui->guides_startup_cb->isChecked());
//Grid step and key navigation
settings.setValue("diagrameditor/Xgrid", ui->DiagramEditor_xGrid_sb->value());
settings.setValue("diagrameditor/Ygrid", ui->DiagramEditor_yGrid_sb->value());
diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui
index 16146c6d8..297cb6c3d 100644
--- a/sources/ui/configpage/generalconfigurationpage.ui
+++ b/sources/ui/configpage/generalconfigurationpage.ui
@@ -7,7 +7,7 @@
0
0
955
- 556
+ 570
@@ -17,7 +17,7 @@
-
- 2
+ 0
@@ -59,6 +59,27 @@
+ -
+
+
+ Afficher la grille par défaut (appliqué au prochain lancement)
+
+
+
+ -
+
+
+ Afficher les guides par défaut (appliqué au prochain lancement)
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
-
@@ -911,30 +932,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Affichage Grille
-
-
-
-
- Qt::Horizontal
-
-
-
- 555
- 20
-
-
-
-
- -
-
+
-
+
- max:
-
-
-
- -
-
-
- Taille des points de la grille de Diagram-Editor : 1 - 5
+ min:
@@ -954,10 +955,39 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
- -
-
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 555
+ 20
+
+
+
+
+ -
+
+
+
+ 60
+ 0
+
+
+
+ 1
+
+
+ 5
+
+
+
+ -
+
- min:
+ Taille des points de la grille de Diagram-Editor : 1 - 5
@@ -977,13 +1007,6 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
- -
-
-
- Taille des points de la grille de l'éditeur d'éléments : 1 - 5
-
-
-
-
@@ -1007,19 +1030,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
- -
-
-
-
- 60
- 0
-
-
-
- 1
-
-
- 5
+
-
+
+
+ max:
@@ -1030,6 +1044,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
+ -
+
+
+ Taille des points de la grille de l'éditeur d'éléments : 1 - 5
+
+
+
@@ -1110,7 +1131,6 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
- tabWidget
m_use_system_color_cb
m_use_gesture_trackpad
m_zoom_out_beyond_folio
diff --git a/sources/ui/configpage/guidespropertieswidget.cpp b/sources/ui/configpage/guidespropertieswidget.cpp
new file mode 100644
index 000000000..73b3d3e96
--- /dev/null
+++ b/sources/ui/configpage/guidespropertieswidget.cpp
@@ -0,0 +1,113 @@
+#include "guidespropertieswidget.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+GuidesPropertiesWidget::GuidesPropertiesWidget(QWidget *parent)
+: QWidget(parent)
+{
+ setupUi();
+}
+
+GuidesPropertiesWidget::~GuidesPropertiesWidget() {}
+
+void GuidesPropertiesWidget::setupUi() {
+ QVBoxLayout *main_layout = new QVBoxLayout(this);
+
+ m_table = new QTableWidget(0, 3, this);
+ m_table->setHorizontalHeaderLabels({tr("Orientation"), tr("Position"), tr("Couleur")});
+ m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ m_table->setSelectionBehavior(QAbstractItemView::SelectRows);
+
+ m_add_btn = new QPushButton(tr("Ajouter"), this);
+ m_remove_btn = new QPushButton(tr("Supprimer"), this);
+
+ QHBoxLayout *btn_layout = new QHBoxLayout();
+ btn_layout->addWidget(m_add_btn);
+ btn_layout->addWidget(m_remove_btn);
+ btn_layout->addStretch();
+
+ main_layout->addWidget(m_table);
+ main_layout->addLayout(btn_layout);
+
+ connect(m_add_btn, &QPushButton::clicked, this, &GuidesPropertiesWidget::addGuide);
+ connect(m_remove_btn, &QPushButton::clicked, this, &GuidesPropertiesWidget::removeGuide);
+}
+
+QList GuidesPropertiesWidget::guides() const {
+ QList list;
+ for (int row = 0; row < m_table->rowCount(); ++row) {
+ QComboBox *combo = qobject_cast(m_table->cellWidget(row, 0));
+ QDoubleSpinBox *spin = qobject_cast(m_table->cellWidget(row, 1));
+ QPushButton *colorBtn = qobject_cast(m_table->cellWidget(row, 2));
+
+ if (combo && spin && colorBtn) {
+ Diagram::Guide g;
+ g.orientation = (combo->currentIndex() == 0) ? Diagram::Guide::Horizontal : Diagram::Guide::Vertical;
+ g.position = spin->value();
+ g.color = colorBtn->property("color").value();
+ list.append(g);
+ }
+ }
+ return list;
+}
+
+void GuidesPropertiesWidget::setGuides(const QList &guides) {
+ m_table->setRowCount(0);
+ for (const auto &g : guides) {
+ addGuide();
+ int row = m_table->rowCount() - 1;
+
+ QComboBox *combo = qobject_cast(m_table->cellWidget(row, 0));
+ QDoubleSpinBox *spin = qobject_cast(m_table->cellWidget(row, 1));
+ QPushButton *colorBtn = qobject_cast(m_table->cellWidget(row, 2));
+
+ if (combo && spin && colorBtn) {
+ combo->setCurrentIndex(g.orientation == Diagram::Guide::Horizontal ? 0 : 1);
+ spin->setValue(g.position);
+ colorBtn->setProperty("color", g.color);
+ colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(g.color.name()));
+ }
+ }
+}
+
+void GuidesPropertiesWidget::addGuide() {
+ int row = m_table->rowCount();
+ m_table->insertRow(row);
+
+ QComboBox *combo = new QComboBox(this);
+ combo->addItems({tr("Horizontal"), tr("Vertical")});
+ m_table->setCellWidget(row, 0, combo);
+
+ QDoubleSpinBox *spin = new QDoubleSpinBox(this);
+ spin->setRange(-10000.0, 10000.0);
+ spin->setDecimals(2);
+ spin->setValue(100.0);
+ m_table->setCellWidget(row, 1, spin);
+
+ QPushButton *colorBtn = new QPushButton(tr("Couleur"), this);
+ QColor defaultColor = Qt::lightGray;
+ colorBtn->setProperty("color", defaultColor);
+ colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(defaultColor.name()));
+
+ connect(colorBtn, &QPushButton::clicked, [this, colorBtn]() {
+ QColor c = QColorDialog::getColor(colorBtn->property("color").value(), this);
+ if (c.isValid()) {
+ colorBtn->setProperty("color", c);
+ colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(c.name()));
+ }
+ });
+ m_table->setCellWidget(row, 2, colorBtn);
+}
+
+void GuidesPropertiesWidget::removeGuide() {
+ int row = m_table->currentRow();
+ if (row >= 0) {
+ m_table->removeRow(row);
+ }
+}
diff --git a/sources/ui/configpage/guidespropertieswidget.h b/sources/ui/configpage/guidespropertieswidget.h
new file mode 100644
index 000000000..1e4e599ec
--- /dev/null
+++ b/sources/ui/configpage/guidespropertieswidget.h
@@ -0,0 +1,32 @@
+#ifndef GUIDESPROPERTIESWIDGET_H
+#define GUIDESPROPERTIESWIDGET_H
+
+#include
+#include
+#include "../../diagram.h"
+
+class QTableWidget;
+class QPushButton;
+
+class GuidesPropertiesWidget : public QWidget {
+ Q_OBJECT
+public:
+ explicit GuidesPropertiesWidget(QWidget *parent = nullptr);
+ ~GuidesPropertiesWidget() override;
+
+ QList guides() const;
+ void setGuides(const QList &guides);
+
+private slots:
+ void addGuide();
+ void removeGuide();
+
+private:
+ void setupUi();
+
+ QTableWidget *m_table;
+ QPushButton *m_add_btn;
+ QPushButton *m_remove_btn;
+};
+
+#endif // GUIDESPROPERTIESWIDGET_H
diff --git a/sources/ui/linksingleelementwidget.cpp b/sources/ui/linksingleelementwidget.cpp
index 7fdf68f8d..852e4ac7c 100644
--- a/sources/ui/linksingleelementwidget.cpp
+++ b/sources/ui/linksingleelementwidget.cpp
@@ -24,7 +24,7 @@
#include "../elementprovider.h"
#include "../undocommand/linkelementcommand.h"
#include "../qetinformation.h"
-
+#include "../qetproject.h"
#include "../ui_linksingleelementwidget.h"
#include
diff --git a/sources/ui/masterpropertieswidget.cpp b/sources/ui/masterpropertieswidget.cpp
index b3bd91905..0cb2548eb 100644
--- a/sources/ui/masterpropertieswidget.cpp
+++ b/sources/ui/masterpropertieswidget.cpp
@@ -16,7 +16,7 @@
* along with QElectroTech. If not, see .
*/
#include "masterpropertieswidget.h"
-
+#include "../qetproject.h"
#include "../diagram.h"
#include "../diagramposition.h"
#include "../elementprovider.h"
diff --git a/sources/ui/multipastedialog.cpp b/sources/ui/multipastedialog.cpp
index e41c0c9be..953b5bccd 100644
--- a/sources/ui/multipastedialog.cpp
+++ b/sources/ui/multipastedialog.cpp
@@ -17,7 +17,7 @@
*/
#include "multipastedialog.h"
-
+#include "../qetproject.h"
#include "../conductorautonumerotation.h"
#include "../diagram.h"
#include "../diagramcommands.h"
diff --git a/sources/undocommand/changeelementinformationcommand.cpp b/sources/undocommand/changeelementinformationcommand.cpp
index 6d3ad3b6d..d06566e0a 100644
--- a/sources/undocommand/changeelementinformationcommand.cpp
+++ b/sources/undocommand/changeelementinformationcommand.cpp
@@ -16,7 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "changeelementinformationcommand.h"
-
+#include "../qetproject.h"
#include "../diagram.h"
#include "../qetgraphicsitem/element.h"