[TD]control svg scaling at object level

This commit is contained in:
wandererfan
2025-01-24 16:34:18 -05:00
parent 2bc9f2ea1f
commit dbf2e85f6f
5 changed files with 129 additions and 74 deletions

View File

@@ -24,9 +24,15 @@
#include "PreCompiled.h"
#include <App/DocumentObject.h>
#include <Mod/TechDraw/App/Preferences.h>
#include "QGIViewSymbol.h"
#include "ViewProviderSymbol.h"
using namespace TechDrawGui;
using namespace TechDraw;
PROPERTY_SOURCE(TechDrawGui::ViewProviderSymbol, TechDrawGui::ViewProviderDrawingView)
@@ -36,6 +42,11 @@ PROPERTY_SOURCE(TechDrawGui::ViewProviderSymbol, TechDrawGui::ViewProviderDrawin
ViewProviderSymbol::ViewProviderSymbol()
{
sPixmap = "TechDraw_TreeSymbol";
ADD_PROPERTY_TYPE(LegacyScaling, (Preferences::useLegacySvgScaling()), "Svg Scaling", App::Prop_None,
"If true, Svg will be scaled using the original (v1.0 and earlier) scaling method.\
If false, a more accurate method will be used.");
}
ViewProviderSymbol::~ViewProviderSymbol()
@@ -55,6 +66,18 @@ void ViewProviderSymbol::updateData(const App::Property* prop)
ViewProviderDrawingView::updateData(prop);
}
void ViewProviderSymbol::onChanged(const App::Property* prop)
{
if (prop == &(LegacyScaling)) {
QGIView* qgiv = getQView();
if (qgiv) {
qgiv->updateView(true);
}
}
ViewProviderDrawingView::onChanged(prop);
}
TechDraw::DrawViewSymbol* ViewProviderSymbol::getViewObject() const
{
return dynamic_cast<TechDraw::DrawViewSymbol*>(pcObject);