[TD]make page grid unit aware
This commit is contained in:
committed by
WandererFan
parent
6bec7f2e39
commit
0149b99b6f
@@ -494,7 +494,7 @@ for ProjectionGroups</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,0,2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
@@ -794,24 +794,29 @@ for ProjectionGroups</string>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="1,0,1">
|
||||
<item row="1" column="2">
|
||||
<widget class="Gui::PrefSpinBox" name="psb_GridSpacing">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10</number>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>gridSpacing</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>/Mod/TechDraw/General</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="Gui::PrefCheckBox" name="cb_ShowGrid">
|
||||
<property name="font">
|
||||
<font>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Set ShowGrid property to true on new Pages.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Grid</string>
|
||||
</property>
|
||||
@@ -838,18 +843,24 @@ for ProjectionGroups</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<item row="1" column="2">
|
||||
<widget class="Gui::PrefUnitSpinBox" name="psb_GridSpacing">
|
||||
<property name="toolTip">
|
||||
<string>Distance between Page grid lines.</string>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</spacer>
|
||||
<property name="value">
|
||||
<double>10.000000000000000</double>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>gridSpacing</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>psb_GridSpacing</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
@@ -890,11 +901,6 @@ for ProjectionGroups</string>
|
||||
<extends>Gui::FileChooser</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefSpinBox</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefCheckBox</class>
|
||||
<extends>QCheckBox</extends>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -227,12 +227,12 @@ QColor PreferencesGui::gridQColor()
|
||||
return PreferencesGui::gridColor().asValue<QColor>();
|
||||
}
|
||||
|
||||
int PreferencesGui::gridSpacing()
|
||||
double PreferencesGui::gridSpacing()
|
||||
{
|
||||
Base::Reference<ParameterGrp> 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<ParameterGrp> 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;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ static QString weldingDirectory();
|
||||
static bool showGrid();
|
||||
static App::Color gridColor();
|
||||
static QColor gridQColor();
|
||||
static int gridSpacing();
|
||||
static double gridSpacing();
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();}
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
|
||||
#include <boost_signals2.hpp>
|
||||
|
||||
#include <App/PropertyUnits.h>
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user