From ef398c78b1313d9deac2c19b7676d4cbf8cc6cea Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Tue, 25 Jul 2023 15:06:07 +0200
Subject: [PATCH] Debug: Add SqliteBrowser debug action.

---
 src/View/MainWindow.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index 2c9b1b65..71301e1b 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -2,6 +2,7 @@
 
 import os
 import logging
+import subprocess
 from queue import Queue
 
 from PyQt5 import QtGui
@@ -232,15 +233,22 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             self.debug_action.setStatusTip("Debug")
             self.debug_action.triggered.connect(self.open_debug)
 
+            self.debug_sqlite_action = QAction("Debug SQLite", self)
+            self.debug_sqlite_action.setStatusTip("Open SQLite debuging tool (sqlitebrowser)")
+            self.debug_sqlite_action.triggered.connect(self.open_sqlite)
+
             if self.conf.debug:
                 menu.addAction(self.debug_action)
+                menu.addAction(self.debug_sqlite_action)
                 self.set_debug_lvl(debug = True)
         else:
             if self.conf.debug:
                 menu.addAction(self.debug_action)
+                menu.addAction(self.debug_sqlite_action)
                 self.set_debug_lvl(debug = True)
             else:
                 menu.removeAction(self.debug_action)
+                menu.removeAction(self.debug_sqlite_action)
                 self.set_debug_lvl(debug = False)
 
     #########
@@ -549,6 +557,17 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         )
         repl.show()
 
+    def open_sqlite(self):
+        if self.model is None:
+            logger.debug("No study open for sql debuging...")
+            return
+
+        file = self.model.filename
+        _ = subprocess.Popen(
+            f"sqlitebrowser {file}",
+            shell=True
+        )
+
     # TODO: Delete me !
     ###############
     # DUMMY STUFF #
-- 
GitLab