diff --git a/sources/diagram.cpp b/sources/diagram.cpp index .. 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -42,6 +42,8 @@ int Diagram::yGrid = 10; int Diagram::xKeyGrid = 10; int Diagram::yKeyGrid = 10; +int Diagram::xKeyGridFine = 1; +int Diagram::yKeyGridFine = 1; const qreal Diagram::margin = 5.0; // static variable to keep track of present background color of the diagram. @@ -285,7 +287,8 @@ QSettings settings; int xKeyGrid = settings.value("DiagramEditor_xKeyGrid_sb", Diagram::xKeyGrid).toInt(); int yKeyGrid = settings.value("DiagramEditor_yKeyGrid_sb", Diagram::yKeyGrid).toInt(); - + int xKeyGridFine = settings.value("DiagramEditor_xKeyGridFine_sb", Diagram::xKeyGridFine).toInt(); + int yKeyGridFine = settings.value("DiagramEditor_yKeyGridFine_sb", Diagram::yKeyGridFine).toInt(); event->setAccepted(false); if (m_event_interface) { @@ -342,7 +345,46 @@ return; } } - else if(event->modifiers() == Qt::ControlModifier) + else if(event->modifiers() == Qt::AltModifier) + + { + switch(event->key()) + { + case Qt::Key_Left: + for (Element *item : dc.m_elements) + { + left_position = item->sceneBoundingRect().x(); + if(left_position <= 5) + return; + } + movement = QPointF(-xKeyGridFine, 0.0); + break; + case Qt::Key_Right: + movement = QPointF(+xKeyGridFine, 0.0); + break; + case Qt::Key_Up: + for(Element *item : dc.m_elements) + { + top_position = item->sceneBoundingRect().y(); + if(top_position <= 5) + return; + } + movement = QPointF(0.0, -yKeyGridFine); + break; + case Qt::Key_Down: + movement = QPointF(0.0, +yKeyGridFine); + break; + } + + if (!movement.isNull() && !focusItem()) + { + m_elements_mover.beginMovement(this); + m_elements_mover.continueMovement(movement); + event->accept(); + return; + } + } + else if(event->modifiers() == Qt::ControlModifier) { //Adjust the alignment of a texts group if(selectedItems().size() == 1 && selectedItems().first()->type() == QGraphicsItemGroup::Type) diff --git a/sources/diagram.h b/sources/diagram.h index .. 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -80,6 +80,10 @@ static int xKeyGrid; /// Key grid y step size static int yKeyGrid; + /// Key grid fine x step size + static int xKeyGridFine; + /// Key grid fine y step size + static int yKeyGridFine; /// margin around the diagram static const qreal margin; /// background color of diagram diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp index .. 100644 --- a/sources/ui/configpage/generalconfigurationpage.cpp +++ b/sources/ui/configpage/generalconfigurationpage.cpp @@ -39,7 +39,9 @@ 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()); + ui->DiagramEditor_xKeyGridFine_sb->setValue(settings.value("DiagramEditor_xKeyGridFine_sb", 1).toInt()); + ui->DiagramEditor_yKeyGridFine_sb->setValue(settings.value("DiagramEditor_yKeyGridFine_sb", 1).toInt()); + ui->m_use_system_color_cb->setChecked(settings.value("usesystemcolors", "true").toBool()); bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed"; if(tabbed) ui->m_use_tab_mode_rb->setChecked(true); @@ -145,7 +147,9 @@ 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()); - + settings.setValue("DiagramEditor_xKeyGridFine_sb", ui->DiagramEditor_xKeyGridFine_sb->value()); + settings.setValue("DiagramEditor_yKeyGridFine_sb", ui->DiagramEditor_yKeyGridFine_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 .. 100644 --- a/sources/ui/configpage/generalconfigurationpage.ui +++ b/sources/ui/configpage/generalconfigurationpage.ui @@ -464,15 +464,15 @@ - + - Grille + Grille + Clavier - 20 - 10 + 90 + 50 191 30 @@ -484,8 +484,8 @@ - 20 - 50 + 90 + 90 191 30 @@ -497,8 +497,8 @@ - 350 - 10 + 540 + 50 55 30 @@ -519,8 +519,8 @@ - 350 - 50 + 540 + 90 55 30 @@ -538,21 +538,21 @@ - 20 - 180 - 321 + 90 + 280 + 431 30 - DiagramEditor Key Left/Right xGrid + DiagramEditor touche gauche / droite xGrid - 350 - 180 + 540 + 280 55 30 @@ -573,21 +573,21 @@ - 20 - 220 - 321 + 90 + 320 + 431 30 - DiagramEditor Key Up/Down yGrid + DiagramEditor touche en haute / en bas yGrid - 350 - 220 + 540 + 320 55 30 @@ -605,6 +605,128 @@ 10 + + + + 20 + 20 + 121 + 30 + + + + Grille : 1 - 30 + + + + + + 20 + 240 + 281 + 30 + + + + Déplacement au clavier : 1 - 30 + + + + + + 20 + 360 + 421 + 30 + + + + Déplacement au clavier avec ALT touche : 1 - 10 + + + + + + 90 + 400 + 431 + 30 + + + + DiagramEditor touche gauche / droite xGrid + + + + + + 90 + 440 + 431 + 30 + + + + DiagramEditor touche en haute / en bas yGrid + + + + + + 540 + 400 + 55 + 30 + + + + 1 + + + 10 + + + 1 + + + 1 + + + + + + 540 + 440 + 55 + 30 + + + + 1 + + + 10 + + + 1 + + + 1 + + + + + + 20 + 130 + 481 + 30 + + + + Appuyez sur la grille d'icônes pour les modifications. + +