mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-21 00:30:53 +01:00
element editor, improve the granularity of the grid and adjust the snap to grid according to the displayed dot in grid.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3453 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -139,8 +139,8 @@ void ElementView::zoomReset() {
|
|||||||
*/
|
*/
|
||||||
void ElementView::adjustSceneRect() {
|
void ElementView::adjustSceneRect() {
|
||||||
QRectF esgr = scene_ -> elementSceneGeometricRect();
|
QRectF esgr = scene_ -> elementSceneGeometricRect();
|
||||||
QRectF vpbr = mapToScene(this -> viewport() -> rect()).boundingRect();
|
QRectF vpbr = mapToScene(this -> viewport()->rect()).boundingRect();
|
||||||
QRectF new_scene_rect = vpbr.adjusted(-vpbr.height()/4, -vpbr.width()/4, vpbr.height()/4, vpbr.width()/4);
|
QRectF new_scene_rect = vpbr.adjusted(-vpbr.width()/4, -vpbr.height()/4, vpbr.width()/4, vpbr.height()/4);
|
||||||
setSceneRect(new_scene_rect.united(esgr));
|
setSceneRect(new_scene_rect.united(esgr));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -425,29 +425,32 @@ void ElementView::drawBackground(QPainter *p, const QRectF &r) {
|
|||||||
qreal zoom_factor = matrix().m11();
|
qreal zoom_factor = matrix().m11();
|
||||||
|
|
||||||
// choisit la granularite de la grille en fonction du zoom en cours
|
// choisit la granularite de la grille en fonction du zoom en cours
|
||||||
int drawn_x_grid = scene_ -> xGrid();
|
int drawn_x_grid = 1;//scene_ -> xGrid();
|
||||||
int drawn_y_grid = scene_ -> yGrid();
|
int drawn_y_grid = 1;//scene_ -> yGrid();
|
||||||
bool draw_grid = true;
|
bool draw_grid = true;
|
||||||
bool draw_cross = false;
|
bool draw_cross = false;
|
||||||
if (zoom_factor < (4.0/3.0)) {
|
|
||||||
// pas de grille du tout
|
if (zoom_factor < (4.0/3.0)) { //< no grid
|
||||||
draw_grid = false;
|
draw_grid = false;
|
||||||
} else if (zoom_factor < 4.0) {
|
} else if (zoom_factor < 4.0) { //< grid 10*10
|
||||||
// grille a 10 px
|
|
||||||
drawn_x_grid *= 10;
|
drawn_x_grid *= 10;
|
||||||
drawn_y_grid *= 10;
|
drawn_y_grid *= 10;
|
||||||
} else if (zoom_factor < 6.0) {
|
}else if (zoom_factor < 8.0) { //< grid 5*5
|
||||||
// grille a 2 px (avec croix)
|
drawn_x_grid *= 5;
|
||||||
|
drawn_y_grid *= 5;
|
||||||
|
draw_cross = true;
|
||||||
|
} else if (zoom_factor < 10.0) { //< grid 2*2
|
||||||
drawn_x_grid *= 2;
|
drawn_x_grid *= 2;
|
||||||
drawn_y_grid *= 2;
|
drawn_y_grid *= 2;
|
||||||
draw_cross = true;
|
draw_cross = true;
|
||||||
} else {
|
} else { //< grid 1*1
|
||||||
// grille a 1 px (avec croix)
|
|
||||||
draw_cross = true;
|
draw_cross = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scene_->setGrid(drawn_x_grid, drawn_y_grid);
|
||||||
|
|
||||||
if (draw_grid) {
|
if (draw_grid) {
|
||||||
// dessine les points de la grille
|
// draw the dot of the grid
|
||||||
p -> setPen(Qt::black);
|
p -> setPen(Qt::black);
|
||||||
p -> setBrush(Qt::NoBrush);
|
p -> setBrush(Qt::NoBrush);
|
||||||
qreal limite_x = r.x() + r.width();
|
qreal limite_x = r.x() + r.width();
|
||||||
|
|||||||
Reference in New Issue
Block a user