diff --git a/sources/diagram.cpp b/sources/diagram.cpp index f8537f21b..1ebd2ce9e 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -38,8 +38,10 @@ #include "undocommand/addelementtextcommand.h" #include "QPropertyUndoCommand/qpropertyundocommand.h" -const int Diagram::xGrid = 10; -const int Diagram::yGrid = 10; +int Diagram::xGrid = 10; +int Diagram::yGrid = 10; +int Diagram::xKeyGrid = 10; +int Diagram::yKeyGrid = 10; const qreal Diagram::margin = 5.0; // static variable to keep track of present background color of the diagram. @@ -150,6 +152,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) { //If user allow zoom out beyond of folio, we draw grid outside of border. QSettings settings; + int xGrid = settings.value("DiagramEditor_xGrid_sb", Diagram::xGrid).toInt(); + int yGrid = settings.value("DiagramEditor_yGrid_sb", Diagram::yGrid).toInt(); QRectF rect = settings.value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() ? r : border_and_titleblock.insideBorderRect().intersected(r); @@ -278,6 +282,10 @@ void Diagram::wheelEvent(QGraphicsSceneWheelEvent *event) */ void Diagram::keyPressEvent(QKeyEvent *event) { + QSettings settings; + int xKeyGrid = settings.value("DiagramEditor_xKeyGrid_sb", Diagram::xKeyGrid).toInt(); + int yKeyGrid = settings.value("DiagramEditor_yKeyGrid_sb", Diagram::yKeyGrid).toInt(); + event->setAccepted(false); if (m_event_interface) { @@ -295,7 +303,7 @@ void Diagram::keyPressEvent(QKeyEvent *event) DiagramContent dc(this); if (!dc.items(DiagramContent::All).isEmpty()) { - //Move item with the keyborb arrow + //Move item with the keyboard arrow if(event->modifiers() == Qt::NoModifier) { switch(event->key()) @@ -307,10 +315,10 @@ void Diagram::keyPressEvent(QKeyEvent *event) if(left_position <= 5) return; } - movement = QPointF(-xGrid, 0.0); + movement = QPointF(-xKeyGrid, 0.0); break; case Qt::Key_Right: - movement = QPointF(+xGrid, 0.0); + movement = QPointF(+xKeyGrid, 0.0); break; case Qt::Key_Up: for(Element *item : dc.m_elements) @@ -319,10 +327,10 @@ void Diagram::keyPressEvent(QKeyEvent *event) if(top_position <= 5) return; } - movement = QPointF(0.0, -yGrid); + movement = QPointF(0.0, -yKeyGrid); break; case Qt::Key_Down: - movement = QPointF(0.0, +yGrid); + movement = QPointF(0.0, +yKeyGrid); break; } diff --git a/sources/diagram.h b/sources/diagram.h index 4bb305cd0..ab113fc99 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -73,12 +73,17 @@ class Diagram : public QGraphicsScene /// Diagram dimensions and title block BorderTitleBlock border_and_titleblock; /// abscissa grid step size - static const int xGrid; + static int xGrid; /// ordinate grid step size - static const int yGrid; + static int yGrid; + /// Key grid x step size + static int xKeyGrid; + /// Key grid y step size + static int yKeyGrid; /// margin around the diagram static const qreal margin; /// background color of diagram + static QColor background_color; /// Hash containing max values for folio sequential autonums in this diagram QHash m_elmt_unitfolio_max; diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp index b14bf5efd..1209a7227 100644 --- a/sources/ui/configpage/generalconfigurationpage.cpp +++ b/sources/ui/configpage/generalconfigurationpage.cpp @@ -35,6 +35,10 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : QSettings settings; + ui->DiagramEditor_xGrid_sb->setValue(settings.value("DiagramEditor_xGrid_sb", 10).toInt()); + ui->DiagramEditor_yGrid_sb->setValue(settings.value("DiagramEditor_yGrid_sb", 10).toInt()); + ui->DiagramEditor_xKeyGrid_sb->setValue(settings.value("DiagramEditor_xKeyGrid_sb", 10).toInt()); + ui->DiagramEditor_yKeyGrid_sb->setValue(settings.value("DiagramEditor_yKeyGrid_sb", 10).toInt()); ui->m_use_system_color_cb->setChecked(settings.value("usesystemcolors", "true").toBool()); bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed"; if(tabbed) @@ -137,6 +141,10 @@ void GeneralConfigurationPage::applyConf() settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value()); settings.setValue("dynamic_rotation", ui->m_rotation->value()); settings.setValue("dynamic_with", ui->m_text_width_sb->value()); + settings.setValue("DiagramEditor_xGrid_sb", ui->DiagramEditor_xGrid_sb->value()); + settings.setValue("DiagramEditor_yGrid_sb", ui->DiagramEditor_yGrid_sb->value()); + settings.setValue("DiagramEditor_xKeyGrid_sb", ui->DiagramEditor_xKeyGrid_sb->value()); + settings.setValue("DiagramEditor_yKeyGrid_sb", ui->DiagramEditor_yKeyGrid_sb->value()); QString path = settings.value("elements-collections/common-collection-path").toString(); if (ui->m_common_elmt_path_cb->currentIndex() == 1) diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui index 27112f7f0..a4021cf7c 100644 --- a/sources/ui/configpage/generalconfigurationpage.ui +++ b/sources/ui/configpage/generalconfigurationpage.ui @@ -6,8 +6,8 @@ 0 0 - 1958 - 1438 + 998 + 518 @@ -41,7 +41,7 @@ - 2 + 5 @@ -464,6 +464,148 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments + + + Grille + + + + + 20 + 10 + 191 + 30 + + + + DiagramEditor xGrid + + + + + + 20 + 50 + 191 + 30 + + + + DiagramEditor yGrid + + + + + + 350 + 10 + 55 + 30 + + + + 1 + + + 30 + + + 1 + + + 10 + + + + + + 350 + 50 + 55 + 30 + + + + 1 + + + 30 + + + 10 + + + + + + 20 + 180 + 321 + 30 + + + + DiagramEditor Key Left/Right xGrid + + + + + + 350 + 180 + 55 + 30 + + + + 1 + + + 30 + + + 1 + + + 10 + + + + + + 20 + 220 + 321 + 30 + + + + DiagramEditor Key Up/Down yGrid + + + + + + 350 + 220 + 55 + 30 + + + + 1 + + + 30 + + + 1 + + + 10 + + +