Salome HOME
Initial version
[modules/gui.git] / src / SalomeApp / SalomeApp_Tools.cxx
1 #include "SalomeApp_Tools.h"
2
3 #include <SUIT_Session.h>
4 #include <SUIT_Desktop.h>
5 #include <SUIT_MessageBox.h>
6
7 #include <utilities.h>
8
9 Quantity_Color SalomeApp_Tools::color( const QColor& c )
10 {
11         Quantity_Color aColor;
12         if ( c.isValid() )
13                 aColor = Quantity_Color( c.red() / 255., c.green() / 255., c.blue() / 255., Quantity_TOC_RGB );
14         return aColor;
15 }
16
17 QColor SalomeApp_Tools::color( const Quantity_Color& c )
18 {
19         return QColor( (int)( c.Red() * 255 ), (int)( c.Green() * 255 ), (int)( c.Blue() * 255 ) );
20 }
21
22 QString SalomeApp_Tools::ExceptionToString( const SALOME::SALOME_Exception& S_ex )
23 {
24   QString message;
25   
26   switch ( S_ex.details.type )
27   {
28   case SALOME::COMM:
29   case SALOME::INTERNAL_ERROR:
30     {
31             message = QString( S_ex.details.text );
32             QString source( S_ex.details.sourceFile );
33             QString line;
34             line.setNum( S_ex.details.lineNumber );
35             message = message + " \n" + source + " : " + line;
36       break;
37     }
38   case SALOME::BAD_PARAM:
39     {
40             message = QString( S_ex.details.text );
41 #ifdef _DEBUG_
42             QString source( S_ex.details.sourceFile );
43             QString line;
44             line.setNum( S_ex.details.lineNumber );
45             message = message + " \n" + source + " : " + line;
46 #endif
47             break;
48     }
49   default:
50     {
51             message = QString( "SALOME CORBA Exception Type invalid" );
52             QString source( S_ex.details.sourceFile );
53             QString line;
54             line.setNum( S_ex.details.lineNumber );
55             message = message + " \n" + source + " : " + line;
56             break;
57     }
58   }
59   return message;
60 }
61
62 void SalomeApp_Tools::QtCatchCorbaException( const SALOME::SALOME_Exception& S_ex )
63 {
64   QString message = ExceptionToString( S_ex );
65
66   QString title;
67   bool error = true;
68   switch ( S_ex.details.type )
69   {
70   case SALOME::COMM:
71   case SALOME::INTERNAL_ERROR:
72     title = QObject::tr( "Engine Error" );
73     break;
74   case SALOME::BAD_PARAM:
75     error = false;
76     title = QObject::tr( "Engine Warning" );
77           break;
78   default:
79     title = QObject::tr( "Internal SALOME Error" );
80     break;
81   }
82
83   if ( error )
84     SUIT_MessageBox::error1( SUIT_Session::session()->activeApplication()->desktop(),
85                                    title, message, QObject::tr( "OK" ) );
86   else
87     SUIT_MessageBox::warn1( SUIT_Session::session()->activeApplication()->desktop(),
88                                   title, message, QObject::tr( "OK" ) );
89
90 }