calendar widget / notification box

This commit is contained in:
WorldTeacher
2024-06-11 09:50:19 +02:00
parent e7e2b659fe
commit ceee170107
4 changed files with 316 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
from .widget_sources.Ui_calendar_entry import Ui_Dialog
from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import pyqtSignal
from src.backend.database import Database
from src import Icon
class CalendarEntry(QtWidgets.QDialog, Ui_Dialog):
deleteSignal = pyqtSignal(
int
) # when emit, send the id of the message to be deleted
repaintSignal = pyqtSignal()
def __init__(self, parent=None, messages=None):
super().__init__(parent)
self.setupUi(self)
self.messages = messages
self.spin_select_message.setMaximum(len(self.messages))
self.spin_select_message.setMinimum(1)
self.spin_select_message.setValue(1)
print(self.messages)
self.set_message()
self.spin_select_message.valueChanged.connect(self.set_message)
Icon("close", self.btn_close)
self.btn_delete_message.clicked.connect(self.delete_message)
self.btn_close.clicked.connect(self.close)
def __get_id(self, message):
for i in range(len(self.messages)):
if self.messages[i] == message:
return self.messages[i]["id"]
def delete_message(self):
value = self.spin_select_message.value()
if value > 0:
value = value - 1
message = self.messages[value]
id = self.__get_id(message)
print("id", id)
del self.messages[value - 1]
self.spin_select_message.setMaximum(len(self.messages))
self.message_box.clear()
if value > 0:
self.set_message()
self.deleteSignal.emit(id)
else:
return
else:
#
self.repaintSignal.emit()
self.close()
def set_message(self):
value = self.spin_select_message.value()
if value < 1:
return
message = self.messages[value - 1]
appnr = message["appnr"]
text = message["message"]
if appnr is not None:
self.line_app_info.setText(str(appnr))
else:
self.line_app_info.setText("/")
self.message_box.setText(text)
self.message_box.repaint()
def launch_calendar_entry():
messages = Database().getMessages("2024-06-10")
app = QtWidgets.QApplication([])
dialog = CalendarEntry(messages=messages)
dialog.show()
app.exec()