From 0415084dc3f5c08a5e55f8c735cf6c9f179fe276 Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Wed, 8 Nov 2023 20:23:14 +0530 Subject: [PATCH] Added display without rendering --- renderbox.py | 32 ++++++++++++- resource/icon_view.svg | 103 +++++++++++++++++++++++++++++++++++++++++ window.py | 15 +++++- 3 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 resource/icon_view.svg diff --git a/renderbox.py b/renderbox.py index 23ce9ba..b5c87f8 100644 --- a/renderbox.py +++ b/renderbox.py @@ -5,7 +5,7 @@ # MedScript is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # You should have received a copy of the GNU General Public License along with MedScript. If not, see . -from PyQt6.QtWidgets import QWidget, QMainWindow, QToolBar, QFileDialog, QComboBox, QPushButton, QSizePolicy +from PyQt6.QtWidgets import QWidget, QMainWindow, QDialog, QToolBar, QFileDialog, QComboBox, QPushButton, QLabel, QVBoxLayout, QTextBrowser, QSizePolicy from PyQt6.QtWebEngineWidgets import QWebEngineView from PyQt6.QtGui import QIcon, QPageLayout, QPageSize from PyQt6.QtCore import QUrl, QMarginsF @@ -74,3 +74,33 @@ class RenderBox(QMainWindow): QMessageBox.warning(self,"Display failed", "Failed to display file.") self.hide() logging.warning(e) + + +class UnrenderBox(QDialog): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.setWindowTitle("MedScript") + self.setMinimumSize(600, 400) + self.setSizeGripEnabled(True) + + layout=QVBoxLayout(self) + heading=QLabel("Prescription") + self.display=QTextBrowser() + layout.addWidget(heading) + layout.addWidget(self.display) + + self.setWindowIcon(QIcon(os.path.join("resource", "icon_medscript.ico"))) + + def show(self, prescription): + text="" + for attr, value in prescription.prescriber.__dict__.items(): + if(attr not in ["properties"] and len(value)>0): + text=text+""+value.upper()+"
" + text=text+"
" + for attr, value in prescription.__dict__.items(): + if(attr not in ["prescriber", "custom", "properties", "file"] and len(str(value))>0): + text=text+""+attr.upper()+"
" + text=text+str(value)+"
" + self.display.setText(text) diff --git a/resource/icon_view.svg b/resource/icon_view.svg new file mode 100644 index 0000000..6b1b2d1 --- /dev/null +++ b/resource/icon_view.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + Eye + 2013-11-11T01:25:34 + black-and-white stylized image of a human eye + https://openclipart.org/detail/188640/eye-by-sumitomohiko-188640 + + + SumiTomohiko + + + + + eye + + + + + + + + + + + diff --git a/window.py b/window.py index 30cdf44..f721eab 100644 --- a/window.py +++ b/window.py @@ -19,7 +19,7 @@ from config import config, info, real_dir from prescription import Prescription, Prescriber from renderer import Renderer from filehandler import FileHandler -from renderbox import RenderBox +from renderbox import RenderBox, UnrenderBox from setting import EditConfiguration, EditPrescriber, SelectPrescriber from editpreset import EditPreset from viewbox import ViewBox @@ -124,6 +124,10 @@ class MainWindow(QMainWindow): if(self.confirm_close()): sys.exit() + def cmd_unrender(self): + self.unrenderbox.show(self.prescription) + self.unrenderbox.exec() + def cmd_render(self): self.refresh() if(self.save_state==md5(self.prescription.get_json().encode()).hexdigest()): @@ -523,6 +527,7 @@ class MainWindow(QMainWindow): icon_save=QIcon(os.path.join(config["resource"], "icon_save.svg")) icon_render=QIcon(os.path.join(config["resource"], "icon_render.svg")) icon_refresh=QIcon(os.path.join(config["resource"], "icon_refresh.svg")) + icon_view=QIcon(os.path.join(config["resource"], "icon_view.svg")) self.preset_note=Preset("note") self.preset_report=Preset("report") @@ -561,6 +566,11 @@ class MainWindow(QMainWindow): action_render2=QAction(icon_render, "Render", self) action_render.triggered.connect(self.cmd_render) action_render2.triggered.connect(self.cmd_render) + action_unrender=QAction("Plain Display", self) + action_unrender.setShortcut("Ctrl+D") + action_unrender2=QAction(icon_view, "View", self) + action_unrender.triggered.connect(self.cmd_unrender) + action_unrender2.triggered.connect(self.cmd_unrender) action_sign=QAction("Sign Prescription", self) action_sign.triggered.connect(self.cmd_sign) action_unsign=QAction("Delete Signature", self) @@ -597,6 +607,7 @@ class MainWindow(QMainWindow): menu_file.addAction(action_save_as) menu_file.addAction(action_quit) menu_prepare=menubar.addMenu("Prepare") + menu_prepare.addAction(action_unrender) menu_prepare.addAction(action_render) menu_prepare.addAction(action_refresh) if(config["smime"]): @@ -637,6 +648,7 @@ class MainWindow(QMainWindow): toolbar.addAction(action_open2) toolbar.addAction(action_save2) toolbar.addAction(action_refresh2) + toolbar.addAction(action_unrender2) toolbar.addAction(action_render2) toolbar.addSeparator() label_template=QLabel("Template:") @@ -904,6 +916,7 @@ class MainWindow(QMainWindow): self.setStatusBar(self.statusbar) self.renderbox=RenderBox() + self.unrenderbox=UnrenderBox() self.signal_view.connect(self.renderbox.update) self.edit_configuration=EditConfiguration() self.edit_prescriber=EditPrescriber() -- 2.39.5