From 509d52e2cd085d398a38017a553cb093ab210e3b Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Tue, 9 Aug 2022 23:34:54 +0300 Subject: [PATCH] Toggle Editability instead of Visibility of Per Search Type Settings - Simplifies the configure screen layout and allows it to be of constant width - It was buggy, the configure screen would dynamically expand but not restore back to original size on disabling search type after enable --- src/interface/desktop/configure_screen.py | 51 ++++++++++++----------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/interface/desktop/configure_screen.py b/src/interface/desktop/configure_screen.py index 0e46723b..2b80eb29 100644 --- a/src/interface/desktop/configure_screen.py +++ b/src/interface/desktop/configure_screen.py @@ -29,19 +29,37 @@ class ConfigureScreen(QtWidgets.QDialog): def show_orgmode_settings(self, parent_layout): "Add Org Mode Settings to the Configure Window" orgmode_settings = QtWidgets.QWidget() - self.orgmode_layout = QtWidgets.QVBoxLayout(orgmode_settings) - enable_orgmode_search = QtWidgets.QCheckBox("Search Org-Mode Files") - enable_orgmode_search.stateChanged.connect(self.show_orgmode_search_options) - self.orgmode_layout.addWidget(enable_orgmode_search) + orgmode_layout = QtWidgets.QVBoxLayout(orgmode_settings) + + enable_orgmode_search = QtWidgets.QCheckBox("Search Org-Mode Notes") + input_files_label = QtWidgets.QLabel("Org-Mode Files") + input_files = QtWidgets.QLineEdit() + input_files.setEnabled(enable_orgmode_search.isChecked()) + + enable_orgmode_search.stateChanged.connect(lambda _: input_files.setEnabled(enable_orgmode_search.isChecked())) + + orgmode_layout.addWidget(enable_orgmode_search) + orgmode_layout.addWidget(input_files_label) + orgmode_layout.addWidget(input_files) + parent_layout.addWidget(orgmode_settings) def show_ledger_settings(self, parent_layout): "Add Ledger Settings to the Configure Window" ledger_settings = QtWidgets.QWidget() - self.ledger_layout = QtWidgets.QVBoxLayout(ledger_settings) - enable_ledger_search = QtWidgets.QCheckBox("Search Beancount Files") - enable_ledger_search.stateChanged.connect(self.show_ledger_search_options) - self.ledger_layout.addWidget(enable_ledger_search) + ledger_layout = QtWidgets.QVBoxLayout(ledger_settings) + + enable_ledger_search = QtWidgets.QCheckBox("Search Beancount Transactions") + input_files_label = QtWidgets.QLabel("Beancount Files") + input_files = QtWidgets.QLineEdit() + input_files.setEnabled(enable_ledger_search.isChecked()) + + enable_ledger_search.stateChanged.connect(lambda _: input_files.setEnabled(enable_ledger_search.isChecked())) + + ledger_layout.addWidget(enable_ledger_search) + ledger_layout.addWidget(input_files_label) + ledger_layout.addWidget(input_files) + parent_layout.addWidget(ledger_settings) def show_action_bar(self, parent_layout): @@ -56,20 +74,3 @@ class ConfigureScreen(QtWidgets.QDialog): def save_settings(self, s): # Save the settings to khoj.yml pass - - def show_orgmode_search_options(self, s): - if Qt.CheckState(s) == Qt.CheckState.Checked: - self.orgmode_layout.layout().addWidget(QtWidgets.QLabel("Search Org-Mode Notes")) - self.orgmode_layout.layout().addWidget(QtWidgets.QLineEdit()) - else: - self.orgmode_layout.layout().removeWidget(self.orgmode_layout.layout().itemAt(1).widget()) - self.orgmode_layout.layout().removeWidget(self.orgmode_layout.layout().itemAt(1).widget()) - - def show_ledger_search_options(self, s): - if Qt.CheckState(s) == Qt.CheckState.Checked: - self.ledger_layout.layout().addWidget(QtWidgets.QLabel("Search Beancount Transactions")) - self.ledger_layout.layout().addWidget(QtWidgets.QLineEdit()) - else: - self.ledger_layout.layout().removeWidget(self.ledger_layout.layout().itemAt(1).widget()) - self.ledger_layout.layout().removeWidget(self.ledger_layout.layout().itemAt(1).widget()) - \ No newline at end of file