-from PySide2 import QtSql as qts
+from PySide2 import QtSql as qts, QtWidgets
from PySide2 import QtWidgets as qtw
from PySide2 import QtCore as qtc
import sys
import os
+from os import path
# noinspection PyTypeChecker
+from utils import resource_path
+
+
class Database(qtc.QObject):
__instance = None
'open db: ' + self.db.lastError().text()
)
sys.exit(1)
- all_sqls = open('db/database.sql', encoding='utf8').read().split(';')
+ all_sqls = open(resource_path('db/database.sql'), encoding='utf8').read().split(';')
for sql in all_sqls:
query = qts.QSqlQuery(self.db)
query.prepare(sql)
raise Exception("This class is a singleton!")
self.mainWindow = mainWindow
self.db = qts.QSqlDatabase.addDatabase('QSQLITE')
- self.db.setDatabaseName('db/minimizer.db')
- if not os.path.exists('db/minimizer.db'):
+ db_path = mainWindow.settings.value('db_path', None, type=str)
+ if db_path is None or not path.exists(db_path):
+ db_path = QtWidgets.QFileDialog.getExistingDirectory(mainWindow, 'Select a folder to store your data', '.', QtWidgets.QFileDialog.ShowDirsOnly)
+ if db_path is None or len(db_path.strip()) == 0:
+ exit(1)
+ mainWindow.settings.setValue('db_path', db_path)
+ if not path.exists(db_path):
+ os.mkdir(db_path)
+ self.db.setDatabaseName('{}/minimizer.db'.format(db_path))
+ if not os.path.exists('{}/minimizer.db'.format(db_path)):
self.create_db()
else:
if not self.db.open():