]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
[bos #29467] [EDF] (2022-T1) Logging of SALOME usage: specific log in SALOME
authorjfa <jfa@opencascade.com>
Thu, 26 May 2022 11:48:51 +0000 (14:48 +0300)
committerjfa <jfa@opencascade.com>
Thu, 26 May 2022 11:48:51 +0000 (14:48 +0300)
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Application.h

index e687135f6a656301e7679061818e350dba879162..d2682e7dca503424c4598206e359b88198a670f8 100644 (file)
 #include <QMimeData>
 #include <QShortcut>
 #include <QRegExp>
+#include <QMutex>
+#include <QMutexLocker>
 
 #include <utilities.h>
 
@@ -5423,6 +5425,47 @@ bool LightApp_Application::checkExistingDoc( bool closeExistingDoc )
   return result;
 }
 
+/*!
+  Log GUI action
+*/
+void LightApp_Application::logUserEvent(const QString& eventDescription)
+{
+  static QString _gui_log_file_ = "Not initialized";
+  static QMutex aGUILogMutex;
+  if (_gui_log_file_ == "Not initialized") {
+    std::cout << "!!!***aaajfa***!!! _gui_log_file_ initialization" << std::endl;
+    _gui_log_file_ = "";
+    QStringList args = QApplication::arguments();
+    for (int i = 1; i < args.count(); i++) {
+      QRegExp rxs ("--gui-log-file=(.+)");
+      if (rxs.indexIn( args[i] ) >= 0 && rxs.capturedTexts().count() > 1) {
+        QString file = rxs.capturedTexts()[1];
+        QFileInfo fi ( file );
+        if (!fi.isDir()) {
+          if (fi.dir().exists()) {
+            _gui_log_file_ = fi.absoluteFilePath();
+            if (fi.exists()) {
+              QFile file (_gui_log_file_);
+              file.remove();
+            }
+          }
+        }
+        break;
+      }
+    }
+  }
+  if (_gui_log_file_ != "") {
+    std::cout << "!!!***aaajfa***!!! log User Event: " << eventDescription.toStdString() << std::endl;
+    QMutexLocker aLocker (&aGUILogMutex);
+    QFile file (_gui_log_file_);
+    if (file.open(QFile::Append)) {
+      QTextStream stream( &file );
+      stream << eventDescription << endl;
+      file.close();
+    }
+  }
+}
+
 #ifndef DISABLE_PYCONSOLE
 
 PyConsole_Interp* LightApp_Application::getPyInterp()
index 29af725c2415d93013ef16b87120713dc8b5780c..2ad55b938bfe9beaca6be9fc3087d69705b10bef 100644 (file)
@@ -189,6 +189,8 @@ public:
 
   virtual bool                        checkExistingDoc( bool = true );
 
+  static void                         logUserEvent(const QString& eventDescription);
+
 #ifndef DISABLE_PYCONSOLE
   PyConsole_Interp*                   getPyInterp();
 #endif