Commit Graph

95 Commits

Author SHA1 Message Date
wmayer
3fd2f64639 Fix several regressions:
+ improve PropertyMaterialList::readString
+ fix transparency handling in ViewProviderPartExt
+ do not register the private member '_diffuseColor' as property because it would be exposed to the
  public where it can be modified
+ fix ViewProviderPartExt::finishRestoring() to correctly restore old project files
+ fix ViewProviderPartExt::setHighlightedFaces() to correctly show face colours if VBO is enabled
+ fix ViewProviderBoolean::updateData()
  fix ViewProviderMultiFuse::updateData()
  fix ViewProviderMultiCommon::updateData()
  fix ViewProviderCompound::updateData()
  fix ViewProviderFillet::updateData()
  fix ViewProviderChamfer::updateData()
  that all set invalid transparency values
+ Filter ShapeAppearance in ViewProviderBody::unifyVisualProperty
  because body features usually have different number of faces than the body itself
+ manually fix some bad looking auto-formatted code
+ clean up code and remove duplicated code
2024-06-11 11:58:32 +02:00
Chris Hennes
f331c91b89 Merge pull request #13317 from Ondsel-Development/add-prop-varset
Core: Add properties to variable sets
2024-06-03 10:34:57 -05:00
David Carter
5feb963f9d Material: Appearance Updates 2
Improves the use of the ShapeAppearance property for the Part workbench.

    removes DiffuseColor property
        adds Python compatibility using custom attributes
        transitions DiffuseColor to ShapeAppearance on open
    Improved UI elements for setting object appearance, and appearance per face
    Lays the foundation for future texture support
2024-06-01 19:57:16 -05:00
Pieter Hijma
b6026c98c9 Core: Add VarSets to Groups
If a Group is selected, add the VarSet to the group.
2024-05-21 09:59:49 +02:00
André Althaus
eaa5b5c294 Use Body toolbar icon for the tree 2024-05-19 12:17:16 +02:00
Max Wilfinger
0652666321 use checkbox in menu item to display current object state and refactor the code 2023-12-28 11:30:49 +01:00
Max Wilfinger
a32d3b1046 Change the description of the default 'Toggle active object' command in the right click menu based on the current state of the selected object. 2023-12-27 09:10:30 +01:00
wmayer
bb90ced93e PD: fixes #11197: If bounding box of Body is activated it will be done for each sub-feature 2023-11-08 10:38:42 +01:00
Florian Foinant-Willig
24934d7843 PartDesign: modernize type checking 2023-10-23 18:08:16 +02:00
wmayer
d305f306df Core: Revert superfluous changes made with PR #9521 2023-10-09 15:06:45 +02:00
AgCaliva
b360b43ebe Fixing DOMDocument redefinition 2023-09-16 00:38:41 -03:00
wmayer
948cbfccd9 modernize C++: avoid bind
In many cases std::bind() is kept because the code is much simpler
2023-08-08 21:10:16 +02:00
wmayer
52e1c7c33b modernize C++: move from boost::bind to std::bind 2023-08-08 17:36:13 +02:00
luz paz
d265c9ff63 PD: remove trailing whitespace 2022-11-10 10:32:04 +01:00
berniev
f4ffd15864 Mod: redundant void 2 2022-08-08 10:27:50 +02:00
wmayer
a93082bc06 PD: [skip ci] Fix several clazy issues:
* Maybe you meant to call base method instead [-Wclazy-skipped-base-method]
* Missing reference in range-for with non trivial type [-Wclazy-range-loop-reference]
* Mixing iterators with const_iterators [-Wclazy-strict-iterators]
* Unused QByteArray [-Wclazy-unused-non-trivial-variable]
* C++11 range-loop might detach Qt container (QList) [-Wclazy-range-loop-detach]
2022-07-25 13:40:19 +02:00
Uwe
dfecb337e7 [PD] remove more superfluous nullptr checks 2022-07-18 01:33:28 +02:00
Uwe
16b25c5dab [PD] remove superfluous nullptr checks 2022-07-17 18:12:41 +02:00
wmayer
0f5725b34a modernize C++: replace boost::function with std::function 2022-06-30 20:31:55 +02:00
wmayer
d92c018eb6 PD: fixes #6451: Face color of PartDesign Body not exported to STEP 2022-05-24 16:42:27 +02:00
wmayer
d1d4b996e7 PD: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
wmayer
8f786ea6ef Gui: Optimize includes to reduce compile time 2022-03-07 20:29:18 +01:00
Uwe
f5da0f3c56 [PD] Body and utils: remove unused includes 2022-02-20 21:23:05 +01:00
Uwe
1345c4ae8e [PD] ViewProviderBody: add missing include 2022-02-18 04:25:20 +01:00
Uwe
eff6c4c66b [PD] ViewProviderBody: remove unused includes
- also sot the includes
2022-02-18 04:01:02 +01:00
wmayer
d6169d6478 boost: fix for boost < 1.60 2020-06-15 19:38:39 +02:00
wmayer
730154a684 boost 1.73.0: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated 2020-06-12 17:51:33 +02:00
0penBrain
f5a2eb0f59 PartDesign : make possible to prevent auto-switching to PartDesign WB when a Body is activated
* Use a boolean parameter located at BaseApp/Preferences/Mod/PartDesign/SwitchToWB
   * resolves #2703
2019-09-11 21:32:41 +02:00
Zheng, Lei
e976232ed7 PartDesign: fix ViewProviderBody tip icon update 2019-09-07 16:59:55 +02:00
Zheng, Lei
432c9ae15b Gui/PartDesign: fix setActiveObject() for Part and Body 2019-08-30 15:02:48 +02:00
Zheng, Lei
cd2b7e297c PartDesign changes
* Mostly for supporting in-place editing

