Salome HOME
fix conflict between stadard mode and salome_on_demand mode
authorDUC ANH HOANG <dh77501n@dsp1043837>
Fri, 19 Jan 2024 10:03:01 +0000 (11:03 +0100)
committerDUC ANH HOANG <dh77501n@dsp1043837>
Fri, 19 Jan 2024 10:03:01 +0000 (11:03 +0100)
src/LightApp/LightApp_Application.cxx
src/SalomeApprc_utils/SalomeApprc_utils.cxx
src/SalomeApprc_utils/SalomeApprc_utils.h

index 8d7676bdfd633d7c72ab900f08d5a03aa39d16d8..f14da6ff25ccff976d5d3159a9e5b720601da95f 100644 (file)
@@ -899,14 +899,14 @@ void LightApp_Application::customize()
   LightApp_ModuleAction* moduleAction = qobject_cast<LightApp_ModuleAction*>( action( ModulesListId ) );
   // a. regular modules were added in createActions() method
   // b. here we add custom modules (manually added by the user)
-  if ( HAS_SALOME_ON_DEMAND )
+  if ( HAS_SALOME_ON_DEMAND && QString::compare(getenv("SALOME_ON_DEMAND"),"HIDE", Qt::CaseInsensitive) != 0)
   {
     // Update rc file
     updateSalomeApprc();
 
     QStringList modList = resourceMgr()->stringValue( "launch", "user_modules" ).split( ";", QString::SkipEmptyParts );
     foreach ( QString aModule, modList )
-      addUserModule(  aModule, resourceMgr()->stringValue( "user_modules", aModule ) );
+      addUserModule(  aModule, resourceMgr()->stringValue( "user_modules", aModule ), true );
   }
   else
   {
@@ -924,9 +924,9 @@ void LightApp_Application::updateSalomeApprc()
 
     QString salomemodules(getenv("SALOME_MODULES"));
     if(salomemodules.isEmpty())
-        AddComponents_from_salomeappdir(  QDir(extRootDir), resMgr );
+        UpdateCompInfo_with_salomeappdir(  QDir(extRootDir), resMgr );
     else
-        AddComponents_from_salomemodules(salomemodules, QDir(extRootDir), resMgr);
+        UpdateCompInfo_with_salomemodules(salomemodules, QDir(extRootDir), resMgr);
 }
 
 /*!On module activation action.*/
@@ -1049,6 +1049,9 @@ void LightApp_Application::onExtAdding()
 /*Add user module.*/
 bool LightApp_Application::addUserModule( const QString& name, const QString& root, bool interactive )
 {
+  if ( name == "KERNEL" || name == "GUI" )
+    return false; // skip KERNEL and GUI modules
+
   if ( name.isEmpty() || root.isEmpty() )
     return false;
 
index 17a8ed214627ba7a5feb73649fa1684e990938e7..21b57a2eaf83183f50a2c491aa240b918b3edbcb 100644 (file)
@@ -1,7 +1,11 @@
 #include "SalomeApprc_utils.h"
 
-void AddComponents_from_salomeappdir(const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr)
+void UpdateCompInfo_with_salomeappdir(const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr)
 {
+       // Remove module list and  module_root_dirs list
+       ResMgr->remove("launch", "user_modules");
+       ResMgr->remove("user_modules");
+
        QFileInfoList salomexd_list = salomeappdir.entryInfoList(QStringList() << "*.salomexd",QDir::Files);
        foreach(QFileInfo filename, salomexd_list)
     {
@@ -46,8 +50,12 @@ void AddComponents_from_salomeappdir(const QDir& salomeappdir, SUIT_ResourceMgr*
     }
 }
 
-void AddComponents_from_salomemodules(const QString& salomemodules, const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr)
+void UpdateCompInfo_with_salomemodules(const QString& salomemodules, const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr)
 {
+       // Remove module list and  module_root_dirs list
+       ResMgr->remove("launch", "user_modules");
+       ResMgr->remove("user_modules");
+
        QRegularExpression sep(":|,");
        QStringList components_list = salomemodules.split(sep,QString::SkipEmptyParts);
        foreach (QString comp, components_list)
@@ -61,11 +69,10 @@ void AddComponents_from_salomemodules(const QString& salomemodules, const QDir&
                AddGuiComponent(comp, comp_root_dir, ResMgr);
        }
 
-
 }
 void AddGuiComponent(const QString& comp, const QString& CompRoot, SUIT_ResourceMgr* ResMgr)
 {
-       QStringList CompsResMgr;
+       QStringList CompsResMgr = ResMgr->stringValue("launch", "user_modules").split(";", QString::SkipEmptyParts);
        ResMgr->setValue( "user_modules", comp, CompRoot );
 
        CompsResMgr << comp;
index c1dbcd7e88f32eebe3d33f5b509443aaebb384b2..ae465d05ecc69910cfeee2c81fc6aebfbb7cdd37 100644 (file)
@@ -11,8 +11,8 @@
 
 const QString ITERACTIVE_EXTCOMPONENT_KEY("salome_interactive");
 
-void AddComponents_from_salomeappdir(const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr);
-void AddComponents_from_salomemodules(const QString& salomemodules, const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr);
+void UpdateCompInfo_with_salomeappdir(const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr);
+void UpdateCompInfo_with_salomemodules(const QString& salomemodules, const QDir& salomeappdir, SUIT_ResourceMgr* ResMgr);
 void AddGuiComponent(const QString& comp, const QString& CompRoot, SUIT_ResourceMgr* ResMgr );
 
 #endif
\ No newline at end of file