Skip to content

Commit c444fde

Browse files
.
1 parent 0a56391 commit c444fde

File tree

4 files changed

+104
-95
lines changed

4 files changed

+104
-95
lines changed

pyforms/gui/Controls/ControlCheckBoxList.py

Lines changed: 99 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -16,94 +16,102 @@
1616

1717
class ControlCheckBoxList(ControlBase):
1818

19-
def initForm(self):
20-
control_path = tools.getFileInSameDirectory(__file__,"tree.ui")
21-
self._form = uic.loadUi( control_path )
22-
23-
self._form.label.setText(self._label)
24-
25-
self._form.listWidget.itemChanged.connect(self.item_changed)
26-
27-
self._form.listWidget.itemSelectionChanged.connect(self.__itemSelectionChanged)
28-
29-
def item_changed(self, item):
30-
self.changed()
31-
32-
def __add__(self, val):
33-
if isinstance( val, (tuple, list) ):
34-
item=QtGui.QListWidgetItem(str(val[0]))
35-
item.value = val[0]
36-
if val[1]:
37-
item.setCheckState( QtCore.Qt.Checked)
38-
else:
39-
item.setCheckState( QtCore.Qt.Unchecked)
40-
else:
41-
item=QtGui.QListWidgetItem(str(val))
42-
item.value = val
43-
44-
self._form.listWidget.addItem(item)
45-
return self
46-
47-
def __sub__(self, other):
48-
if isinstance(other, int):
49-
if other < 0:
50-
indexToRemove = self._form.listWidget.currentRow()
51-
else:
52-
indexToRemove = other
53-
self._form.listWidget.takeItem(indexToRemove)
54-
else:
55-
for row in range( self.count ):
56-
item = self._form.listWidget.item(row)
57-
if item!=None and hasattr(item, 'value') and item.value==other:
58-
self._form.listWidget.takeItem(row)
59-
return self
60-
61-
def clear(self):
62-
self._form.listWidget.clear()
63-
64-
65-
############################################################################
66-
############ Events ########################################################
67-
############################################################################
68-
69-
def __itemSelectionChanged(self): self.selectionChanged()
70-
71-
def selectionChanged(self): pass
72-
73-
74-
75-
############################################################################
76-
############ Properties ####################################################
77-
############################################################################
78-
79-
@property
80-
def count(self): return self._form.listWidget.count()
81-
82-
@property
83-
def checkedIndexes(self):
84-
results = []
85-
for row in range( self.count ):
86-
item = self._form.listWidget.item(row)
87-
if item!=None and item.checkState()==QtCore.Qt.Checked : results.append( row )
88-
return results
89-
90-
@property
91-
def value(self):
92-
results = []
93-
for row in range( self.count ):
94-
item = self._form.listWidget.item(row)
95-
if item!=None and item.checkState()==QtCore.Qt.Checked :
96-
results.append( item.value if hasattr(item, 'value') else str(item.text()) )
97-
return results
98-
99-
@value.setter
100-
def value(self, value):
101-
for row in value: self += row
102-
103-
104-
@property
105-
def mouseSelectedRowIndex(self):
106-
return self.form.listWidget.currentRow()
107-
108-
109-
19+
def initForm(self):
20+
control_path = tools.getFileInSameDirectory(__file__,"tree.ui")
21+
self._form = uic.loadUi( control_path )
22+
23+
self._form.label.setText(self._label)
24+
25+
self._form.listWidget.itemChanged.connect(self.item_changed)
26+
27+
self._form.listWidget.itemSelectionChanged.connect(self.__itemSelectionChanged)
28+
29+
def item_changed(self, item):
30+
self.changed()
31+
32+
def __add__(self, val):
33+
if isinstance( val, (tuple, list) ):
34+
item=QtGui.QListWidgetItem(str(val[0]))
35+
item.value = val[0]
36+
if val[1]:
37+
item.setCheckState( QtCore.Qt.Checked)
38+
else:
39+
item.setCheckState( QtCore.Qt.Unchecked)
40+
else:
41+
item=QtGui.QListWidgetItem(str(val))
42+
item.value = val
43+
44+
self._form.listWidget.addItem(item)
45+
return self
46+
47+
def __sub__(self, other):
48+
if isinstance(other, int):
49+
if other < 0:
50+
indexToRemove = self._form.listWidget.currentRow()
51+
else:
52+
indexToRemove = other
53+
self._form.listWidget.takeItem(indexToRemove)
54+
else:
55+
for row in range( self.count ):
56+
item = self._form.listWidget.item(row)
57+
if item!=None and hasattr(item, 'value') and item.value==other:
58+
self._form.listWidget.takeItem(row)
59+
return self
60+
61+
def clear(self): self._form.listWidget.clear()
62+
63+
64+
############################################################################
65+
############ Events ########################################################
66+
############################################################################
67+
68+
def __itemSelectionChanged(self): self.selectionChanged()
69+
70+
def selectionChanged(self): pass
71+
72+
73+
74+
############################################################################
75+
############ Properties ####################################################
76+
############################################################################
77+
78+
@property
79+
def count(self): return self._form.listWidget.count()
80+
81+
@property
82+
def checkedIndexes(self):
83+
results = []
84+
for row in range( self.count ):
85+
item = self._form.listWidget.item(row)
86+
if item!=None and item.checkState()==QtCore.Qt.Checked : results.append( row )
87+
return results
88+
89+
@property
90+
def value(self):
91+
results = []
92+
for row in range( self.count ):
93+
item = self._form.listWidget.item(row)
94+
if item!=None and item.checkState()==QtCore.Qt.Checked :
95+
results.append( item.value if hasattr(item, 'value') else str(item.text()) )
96+
return results
97+
98+
@value.setter
99+
def value(self, value):
100+
for row in value: self += row
101+
102+
103+
@property
104+
def mouseSelectedRowIndex(self):
105+
return self.form.listWidget.currentRow()
106+
107+
108+
@property
109+
def items(self):
110+
results = []
111+
for row in range( self.count ):
112+
item = self._form.listWidget.item(row)
113+
results.append( [item.value if hasattr(item, 'value') else str(item.text()), item.checkState()==QtCore.Qt.Checked] )
114+
return results
115+
116+
117+

