diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui index 6461b3553e..6375d036c5 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui @@ -494,7 +494,7 @@ for ProjectionGroups - + @@ -794,24 +794,29 @@ for ProjectionGroups - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + Qt::Horizontal - - 10 + + + 40 + 20 + - - gridSpacing - - - /Mod/TechDraw/General - - + + + + true + + + + Set ShowGrid property to true on new Pages. + Show Grid @@ -838,18 +843,24 @@ for ProjectionGroups - - - - Qt::Horizontal + + + + Distance between Page grid lines. - - - 40 - 20 - + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + 10.000000000000000 + + + gridSpacing + + + psb_GridSpacing + + @@ -890,11 +901,6 @@ for ProjectionGroups Gui::FileChooser
Gui/PrefWidgets.h
- - Gui::PrefSpinBox - QSpinBox -
Gui/PrefWidgets.h
-
Gui::PrefCheckBox QCheckBox diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp index ccb7068a69..4d3f5ba4ed 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp @@ -44,6 +44,9 @@ DlgPrefsTechDrawGeneralImp::DlgPrefsTechDrawGeneralImp( QWidget* parent ) ui->setupUi(this); ui->plsb_LabelSize->setUnit(Base::Unit::Length); ui->plsb_LabelSize->setMinimum(0); + + ui->psb_GridSpacing->setUnit(Base::Unit::Length); + ui->psb_GridSpacing->setMinimum(0); } DlgPrefsTechDrawGeneralImp::~DlgPrefsTechDrawGeneralImp() @@ -108,7 +111,13 @@ void DlgPrefsTechDrawGeneralImp::loadSettings() ui->pfc_Welding->onRestore(); ui->pfc_FilePattern->onRestore(); ui->le_NamePattern->onRestore(); + + bool gridDefault = PreferencesGui::showGrid(); + ui->cb_ShowGrid->setChecked(gridDefault); ui->cb_ShowGrid->onRestore(); + + double spacingDefault = PreferencesGui::gridSpacing(); + ui->psb_GridSpacing->setValue(spacingDefault); ui->psb_GridSpacing->onRestore(); } diff --git a/src/Mod/TechDraw/Gui/PreferencesGui.cpp b/src/Mod/TechDraw/Gui/PreferencesGui.cpp index a5e4f34526..c4821035d2 100644 --- a/src/Mod/TechDraw/Gui/PreferencesGui.cpp +++ b/src/Mod/TechDraw/Gui/PreferencesGui.cpp @@ -227,12 +227,12 @@ QColor PreferencesGui::gridQColor() return PreferencesGui::gridColor().asValue(); } -int PreferencesGui::gridSpacing() +double PreferencesGui::gridSpacing() { Base::Reference hGrp = App::GetApplication().GetUserParameter(). GetGroup("BaseApp")->GetGroup("Preferences")-> GetGroup("Mod/TechDraw/General"); - int spacing = hGrp->GetInt("gridSpacing", 10); + double spacing = hGrp->GetFloat("gridSpacing", 10.0); return spacing; } @@ -241,6 +241,6 @@ bool PreferencesGui::showGrid() Base::Reference hGrp = App::GetApplication().GetUserParameter(). GetGroup("BaseApp")->GetGroup("Preferences")-> GetGroup("Mod/TechDraw/General"); - bool show = hGrp->GetInt("showGrid", true); + bool show = hGrp->GetBool("showGrid", true); return show; } diff --git a/src/Mod/TechDraw/Gui/PreferencesGui.h b/src/Mod/TechDraw/Gui/PreferencesGui.h index b0197eb700..b392998252 100644 --- a/src/Mod/TechDraw/Gui/PreferencesGui.h +++ b/src/Mod/TechDraw/Gui/PreferencesGui.h @@ -66,7 +66,7 @@ static QString weldingDirectory(); static bool showGrid(); static App::Color gridColor(); static QColor gridQColor(); -static int gridSpacing(); +static double gridSpacing(); }; diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index b0fb37b54d..012ad6cdbf 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -1320,31 +1320,31 @@ void QGVPage::drawForeground(QPainter *painter, const QRectF &rect) } } -void QGVPage::makeGrid(int gridWidth, int gridHeight, int gridStep) +void QGVPage::makeGrid(int gridWidth, int gridHeight, double gridStep) { QPainterPath grid; - int width = Rez::guiX(gridWidth); - int height = Rez::guiX(gridHeight); - int step = Rez::guiX(gridStep); - int horizStart = 0; - int vPos = 0; + double width = Rez::guiX(gridWidth); + double height = Rez::guiX(gridHeight); + double step = Rez::guiX(gridStep); + double horizStart = 0.0; + double vPos = 0; int rows = (height / step) + 1; //draw horizontal lines for (int i = 0; i < rows; i++) { vPos = i * step; - QPoint start (horizStart, -vPos); - QPoint end (width, -vPos); + QPointF start (horizStart, -vPos); + QPointF end (width, -vPos); grid.moveTo(start); grid.lineTo(end); } //draw vertical lines - int vertStart = 0; + double vertStart = 0.0; + double hPos = 0.0; int cols = (width / step) + 1; - int hPos = 0; for (int i = 0; i < cols; i++) { hPos = i * step; - QPoint start(hPos, -vertStart); - QPoint end(hPos, -height); + QPointF start(hPos, -vertStart); + QPointF end(hPos, -height); grid.moveTo(start); grid.lineTo(end); } diff --git a/src/Mod/TechDraw/Gui/QGVPage.h b/src/Mod/TechDraw/Gui/QGVPage.h index ed39dccb12..1a1e661d3c 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.h +++ b/src/Mod/TechDraw/Gui/QGVPage.h @@ -129,7 +129,7 @@ public: void saveSvg(QString filename); void postProcessXml(QTemporaryFile& tempFile, QString filename, QString pagename); - void makeGrid(int width, int height, int step); + void makeGrid(int width, int height, double step); void showGrid(bool state) {m_showGrid = state;} void updateViewport(void) {viewport()->repaint();} diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.h b/src/Mod/TechDraw/Gui/ViewProviderPage.h index fc7cb56918..5088393ca0 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.h +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.h @@ -32,6 +32,8 @@ #include +#include + namespace TechDraw{ class DrawPage; } @@ -53,7 +55,7 @@ public: App::PropertyBool ShowFrames; App::PropertyBool ShowGrid; - App::PropertyInteger GridSpacing; + App::PropertyDistance GridSpacing; virtual void attach(App::DocumentObject *) override; virtual void setDisplayMode(const char* ModeName) override;