@@ -11109,6 +11109,11 @@ def __init__(self, parent = None):
11109
11109
11110
11110
#FILE menu
11111
11111
self.newRoastMenu = self.fileMenu.addMenu(UIconst.FILE_MENU_NEW)
11112
+ # add NEW menu item
11113
+ newRoastAction = QAction(UIconst.FILE_MENU_NEW,self)
11114
+ newRoastAction.setShortcut(QKeySequence.New)
11115
+ newRoastAction.triggered.connect(self.newRoast)
11116
+ self.newRoastMenu.addAction(newRoastAction)
11112
11117
11113
11118
self.fileLoadAction = QAction(UIconst.FILE_MENU_OPEN,self)
11114
11119
self.fileLoadAction.setShortcut(QKeySequence.Open)
@@ -12845,10 +12850,10 @@ def newRecentRoast(self):
12845
12850
def updateNewMenuRecentRoasts(self):
12846
12851
self.newRoastMenu.clear()
12847
12852
# add NEW menu item
12848
- self. newRoastAction = QAction(UIconst.FILE_MENU_NEW,self)
12849
- self. newRoastAction.setShortcut(QKeySequence.New)
12850
- self. newRoastAction.triggered.connect(self.newRoast)
12851
- self.newRoastMenu.addAction(self. newRoastAction)
12853
+ newRoastAction = QAction(UIconst.FILE_MENU_NEW,self)
12854
+ newRoastAction.setShortcut(QKeySequence.New)
12855
+ newRoastAction.triggered.connect(self.newRoast)
12856
+ self.newRoastMenu.addAction(newRoastAction)
12852
12857
# add recent roasts items
12853
12858
if len(self.recentRoasts) > 0:
12854
12859
self.newRoastMenu.addSeparator()
@@ -16254,12 +16259,12 @@ def newRoast(self):
16254
16259
#########################################
16255
16260
if self.qmc.flagstart:
16256
16261
if self.qmc.timeindex[0] == -1:
16257
- self.sendmessage(QApplication.translate("Message","No profile found", None))
16262
+ self.sendmessage(QApplication.translate("Message","NEW ROAST canceled: incomplete profile lacking CHARGE and DROP found", None))
16258
16263
return
16259
16264
#mark drop if not yet done
16260
16265
if self.qmc.timeindex[6] == 0:
16261
16266
# self.qmc.markDrop()
16262
- self.sendmessage(QApplication.translate("Message","No profile found", None))
16267
+ self.sendmessage(QApplication.translate("Message","NEW ROAST canceled: incomplete profile lacking DROP found", None))
16263
16268
return
16264
16269
#invoke "OFF"
16265
16270
self.qmc.OffMonitor()
@@ -17850,19 +17855,19 @@ def setProfile(self,filename,profile,quiet=False):
17850
17855
else:
17851
17856
self.qmc.title = QApplication.translate("Scope Title", "Roaster Scope",None)
17852
17857
17853
- ##PLUS (for now stored but not loaded)
17854
- ## if "plus_store" in profile:
17855
- ## self.qmc.plus_store = d(profile["plus_store"])
17856
- ## else:
17857
- ## self.qmc.plus_store = None
17858
- ## if "plus_coffee" in profile:
17859
- ## self.qmc.plus_coffee = d(profile["plus_coffee"])
17860
- ## else:
17861
- ## self.qmc.plus_coffee = None
17862
- ## if "plus_blend" in profile:
17863
- ## self.qmc.plus_blend = d(profile["plus_blend"])
17864
- ## else:
17865
- ## self.qmc.plus_blend = None
17858
+ ##PLUS
17859
+ if "plus_store" in profile:
17860
+ self.qmc.plus_store = d(profile["plus_store"])
17861
+ else:
17862
+ self.qmc.plus_store = None
17863
+ if "plus_coffee" in profile:
17864
+ self.qmc.plus_coffee = d(profile["plus_coffee"])
17865
+ else:
17866
+ self.qmc.plus_coffee = None
17867
+ if "plus_blend" in profile:
17868
+ self.qmc.plus_blend = d(profile["plus_blend"])
17869
+ else:
17870
+ self.qmc.plus_blend = None
17866
17871
17867
17872
17868
17873
if "beans" in profile:
@@ -18462,6 +18467,7 @@ def getProfile(self):
18462
18467
profile["volume"] = [self.qmc.volume[0],self.qmc.volume[1],encodeLocal(self.qmc.volume[2])]
18463
18468
profile["density"] = [self.qmc.density[0],encodeLocal(self.qmc.density[1]),self.qmc.density[2],encodeLocal(self.qmc.density[3])]
18464
18469
profile["roastertype"] = encodeLocal(self.qmc.roastertype)
18470
+ profile["machinesetup"] = encodeLocal(self.qmc.machinesetup)
18465
18471
profile["operator"] = encodeLocal(self.qmc.operator)
18466
18472
profile["drumspeed"] = self.qmc.drumspeed
18467
18473
profile["heavyFC"] = self.qmc.heavyFC_flag
@@ -18864,16 +18870,17 @@ def settingsLoad(self, filename=None):
18864
18870
18865
18871
if settings.contains("fullscreen"):
18866
18872
self.full_screen_mode_active = bool(toBool(settings.value("fullscreen",self.full_screen_mode_active)))
18867
- #PLUS
18868
- if settings.contains("plus_account"):
18869
- self.plus_account = settings.value("plus_account",self.plus_account)
18870
- self.plus_remember_credentials = bool(toBool(settings.value("plus_remember_credentials",self.plus_remember_credentials)))
18871
- if self.plus_account is not None:
18872
- try:
18873
- import plus.controller
18874
- plus.controller.start(aw)
18875
- except:
18876
- pass
18873
+
18874
+ #PLUS-COMMENT
18875
+ # if settings.contains("plus_account"):
18876
+ # self.plus_account = settings.value("plus_account",self.plus_account)
18877
+ # self.plus_remember_credentials = bool(toBool(settings.value("plus_remember_credentials",self.plus_remember_credentials)))
18878
+ # if self.plus_account is not None:
18879
+ # try:
18880
+ # import plus.controller
18881
+ # plus.controller.start(aw)
18882
+ # except:
18883
+ # pass
18877
18884
18878
18885
#restore mode
18879
18886
old_mode = self.qmc.mode
@@ -19956,7 +19963,7 @@ def settingsLoad(self, filename=None):
19956
19963
else:
19957
19964
self.recentRoasts = []
19958
19965
self.updateNewMenuRecentRoasts()
19959
- except:
19966
+ except Exception :
19960
19967
pass
19961
19968
19962
19969
# #update axis limits
@@ -28051,6 +28058,13 @@ def __init__(self, parent = None):
28051
28058
self.setModal(True)
28052
28059
self.setWindowTitle(QApplication.translate("Form Caption","Roast Properties",None))
28053
28060
28061
+ # remember parameters related to plus_coffee/plus_blend
28062
+ # if any of those changed manually while in non-plus mode, plus_coffee, plus_blend an plus_stock needs to be reset
28063
+ self.org_beans = aw.qmc.beans
28064
+ self.org_density = aw.qmc.density
28065
+ self.org_beansize_min = aw.qmc.beansize_min
28066
+ self.org_beansize_max = aw.qmc.beansize_max
28067
+ self.org_moisture_greens = aw.qmc.moisture_greens
28054
28068
28055
28069
self.org_specialevents = aw.qmc.specialevents
28056
28070
self.org_specialeventstype = aw.qmc.specialeventstype
@@ -28651,7 +28665,7 @@ def __init__(self, parent = None):
28651
28665
titleLine.addSpacing(5)
28652
28666
titleLine.addWidget(self.titleShowAlwaysFlag)
28653
28667
28654
- #PLUS (keep)
28668
+ #PLUS
28655
28669
self.plus_store_selected = None
28656
28670
self.plus_coffee_selected = None
28657
28671
self.plus_blend_selected = None
@@ -28673,7 +28687,7 @@ def __init__(self, parent = None):
28673
28687
self.plus_stores_combo = QComboBox()
28674
28688
self.plus_coffees_combo = QComboBox()
28675
28689
self.plus_blends_combo = QComboBox()
28676
- self.populatePlusCoffeeBlendCombos()
28690
+ self.populatePlusCoffeeBlendCombos()
28677
28691
self.plus_stores_combo.currentIndexChanged.connect(self.storeSelectionChanged)
28678
28692
self.plus_coffees_combo.currentIndexChanged.connect(self.coffeeSelectionChanged)
28679
28693
self.plus_blends_combo.currentIndexChanged.connect(self.blendSelectionChanged)
@@ -28965,6 +28979,11 @@ def populatePlusCoffeeBlendCombos(self,storeIndex=None):
28965
28979
self.plus_stores_combo.blockSignals(False)
28966
28980
28967
28981
storeIdx = self.plus_stores_combo.currentIndex()
28982
+
28983
+ # we reset the store if a coffee or blend is selected and the selected store is not equal to the default store
28984
+ if (self.plus_coffee_selected or self.plus_blend_selected) and self.plus_store_selected != plus.stock.getStoreId(self.plus_stores[storeIdx-1]):
28985
+ storeIdx = None
28986
+
28968
28987
if storeIdx:
28969
28988
self.plus_default_store = plus.stock.getStoreId(self.plus_stores[storeIdx-1])
28970
28989
else:
@@ -28983,7 +29002,7 @@ def populatePlusCoffeeBlendCombos(self,storeIndex=None):
28983
29002
if p is None:
28984
29003
self.plus_coffees_combo.setCurrentIndex(0)
28985
29004
if self.plus_blend_selected is None:
28986
- self.beansedit.setReadOnly (False)
29005
+ self.setReadOnlyPlusBlendFields (False)
28987
29006
self.plus_coffee_selected = None
28988
29007
self.plus_coffees_combo.blockSignals(False)
28989
29008
else:
@@ -29011,7 +29030,7 @@ def populatePlusCoffeeBlendCombos(self,storeIndex=None):
29011
29030
if p is None:
29012
29031
self.plus_blends_combo.setCurrentIndex(0)
29013
29032
if self.plus_coffee_selected is None:
29014
- self.beansedit.setReadOnly (False)
29033
+ self.setReadOnlyPlusCoffeeFields (False)
29015
29034
self.plus_blend_selected = None
29016
29035
self.plus_blends_combo.blockSignals(False)
29017
29036
else:
@@ -29025,6 +29044,20 @@ def populatePlusCoffeeBlendCombos(self,storeIndex=None):
29025
29044
self.plus_blends_combo.blockSignals(False)
29026
29045
self.plus_blends_combo.setCurrentIndex(p+1)
29027
29046
29047
+ def setReadOnlyPlusCoffeeFields(self,b):
29048
+ self.beansedit.setReadOnly(b)
29049
+ self.bean_density_weightUnitsComboBox.setDisabled(b)
29050
+ self.bean_density_volumeUnitsComboBox.setDisabled(b)
29051
+ self.bean_density_weight_edit.setReadOnly(b)
29052
+ self.bean_density_volume_edit.setReadOnly(b)
29053
+ self.bean_density_weight_edit.setReadOnly(b)
29054
+ self.bean_size_min_edit.setReadOnly(b)
29055
+ self.bean_size_max_edit.setReadOnly(b)
29056
+ self.moisture_greens_edit.setReadOnly(b)
29057
+
29058
+ def setReadOnlyPlusBlendFields(self,b):
29059
+ self.beansedit.setReadOnly(b)
29060
+
29028
29061
def fillBlendData(self,blend):
29029
29062
import plus.stock
29030
29063
try:
@@ -29036,6 +29069,7 @@ def fillBlendData(self,blend):
29036
29069
self.beansedit.clear()
29037
29070
for l in blend_lines:
29038
29071
self.beansedit.append(l)
29072
+ self.setReadOnlyPlusBlendFields(True)
29039
29073
except:
29040
29074
pass
29041
29075
@@ -29067,17 +29101,17 @@ def fillCoffeeData(self,coffee):
29067
29101
else:
29068
29102
self.bean_size_min_edit.setText("0")
29069
29103
self.bean_size_max_edit.setText("0")
29070
- self.standard_density()
29071
- self.beansedit.setReadOnly (True)
29104
+ self.standard_density()
29105
+ self.setReadOnlyPlusCoffeeFields (True)
29072
29106
29073
29107
def defaultCoffeeData(self):
29074
29108
self.beansedit.setPlainText("")
29075
- self.beansedit.setReadOnly(False)
29076
29109
self.moisture_greens_edit.setText(str(0))
29077
29110
self.bean_density_weight_edit.setText(str(0))
29078
29111
self.standard_density()
29079
29112
self.bean_size_min_edit.setText("0")
29080
29113
self.bean_size_max_edit.setText("0")
29114
+ self.setReadOnlyPlusCoffeeFields(False)
29081
29115
29082
29116
def storeSelectionChanged(self,n):
29083
29117
if n != -1:
@@ -30225,6 +30259,15 @@ def accept(self):
30225
30259
aw.qmc.roastbatchprefix = u(self.batchprefixedit.text())
30226
30260
aw.qmc.roastbatchnr = self.batchcounterSpinBox.value()
30227
30261
aw.qmc.roastbatchpos = self.batchposSpinBox.value()
30262
+
30263
+ # Reset Plus if any of the plus_coffee related values changed
30264
+ if aw.plus_account is None and aw.qmc.plus_coffee is not None and (self.org_beans != aw.qmc.beans or self.org_density != aw.qmc.density or \
30265
+ self.org_beansize_min != aw.qmc.beansize_min or self.org_beansize_max != aw.qmc.beansize_max or \
30266
+ self.org_moisture_greens != aw.qmc.moisture_greens):
30267
+ aw.qmc.plus_coffee = None
30268
+ if aw.plus_account is None and aw.qmc.plus_blend is not None and self.org_beans != aw.qmc.beans:
30269
+ aw.qmc.plus_blend = None
30270
+
30228
30271
aw.sendmessage(QApplication.translate("Message","Roast properties updated but profile not saved to disk", None))
30229
30272
aw.qmc.redraw(recomputeAllDeltas=False)
30230
30273
self.close()
@@ -45002,12 +45045,11 @@ def addalarm(self):
45002
45045
self.setalarmtablerow(nalarms)
45003
45046
45004
45047
header = self.alarmtable.horizontalHeader()
45005
- header.setStretchLastSection(False )
45048
+ header.setStretchLastSection(True )
45006
45049
45007
45050
if len(aw.qmc.alarmflag) == 1: # only for the first entry we apply some default column width
45008
- self.alarmtable.resizeColumnsToContents()
45009
- self.alarmtable.resizeRowsToContents()
45010
45051
# improve width of Qlineedit columns
45052
+ self.alarmtable.resizeColumnsToContents()
45011
45053
self.alarmtable.setColumnWidth(1,50)
45012
45054
self.alarmtable.setColumnWidth(2,50)
45013
45055
self.alarmtable.setColumnWidth(3,50)
@@ -45016,13 +45058,14 @@ def addalarm(self):
45016
45058
self.alarmtable.setColumnWidth(6,70)
45017
45059
self.alarmtable.setColumnWidth(7,90)
45018
45060
self.alarmtable.setColumnWidth(8,50)
45019
- self.alarmtable.setColumnWidth(9,90)
45061
+ self.alarmtable.setColumnWidth(9,90)
45020
45062
# remember the columnwidth
45021
45063
for i in range(len(aw.qmc.alarmtablecolumnwidths)):
45022
45064
try:
45023
45065
self.alarmtable.setColumnWidth(i,aw.qmc.alarmtablecolumnwidths[i])
45024
45066
except:
45025
45067
pass
45068
+ self.alarmtable.setSortingEnabled(True)
45026
45069
else:
45027
45070
self.deselectAll()
45028
45071
# select newly added row i.e. the last one
0 commit comments