Artemis 4 RC1
This commit is contained in:
67
artemis/ui/categoryeditor.py
Normal file
67
artemis/ui/categoryeditor.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from PySide6.QtQml import QQmlApplicationEngine
|
||||
from PySide6.QtCore import QObject, Signal, Slot
|
||||
|
||||
from artemis.utils.path_utils import *
|
||||
from artemis.utils.generic_utils import *
|
||||
|
||||
|
||||
class UIcategoryeditor(QObject):
|
||||
# Python > QML Signals
|
||||
show_ui = Signal()
|
||||
load = Signal(list)
|
||||
|
||||
|
||||
def __init__(self, parent):
|
||||
super().__init__()
|
||||
|
||||
self._parent = parent
|
||||
|
||||
self._engine = QQmlApplicationEngine()
|
||||
self._engine.load('qrc:/ui/CategoryEditor.qml')
|
||||
self._window = self._engine.rootObjects()[0]
|
||||
|
||||
self._connect()
|
||||
|
||||
|
||||
def _connect(self):
|
||||
# QML > Python connections
|
||||
self._window.saveParam.connect(self.save)
|
||||
self._window.deleteParam.connect(self.delete)
|
||||
|
||||
# Python > QML connections
|
||||
self.show_ui.connect(self._window.show)
|
||||
self.load.connect(self._window.loadList)
|
||||
|
||||
|
||||
def load_cateditor_ui(self):
|
||||
""" Load the list with existing category tags and show the UI
|
||||
"""
|
||||
all_cat = self._parent.loaded_db.all_category_labels
|
||||
self.load.emit(all_cat)
|
||||
self.show_ui.emit()
|
||||
|
||||
|
||||
@Slot(list, bool)
|
||||
def save(self, data, is_new):
|
||||
""" Save new category tag or update the existing ones.
|
||||
"""
|
||||
data = data.toVariant()
|
||||
|
||||
if is_new:
|
||||
self._parent.loaded_db.insert_category_label(data[0])
|
||||
else:
|
||||
self._parent.loaded_db.update_category_label(data[1], data[0])
|
||||
|
||||
self._parent.load_db(self._parent.loaded_db.db_dir_name)
|
||||
self.load_cateditor_ui()
|
||||
|
||||
|
||||
@Slot(int)
|
||||
def delete(self, clb_id):
|
||||
""" Delete a database category tag.
|
||||
All the entries in the documents table are automatically beign deleted due to
|
||||
foreign-key cascade propagation
|
||||
"""
|
||||
self._parent.loaded_db.delete_category_label(clb_id)
|
||||
self._parent.load_db(self._parent.loaded_db.db_dir_name)
|
||||
self.load_cateditor_ui()
|
||||
Reference in New Issue
Block a user