Commit Graph

711 Commits

Author SHA1 Message Date
Abdullah Tahiri
70a9cce767 Notification to the user that a body is not active when inserting a datum entity - fixes #2511 2017-05-31 02:41:29 +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
Yorik van Havre
de4d33cb84 Updated translations 2017-05-25 10:04:05 -03:00
asiersarasua
4564e4f4a4 Fix typos 2017-04-20 09:49:19 +02:00
wmayer
a3be7248ac fix segmentation fault in TaskFeaturePick::makeCopy 2017-04-17 11:07:54 +02:00
wmayer
7a97e815c1 when removing faces in thickness tool via context menu then remove selection gate 2017-04-15 13:29:19 +02:00
wmayer
e96aafd6e1 do not use translated text for icon names 2017-04-15 12:58:35 +02:00
wmayer
c526c18b94 fix scan coverity issues: uncaught exception 2017-04-11 14:03:08 +02:00
Abdullah Tahiri
7e69c6699d Part Design: Keep body transparency when adding a new feature
=============================================================

Prior this commit, if a body has transparency (let's say 55%) and a new feature is added, the transparency is lost until you update it again in the body.

This prevents to actually see through while editing the feature (e.g. while setting the length of a pad) and is very annoying as the user
is required to go back to the body properties, where the old value (e.g. 55%) would still be there and change it to another value (56%) to effect it.
2017-04-11 10:41:27 +02:00
wmayer
6840b7a2e1 avoid possibly crash when trying to add objects to the wrong document 2017-04-07 15:32:22 +02:00
wmayer
2bb5f432d3 properly close task dialog when document is getting closed 2017-04-07 15:16:04 +02:00
wmayer
9637dcbd44 close sketch selection task panel on undo 2017-04-07 13:07:52 +02:00
wmayer
c241c5b309 perform auto view fit when creating body object on sketch creation 2017-04-07 10:22:40 +02:00
Ian Rees
3f9aead061 Make Body object on creation of Sketch/Primitive 2017-04-06 19:26:19 +02:00
Ian Rees
c51f4ff4c6 Add abort method to PartDesign TaskDlgFeaturePick 2017-04-06 19:26:19 +02:00
Ian Rees
a22480d3ef Refactor PartDesign create primitive commands 2017-04-06 19:26:19 +02:00
Sergo
34b2baeeea issue #2808 2017-03-20 21:39:53 +01:00
AjinkyaDahale
d0da403adc fixes #2964, #2968
0002964: PartDesign Datum geometry invisible in 3D view if no geometry
present in Body
0002968: Datum items invisible on opening saved files
2017-03-19 18:09:15 -03:00
usakhelo
13faa806e2 fix groove 2017-03-18 19:09:16 +01:00
Sergo
b55f33b41e set referenceaxis properly and fix getaxis 2017-03-18 19:09:16 +01:00
Sergo
2ae0a313a2 fix revolve and groove when no sketches in selection or when no sketches in active body 2017-03-18 19:09:16 +01:00
Sergo
160b55e3cc stop revolve if no sketches in selection 2017-03-18 19:09:16 +01:00
Kurt Kremitzki
85c976aa28 Remove unused sketcher commands in PDN 2017-03-15 10:35:52 -03:00
DeepSOIC
56d11aa628 PartDesign: fix non-selectable datum features 2017-03-15 10:32:43 -03:00
Sergo
a559078c7d stop profile based and primitives if file is in undetermined workflow 2017-03-07 13:51:42 -03:00
Sergo
48ebbeb255 stop dressup features when applied to non-acitve body 2017-03-07 13:51:42 -03:00
Sergo
a2a497e8c6 fixing transformed features and guessworkflow 2017-03-07 13:51:42 -03:00
Sergo
516a979cf2 fixing dressup features 2017-03-07 13:51:42 -03:00
Sergo
eb48068420 fix pd tools from running when no active parts 2017-03-07 13:51:42 -03:00
Yorik van Havre
9f44809e9e Updated translations with latest files from crowdin 2017-03-06 11:53:09 -03:00
DeepSOIC
096eb67b47 PartPesign: Py: expose some methods of ViewProvider
* setBodyMode(bool)
* makeTemporaryVisible(bool)
2017-03-04 19:16:39 -03:00
DeepSOIC
5e5b3f8b61 PartDesign: add ViewProviderPython
+ bind PartDesign::Feature to PartDesign::ViewProvider, and adjust
viewprovider of PartDesign::FeaturePython accordingly.
2017-03-04 19:16:39 -03:00
Kunda
9410e751e9 source typo fixes pt4 (only on py3 merged code) 2017-03-02 13:47:21 +01:00
wmayer
4dc97ffd92 revert commit 44c31b35b and fix original code 2017-03-01 22:54:14 +01:00
wmayer
3507c97963 py3: ported PartDesign to python3 2017-03-01 17:19:33 +01:00
hgutsche
89077ea542 fiel --> file 2017-02-28 18:52:04 +01:00
hgutsche
201c9d89b0 Some fixes for doygen syntax errors and some configuration to make it run smoother under Windows 2017-02-28 18:52:04 +01:00
Wolfgang E. Sanyer
7ba80cc36c Fixed typo. 2017-02-27 10:26:00 +01:00
Alexander Gryson
8369ca4168 Updates based on forum feedback 2017-02-21 14:13:23 +01:00
Alexander Gryson
6f9ac6aa86 Update metadata 2017-02-21 14:13:23 +01:00
Alexander Gryson
04ab477113 Align PartDesign Workbench icons to guidelines 2017-02-21 14:13:23 +01:00
wmayer
6e69e704f1 handle Coin3d version older than 4.0 2017-02-11 22:35:04 +01:00
wmayer
65355b07c1 fix OSX build failure due to outdated Coin3d version 2017-02-10 22:09:53 +01:00
wmayer
6333e3630c issue #0002503: Invisible pad object 2017-02-10 17:19:01 +01:00
Ajinkya Dahale
4ae32c8851 Minor bug in PartDesignGui::ViewProviderPipe
Assert excludes any "Edge1"
2017-02-01 09:08:05 +05:30
wmayer
7b782e595f fix crash when pressing cancel on pipe task panel 2017-01-24 15:00:41 +01:00
wmayer
4dcb8d64d8 fix crash when cancelling revolution task panel 2017-01-23 23:24:40 +01:00
wmayer
5aac8e3b13 issue #0002836: Crash in sketcher 2017-01-23 22:48:02 +01:00
wmayer
a0517c1036 TaskTransformedParameters derives from Gui::DocumentObserver to handle deletion of view provider when clicking Cancel button 2017-01-22 19:07:07 +01:00
Stefan Tröger
098a27aaa4 PartDesign: Show origin for primitive editing 2017-01-04 16:01:58 +01:00