Index: src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py (revision 8595edddba0b6b1c27314d21b64b79e3953d8611)
+++ src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py (revision 0efe79170ae336458240b961a7f6d172cc0e2779)
@@ -2,4 +2,6 @@
import json
import os
+from collections import defaultdict
+
from PyQt4 import QtGui
from PyQt4 import QtCore
@@ -9,43 +11,50 @@
from sasmodels import generate
from sasmodels import modelinfo
-
-from collections import defaultdict
from sas.sasgui.guiframe.CategoryInstaller import CategoryInstaller
class FittingWindow(QtGui.QDialog, Ui_FittingUI):
+ """
+ Main window for selecting form and structure factor models
+ """
name = "Fitting" # For displaying in the combo box
def __init__(self, manager=None, parent=None):
+ """
+
+ :param manager:
+ :param parent:
+ :return:
+ """
super(FittingWindow, self).__init__()
+
self._model_model = QtGui.QStandardItemModel()
self._poly_model = QtGui.QStandardItemModel()
self.setupUi(self)
+ self.tableView.setModel(self._model_model)
self._readCategoryInfo()
- cat_list = sorted(self.master_category_dict.keys())
- self.comboBox.addItems(cat_list)
- self.tableView.setModel(self._model_model)
- self.comboBox.currentIndexChanged.connect(self.selectCategoryModels)
-
- category = self.comboBox.currentText()
-
- #self.comboBox_2.addItem('Select Model')
- item = QtGui.QStandardItem('Select Model')
- item.setForeground(QtGui.QColor('red'))
- self.comboBox_2.model().appendRow(item)
- #This should disable selectin "Select Model" but it doesn't work
- self.comboBox.setItemData(0, False, QtCore.Qt.UserRole - 1)
-
+
+ structure_factor_list = self.master_category_dict.pop('Structure Factor')
+ for (structure_factor, enabled) in structure_factor_list:
+ self.cbStructureFactor.addItem(structure_factor)
+ self.cbStructureFactor.currentIndexChanged.connect(self.selectStructureFactor)
+
+ category_list = sorted(self.master_category_dict.keys())
+ self.cbCategory.addItems(category_list)
+ self.cbCategory.currentIndexChanged.connect(self.selectCategory)
+
+ category = self.cbCategory.currentText()
model_list = self.master_category_dict[str(category)]
for (model, enabled) in model_list:
- self.comboBox_2.addItem(model)
-
- self.comboBox_2.currentIndexChanged.connect(self.selectModel)
+ self.cbModel.addItem(model)
+ self.cbModel.currentIndexChanged.connect(self.selectModel)
self.pushButton.setEnabled(False)
- self.checkBox_3.setEnabled(False)
- self.checkBox_4.setEnabled(False)
- self.label_20.setText("---")
- self.label_21.setText("---")
- self.label_24.setText("---")
+ self.chkPolydispersity.setEnabled(False)
+ self.chkSmearing.setEnabled(False)
+
+ #TODO: Can these be removed?
+ self.lblMinRangeDef.setText("---")
+ self.lblMaxRangeDef.setText("---")
+ self.lblChi2Value.setText("---")
#self.setTableProperties(self.tableView)
@@ -61,15 +70,30 @@
self.tableView_2.setIndexWidget(i,c)
- def selectCategoryModels(self, index):
- self.comboBox_2.clear()
- category = self.comboBox.currentText()
+ def selectCategory(self):
+ """
+ Select Category from list
+ :return:
+ """
+ self.cbModel.clear()
+ category = self.cbCategory.currentText()
model_list = self.master_category_dict[str(category)]
for (model, enabled) in model_list:
- self.comboBox_2.addItem(model)
-
- def selectModel(self, index):
-
- model = self.comboBox_2.currentText()
+ self.cbModel.addItem(model)
+
+ def selectModel(self):
+ """
+ Select Model from list
+ :return:
+ """
+ model = self.cbModel.currentText()
self.setModelModel(model)
+
+ def selectStructureFactor(self):
+ """
+ Select Structure Factor from list
+ :param:
+ :return:
+ """
+
def _readCategoryInfo(self):
@@ -109,4 +133,9 @@
def setModelModel(self, model_name):
+ """
+ Setting model parameters into table based on selected
+ :param model_name:
+ :return:
+ """
# Crete/overwrite model items
self._model_model.clear()
@@ -150,5 +179,9 @@
def setTableProperties(self, table):
-
+ """
+ Setting table properties
+ :param table:
+ :return:
+ """
table.setStyleSheet("background-image: url(model.png);")
@@ -164,4 +197,8 @@
def setPolyModel(self):
+ """
+ Set polydispersity values
+ :return:
+ """
item1 = QtGui.QStandardItem("Distribution of radius")
item1.setCheckable(True)
Index: src/sas/qtgui/Perspectives/Fitting/UI/FittingUI.ui
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UI/FittingUI.ui (revision 2bb20a5db9e542b1f11c8032af50e433da58fd6f)
+++ src/sas/qtgui/Perspectives/Fitting/UI/FittingUI.ui (revision 0efe79170ae336458240b961a7f6d172cc0e2779)
@@ -133,16 +133,11 @@
-
-
+
-
-
+
-
-
-
-
-
- Hard Sphere Structure
-
-
+
-
@@ -174,5 +169,5 @@
-
-
+
true
@@ -187,5 +182,5 @@
-
-
+
true
@@ -211,5 +206,5 @@
-
-
+
Min range
@@ -218,5 +213,5 @@
-
-
+
0.005
@@ -225,5 +220,5 @@
-
-
+
<html><head/><body><p>Ã
@@ -233,5 +228,5 @@
-
-
+
Max range
@@ -240,5 +235,5 @@
-
-
+
0.1
@@ -247,5 +242,5 @@
-
-
+
<html><head/><body><p>Ã
@@ -281,5 +276,5 @@
-
-
+
<html><head/><body><p><span style=" font-weight:600;">Ï</span><span style=" font-weight:600; vertical-align:super;">2</span></p></body></html>
@@ -288,5 +283,5 @@
-
-
+
<html><head/><body><p><span style=" font-weight:600;">0.01625</span></p></body></html>