Source code for sas.qtgui.Perspectives.Fitting.OrderWidget

"""
Widget/logic for dataset ordering.
"""
from PyQt5 import QtWidgets

import sas.qtgui.Utilities.GuiUtils as GuiUtils

# Local UI
from sas.qtgui.Perspectives.Fitting.UI.OrderWidgetUI import Ui_OrderWidgetUI

[docs]class OrderWidget(QtWidgets.QWidget, Ui_OrderWidgetUI):
[docs] def __init__(self, parent=None, all_data=None): super(OrderWidget, self).__init__() self.setupUi(self) self.all_data = all_data self.order = {} self.setupTable()
[docs] def updateData(self, all_data): """ Read in new datasets and update the view """ self.all_data = all_data self.lstOrder.clear() self.setupTable()
[docs] def setupTable(self): """ Populate the widget with dataset names in original order """ if self.all_data is None: return for item in self.all_data: if not hasattr(item, 'data'): continue dataset = GuiUtils.dataFromItem(item) if dataset is None: continue dataset_name = dataset.name self.order[dataset_name] = item self.lstOrder.addItem(dataset_name)
[docs] def ordering(self): """ Returns the current ordering of the datasets """ order = [] for row in range(self.lstOrder.count()): item_name = self.lstOrder.item(row).text() order.append(self.order[item_name]) return order