Merge branch 'master' into feature/tool-bit-poc

This commit is contained in:
mlampert
2019-12-06 22:08:28 -08:00
committed by GitHub
20 changed files with 592 additions and 564 deletions

View File

@@ -24,6 +24,9 @@
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Input the source value and unit</string>
</property>
</widget>
</item>
<item>
@@ -34,13 +37,19 @@
</widget>
</item>
<item>
<widget class="Gui::InputField" name="UnitInput">
<widget class="QLineEdit" name="UnitInput">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Input here the unit for the result</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
@@ -58,6 +67,9 @@
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Result</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
@@ -67,6 +79,10 @@
</item>
<item row="1" column="0">
<widget class="QTextEdit" name="textEdit">
<property name="toolTip">
<string>List of last used calculations
To add a calculation press Return in the value input field</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
@@ -82,7 +98,7 @@
</widget>
</item>
<item>
<widget class="Gui::QuantitySpinBox" name="quantitySpinBox">
<widget class="Gui::QuantitySpinBox" name="quantitySpinBox" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -112,13 +128,6 @@
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_Help">
<property name="text">
<string>Help</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
@@ -134,6 +143,9 @@
</item>
<item>
<widget class="QPushButton" name="pushButton_Copy">
<property name="toolTip">
<string>Copy the result into the clipboard</string>
</property>
<property name="text">
<string>Copy</string>
</property>

View File

