From e86c0e0152d60616dc152b98241d33da35f8cb9e Mon Sep 17 00:00:00 2001 From: Denis Khachko Date: Tue, 6 Sep 2016 18:23:49 +0300 Subject: [PATCH] Draw net fix . --- src/actors/draw/drawmodule.cpp | 41 ++++++++++++++++-------- src/shared/widgets/draw_turtle_field.cpp | 4 +-- src/shared/widgets/draw_turtle_field.h | 10 ++++-- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/src/actors/draw/drawmodule.cpp b/src/actors/draw/drawmodule.cpp index ed408d69..d1d09cb0 100644 --- a/src/actors/draw/drawmodule.cpp +++ b/src/actors/draw/drawmodule.cpp @@ -689,14 +689,17 @@ void DrawView::resizeEvent ( QResizeEvent * event ) } if(pixel_per_cell<15) { - stepX=DRAW->NetStepX()*2; - stepY=DRAW->NetStepX()*2; - //if(stepX>5)stepX=(int)(stepX-0.5); - //if(stepY>5)stepY=(int)(stepY-0.5); + while(pixel_per_cell<15){ + pixel_per_cell=stepX/(1/c_scale); + + stepX=stepX*1.5; + stepY=stepY*1.5; + } + DRAW->setNetStepX(stepX); DRAW->setNetStepY(stepY); DRAW->drawNet(); - //DRAW->scalePen(1.2); + } DRAW->setNetStepX(stepX); @@ -708,7 +711,7 @@ void DrawView::resizeEvent ( QResizeEvent * event ) else { double pixel_per_cell=DRAW->NetStepX()/(1/c_scale); - if(!net)pixel_per_cell=lastStep/(1/c_scale); + //if(!net)pixel_per_cell=lastStep/(1/c_scale); if(pixel_per_cell<15) //Net step too short { net=false; @@ -720,8 +723,8 @@ void DrawView::resizeEvent ( QResizeEvent * event ) { net=true; smallNetLabel->hide(); - DRAW->setNetStepX(lastStep); - DRAW->setNetStepY(lastStep); + // DRAW->setNetStepX(lastStep); + // DRAW->setNetStepY(lastStep); } if(pixel_per_cell>this->width()*2) { @@ -1128,15 +1131,19 @@ void DrawModule::drawNet() CurView->setZoom(50); - CurView->setNet(); + mPen->setScale(0.05); - setNetStepX(1); - setNetStepY(1); - CurView->centerOn(3,-3); + if(isAutoNet()) + { + setNetStepX(1); + setNetStepY(1); + + navigator->updateSelf(1,1); + } CurView->setNet(); drawNet(); - navigator->updateSelf(1,1); + }; void DrawModule::zoomFullDraw() @@ -1241,9 +1248,15 @@ void DrawModule::drawNet() void DrawModule::netStepChange(double value) { double oldValue=NetStepY(); + setNetStepY(value); setNetStepX(value); - if(oldValue!=value && value>navigator->netStepYS->minimum() )drawNet(); + + if(oldValue!=value && value!=0) + { + getCurView()->setNet(); + drawNet(); + } } void DrawModule::redraw() { diff --git a/src/shared/widgets/draw_turtle_field.cpp b/src/shared/widgets/draw_turtle_field.cpp index 93af9103..8946b3a2 100644 --- a/src/shared/widgets/draw_turtle_field.cpp +++ b/src/shared/widgets/draw_turtle_field.cpp @@ -77,12 +77,12 @@ DrawNavigator::DrawNavigator( QWidget * parent ){ void DrawNavigator::XvalueChange(double value) { - emit netStepChange(value); + netStepYS->setSingleStep(value/10); netStepXS->setSingleStep(Zoom/500); qDebug()<<"Zoom"<singleStep(); netStepYS->setValue(value); - + emit netStepChange(value); } void DrawNavigator::YvalueChange(double value) diff --git a/src/shared/widgets/draw_turtle_field.h b/src/shared/widgets/draw_turtle_field.h index e953de00..aa5149b6 100644 --- a/src/shared/widgets/draw_turtle_field.h +++ b/src/shared/widgets/draw_turtle_field.h @@ -40,8 +40,8 @@ public: } void updateSelf(double netStepX,double netStepY) { - if(50/Zoom>=1)zoomText->setPlainText("1:"+QString::number(50/Zoom)); - else zoomText->setPlainText(QString::number(Zoom/50)+":1"); + if(50/Zoom>=1)zoomText->setPlainText("1:"+QString::number(50/Zoom,'f',2)); + else zoomText->setPlainText(QString::number(Zoom/50,'f',2)+":1"); qDebug()<<"Zoom"<NetStepX()/(1/c_scale); if(isAutonet->isChecked()){ @@ -55,6 +55,12 @@ public: netStepXS->setSingleStep(Zoom/500); + }else + { + netStepXS->setMaximum(99999); + netStepXS->setMinimum(0.00001); + // netStepXS->setValue(netStepX); + // netStepYS->setValue(netStepY); } update(); } -- GitLab