From 3be0049ae014bb98e3541153ebe46ab38ef03c17 Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Sat, 9 Sep 2023 23:49:58 +0530 Subject: [PATCH] Enabled prescriber switching --- prescription.py | 10 ++++++++-- setting.py | 4 ++++ window.py | 21 +++++++++++++++++++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/prescription.py b/prescription.py index 3cce577..678a822 100644 --- a/prescription.py +++ b/prescription.py @@ -9,8 +9,11 @@ import json from config import config class Prescriber: - def __init__(self): - self.read_from(config["prescriber"]) + def __init__(self, file=None): + if file is None: + self.read_from(config["prescriber"]) + else: + self.read_from(file) def set_data(self, name="", qualification="", registration="", address="", contact="", extra=""): self.name = name @@ -94,3 +97,6 @@ class Prescription: with open(file, "r") as f: self.set_data_from_json(json.loads(f.read())) self.file=file + + def reload_prescriber(self, file=None): + self.prescriber=Prescriber(file) diff --git a/setting.py b/setting.py index 280b853..d2df6b1 100644 --- a/setting.py +++ b/setting.py @@ -7,11 +7,14 @@ from PyQt6.QtWidgets import QWidget, QMainWindow, QFormLayout, QPushButton, QLabel, QLineEdit, QTextEdit, QStatusBar, QMessageBox from PyQt6.QtGui import QIcon +from PyQt6.QtCore import pyqtSignal import os, json from config import config class EditPrescriber(QMainWindow): + signal_save=pyqtSignal(str) + file="" prescriber="" @@ -42,6 +45,7 @@ class EditPrescriber(QMainWindow): with open(self.file, "w") as f: f.write(json.dumps(self.prescriber, indent=4)) QMessageBox.information(self,"Saved", "Information saved.") + self.signal_save.emit(self.file) self.hide() except Exception as e: QMessageBox.critical(self,"Failed to save", "Failed to save the data to the file.") diff --git a/window.py b/window.py index 3c3d611..1d40b81 100644 --- a/window.py +++ b/window.py @@ -81,8 +81,7 @@ class MainWindow(QMainWindow): self.cmd_save(save_as=True) def cmd_refresh(self): - self.update_instance() - self.load_interface_from_instance() + self.refresh() def cmd_quit(self): if(self.confirm_exit()): @@ -100,6 +99,15 @@ class MainWindow(QMainWindow): def cmd_prescriber(self): self.edit_prescriber.show() + def cmd_prescriber_reload(self, file=None): + self.prescription.reload_prescriber(file=None) + self.refresh() + + def cmd_switch(self): + print("switch") + self.prescription.reload_prescriber(QFileDialog.getOpenFileName(self, "Open File", config["prescriber_directory"], "JSON (*.json);; All Files (*)")[0]) + self.refresh() + def cmd_about(self): self.viewbox.open(os.path.join(config["resource"], "about.html")) self.viewbox.show() @@ -249,6 +257,11 @@ class MainWindow(QMainWindow): QMessageBox.critical(self,"Failed", "Critical failure happned. Please check console for more info.") print(e) + def refresh(self): + self.update_instance() + self.load_interface_from_instance() + + def add_attachment(self): try: new=QFileDialog.getOpenFileName(self, "Open File", config["document_directory"], "PDF (*.pdf);; Images (*.jpg, *.jpeg, *.png, *.gif);; All Files (*)")[0] @@ -324,6 +337,8 @@ class MainWindow(QMainWindow): action_render2.triggered.connect(self.cmd_render) action_prescriber=QAction("Prescriber", self) action_prescriber.triggered.connect(self.cmd_prescriber) + action_switch=QAction("Switch", self) + action_switch.triggered.connect(self.cmd_switch) action_about=QAction("About", self) action_about.triggered.connect(self.cmd_about) action_help=QAction("Help", self) @@ -340,6 +355,7 @@ class MainWindow(QMainWindow): menu_prepare.addAction(action_render) menu_prepare.addAction(action_refresh) menu_prepare.addAction(action_prescriber) + menu_prepare.addAction(action_switch) menu_help=menubar.addMenu("Help") menu_help.addAction(action_about) menu_help.addAction(action_help) @@ -548,6 +564,7 @@ class MainWindow(QMainWindow): self.renderbox=RenderBox() self.signal_view.connect(self.renderbox.update) self.edit_prescriber=EditPrescriber() + self.edit_prescriber.signal_save.connect(self.cmd_prescriber_reload) self.viewbox=ViewBox() if(config["filename"]): -- 2.39.2