From be1e868fc4a661307c52eba30633b778770bc2a5 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Wed, 4 Sep 2024 16:29:27 +0200 Subject: [PATCH] AddFiles: Add support to read only mode. --- src/View/AdditionalFiles/Edit/Window.py | 34 ++++++++++------- src/View/AdditionalFiles/Window.py | 6 ++- src/View/Tools/ASubWindow.py | 50 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/src/View/AdditionalFiles/Edit/Window.py b/src/View/AdditionalFiles/Edit/Window.py index b6c82862..ab9ae1e9 100644 --- a/src/View/AdditionalFiles/Edit/Window.py +++ b/src/View/AdditionalFiles/Edit/Window.py @@ -64,6 +64,12 @@ class EditAddFileWindow(PamhyrWindow): self.set_line_edit_text("lineEdit_path", self._add_file.path) self.set_plaintext_edit_text("plainTextEdit", self._add_file.text) + if self._study.is_read_only(): + self.set_check_box_enable("checkBox", False) + self.set_line_edit_enable("lineEdit_name", False) + self.set_line_edit_enable("lineEdit_path", False) + self.set_plaintext_edit_enable("plainTextEdit", False) + def setup_connection(self): self.find(QPushButton, "pushButton_cancel")\ .clicked.connect(self.close) @@ -71,20 +77,22 @@ class EditAddFileWindow(PamhyrWindow): .clicked.connect(self.accept) def accept(self): - is_enabled = self.get_check_box("checkBox") - name = self.get_line_edit_text("lineEdit_name") - path = self.get_line_edit_text("lineEdit_path") - text = self.get_plaintext_edit_text("plainTextEdit") + if self._study.is_editable(): + is_enabled = self.get_check_box("checkBox") + name = self.get_line_edit_text("lineEdit_name") + path = self.get_line_edit_text("lineEdit_path") + text = self.get_plaintext_edit_text("plainTextEdit") - self._undo.push( - SetCommand( - self._add_file, - enabled=is_enabled, - name=name, - path=path, - text=text, + self._undo.push( + SetCommand( + self._add_file, + enabled=is_enabled, + name=name, + path=path, + text=text, + ) ) - ) - self._propagate_update(key=Modules.ADDITIONAL_FILES) + self._propagate_update(key=Modules.ADDITIONAL_FILES) + self.close() diff --git a/src/View/AdditionalFiles/Window.py b/src/View/AdditionalFiles/Window.py index eabb35e7..3cec12d2 100644 --- a/src/View/AdditionalFiles/Window.py +++ b/src/View/AdditionalFiles/Window.py @@ -60,8 +60,10 @@ class AddFileListWindow(PamhyrWindow): ) def setup_connections(self): - self.find(QAction, "action_add").triggered.connect(self.add) - self.find(QAction, "action_delete").triggered.connect(self.delete) + if self._study.is_editable(): + self.find(QAction, "action_add").triggered.connect(self.add) + self.find(QAction, "action_delete").triggered.connect(self.delete) + self.find(QAction, "action_edit").triggered.connect(self.edit) def update(self): diff --git a/src/View/Tools/ASubWindow.py b/src/View/Tools/ASubWindow.py index e985217f..c28f09a5 100644 --- a/src/View/Tools/ASubWindow.py +++ b/src/View/Tools/ASubWindow.py @@ -221,6 +221,18 @@ class ASubWindowFeatures(object): """ return self.find(QLineEdit, name).text() + def set_line_edit_enable(self, name: str, enable: bool): + """Get enable status of line edit component + + Args: + line_edit: The line edit component name + enable: The boolean status + + Returns: + Text + """ + return self.find(QLineEdit, name).setEnabled(enable) + def set_text_edit_text(self, name: str, text: str): """Set text of text edit component @@ -233,6 +245,19 @@ class ASubWindowFeatures(object): """ self.find(QTextEdit, name).setMarkdown(text) + def set_text_edit_enable(self, name: str, enable: bool): + """Set enable status of text edit component + + Args: + text_edit: The text edit component name + enable: The boolean status + + Returns: + Nothing + """ + self.find(QTextEdit, name).setEnabled(enable) + + def get_text_edit_text(self, name: str): """Get text of text edit component @@ -256,6 +281,18 @@ class ASubWindowFeatures(object): """ self.find(QPlainTextEdit, name).setPlainText(text) + def set_plaintext_edit_enable(self, name: str, enable: bool): + """Set enable status of text edit component + + Args: + text_edit: The text edit component name + enable: The boolean status + + Returns: + Nothing + """ + self.find(QPlainTextEdit, name).setEnabled(enable) + def get_plaintext_edit_text(self, name: str): """Get text of text edit component @@ -279,6 +316,19 @@ class ASubWindowFeatures(object): """ self.find(QCheckBox, name).setChecked(checked) + def set_check_box_enable(self, name: str, enable: bool): + """Set status of checkbox component + + Args: + name: The check box component name + enable: Bool + + Returns: + Nothing + """ + self.find(QCheckBox, name).setEnabled(enable) + + def get_check_box(self, name: str): """Get status of checkbox component