* Add new SubShapeBinder that support cross coordinate system,
  external, and sub-object binding
2019-08-17 15:15:47 +02:00
wmayer
c3763479da activate/create 3d view when setting or getting active objects 2019-07-05 18:53:35 +02:00
luz.paz
b7b433e461 Misc. typo and whitespace fixes
Found via `codespell`
2019-04-30 10:15:59 -03:00
wmayer
00de5bb7ad Replace Base::Exception with appropriate subclass 2018-11-14 19:28:00 +01:00
wmayer
f04d4430aa improve exception handling in ViewProviderBody::dropObject 2018-04-04 17:14:21 +02:00
wmayer
c5ae798026 in ViewProviderBody::updateData make sure a view provider exists 2018-02-09 22:14:44 +01:00
Abdullah Tahiri
3ea4debaf3 PartDesign: Highlight body tip
==============================

It generates a small green icon on the treeview for those features being the tip of the body.
2018-02-01 19:15:48 +01:00
wmayer
28c2baefbf fixes #0002559: Body becomes visible upon changing DisplayModeBody 2018-01-30 15:58:32 +01:00
luz.paz
831bf31817 Misc. typos
+ stepcode typo submitted upsream https://github.com/stepcode/stepcode/pull/372
2018-01-07 18:41:29 -02:00
wmayer
595f77050e allow to move PD objects via drag and drop to a body 2018-01-04 00:11:28 +01:00
wmayer
a8f486663e fix crash in ViewProviderBody::setVisualBodyMode due to missing view provider 2018-01-03 17:59:45 +01:00
luzpaz
0bafb04924 PartDesign: typos 2017-12-25 11:04:43 +01:00
wmayer
3923438307 add 2d features to body for drag and drop 2017-11-05 12:37:46 +01:00
wmayer
3ea4ee8a67 when inside the body has been created then hide the linked base feature 2017-09-22 17:57:37 +02:00
wmayer
17ffe48f96 implement drag and drop for body view provider 2017-09-22 13:12:20 +02:00
wmayer
f351220183 add transform command to body 2017-09-21 17:32:22 +02:00
Stefan Tröger
5e079d331b Improve GeoFeatureGroup claim children algorithm and remove special Body impelmentation 2017-09-21 13:02:16 +02:00
Stefan Tröger
6ae8b6482e PartDesign: Make Base Feature compatible with GeoFeatureGroup. fixes #0003080
The Original BaseFeature implementation had some serious issues with scoped links. It failed completely for e.g. sketches on the BaseFeature as it made a local link to refere to a out of body object. The only solution to make this work correctly is to add a proxy object into the body which is alloed to exactly that, to link outside oof the body. Something like shapebinder.
2017-09-21 11:40:14 +02:00
Abdullah Tahiri
b4e942c08b Checking for Document Restoring when extension has a null property
==================================================================

The problem:

OriginGroupExtension::OriginGroupExtension () {

    initExtensionType(OriginGroupExtension::getExtensionClassTypeId());

    EXTENSION_ADD_PROPERTY_TYPE ( Origin, (0), 0, App::Prop_Hidden, "Origin linked to the group" );
}

initializes the Origin property to null.

Then Document::Restore => readObjects => addObject => slotNewObject => ViewProviderDocumentObject::updateView => ViewProviderBody::updateData => ViewProviderGeometryObject::updateData =>
ViewProviderDocumentObject::updateData => ViewProvider::updateData => ViewProviderOriginGroupExtension::extensionUpdateData => updateOriginSize() => OriginGroupExtension::getOrigin,

the latter throws an exception because the origin property is null.

Afterwards, the origin property is initialized during Document::Restore => readObjects => ExtensionContainer::Restore() => PropertyContainer::Restore() => App::PropertyLink::Restore()
=> App::PropertyLink::setValue() => Property::hasSetValue, which triggers an onChange: Body::onChanged => BodyBase::onChanged => Feature::onChanged => DocumentObject::onChanged =>
Document::onChangedProperty => Document::slotChangedObject => ViewProviderOriginGroupExtension::slotChangedObjectGui => ViewProviderOriginGroupExtension::updateOriginSize =>
OriginGroupExtension::getOrigin,

now, the latter that is the same that was throwing the exception and generating the error message above, does not throw anymore because Origin has been initialized.

When creating a new object, isNew==true; whereas when loading a file, isNew==false. Therefore, when loading a file setupObject is not executed. SetupObject, effectively initializes
the extension via: Body::setupObject => DocumentObject::setupObject => OriginGroupExtension::onExtendedSetupObject.

DocumentObject * Document::addObject(const char* sType, const char* pObjectName, bool isNew)
{
    [more code here]
    // Call the object-specific initialization
    if (!d->undoing && !d->rollback && isNew) {
        pcObject->setupObject ();
    }
    [more code here]

As DocumentObject code is generic for all objects (workbenches), by design it was chosen to initialize the object only if new. Therefore a object or an extension of a object being restored,
between the addition (addObject) and the restoring of the properties, must by design expect it not to be initialized.

The solution:

Making use of the Restore flag at document level (the one at object level is not sufficient), no exception regarding the null property is reported during document restoring.

Ticket:
https://freecadweb.org/tracker/view.php?id=2530

fixes #2530
2017-05-30 13:01:45 +02:00
Kunda
9410e751e9 source typo fixes pt4 (only on py3 merged code) 2017-03-02 13:47:21 +01:00