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
This commit is contained in:
Debanjum Singh Solanky
2022-08-09 23:34:54 +03:00
parent 3c788f1d29
commit 509d52e2cd

View File

@@ -29,19 +29,37 @@ class ConfigureScreen(QtWidgets.QDialog):
def show_orgmode_settings(self, parent_layout): def show_orgmode_settings(self, parent_layout):
"Add Org Mode Settings to the Configure Window" "Add Org Mode Settings to the Configure Window"
orgmode_settings = QtWidgets.QWidget() orgmode_settings = QtWidgets.QWidget()
self.orgmode_layout = QtWidgets.QVBoxLayout(orgmode_settings) 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) enable_orgmode_search = QtWidgets.QCheckBox("Search Org-Mode Notes")
self.orgmode_layout.addWidget(enable_orgmode_search) 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) parent_layout.addWidget(orgmode_settings)
def show_ledger_settings(self, parent_layout): def show_ledger_settings(self, parent_layout):
"Add Ledger Settings to the Configure Window" "Add Ledger Settings to the Configure Window"
ledger_settings = QtWidgets.QWidget() ledger_settings = QtWidgets.QWidget()
self.ledger_layout = QtWidgets.QVBoxLayout(ledger_settings) ledger_layout = QtWidgets.QVBoxLayout(ledger_settings)
enable_ledger_search = QtWidgets.QCheckBox("Search Beancount Files")
enable_ledger_search.stateChanged.connect(self.show_ledger_search_options) enable_ledger_search = QtWidgets.QCheckBox("Search Beancount Transactions")
self.ledger_layout.addWidget(enable_ledger_search) 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) parent_layout.addWidget(ledger_settings)
def show_action_bar(self, parent_layout): def show_action_bar(self, parent_layout):
@@ -56,20 +74,3 @@ class ConfigureScreen(QtWidgets.QDialog):
def save_settings(self, s): def save_settings(self, s):
# Save the settings to khoj.yml # Save the settings to khoj.yml
pass 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())