diff --git a/picard/ui/metadatabox.py b/picard/ui/metadatabox.py index e0ce6090c..c60270266 100644 --- a/picard/ui/metadatabox.py +++ b/picard/ui/metadatabox.py @@ -144,7 +144,7 @@ class TagDiff(object): class MetadataBox(QtGui.QTableWidget): options = ( - config.IntListOption("persist", "metadata_box_sizes", [150, 300, 300]), + config.Option("persist", "metadatabox_header_state", QtCore.QByteArray()), config.BoolOption("persist", "show_changes_first", False) ) @@ -462,43 +462,12 @@ class MetadataBox(QtGui.QTableWidget): font.setItalic(italic) item.setFont(font) - def _resize_column(self, i, size): - header = self.horizontalHeader() - nsize = max(size, header.sectionSizeHint(i)) - header.resizeSection(i, nsize) - def restore_state(self): - sizes = config.persist["metadata_box_sizes"] + state = config.persist["metadatabox_header_state"] header = self.horizontalHeader() - try: - for i in range(header.count() - 1): - self._resize_column(i, sizes[i]) - except IndexError: - pass - self.resize_columns() + header.restoreState(state) def save_state(self): - sizes = [] header = self.horizontalHeader() - for i in range(header.count()): - sizes.append(header.sectionSize(i)) - config.persist["metadata_box_sizes"] = sizes - - def resize_columns(self): - header = self.horizontalHeader() - width = header.length() - ncols = header.count() - visible_width = self.contentsRect().width() - scroll = self.verticalScrollBar() - if scroll.isVisible(): - width -= scroll.width() - visible_width -= scroll.width() - if width != visible_width: - for i in range(ncols - 1): - newsize = int(round((float(visible_width) * header.sectionSize(i)) / float(width))) - self._resize_column(i, newsize) - - def resizeEvent(self, event): - if abs(event.size().width() - event.oldSize().width()) > self.verticalScrollBar().width(): - self.resize_columns() - super(MetadataBox, self).resizeEvent(event) + state = header.saveState() + config.persist["metadatabox_header_state"] = state