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):
"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())