Skip to content

Commit f8349c3

Browse files
committed
updated autofit_columns() + added set_default_size() methods
1 parent ff41227 commit f8349c3

File tree

1 file changed

+32
-9
lines changed

1 file changed

+32
-9
lines changed

larray_editor/arraywidget.py

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,7 @@ def __init__(self, parent, model, position):
118118
self.horizontalHeader().setFrameStyle(QFrame.NoFrame)
119119
self.verticalHeader().setFrameStyle(QFrame.NoFrame)
120120

121-
# make the grid a bit more compact
122-
self.horizontalHeader().setDefaultSectionSize(64)
123-
self.horizontalHeader().setFixedHeight(10)
124-
self.verticalHeader().setDefaultSectionSize(20)
125-
self.verticalHeader().setFixedWidth(10)
121+
self.set_default_size()
126122
# to fetch more rows/columns when required
127123
self.horizontalScrollBar().valueChanged.connect(self.on_horizontal_scroll_changed)
128124
self.verticalScrollBar().valueChanged.connect(self.on_vertical_scroll_changed)
@@ -141,6 +137,13 @@ def __init__(self, parent, model, position):
141137
self.horizontalHeader().sectionResized.connect(self.updateGeometry)
142138
self.verticalHeader().sectionResized.connect(self.updateGeometry)
143139

140+
def set_default_size(self):
141+
# make the grid a bit more compact
142+
self.horizontalHeader().setDefaultSectionSize(64)
143+
self.horizontalHeader().setFixedHeight(10)
144+
self.verticalHeader().setDefaultSectionSize(20)
145+
self.verticalHeader().setFixedWidth(10)
146+
144147
def on_vertical_scroll_changed(self, value):
145148
if value == self.verticalScrollBar().maximum():
146149
self.model().fetch_more_rows()
@@ -155,6 +158,16 @@ def updateSectionHeight(self, logicalIndex, oldSize, newSize):
155158
def updateSectionWidth(self, logicalIndex, oldSize, newSize):
156159
self.setColumnWidth(logicalIndex, newSize)
157160

161+
def autofit_columns(self):
162+
"""Resize cells to contents"""
163+
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
164+
165+
# Spyder loads more columns before resizing, but since it does not
166+
# load all columns anyway, I do not see the point
167+
# self.model().fetch_more_columns()
168+
self.resizeColumnsToContents()
169+
QApplication.restoreOverrideCursor()
170+
158171
def selectAll(self):
159172
self.allSelected.emit()
160173

@@ -291,9 +304,7 @@ def __init__(self, parent, model, dtype, shape):
291304
self.horizontalHeader().setFrameStyle(QFrame.NoFrame)
292305
self.verticalHeader().setFrameStyle(QFrame.NoFrame)
293306

294-
# make the grid a bit more compact
295-
self.horizontalHeader().setDefaultSectionSize(64)
296-
self.verticalHeader().setDefaultSectionSize(20)
307+
self.set_default_size()
297308
# Hide horizontal+vertical headers
298309
self.horizontalHeader().hide()
299310
self.verticalHeader().hide()
@@ -308,6 +319,11 @@ def __init__(self, parent, model, dtype, shape):
308319

309320
# self.horizontalHeader().sectionClicked.connect(self.on_horizontal_header_clicked)
310321

322+
def set_default_size(self):
323+
# make the grid a bit more compact
324+
self.horizontalHeader().setDefaultSectionSize(64)
325+
self.verticalHeader().setDefaultSectionSize(20)
326+
311327
# def on_horizontal_header_clicked(self, section_index):
312328
# menu = FilterMenu(self)
313329
# header = self.horizontalHeader()
@@ -701,6 +717,11 @@ def set_data(self, data, bg_gradient=None, bg_value=None):
701717
filters_layout.addStretch()
702718
self.data_adapter.update_filtered_data({})
703719

720+
# reset default size
721+
self.view_ylabels.set_default_size()
722+
self.view_xlabels.set_default_size()
723+
self.view_data.set_default_size()
724+
704725
def _update_digits_scientific(self, data):
705726
"""
706727
data : LArray
@@ -820,7 +841,9 @@ def _data_digits(self, data, maxdigits=6):
820841
return maxdigits
821842

822843
def autofit_columns(self):
823-
self.view_data.autofit_columns()
844+
self.view_xlabels.autofit_columns()
845+
for column in range(self.model_xlabels.columnCount()):
846+
self.resizeColumnToContents(column)
824847

825848
def resizeColumnToContents(self, column):
826849
# must be connected to view_labels.horizontalHeader().sectionHandleDoubleClicked signal

0 commit comments

Comments
 (0)