]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Appends a License dialog in case of using "--useLicense" flag in application command...
authornds <nds@opencascade.com>
Wed, 20 Aug 2008 08:25:30 +0000 (08:25 +0000)
committernds <nds@opencascade.com>
Wed, 20 Aug 2008 08:25:30 +0000 (08:25 +0000)
src/SUITApp/SUITApp.cxx

index 3e0f483d6edd33272e569faf8cad3baab58344b4..28bda860d3b90c6332fd3bc6351dc7fd2ed2ff38 100644 (file)
@@ -32,6 +32,7 @@
 #include <Style_Model.h>
 #include <QtxSplash.h>
 
+#include <SUIT_LicenseDlg.h>
 #ifdef SUIT_ENABLE_PYTHON
 #include <Python.h>
 #endif
 
 #include <stdlib.h>
 
+#ifdef WIN32
+#include <UserEnv.h>
+#endif
+
 static QString salomeVersion()
 {
   QString path( ::getenv( "GUI_ROOT_DIR" ) );
@@ -167,6 +172,7 @@ int main( int args, char* argv[] )
   bool noExceptHandling = false;
   bool iniFormat        = false;
   bool noSplash         = false;
+  bool useLicense       = false;
   for ( int i = 1; i < args /*&& !noExceptHandling*/; i++ )
   {
     if ( !strcmp( argv[i], "--noexcepthandling" ) )
@@ -175,13 +181,41 @@ int main( int args, char* argv[] )
       iniFormat = true;
     else if ( !strcmp( argv[i], "--nosplash") )
       noSplash = true;
-    else
+       else if ( !strcmp( argv[i], "--uselicense" ) )
+      useLicense = true;
+       else
       argList.append( QString( argv[i] ) );
   }
 
   SUITApp_Application app( args, argv );
 
   int result = -1;
+
+  if ( useLicense ) {
+    QString env;
+
+#ifdef WIN32
+    DWORD aLen=1024;
+    char aStr[1024];
+    HANDLE aToken=0;
+    HANDLE hProcess = GetCurrentProcess();
+    OpenProcessToken(hProcess,TOKEN_QUERY,&aToken);
+    if( GetUserProfileDirectory( aToken, aStr, &aLen ) )
+      env = aStr;
+
+#else
+    if ( ::getenv( "HOME" ) )
+      env = ::getenv( "HOME" );
+#endif
+    QFile file( env + "/ReadLicense.log" ); // Read the text from a file    
+    if( !file.exists() ) {
+      SUIT_LicenseDlg aLicense;
+      if ( aLicense.exec() != QDialog::Accepted ) 
+        return result;
+    }
+  }
+
   if ( !argList.isEmpty() )
   {
     SUITApp_Session* aSession = new SUITApp_Session( iniFormat );