/// or return null. If the current widget of the operation is a viewer selector, it returns null.
ModuleBase_ModelWidget* internalActiveWidget() const;
+ /// Return true if the current edit operation is an internal
+ bool isInternalEditActive() const;
+
+ /// if the internal flags allow it and the manager is active, it starts an internal edit operation
+ /// for the created operation.
+ /// \param thePreviousAttributeID an index of the previous active attribute
+ //bool restartOperation(const std::string& thePreviousAttributeID);
+ bool processEnter(const std::string& thePreviousAttributeID);
+
/// Resets the internal flags
/// \param theOperation a started operation
void operationStarted(ModuleBase_Operation* theOperation);
/// the current feature is a line and there are not obligate widgets anymore
void onVertexSelected();
- /// SLOT, that is called by enter key released
- /// Set a specific type of restarting the current operation to do not use the feature
- /// for initialization of a new started operation.
- void onEnterReleased();
+ /// Deactivates selection and filters of the first operation widget if it is an internal
+ /// 'edit' operation
+ void onBeforeStopped();
private:
/// Returns true if the current operation is a sketch or a nested sketch operation
/// Sets the focus to the last control of the property panel and activates selection
/// of the first widget to can select first value of the next create operation
/// \param thePreviousAttributeID an index of the previous attribute to set focus to this widget
- void startInternalEdit(const std::string& thePreviousAttributeID);
+ /// \return true if it is started
+ bool startInternalEdit(const std::string& thePreviousAttributeID);
+
+ /// Disconnects this manager from operation signals, deactivate selection of the first control
+ /// in the viewer.
+ void beforeStopInternalEdit();
/// Commits the current operation and launches a new with the commited operation feature index
void restartOperation();
+ /// Creates an internal feature and controls to process it
+ void createInternalFeature();
+
+ /// A pair method for an internal creation to remove it and clear all created controls
+ void deleteInternalFeature();
+
/// Breaks sequense of automatically resterted operations
void resetFlags();
RestartingMode myRestartingMode; /// automatical restarting mode flag
bool myIsFlagsBlocked; /// true when reset of flags should not be perfromed
bool myIsInternalEditOperation; /// true when the 'internal' edit is started
+
+ FeaturePtr myInternalFeature;
+ QWidget* myInternalWidget;
+ ModuleBase_ModelWidget* myInternalActiveWidget;
+ std::string myNoMoreWidgetsAttribute;
};
#endif