[TD]refix Dim select area problem
This commit is contained in:
@@ -1055,12 +1055,7 @@ void MDIViewPage::selectQGIView(App::DocumentObject *obj, const bool isSelected)
|
||||
|
||||
blockSelection(true);
|
||||
if(view) {
|
||||
bool state = view->isSelected();
|
||||
if (!isSelected) {
|
||||
view->setGroupSelection(false);
|
||||
} else if (state != isSelected) {
|
||||
view->setSelected(isSelected);
|
||||
}
|
||||
view->setGroupSelection(isSelected);
|
||||
view->updateView();
|
||||
}
|
||||
blockSelection(false);
|
||||
|
||||
@@ -57,7 +57,6 @@ QGCustomText::QGCustomText(QGraphicsItem* parent) :
|
||||
setFlag(QGraphicsItem::ItemIsSelectable, false);
|
||||
setFlag(QGraphicsItem::ItemIsMovable, false);
|
||||
|
||||
isHighlighted = false;
|
||||
m_colCurrent = getNormalColor();
|
||||
m_colNormal = m_colCurrent;
|
||||
}
|
||||
@@ -144,7 +143,7 @@ void QGCustomText::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||
|
||||
void QGCustomText::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
||||
{
|
||||
if(!isSelected() && !isHighlighted) {
|
||||
if(!isSelected()) {
|
||||
setPrettyNormal();
|
||||
}
|
||||
QGraphicsTextItem::hoverLeaveEvent(event);
|
||||
@@ -187,6 +186,7 @@ void QGCustomText::paint ( QPainter * painter, const QStyleOptionGraphicsItem *
|
||||
|
||||
QColor QGCustomText::getNormalColor() //preference!
|
||||
{
|
||||
// Base::Console().Message("QGCT::getNormalColor() - pref\n");
|
||||
QColor result;
|
||||
Base::Reference<ParameterGrp> hGrp = getParmGroup();
|
||||
App::Color fcColor;
|
||||
|
||||
@@ -159,6 +159,7 @@ bool QGIView::isVisible(void)
|
||||
}
|
||||
|
||||
//Set selection state for this and it's children
|
||||
//required for items like dimensions & balloons
|
||||
void QGIView::setGroupSelection(bool b)
|
||||
{
|
||||
setSelected(b);
|
||||
@@ -268,6 +269,7 @@ void QGIView::mouseReleaseEvent(QGraphicsSceneMouseEvent * event)
|
||||
|
||||
void QGIView::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||
{
|
||||
// Base::Console().Message("QGIV::hoverEnterEvent()\n");
|
||||
Q_UNUSED(event);
|
||||
// TODO don't like this but only solution at the minute (MLP)
|
||||
if (isSelected()) {
|
||||
|
||||
@@ -69,6 +69,10 @@
|
||||
#include "ViewProviderDimension.h"
|
||||
#include "DrawGuiUtil.h"
|
||||
|
||||
#define NORMAL 0
|
||||
#define PRE 1
|
||||
#define SEL 2
|
||||
|
||||
|
||||
//TODO: hide the Qt coord system (+y down).
|
||||
|
||||
@@ -91,6 +95,7 @@ QGIDatumLabel::QGIDatumLabel()
|
||||
setFlag(ItemIsMovable, true);
|
||||
setFlag(ItemIsSelectable, true);
|
||||
setAcceptHoverEvents(true);
|
||||
setFiltersChildEvents(true);
|
||||
|
||||
m_dimText = new QGCustomText();
|
||||
m_dimText->setParentItem(this);
|
||||
@@ -111,10 +116,8 @@ QVariant QGIDatumLabel::itemChange(GraphicsItemChange change, const QVariant &va
|
||||
{
|
||||
if (change == ItemSelectedHasChanged && scene()) {
|
||||
if(isSelected()) {
|
||||
Q_EMIT selected(true);
|
||||
setPrettySel();
|
||||
} else {
|
||||
Q_EMIT selected(false);
|
||||
setPrettyNormal();
|
||||
}
|
||||
update();
|
||||
@@ -167,10 +170,6 @@ void QGIDatumLabel::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||
|
||||
void QGIDatumLabel::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
||||
{
|
||||
QGIView *view = dynamic_cast<QGIView *> (parentItem());
|
||||
assert(view != 0);
|
||||
Q_UNUSED(view);
|
||||
|
||||
Q_EMIT hover(false);
|
||||
if (!isSelected()) {
|
||||
setPrettyNormal();
|
||||
@@ -195,6 +194,9 @@ void QGIDatumLabel::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt
|
||||
QStyleOptionGraphicsItem myOption(*option);
|
||||
myOption.state &= ~QStyle::State_Selected;
|
||||
|
||||
// painter->setPen(Qt::blue);
|
||||
// painter->drawRect(boundingRect()); //good for debugging
|
||||
|
||||
if (m_isFramed) {
|
||||
QPen prevPen = painter->pen();
|
||||
QPen framePen(prevPen);
|
||||
@@ -379,7 +381,7 @@ void QGIDatumLabel::setPrettySel(void)
|
||||
m_tolTextOver->setPrettySel();
|
||||
m_tolTextUnder->setPrettySel();
|
||||
m_unitText->setPrettySel();
|
||||
update();
|
||||
Q_EMIT setPretty(SEL);
|
||||
}
|
||||
|
||||
void QGIDatumLabel::setPrettyPre(void)
|
||||
@@ -389,6 +391,7 @@ void QGIDatumLabel::setPrettyPre(void)
|
||||
m_tolTextOver->setPrettyPre();
|
||||
m_tolTextUnder->setPrettyPre();
|
||||
m_unitText->setPrettyPre();
|
||||
Q_EMIT setPretty(PRE);
|
||||
}
|
||||
|
||||
void QGIDatumLabel::setPrettyNormal(void)
|
||||
@@ -398,10 +401,12 @@ void QGIDatumLabel::setPrettyNormal(void)
|
||||
m_tolTextOver->setPrettyNormal();
|
||||
m_tolTextUnder->setPrettyNormal();
|
||||
m_unitText->setPrettyNormal();
|
||||
Q_EMIT setPretty(NORMAL);
|
||||
}
|
||||
|
||||
void QGIDatumLabel::setColor(QColor c)
|
||||
{
|
||||
// Base::Console().Message("QGIDL::setColor(%s)\n", qPrintable(c.name()));
|
||||
m_colNormal = c;
|
||||
m_dimText->setColor(m_colNormal);
|
||||
m_tolTextOver->setColor(m_colNormal);
|
||||
@@ -414,34 +419,25 @@ QGIViewDimension::QGIViewDimension() :
|
||||
hasHover(false),
|
||||
m_lineWidth(0.0)
|
||||
{
|
||||
|
||||
setHandlesChildEvents(false);
|
||||
setFlag(QGraphicsItem::ItemIsMovable, false);
|
||||
setFlag(QGraphicsItem::ItemIsSelectable, false);
|
||||
setAcceptHoverEvents(false);
|
||||
setCacheMode(QGraphicsItem::NoCache);
|
||||
|
||||
datumLabel = new QGIDatumLabel();
|
||||
// datumLabel->m_parent = this; //for dialog setup eventually
|
||||
|
||||
addToGroup(datumLabel);
|
||||
datumLabel->setColor(getNormalColor());
|
||||
datumLabel->setPrettyNormal();
|
||||
|
||||
dimLines = new QGIDimLines();
|
||||
addToGroup(dimLines);
|
||||
dimLines->setNormalColor(getNormalColor());
|
||||
dimLines->setPrettyNormal();
|
||||
|
||||
aHead1 = new QGIArrow();
|
||||
addToGroup(aHead1);
|
||||
aHead1->setNormalColor(getNormalColor());
|
||||
aHead1->setFillColor(getNormalColor());
|
||||
aHead1->setPrettyNormal();
|
||||
|
||||
aHead2 = new QGIArrow();
|
||||
addToGroup(aHead2);
|
||||
aHead2->setNormalColor(getNormalColor());
|
||||
aHead2->setFillColor(getNormalColor());
|
||||
aHead2->setPrettyNormal();
|
||||
|
||||
datumLabel->setZValue(ZVALUE::DIMENSION);
|
||||
aHead1->setZValue(ZVALUE::DIMENSION);
|
||||
@@ -452,7 +448,6 @@ QGIViewDimension::QGIViewDimension() :
|
||||
//centerMark = new QGICMark();
|
||||
//addToGroup(centerMark);
|
||||
|
||||
|
||||
// connecting the needed slots and signals
|
||||
QObject::connect(
|
||||
datumLabel, SIGNAL(dragging(bool)),
|
||||
@@ -470,6 +465,10 @@ QGIViewDimension::QGIViewDimension() :
|
||||
datumLabel, SIGNAL(hover(bool)),
|
||||
this , SLOT (hover(bool)));
|
||||
|
||||
QObject::connect(
|
||||
datumLabel, SIGNAL(setPretty(int)),
|
||||
this , SLOT (onPrettyChanged(int)));
|
||||
|
||||
setZValue(ZVALUE::DIMENSION); //note: this won't paint dimensions over another View if it stacks
|
||||
//above this Dimension's parent view. need Layers?
|
||||
}
|
||||
@@ -478,6 +477,7 @@ QVariant QGIViewDimension::itemChange(GraphicsItemChange change, const QVariant
|
||||
{
|
||||
if (change == ItemSelectedHasChanged && scene()) {
|
||||
if(isSelected()) {
|
||||
setSelected(false);
|
||||
datumLabel->setSelected(true);
|
||||
} else {
|
||||
datumLabel->setSelected(false);
|
||||
@@ -500,9 +500,13 @@ void QGIViewDimension::setGroupSelection(bool b)
|
||||
|
||||
void QGIViewDimension::select(bool state)
|
||||
{
|
||||
// Base::Console().Message("QGIVDim::select(%d)\n", state);
|
||||
setSelected(state);
|
||||
draw();
|
||||
// Base::Console().Message("QGIVD::select(%d)\n", state);
|
||||
if (state) {
|
||||
// setPrettySel();
|
||||
} else {
|
||||
// setPrettyNormal();
|
||||
}
|
||||
// draw();
|
||||
}
|
||||
|
||||
//surrogate for hover enter (true), hover leave (false) events
|
||||
@@ -514,6 +518,7 @@ void QGIViewDimension::hover(bool state)
|
||||
|
||||
void QGIViewDimension::setViewPartFeature(TechDraw::DrawViewDimension *obj)
|
||||
{
|
||||
// Base::Console().Message("QGIVD::setViewPartFeature()\n");
|
||||
if(obj == 0)
|
||||
return;
|
||||
|
||||
@@ -525,10 +530,25 @@ void QGIViewDimension::setViewPartFeature(TechDraw::DrawViewDimension *obj)
|
||||
|
||||
datumLabel->setPosFromCenter(x, y);
|
||||
|
||||
setNormalColorAll();
|
||||
setPrettyNormal();
|
||||
|
||||
updateDim();
|
||||
draw();
|
||||
}
|
||||
|
||||
void QGIViewDimension::setNormalColorAll()
|
||||
{
|
||||
QColor qc = prefNormalColor();
|
||||
datumLabel->setColor(qc);
|
||||
dimLines->setNormalColor(qc);
|
||||
aHead1->setNormalColor(qc);
|
||||
aHead1->setFillColor(qc);
|
||||
aHead2->setNormalColor(qc);
|
||||
aHead2->setFillColor(qc);
|
||||
}
|
||||
|
||||
|
||||
//special handling to prevent unwanted repositioning
|
||||
//clicking on the dimension, but outside the label, should do nothing to position
|
||||
//label will get clicks before QGIVDim
|
||||
@@ -685,8 +705,6 @@ void QGIViewDimension::draw()
|
||||
}
|
||||
|
||||
m_lineWidth = Rez::guiX(vp->LineWidth.getValue());
|
||||
m_colNormal = getNormalColor();
|
||||
|
||||
datumLabel->setRotation(0.0);
|
||||
datumLabel->show();
|
||||
|
||||
@@ -720,14 +738,6 @@ void QGIViewDimension::draw()
|
||||
drawArrows(0, nullptr, nullptr, false);
|
||||
}
|
||||
|
||||
if (isSelected()) {
|
||||
setPrettySel();
|
||||
} else if (hasHover) {
|
||||
setPrettyPre();
|
||||
} else {
|
||||
setPrettyNormal();
|
||||
}
|
||||
|
||||
update();
|
||||
if (parentItem()) {
|
||||
//TODO: parent redraw still required with new frame/label??
|
||||
@@ -2044,24 +2054,40 @@ void QGIViewDimension::drawAngle(TechDraw::DrawViewDimension *dimension, ViewPro
|
||||
dimLines->setPath(anglePath);
|
||||
}
|
||||
|
||||
QColor QGIViewDimension::getNormalColor()
|
||||
QColor QGIViewDimension::prefNormalColor()
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions");
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Dimensions");
|
||||
App::Color fcColor;
|
||||
fcColor.setPackedValue(hGrp->GetUnsigned("Color", 0x00000000));
|
||||
fcColor.setPackedValue(hGrp->GetUnsigned("Color", 0x00110000));
|
||||
m_colNormal = fcColor.asValue<QColor>();
|
||||
|
||||
auto dim( dynamic_cast<TechDraw::DrawViewDimension*>(getViewObject()) );
|
||||
if( dim == nullptr )
|
||||
return m_colNormal;
|
||||
|
||||
auto vp = static_cast<ViewProviderDimension*>(getViewProvider(getViewObject()));
|
||||
if ( vp == nullptr ) {
|
||||
// auto dim( dynamic_cast<TechDraw::DrawViewDimension*>(getViewObject()) );
|
||||
TechDraw::DrawViewDimension* dim = nullptr;
|
||||
TechDraw::DrawView* dv = getViewObject();
|
||||
if (dv != nullptr) {
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension*>(dv);
|
||||
if( dim == nullptr ) {
|
||||
return m_colNormal;
|
||||
}
|
||||
} else {
|
||||
return m_colNormal;
|
||||
}
|
||||
|
||||
m_colNormal = vp->Color.getValue().asValue<QColor>();
|
||||
ViewProviderDimension* vpDim = nullptr;
|
||||
Gui::ViewProvider* vp = getViewProvider(dim);
|
||||
if ( vp != nullptr ) {
|
||||
vpDim = dynamic_cast<ViewProviderDimension*>(vp);
|
||||
if (vpDim == nullptr) {
|
||||
return m_colNormal;
|
||||
}
|
||||
} else {
|
||||
return m_colNormal;
|
||||
}
|
||||
|
||||
fcColor = vpDim->Color.getValue();
|
||||
m_colNormal = fcColor.asValue<QColor>();
|
||||
return m_colNormal;
|
||||
}
|
||||
|
||||
@@ -2118,6 +2144,18 @@ Base::Vector3d QGIViewDimension::findIsoExt(Base::Vector3d dir)
|
||||
return dirExt;
|
||||
}
|
||||
|
||||
void QGIViewDimension::onPrettyChanged(int state)
|
||||
{
|
||||
// Base::Console().Message("QGIVD::onPrettyChange(%d)\n", state);
|
||||
if (state == NORMAL) {
|
||||
setPrettyNormal();
|
||||
} else if (state == PRE) {
|
||||
setPrettyPre();
|
||||
} else { //if state = SEL
|
||||
setPrettySel();
|
||||
}
|
||||
}
|
||||
|
||||
void QGIViewDimension::setPrettyPre(void)
|
||||
{
|
||||
aHead1->setPrettyPre();
|
||||
@@ -2209,6 +2247,8 @@ void QGIViewDimension::paint ( QPainter * painter, const QStyleOptionGraphicsIte
|
||||
} else {
|
||||
setPens();
|
||||
}
|
||||
|
||||
// painter->setPen(Qt::red);
|
||||
// painter->drawRect(boundingRect()); //good for debugging
|
||||
|
||||
// QGIView::paint (painter, &myOption, widget);
|
||||
|
||||
@@ -103,6 +103,7 @@ public:
|
||||
void setLineWidth(double lineWidth) { m_lineWidth = lineWidth; }
|
||||
|
||||
Q_SIGNALS:
|
||||
void setPretty(int state);
|
||||
void dragging(bool);
|
||||
void hover(bool state);
|
||||
void selected(bool state);
|
||||
@@ -154,7 +155,7 @@ public:
|
||||
|
||||
virtual void drawBorder() override;
|
||||
virtual void updateView(bool update = false) override;
|
||||
virtual QColor getNormalColor(void) override;
|
||||
virtual QColor prefNormalColor(void);
|
||||
QString getLabelText(void);
|
||||
void setPrettyPre(void);
|
||||
void setPrettySel(void);
|
||||
@@ -163,7 +164,10 @@ public:
|
||||
virtual void setGroupSelection(bool b) override;
|
||||
virtual QGIDatumLabel* getDatumLabel(void) { return datumLabel; }
|
||||
|
||||
void setNormalColorAll(void);
|
||||
|
||||
public Q_SLOTS:
|
||||
void onPrettyChanged(int state);
|
||||
void datumLabelDragged(bool ctrl);
|
||||
void datumLabelDragFinished(void);
|
||||
void select(bool state);
|
||||
@@ -248,7 +252,6 @@ protected:
|
||||
|
||||
virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent * event) override;
|
||||
|
||||
protected:
|
||||
bool hasHover;
|
||||
QGIDatumLabel* datumLabel; //dimension text
|
||||
QGIDimLines* dimLines; //dimension lines + extension lines
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include <QColor>
|
||||
|
||||
/// Here the FreeCAD includes sorted by Base,App,Gui......
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Parameter.h>
|
||||
@@ -35,10 +37,11 @@
|
||||
#include <App/Application.h>
|
||||
#include <App/Document.h>
|
||||
#include <App/DocumentObject.h>
|
||||
#include <App/Material.h>
|
||||
|
||||
#include <Mod/TechDraw/App/LineGroup.h>
|
||||
|
||||
|
||||
#include "QGIViewDimension.h"
|
||||
#include "ViewProviderDimension.h"
|
||||
|
||||
using namespace TechDrawGui;
|
||||
@@ -60,38 +63,21 @@ ViewProviderDimension::ViewProviderDimension()
|
||||
|
||||
static const char *group = "Dim Format";
|
||||
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Labels");
|
||||
std::string fontName = hGrp->GetASCII("LabelFont", "osifont");
|
||||
|
||||
hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions");
|
||||
double fontSize = hGrp->GetFloat("FontSize", QGIView::DefaultFontSizeInMM);
|
||||
ADD_PROPERTY_TYPE(Font ,(fontName.c_str()),group,App::Prop_None, "The name of the font to use");
|
||||
ADD_PROPERTY_TYPE(Fontsize,(fontSize) ,group,(App::PropertyType)(App::Prop_None),"Dimension text size in units");
|
||||
|
||||
|
||||
hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Decorations");
|
||||
std::string lgName = hGrp->GetASCII("LineGroup","FC 0.70mm");
|
||||
auto lg = TechDraw::LineGroup::lineGroupFactory(lgName);
|
||||
double weight = lg->getWeight("Thin");
|
||||
delete lg; //Coverity CID 174670
|
||||
ADD_PROPERTY_TYPE(LineWidth,(weight) ,group,(App::PropertyType)(App::Prop_None),"Dimension line weight");
|
||||
|
||||
|
||||
hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions");
|
||||
App::Color fcColor;
|
||||
fcColor.setPackedValue(hGrp->GetUnsigned("Color", 0x00000000));
|
||||
ADD_PROPERTY_TYPE(Color,(fcColor),group,App::Prop_None,"The color of the Dimension");
|
||||
|
||||
int standardStyle = hGrp->GetInt("StandardAndStyle", STD_STYLE_ISO_ORIENTED);
|
||||
ADD_PROPERTY_TYPE(StandardAndStyle, (standardStyle), group, App::Prop_None, "Specifies the standard according to which this dimension is drawn");
|
||||
ADD_PROPERTY_TYPE(Font, (prefFont().c_str()), group, App::Prop_None, "The name of the font to use");
|
||||
ADD_PROPERTY_TYPE(Fontsize, (prefFontSize()), group, (App::PropertyType)(App::Prop_None),
|
||||
"Dimension text size in units");
|
||||
ADD_PROPERTY_TYPE(LineWidth, (prefWeight()), group, (App::PropertyType)(App::Prop_None),
|
||||
"Dimension line weight");
|
||||
ADD_PROPERTY_TYPE(Color,(prefColor()),group,App::Prop_None,"The color of the Dimension");
|
||||
ADD_PROPERTY_TYPE(StandardAndStyle, (prefStandardAndStyle()), group, App::Prop_None,
|
||||
"Specifies the standard according to which this dimension is drawn");
|
||||
StandardAndStyle.setEnums(StandardAndStyleEnums);
|
||||
|
||||
ADD_PROPERTY_TYPE(RenderingExtent, (REND_EXTENT_NORMAL), group, App::Prop_None,"Select the rendering mode by space requirements");
|
||||
ADD_PROPERTY_TYPE(RenderingExtent, (REND_EXTENT_NORMAL), group, App::Prop_None,
|
||||
"Select the rendering mode by space requirements");
|
||||
RenderingExtent.setEnums(RenderingExtentEnums);
|
||||
ADD_PROPERTY_TYPE(FlipArrowheads, (false), group, App::Prop_None,"Reverts the usual direction of dimension line terminators");
|
||||
ADD_PROPERTY_TYPE(FlipArrowheads, (false), group, App::Prop_None,
|
||||
"Reverses the usual direction of dimension line terminators");
|
||||
}
|
||||
|
||||
ViewProviderDimension::~ViewProviderDimension()
|
||||
@@ -145,12 +131,22 @@ void ViewProviderDimension::onChanged(const App::Property* p)
|
||||
(p == &StandardAndStyle) ||
|
||||
(p == &RenderingExtent) ||
|
||||
(p == &FlipArrowheads))
|
||||
{
|
||||
{
|
||||
QGIView* qgiv = getQView();
|
||||
if (qgiv) {
|
||||
qgiv->updateView(true);
|
||||
}
|
||||
}
|
||||
if (p == &Color) {
|
||||
QGIView* qgiv = getQView();
|
||||
if (qgiv) {
|
||||
QGIViewDimension* qgivd = dynamic_cast<QGIViewDimension*>(qgiv);
|
||||
if (qgivd != nullptr) {
|
||||
qgivd->setNormalColorAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ViewProviderDrawingView::onChanged(p);
|
||||
}
|
||||
|
||||
@@ -158,3 +154,52 @@ TechDraw::DrawViewDimension* ViewProviderDimension::getViewObject() const
|
||||
{
|
||||
return dynamic_cast<TechDraw::DrawViewDimension*>(pcObject);
|
||||
}
|
||||
|
||||
App::Color ViewProviderDimension::prefColor() const
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Dimensions");
|
||||
App::Color fcColor;
|
||||
fcColor.setPackedValue(hGrp->GetUnsigned("Color", 0x00001100));
|
||||
return fcColor;
|
||||
}
|
||||
|
||||
std::string ViewProviderDimension::prefFont() const
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Labels");
|
||||
std::string fontName = hGrp->GetASCII("LabelFont", "osifont");
|
||||
return fontName;
|
||||
}
|
||||
|
||||
double ViewProviderDimension::prefFontSize() const
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Dimensions");
|
||||
double fontSize = hGrp->GetFloat("FontSize", QGIView::DefaultFontSizeInMM);
|
||||
return fontSize;
|
||||
}
|
||||
|
||||
double ViewProviderDimension::prefWeight() const
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Decorations");
|
||||
std::string lgName = hGrp->GetASCII("LineGroup","FC 0.70mm");
|
||||
auto lg = TechDraw::LineGroup::lineGroupFactory(lgName);
|
||||
double weight = lg->getWeight("Thin");
|
||||
delete lg; //Coverity CID 174670
|
||||
return weight;
|
||||
}
|
||||
|
||||
int ViewProviderDimension::prefStandardAndStyle() const
|
||||
{
|
||||
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
|
||||
.GetGroup("BaseApp")->GetGroup("Preferences")->
|
||||
GetGroup("Mod/TechDraw/Dimensions");
|
||||
int standardStyle = hGrp->GetInt("StandardAndStyle", STD_STYLE_ISO_ORIENTED);
|
||||
return standardStyle;
|
||||
}
|
||||
|
||||
@@ -75,6 +75,12 @@ public:
|
||||
|
||||
virtual TechDraw::DrawViewDimension* getViewObject() const;
|
||||
|
||||
App::Color prefColor() const;
|
||||
std::string prefFont() const;
|
||||
double prefFontSize() const;
|
||||
double prefWeight() const;
|
||||
int prefStandardAndStyle() const;
|
||||
|
||||
private:
|
||||
|
||||
static const char *StandardAndStyleEnums[];
|
||||
|
||||
Reference in New Issue
Block a user