HYDROGUI_Operation::HYDROGUI_Operation( HYDROGUI_Module* theModule )
: LightApp_Operation(),
myModule( theModule ),
- myPanel( 0 )
+ myPanel( 0 ),
+ myIsPrintErrorMessage( true )
{
+ connect( this, SIGNAL( helpContextModule( const QString&, const QString&,
+ const QString& ) ),
+ theModule->application(), SLOT( onHelpContextModule( const QString&,
+ const QString&, const QString& ) ) );
}
HYDROGUI_Operation::~HYDROGUI_Operation()
( ( HYDROGUI_Operation* )this )->myPanel = createInputPanel();
connect( myPanel, SIGNAL( panelApply() ), this, SLOT( onApply() ) );
connect( myPanel, SIGNAL( panelCancel() ), this, SLOT( onCancel() ) );
+ connect( myPanel, SIGNAL( panelHelp() ), this, SLOT( onHelp() ) );
}
return myPanel;
}
void HYDROGUI_Operation::startDocOperation()
{
// Open transaction in the model document
- doc()->StartOperation();
+ if ( !doc()->IsOperation() )
+ doc()->StartOperation();
}
void HYDROGUI_Operation::abortDocOperation()
{
// Abort transaction in the model document
- doc()->AbortOperation();
+ if ( doc()->IsOperation() )
+ doc()->AbortOperation();
}
void HYDROGUI_Operation::commitDocOperation()
{
// Commit transaction in the model document
- doc()->CommitOperation( HYDROGUI_Tool::ToExtString( getName() ) );
+ if ( doc()->IsOperation() )
+ doc()->CommitOperation( HYDROGUI_Tool::ToExtString( getName() ) );
}
Handle_HYDROData_Document HYDROGUI_Operation::doc() const
else
{
abortDocOperation();
+ printErrorMessage( anErrorMsg );
+
+ // If the operation has no input panel - do abort
+ if ( !inputPanel() ) {
+ abort();
+ }
+ }
+}
+
+void HYDROGUI_Operation::setPrintErrorMessage( const bool theIsPrint )
+{
+ myIsPrintErrorMessage = theIsPrint;
+}
+
+void HYDROGUI_Operation::printErrorMessage( const QString& theErrorMsg )
+{
+ if ( myIsPrintErrorMessage )
+ {
QString aMsg = tr( "INPUT_VALID_DATA" );
- if( !anErrorMsg.isEmpty() )
- aMsg.prepend( anErrorMsg + "\n" );
+ if( !theErrorMsg.isEmpty() )
+ aMsg.prepend( theErrorMsg + "\n" );
SUIT_MessageBox::critical( module()->getApp()->desktop(),
tr( "INSUFFICIENT_INPUT_DATA" ),
- aMsg );
+ aMsg );
+
}
+
+ myIsPrintErrorMessage = true;
}
void HYDROGUI_Operation::onCancel()
processCancel();
abort();
}
+
+void HYDROGUI_Operation::onHelp()
+{
+ emit helpContextModule( getHelpComponent(), getHelpFile(), getHelpContext() );
+}
+
+QString HYDROGUI_Operation::getHelpComponent() const
+{
+ return module()->moduleName();
+}
+
+QString HYDROGUI_Operation::getHelpFile() const
+{
+ QString aFileName = ((myName.isEmpty())? operationName() : myName);
+ return aFileName.replace(QRegExp("\\s"), "_").append(".html");
+}
+
+QString HYDROGUI_Operation::getHelpContext() const
+{
+ return QString();
+}
+
+