@@ -51,11 +51,10 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl )
this->setAttribute(Qt::WA_DeleteOnClose);
connect(ui->ValueInput, SIGNAL(valueChanged(Base::Quantity)), this, SLOT(valueChanged(Base::Quantity)));
connect(ui->ValueInput, SIGNAL(returnPressed () ), this, SLOT(returnPressed()));
connect(ui->UnitInput, SIGNAL(valueChanged(Base::Quantity)), this, SLOT(unitValueChanged(Base::Quantity)));
connect(ui->ValueInput, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
connect(ui->UnitInput, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
connect(ui->UnitInput, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
connect(ui->pushButton_Help, SIGNAL(clicked()), this, SLOT(help()));
connect(ui->pushButton_Close, SIGNAL(clicked()), this, SLOT(accept()));
connect(ui->pushButton_Copy, SIGNAL(clicked()), this, SLOT(copy()));
@@ -63,7 +62,9 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl )
connect(ui->UnitInput, SIGNAL(parseError(QString)), this, SLOT(parseError(QString)));
ui->ValueInput->setParamGrpPath(QByteArray("User parameter:BaseApp/History/UnitsCalculator"));
actUnit.setInvalid();
// set a default that also illustrates how the dialog works
ui->ValueInput->setText(QString::fromLatin1("1 cm"));
ui->UnitInput->setText(QString::fromLatin1("in"));
units << Base::Unit::Length << Base::Unit::Mass << Base::Unit::Angle << Base::Unit::Density
<< Base::Unit::Area << Base::Unit::Volume << Base::Unit::TimeSpan << Base::Unit::Frequency
@@ -72,7 +73,7 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl )
<< Base::Unit::AmountOfSubstance << Base::Unit::LuminousIntensity << Base::Unit::Stress
<< Base::Unit::Pressure << Base::Unit::Force << Base::Unit::Work << Base::Unit::Power
<< Base::Unit::ThermalConductivity << Base::Unit::ThermalExpansionCoefficient
<< Base::Unit::SpecificHeat << Base::Unit::ThermalTransferCoefficient <<Base::Unit::HeatFlux;
<< Base::Unit::SpecificHeat << Base::Unit::ThermalTransferCoefficient << Base::Unit::HeatFlux;
for (QList<Base::Unit>::iterator it = units.begin(); it != units.end(); ++it) {
ui->unitsBox->addItem(it->getTypeString());
}
@@ -95,31 +96,42 @@ void DlgUnitsCalculator::reject()
QDialog::reject();
}
void DlgUnitsCalculator::unitValueChanged(const Base::Quantity& unit)
void DlgUnitsCalculator::textChanged(QString unit)
{
actUnit = unit;
valueChanged(actValue);
}
void DlgUnitsCalculator::valueChanged(const Base::Quantity& quant)
{
if (actUnit.isValid()) {
if (actUnit.getUnit() != quant.getUnit()) {
ui->ValueOutput->setText(tr("Unit mismatch"));
// first check the unit, if it is invalid, getTypeString() outputs an empty string
if (Base::Unit(ui->UnitInput->text()).getTypeString().isEmpty()) {
ui->ValueOutput->setText(tr("unknown unit: ") + ui->UnitInput->text());
ui->pushButton_Copy->setEnabled(false);
} else { // the unit is valid
// we can only convert units of the same type, thus check
if (Base::Unit(ui->UnitInput->text()).getTypeString() != quant.getUnit().getTypeString()) {
ui->ValueOutput->setText(tr("unit mismatch"));
ui->pushButton_Copy->setEnabled(false);
} else {
double value = quant.getValue()/actUnit.getValue();
QString val = QLocale::system().toString(value, 'f', Base::UnitsApi::getDecimals());
} else { // the unit is valid and has the same type
double convertValue = Base::Quantity::parse(QString::fromLatin1("1") + ui->UnitInput->text()).getValue();
// we got now e.g. for "1 in" the value '25.4' because 1 in = 25.4 mm
// the result is now just quant / convertValue because the input is always in a base unit
// (an input of "1 cm" will immediately be converted to "10 mm" by Gui::InputField of the dialog)
double value = quant.getValue() / convertValue;
// determine how many decimals we will need to avoid an output like "0.00"
// at first use scientific notation, if there is no "e", we can round it to the user-defined decimals,
// but the user-defined decimals might be too low for cases like "10 um" in "in",
// thus only if value > 0.005 because FC's default are 2 decimals
QString val = QLocale::system().toString(value, 'g');
if (!val.contains(QChar::fromLatin1('e')) && (value > 0.005))
val = QLocale::system().toString(value, 'f', Base::UnitsApi::getDecimals());
// create the output string
QString out = QString::fromLatin1("%1 %2").arg(val, ui->UnitInput->text());
ui->ValueOutput->setText(out);
ui->pushButton_Copy->setEnabled(true);
}
} else {
//ui->ValueOutput->setValue(quant);
ui->ValueOutput->setText(quant.getUserString());
ui->pushButton_Copy->setEnabled(true);
}
// store the input value
actValue = quant;
}
@@ -135,11 +147,6 @@ void DlgUnitsCalculator::copy(void)
cb->setText(ui->ValueOutput->text());
}
void DlgUnitsCalculator::help(void)
{
//TODO: call help page Std_UnitsCalculator
}
void DlgUnitsCalculator::returnPressed(void)
{
if (ui->pushButton_Copy->isEnabled()) {

View File

@@ -50,19 +50,17 @@ protected:
void reject();
protected Q_SLOTS:
void unitValueChanged(const Base::Quantity&);
void textChanged(const QString);
void valueChanged(const Base::Quantity&);
void on_unitsBox_activated(int);
void copy(void);
void help(void);
void returnPressed(void);
void parseError(const QString& errorText);
private:
Base::Quantity actValue;
Base::Quantity actUnit;
std::unique_ptr<Ui_DlgUnitCalculator> ui;
QList<Base::Unit> units;
};

0
src/Gui/Icons/edit-select-all.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

0
src/Gui/Icons/edit-select-box.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -1591,11 +1591,13 @@ QMimeData * MainWindow::createMimeDataFromSelection () const
// if less than ~10 MB
bool use_buffer=(memsize < 0xA00000);
QByteArray res;
try {
res.reserve(memsize);
}
catch (const Base::MemoryException&) {
use_buffer = false;
if(use_buffer) {
try {
res.reserve(memsize);
}
catch (const std::bad_alloc &) {
use_buffer = false;
}
}
WaitCursor wc;
@@ -1651,9 +1653,11 @@ void MainWindow::insertFromMimeData (const QMimeData * mimeData)
else if(mimeData->hasFormat(_MimeDocObjX)) {
format = _MimeDocObjX;
hasXLink = true;
}else if(mimeData->hasFormat(_MimeDocObjFile))
}else if(mimeData->hasFormat(_MimeDocObjFile)) {
format = _MimeDocObjFile;
fromDoc = true;
else if(mimeData->hasFormat(_MimeDocObjXFile)) {
}else if(mimeData->hasFormat(_MimeDocObjXFile)) {
format = _MimeDocObjXFile;
fromDoc = true;
hasXLink = true;
}else {

View File

@@ -5717,6 +5717,12 @@ class _DraftLink(_DraftObject):
obj.setPropertyStatus('PlacementList','Immutable')
else:
obj.setPropertyStatus('PlacementList','-Immutable')
if not hasattr(obj,'LinkTransform'):
obj.addProperty('App::PropertyBool','LinkTransform',' Link')
if not hasattr(obj,'ColoredElements'):
obj.addProperty('App::PropertyLinkSubHidden','ColoredElements',' Link')
obj.setPropertyStatus('ColoredElements','Hidden')
obj.configLinkProperty('LinkTransform','ColoredElements')
def getViewProviderName(self,_obj):
if self.useLink:

View File

@@ -60,7 +60,9 @@ Note: C++ importer is faster, but is not as featureful yet</string>
<widget class="Gui::PrefCheckBox" name="checkBox_7">
<property name="toolTip">
<string>Python exporter is used, otherwise the newer C++ is used.
Note: C++ importer is faster, but is not as featureful yet</string>
Note: C++ importer is faster, but is not as featureful yet
</string>
</property>
<property name="text">
<string>Use legacy python exporter</string>
</property>

View File

@@ -714,18 +714,17 @@ class svgHandler(xml.sax.ContentHandler):
if self.count == 1 and name == 'svg':
if 'inkscape:version' in data:
inks_doc_name = attrs.getValue('sodipodi:docname')
inks_full_ver = attrs.getValue('inkscape:version')[:4]
inks_full_ver_list = inks_full_ver.split('.')
_maj = int(inks_full_ver_list[0])
_min = int(inks_full_ver_list[1])
inks_full_ver = attrs.getValue('inkscape:version')
inks_ver_pars = re.search("\d+\.\d+", inks_full_ver)
if inks_ver_pars != None:
inks_ver_f = float(inks_ver_pars.group(0))
else:
inks_ver_f = 99.99
# Inkscape before 0.92 used 90 dpi as resolution
# Newer versions use 96 dpi
if _maj == 0 and _min > 91:
self.svgdpi = 96.0
elif _maj == 0 and _min < 92:
if inks_ver_f < 0.92:
self.svgdpi = 90.0
elif _maj > 0:
else:
self.svgdpi = 96.0
if 'inkscape:version' not in data:
_msg = ("This SVG file does not appear to have been produced "

View File

@@ -94,7 +94,7 @@ CmdPartDesignBody::CmdPartDesignBody()
sToolTipText = QT_TR_NOOP("Create a new body and make it active");
sWhatsThis = "PartDesign_Body";
sStatusTip = sToolTipText;
sPixmap = "PartDesign_Body_Create_New";
sPixmap = "PartDesign_Body";
}
void CmdPartDesignBody::activated(int iMsg)

View File

@@ -1,93 +1,93 @@
<RCC>
<qresource>
<file>icons/PartDesign_Chamfer.svg</file>
<file>icons/PartDesign_Fillet.svg</file>
<file>icons/PartDesign_Draft.svg</file>
<file>icons/PartDesign_Thickness.svg</file>
<file>icons/PartDesign_Groove.svg</file>
<file>icons/PartDesign_Pad.svg</file>
<file>icons/PartDesign_Pocket.svg</file>
<file>icons/PartDesign_Revolution.svg</file>
<file>icons/PartDesign_Mirrored.svg</file>
<file>icons/PartDesign_LinearPattern.svg</file>
<file>icons/PartDesign_PolarPattern.svg</file>
<file>icons/PartDesign_Scaled.svg</file>
<file>icons/PartDesign_MultiTransform.svg</file>
<file>icons/PartDesign_Hole.svg</file>
<file>icons/PartDesign_Additive_Box.svg</file>
<file>icons/PartDesign_Additive_Cone.svg</file>
<file>icons/PartDesign_Additive_Cylinder.svg</file>
<file>icons/PartDesign_Additive_Ellipsoid.svg</file>
<file>icons/PartDesign_Additive_Loft.svg</file>
<file>icons/PartDesign_Additive_Pipe.svg</file>
<file>icons/PartDesign_Additive_Prism.svg</file>
<file>icons/PartDesign_Additive_Sphere.svg</file>
<file>icons/PartDesign_Additive_Torus.svg</file>
<file>icons/PartDesign_Additive_Wedge.svg</file>
<file>icons/PartDesign_BaseFeature.svg</file>
<file>icons/PartDesign_Body.svg</file>
<file>icons/PartDesign_Body_old.svg</file>
<file>icons/PartDesign_Body_Tree.svg</file>
<file>icons/PartDesign_Boolean.svg</file>
<file>icons/PartDesign_ShapeBinder.svg</file>
<file>icons/PartDesign_SubShapeBinder.svg</file>
<file>icons/PartDesign_Chamfer.svg</file>
<file>icons/PartDesign_Clone.svg</file>
<file>icons/PartDesign_Plane.svg</file>
<file>icons/PartDesign_Line.svg</file>
<file>icons/PartDesign_Point.svg</file>
<file>icons/PartDesign_CoordinateSystem.svg</file>
<file>icons/PartDesign_MoveTip.svg</file>
<file>icons/Tree_PartDesign_Pad.svg</file>
<file>icons/Tree_PartDesign_Revolution.svg</file>
<file>icons/PartDesign_Draft.svg</file>
<file>icons/PartDesign_Fillet.svg</file>
<file>icons/PartDesign_Groove.svg</file>
<file>icons/PartDesign_Hole.svg</file>
<file>icons/PartDesign_InternalExternalGear.svg</file>
<file>icons/PartDesign_InvoluteGear.svg</file>
<file>icons/PartDesignWorkbench.svg</file>
<file>icons/PartDesign_Body_Create_New.svg</file>
<file>icons/PartDesign_Body_Tree.svg</file>
<file>icons/PartDesign_Additive_Pipe.svg</file>
<file>icons/PartDesign_Subtractive_Pipe.svg</file>
<file>icons/PartDesign_Additive_Loft.svg</file>
<file>icons/PartDesign_Subtractive_Loft.svg</file>
<file>icons/PartDesign_Additive_Box.svg</file>
<file>icons/PartDesign_Additive_Cylinder.svg</file>
<file>icons/PartDesign_Additive_Sphere.svg</file>
<file>icons/PartDesign_Additive_Cone.svg</file>
<file>icons/PartDesign_Additive_Torus.svg</file>
<file>icons/PartDesign_Additive_Ellipsoid.svg</file>
<file>icons/PartDesign_Additive_Prism.svg</file>
<file>icons/PartDesign_Additive_Wedge.svg</file>
<file>icons/PartDesign_Subtractive_Box.svg</file>
<file>icons/PartDesign_Line.svg</file>
<file>icons/PartDesign_LinearPattern.svg</file>
<file>icons/PartDesign_Mirrored.svg</file>
<file>icons/PartDesign_MoveTip.svg</file>
<file>icons/PartDesign_MultiTransform.svg</file>
<file>icons/PartDesign_Pad.svg</file>
<file>icons/PartDesign_Plane.svg</file>
<file>icons/PartDesign_Pocket.svg</file>
<file>icons/PartDesign_Point.svg</file>
<file>icons/PartDesign_PolarPattern.svg</file>
<file>icons/PartDesign_Revolution.svg</file>
<file>icons/PartDesign_Scaled.svg</file>
<file>icons/PartDesign_ShapeBinder.svg</file>
<file>icons/PartDesign_SubShapeBinder.svg</file>
<file>icons/PartDesign_Subtractive_Box.svg</file>
<file>icons/PartDesign_Subtractive_Cone.svg</file>
<file>icons/PartDesign_Subtractive_Cylinder.svg</file>
<file>icons/PartDesign_Subtractive_Sphere.svg</file>
<file>icons/PartDesign_Subtractive_Cone.svg</file>
<file>icons/PartDesign_Subtractive_Torus.svg</file>
<file>icons/PartDesign_Subtractive_Ellipsoid.svg</file>
<file>icons/PartDesign_Subtractive_Prism.svg</file>
<file>icons/PartDesign_Subtractive_Loft.svg</file>
<file>icons/PartDesign_Subtractive_Pipe.svg</file>
<file>icons/PartDesign_Subtractive_Prism.svg</file>
<file>icons/PartDesign_Subtractive_Sphere.svg</file>
<file>icons/PartDesign_Subtractive_Torus.svg</file>
<file>icons/PartDesign_Subtractive_Wedge.svg</file>
<file>icons/PartDesign_BaseFeature.svg</file>
<file>icons/PartDesign_Thickness.svg</file>
<file>icons/PartDesignWorkbench.svg</file>
<file>icons/Tree_PartDesign_Pad.svg</file>
<file>icons/Tree_PartDesign_Revolution.svg</file>
<file>translations/PartDesign_af.qm</file>
<file>translations/PartDesign_ar.qm</file>
<file>translations/PartDesign_ca.qm</file>
<file>translations/PartDesign_cs.qm</file>
<file>translations/PartDesign_de.qm</file>
<file>translations/PartDesign_el.qm</file>
<file>translations/PartDesign_es-ES.qm</file>
<file>translations/PartDesign_eu.qm</file>
<file>translations/PartDesign_fi.qm</file>
<file>translations/PartDesign_fil.qm</file>
<file>translations/PartDesign_fr.qm</file>
<file>translations/PartDesign_gl.qm</file>
<file>translations/PartDesign_hr.qm</file>
<file>translations/PartDesign_hu.qm</file>
<file>translations/PartDesign_id.qm</file>
<file>translations/PartDesign_it.qm</file>
<file>translations/PartDesign_ja.qm</file>
<file>translations/PartDesign_kab.qm</file>
<file>translations/PartDesign_ko.qm</file>
<file>translations/PartDesign_lt.qm</file>
<file>translations/PartDesign_nl.qm</file>
<file>translations/PartDesign_no.qm</file>
<file>translations/PartDesign_pl.qm</file>
<file>translations/PartDesign_ru.qm</file>
<file>translations/PartDesign_uk.qm</file>
<file>translations/PartDesign_tr.qm</file>
<file>translations/PartDesign_sv-SE.qm</file>
<file>translations/PartDesign_zh-TW.qm</file>
<file>translations/PartDesign_pt-BR.qm</file>
<file>translations/PartDesign_cs.qm</file>
<file>translations/PartDesign_sk.qm</file>
<file>translations/PartDesign_es-ES.qm</file>
<file>translations/PartDesign_zh-CN.qm</file>
<file>translations/PartDesign_ja.qm</file>
<file>translations/PartDesign_ro.qm</file>
<file>translations/PartDesign_hu.qm</file>
<file>translations/PartDesign_pt-PT.qm</file>
<file>translations/PartDesign_sr.qm</file>
<file>translations/PartDesign_el.qm</file>
<file>translations/PartDesign_ro.qm</file>
<file>translations/PartDesign_ru.qm</file>
<file>translations/PartDesign_sk.qm</file>
<file>translations/PartDesign_sl.qm</file>
<file>translations/PartDesign_eu.qm</file>
<file>translations/PartDesign_ca.qm</file>
<file>translations/PartDesign_gl.qm</file>
<file>translations/PartDesign_kab.qm</file>
<file>translations/PartDesign_ko.qm</file>
<file>translations/PartDesign_fil.qm</file>
<file>translations/PartDesign_id.qm</file>
<file>translations/PartDesign_lt.qm</file>
<file>translations/PartDesign_sr.qm</file>
<file>translations/PartDesign_sv-SE.qm</file>
<file>translations/PartDesign_tr.qm</file>
<file>translations/PartDesign_uk.qm</file>
<file>translations/PartDesign_val-ES.qm</file>
<file>translations/PartDesign_ar.qm</file>
<file>translations/PartDesign_vi.qm</file>
<file>translations/PartDesign_zh-CN.qm</file>
<file>translations/PartDesign_zh-TW.qm</file>
</qresource>
</RCC>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,322 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg3559"
version="1.1"
inkscape:version="0.91+devel+osxmenu r12922"
sodipodi:docname="Part_v08a.svg"
viewBox="0 0 64 64">
<defs
id="defs3561">
<linearGradient
inkscape:collect="always"
id="linearGradient4393">
<stop
style="stop-color:#204a87;stop-opacity:1"
offset="0"
id="stop4395" />
<stop
style="stop-color:#3465a4;stop-opacity:1"
offset="1"
id="stop4397" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4383">
<stop
style="stop-color:#3465a4;stop-opacity:1"
offset="0"
id="stop4385" />
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="1"
id="stop4387" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4383"
id="linearGradient4389"
x1="20.243532"
y1="37.588112"
x2="17.243532"
y2="27.588112"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.243533,-2.588112)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4393"
id="linearGradient4399"
x1="48.714352"
y1="45.585785"
x2="44.714352"
y2="34.585785"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.2856487,1.4142136)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4383-3"
id="linearGradient4389-0"
x1="27.243532"
y1="54.588112"
x2="21.243532"
y2="30.588112"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.243533,-2.588112)" />
<linearGradient
inkscape:collect="always"
id="linearGradient4383-3">
<stop
style="stop-color:#3465a4;stop-opacity:1"
offset="0"
id="stop4385-1" />
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="1"
id="stop4387-2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4393-9"
id="linearGradient4399-7"
x1="48.714352"
y1="45.585785"
x2="40.714352"
y2="24.585787"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.2856487,1.4142136)" />
<linearGradient
inkscape:collect="always"
id="linearGradient4393-9">
<stop
style="stop-color:#204a87;stop-opacity:1"
offset="0"
id="stop4395-8" />
<stop
style="stop-color:#3465a4;stop-opacity:1"
offset="1"
id="stop4397-1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4393"
id="linearGradient69042"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12.714351,-17.585786)"
x1="48.714352"
y1="45.585785"
x2="44.714352"
y2="34.585785" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4383"
id="linearGradient69056"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.243533,-2.588112)"
x1="27.243532"
y1="54.588112"
x2="17.243532"
y2="27.588112" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.941048"
inkscape:cx="31.005637"
inkscape:cy="29.259294"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1680"
inkscape:window-height="939"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:snap-global="true">
<inkscape:grid
type="xygrid"
id="grid3007"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata3564">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title>Path-Stock</dc:title>
<dc:date>2015-07-04</dc:date>
<dc:relation>http://www.freecadweb.org/wiki/index.php?title=Artwork</dc:relation>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Path/Gui/Resources/icons/Path-Stock.svg</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license>https://www.gnu.org/copyleft/lesser.html</cc:license>
<dc:contributor>
<cc:Agent>
<dc:title>[agryson] Alexander Gryson</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient69056);fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m 9,49 0,-28 14,5 0,14 14,5 0,14 z"
id="path4381"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:url(#linearGradient4399);fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 37,59 37,45 55,28 55,41 Z"
id="path4391"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 9,21 29,5 42,10 23,26 Z"
id="path4403"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 11.008035,47.60627 11,24 l 10,4 0,13 14,5 0.0081,10.184812 z"
id="path4381-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:none;stroke:#3465a4;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 39.005041,54.16825 39,46 53,33 l 0.0021,7.176847 z"
id="path4391-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path69038"
d="M 23,40 42,23 55,28 37,45 Z"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path69040"
d="M 23,40 23,26 42,10 42,23 Z"
style="fill:url(#linearGradient69042);fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path69044"
d="m 25,36 0,-9 15,-13 0,8 z"
style="fill:none;stroke:#3465a4;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="temporal"
style="display:none;opacity:0.58800001"
sodipodi:insensitive="true">
<path
inkscape:connector-curvature="0"
id="path68967"
d="M 9,35 9,49"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
id="path68971"
d="M 9,35 37,45"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 55,28 0,13"
id="path68973"
inkscape:connector-curvature="0" />
<path
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 37,45 55,28"
id="path68977"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path68983"
d="M 23,40 23,26"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path68985"
d="m 29,5 13,5"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 23,26 42,10"
id="path68989"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 19,13 29,5"
id="path68993"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 55,15 -9,8"
id="path68997"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path69030"
d="M 42,23 42,10"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42,23 14,5"
id="path69034"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path69036"
d="M 23,40 42,23"
style="fill:#ef2929;fill-rule:evenodd;stroke:#ef2929;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB