Forbid renaming of the objects "in place" by default.

This commit is contained in:
rnv 2012-03-07 11:38:38 +00:00
parent aa5b2185c9
commit 205001b2a0
2 changed files with 32 additions and 9 deletions

View File

@ -2179,6 +2179,25 @@ void GeometryGUI::onViewAboutToShow()
}
}
/*!
\brief Check if this object is can't be renamed in place
This method can be re-implemented in the subclasses.
Return true in case if object isn't reference or component (module root).
\param id column id
\return \c true if the item can be renamed by the user in place (e.g. in the Object browser)
*/
bool GeometryGUI::renameAllowed( const QString& entry) const {
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
SalomeApp_Study* appStudy = app ? dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) : 0;
SalomeApp_DataObject* obj = appStudy ? dynamic_cast<SalomeApp_DataObject*>(appStudy->findObjectByEntry(entry)) : 0;
return (app && appStudy && obj && !appStudy->isComponent(entry) && !obj->isReference());
}
/*!
Rename object by entry.
\param entry entry of the object
@ -2186,24 +2205,26 @@ void GeometryGUI::onViewAboutToShow()
\brief Return \c true if rename operation finished successfully, \c false otherwise.
*/
bool GeometryGUI::renameObject( const QString& entry, const QString& name) {
bool appRes = SalomeApp_Module::renameObject(entry,name);
if( !appRes )
return false;
bool result = false;
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication());
SalomeApp_Study* appStudy = app ? dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) : 0;
if(!appStudy)
return result;
_PTR(Study) aStudy = appStudy->studyDS();
if(!aStudy)
return result;
bool aLocked = (_PTR(AttributeStudyProperties)(appStudy->studyDS()->GetProperties()))->IsLocked();
if ( aLocked ) {
SUIT_MessageBox::warning ( app->desktop(), QObject::tr("WRN_WARNING"), QObject::tr("WRN_STUDY_LOCKED") );
return result;
}
_PTR(SObject) obj ( aStudy->FindObjectID(qPrintable(entry)) );
_PTR(GenericAttribute) anAttr;
if ( obj ) {
@ -2220,3 +2241,4 @@ bool GeometryGUI::renameObject( const QString& entry, const QString& name) {
}
return result;
}

View File

@ -117,6 +117,7 @@ public:
void ActiveWorkingPlane();
virtual bool renameObject( const QString&, const QString& );
virtual bool renameAllowed( const QString& ) const;
virtual void windows( QMap<int, int>& ) const;
virtual void viewManagers( QStringList& ) const;