// name : SMESHGUI_Operation
// Purpose : Constructor
//=======================================================================
-SMESHGUI_Operation::SMESHGUI_Operation( SalomeApp_Application* app )
-: SalomeApp_Operation( app )
+SMESHGUI_Operation::SMESHGUI_Operation()
+: SalomeApp_Operation()
{
-
}
SMESHGUI_Operation::~SMESHGUI_Operation()
//=======================================================================
void SMESHGUI_Operation::startOperation()
{
+ if( dlg() )
+ {
+ disconnect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
+ disconnect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
+ disconnect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
+
+ if( dlg()->testButtonFlags( QtxDialog::OK ) )
+ connect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
+
+ if( dlg()->testButtonFlags( QtxDialog::Apply ) )
+ connect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
+
+ if( dlg()->testButtonFlags( QtxDialog::Cancel ) )
+ connect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
+ }
+
SalomeApp_Operation::startOperation();
}
else
{
int pos = str.find( idChar() );
- QString entry = str.left( pos-1 ),
+ QString entry = str.left( pos ),
_id = str.mid( pos+1 );
bool ok;
int id = _id.toInt( &ok );
// name : prefix
// Purpose : Get prefix for module types
//=======================================================================
-int SMESHGUI_Operation::prefix( const QString& name ) const
+int SMESHGUI_Operation::prefix( const QString& name )
{
if( name == "GEOM" )
return 100;
{
return '#';
}
+
+//=======================================================================
+// name : setDialogActive
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::setDialogActive( const bool active )
+{
+ SalomeApp_Operation::setDialogActive( active );
+
+ SMESHGUI_Dialog* d = dynamic_cast<SMESHGUI_Dialog*>( dlg() );
+ if( d )
+ d->setContentActive( active );
+
+}
+
+//=======================================================================
+// name : studyDS
+// Purpose :
+//=======================================================================
+_PTR(Study) SMESHGUI_Operation::studyDS() const
+{
+ SalomeApp_Study* s = dynamic_cast<SalomeApp_Study*>( study() );
+ if( s )
+ return s->studyDS();
+}
+
+//=======================================================================
+// name : onOk
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::onOk()
+{
+ if( onApply() )
+ commit();
+ else
+ abort();
+}
+
+//=======================================================================
+// name : onApply
+// Purpose :
+//=======================================================================
+bool SMESHGUI_Operation::onApply()
+{
+ return false;
+}
+
+//=======================================================================
+// name : onClose
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::onCancel()
+{
+ abort();
+}
+
+//=======================================================================
+// name : commitOperation
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::commitOperation()
+{
+ selectionMgr()->clearFilters();
+ SalomeApp_Operation::commitOperation();
+}
+
+//=======================================================================
+// name : abortOperation
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::abortOperation()
+{
+ selectionMgr()->clearFilters();
+ SalomeApp_Operation::abortOperation();
+}
#define SMESHGUI_Operation_H
#include <SalomeApp_Operation.h>
+#include <SMESHGUI_Dialog.h>
#include <SALOME_InteractiveObject.hxx>
#include <SVTK_Selection.h>
+#include <SALOMEDSClient.hxx>
+
class SMESHGUI;
class SVTK_ViewWindow;
class SVTK_Selector;
Q_OBJECT
public:
- SMESHGUI_Operation( SalomeApp_Application* );
+ SMESHGUI_Operation();
virtual ~SMESHGUI_Operation();
+ static int prefix( const QString& );
+ // Return hard-coded prefix using to differ intersecting types
+
protected:
typedef enum
{
const TColStd_MapOfInteger&, const bool );
virtual void startOperation();
+ virtual void commitOperation();
+ virtual void abortOperation();
virtual bool isReadyToStart();
SMESHGUI* getSMESHGUI() const;
SVTK_ViewWindow* viewWindow() const;
SVTK_Selector* selector() const;
+ _PTR(Study) studyDS() const;
- virtual int prefix( const QString& ) const;
- // Return hard-coded prefix using to differ intersecting types
-
- virtual void selected( QStringList&, SalomeApp_Dialog::TypesList&, QStringList& ) const;
- // Get names, types and ids of selected objects
-
+ //! Get names, types and ids of selected objects
+ virtual void selected( QStringList&, SMESHGUI_Dialog::TypesList&, QStringList& ) const;
+
+ //! Find type by id
virtual int typeById( const QString&, const SelectedObjectType ) const;
- // Find type by id
-
+
+ //! Char using to divide <entry> and <id> in string id representation. By default, '#'
virtual QChar idChar() const;
- // Char using to divide <entry> and <id> in string id representation
- // By default, '#'
+ //! Set accroding dialog active or inactive
+ virtual void setDialogActive( const bool );
+
+protected slots:
+ virtual void onOk();
+ virtual bool onApply();
+ virtual void onCancel();
};
#endif