pyforms/gui/Controls/ControlDockWidget.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ class ControlDockWidget(ControlEmptyWidget):
99
SIDE_BOTTOM = 'bottom'
1010
SIDE_DETACHED = 'detached'
1111

12-
def __init__(self, label='', default=None, side='left', order=0):
12+
def __init__(self, label='', default=None, side='left', order=0, margin=0):
1313
ControlEmptyWidget.__init__(self,label)
1414
self.side = side
1515
self.order = order
16+
self.margin = margin
1617
if default is not None: self.value = default
1718
self._show = True
1819

pyforms/gui/standaloneManager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def __init__(self, ClassObject):
7878
dock.setFeatures(QtGui.QDockWidget.DockWidgetFloatable |
7979
QtGui.QDockWidget.DockWidgetClosable | QtGui.QDockWidget.DockWidgetMovable)
8080
dock.setObjectName(name)
81-
widget.form.layout().setMargin(conf.PYFORMS_MAINWINDOW_MARGIN)
81+
widget.form.layout().setMargin(widget.margin)
8282

8383
# print dock.objectName(),1
8484
dock.setWidget(widget.form)
@@ -92,7 +92,7 @@ def __init__(self, ClassObject):
9292
dock.setFeatures(QtGui.QDockWidget.DockWidgetFloatable |
9393
QtGui.QDockWidget.DockWidgetClosable | QtGui.QDockWidget.DockWidgetMovable)
9494
# dock.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
95-
widget.form.layout().setMargin(conf.PYFORMS_MAINWINDOW_MARGIN)
95+
widget.form.layout().setMargin(widget.margin)
9696

9797
# print dock.objectName(), 2
9898
dock.setObjectName(name)

pyforms/utils/package_finder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def find_class(self, class_full_name):
4949
except ImportError:
5050
pass
5151
except:
52-
logger.error('Error importing model {0}'.format(str(plugin)),exc_info=True)
52+
logger.error('Error importing model {0} {1} {2}'.format(str(plugin), str(package_name), str(class_name)),exc_info=True)
5353
pass
5454

5555
return res

0 commit comments

Comments
 (0)