Skip to content

Commit

Permalink
Merge pull request #95 from xopt-org/dev
Browse files Browse the repository at this point in the history
Test PR for pypi release pipeline
  • Loading branch information
wenatuhs authored Sep 20, 2024
2 parents c952136 + 3b306d7 commit 2c301b3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 13 deletions.
16 changes: 11 additions & 5 deletions src/badger/gui/default/components/data_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ def keyPressEvent(self, event):

QApplication.clipboard().setText(copy_text)

def set_uneditable(self):
self.setEditTriggers(QTableWidget.NoEditTriggers)

def set_editable(self):
self.setEditTriggers(QTableWidget.DoubleClicked)


def update_table(table, data=None):
table.setRowCount(0)
Expand All @@ -60,7 +66,7 @@ def update_table(table, data=None):
for i in range(m):
for j in range(n):
v = _data.iloc[i, j]
table.setItem(i, j, QTableWidgetItem(f'{v:g}'))
table.setItem(i, j, QTableWidgetItem(f'{v:.4g}'))
table.setHorizontalHeaderLabels(list(_data.columns))
table.setVerticalHeaderLabels(list(map(str, _data.index))) # row index starts from 0
table.horizontalHeader().setVisible(True)
Expand All @@ -84,7 +90,7 @@ def add_row(table, row):
r = table.rowCount()
table.insertRow(r)
for i, v in enumerate(row):
table.setItem(r, i, QTableWidgetItem(f'{v:g}'))
table.setItem(r, i, QTableWidgetItem(f'{v:.4g}'))
table.setVerticalHeaderItem(r, QTableWidgetItem(str(r)))

return table
Expand All @@ -94,15 +100,15 @@ def data_table(data=None):
table = TableWithCopy()
table.setAlternatingRowColors(True)
table.setStyleSheet(stylesheet)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
return update_table(table, data)


def init_data_table(variable_names=None):
table = TableWithCopy()
table.setAlternatingRowColors(True)
table.setStyleSheet(stylesheet)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

table.setRowCount(10)
if variable_names is None:
Expand Down Expand Up @@ -177,4 +183,4 @@ def set_init_data_table(table, data: DataFrame):
# Fill the table
for col, name in enumerate(variable_names):
for row in range(len(data_dict[name])):
table.setItem(row, col, QTableWidgetItem(f'{data_dict[name][row]:g}'))
table.setItem(row, col, QTableWidgetItem(f'{data_dict[name][row]:.4g}'))
4 changes: 1 addition & 3 deletions src/badger/gui/default/components/env_cbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,7 @@ def init_ui(self):
hbox_action_init.addWidget(btn_clear)
vbox_init.addWidget(action_init)
self.init_table = init_data_table()
# TODO: should allow scrolling, so better to set each cell ineditable
# rather than disable the whole table
self.init_table.setDisabled(True)
self.init_table.set_uneditable()
vbox_init.addWidget(self.init_table)
cbox_init.setContentLayout(vbox_init)
cbox_init.expand()
Expand Down
8 changes: 4 additions & 4 deletions src/badger/gui/default/components/routine_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ def fill_curr_in_init_table(self, record=False):
if np.all([not table.item(row, col).text() for col in range(table.columnCount())]):
# Fill the row with content_list
for col, name in enumerate(vname_selected):
item = QTableWidgetItem(str(var_curr[name]))
item = QTableWidgetItem(f'{var_curr[name]:.4g}')
table.setItem(row, col, item)
break # Stop after filling the first non-empty row

Expand Down Expand Up @@ -586,7 +586,7 @@ def add_rand_in_init_table(self, add_rand_config=None, record=True):
try:
point = random_points.pop(0)
for col, name in enumerate(vname_selected):
item = QTableWidgetItem(str(point[name]))
item = QTableWidgetItem(f'{point[name]:.4g}')
table.setItem(row, col, item)
except IndexError: # No more points to add
break
Expand Down Expand Up @@ -782,12 +782,12 @@ def toggle_relative_to_curr(self, checked, refresh=True):
self.try_populate_init_table()

self.env_box.var_table.lock_bounds()
self.env_box.init_table.setDisabled(True)
self.env_box.init_table.set_uneditable()
else:
self.env_box.switch_var_panel_style(False)

self.env_box.var_table.unlock_bounds()
self.env_box.init_table.setDisabled(False)
self.env_box.init_table.set_editable()

def try_populate_init_table(self):
if (self.env_box.relative_to_curr.isChecked() and
Expand Down
3 changes: 2 additions & 1 deletion src/badger/gui/default/pages/home_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ def init_ui(self):

# Data table
self.run_table = run_table = data_table()
run_table.set_uneditable() # should not be editable

splitter_run.addWidget(run_view)
splitter_run.addWidget(run_table)
Expand Down Expand Up @@ -605,7 +606,7 @@ def routine_description_updated(self, name, descr):
if routine_item.name == name:
routine_item.update_description(descr)
break

def routine_name_updated(self, old_name, new_name):
for i in range(self.routine_list.count()):
item = self.routine_list.item(i)
Expand Down

0 comments on commit 2c301b3

Please sign in to comment.