From d48deb3edc64e3866e29be22ee0956b3ea00fde7 Mon Sep 17 00:00:00 2001
From: morkolai <nikolai-mork@live.no>
Date: Mon, 16 Mar 2020 23:15:17 +0100
Subject: [PATCH] =?UTF-8?q?#52=20F=C3=A5tt=20QTimer=20til=20=C3=A5=20funge?=
 =?UTF-8?q?re,=20kj=C3=B8rer=20hvert=20minutt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 soitool/database.py    | 19 ++++++-------------
 soitool/main_window.py | 10 ++++++++--
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/soitool/database.py b/soitool/database.py
index 4fad3ce..bcf18d8 100644
--- a/soitool/database.py
+++ b/soitool/database.py
@@ -2,8 +2,6 @@
 import os
 import sqlite3
 import json
-from threading import Thread
-from time import sleep
 from datetime import datetime
 from PySide2.QtCore import QTimer
 import soitool.coder
@@ -40,9 +38,6 @@ class Database:
     def __init__(self):
         db_exists = os.path.exists(DBPATH)
 
-        # For automatic update of codes in CodeBook
-        self.t = Thread(target=self.update_codebook_auto, daemon=True)
-
         if db_exists:
             print("Connecting to existing DB.")
             self.conn = sqlite3.connect(DBPATH)
@@ -239,13 +234,11 @@ class Database:
 
     def update_codebook_auto(self):
         """
-        Update Codebook if it is less than 10 sec til next update.
-        """
-        print("DB thread started")
-        while True:
-            if self.seconds_to_next_update() < 10:
-                self.update_codebook()
-            sleep(self.seconds_to_next_update())
+       Update Codebook if it is less than 10 sec til next update.
+       """
+        print("Running update_codebook_auto")
+        if self.seconds_to_next_update() < 10:
+            self.update_codebook()
 
     def add_code_to(self, word, mode="ascii"):
         """
@@ -289,4 +282,4 @@ class Database:
             self.conn.execute(stmt, (code, word))
 
 
-DB = Database()
+db = Database()
diff --git a/soitool/main_window.py b/soitool/main_window.py
index f762b52..6a88b23 100644
--- a/soitool/main_window.py
+++ b/soitool/main_window.py
@@ -8,8 +8,9 @@ import os
 from enum import Enum
 from PySide2.QtWidgets import QMainWindow, QApplication, QTabWidget, QAction
 from PySide2.QtGui import QIcon
+from PySide2.QtCore import QTimer
 from soitool.soi_workspace_widget import SOIWorkspaceWidget
-from soitool.database import DB
+from soitool.database import db
 
 
 class ModuleType(Enum):
@@ -28,6 +29,12 @@ class MainWindow(QMainWindow):
         self.setWindowTitle("SOI-tool")
         self.statusBar()
 
+        # Updateds CodeBook if needed every minute
+        self.timer = QTimer(self)
+        self.timer.setInterval(60000)
+        self.timer.timeout.connect(db.update_codebook_auto)
+        self.timer.start()
+
         # flytt ut til egen funksjon, for setup av menubar
         menu = self.menuBar()
         file_menu = menu.addMenu("SOI")
@@ -110,5 +117,4 @@ if __name__ == "__main__":
     app = QApplication(sys.argv)
     WINDOW = MainWindow()
     WINDOW.showMaximized()
-    DB.t.start()
     app.exec_()
-- 
GitLab