Skip to content

Commit 82cc512

Browse files
committed
add new UI elements to EurostatBrowserDialog (search, advanced import)
1 parent d8e1eee commit 82cc512

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

larray_editor/editor.py

+28-4
Original file line numberDiff line numberDiff line change
@@ -188,20 +188,44 @@ def __init__(self, index, parent=None):
188188
# Simple*Lazy*TreeModel, but it is fast enough for now. *If* it ever becomes a problem,
189189
# we could make this lazy pretty easily (see treemodel.LazyDictTreeNode for an example).
190190
root = indented_df_to_treenode(index)
191+
self.df = tree_to_dataframe(root)
192+
193+
# Create the tree view UI in Dialog
191194
model = SimpleLazyTreeModel(root)
192195
tree = QTreeView()
193196
tree.setModel(model)
194197
tree.setUniformRowHeights(True)
195-
tree.selectionModel().currentChanged.connect(self.view_eurostat_indicator)
198+
tree.doubleClicked.connect(self.view_eurostat_indicator)
196199
tree.setColumnWidth(0, 320)
197-
200+
tree.setContextMenuPolicy(Qt.CustomContextMenu)
201+
tree.customContextMenuRequested.connect(self.show_context_menu)
202+
self.tree = tree
203+
204+
# Create the search results list (and hide as default)
205+
self.search_results_list = QListWidget()
206+
self.search_results_list.itemClicked.connect(self.handle_search_item_click)
207+
self.search_results_list.hide()
208+
209+
# Create the search input field
210+
self.search_input = QLineEdit(self)
211+
self.search_input.setPlaceholderText("Search...")
212+
self.search_input.textChanged.connect(self.handle_search)
213+
214+
# Create the "Advanced Import" button
215+
self.advanced_button = QPushButton("Import from Configuration File", self)
216+
self.advanced_button.setFocusPolicy(Qt.NoFocus) # turn off
217+
self.advanced_button.clicked.connect(self.showAdvancedPopup)
218+
219+
# General settings: resize + title
198220
self.resize(450, 600)
199221
self.setWindowTitle("Select dataset")
200222

201-
# set the layout
223+
# Add widgets to layout
202224
layout = QVBoxLayout()
203-
# layout.addWidget(toolbar)
225+
layout.addWidget(self.search_input)
204226
layout.addWidget(tree)
227+
layout.addWidget(self.search_results_list)
228+
layout.addWidget(self.advanced_button)
205229
self.setLayout(layout)
206230

207231
def view_eurostat_indicator(self, index):

0 commit comments

Comments
 (0)