Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

qtlib: add ExpanderLabel widget

ExpanderLabel = PMButton + QLabel

Changeset 85e36b671df9

Parent 90ba7deb848d

by Yuki KODAMA

Changes to one file · Browse files at 85e36b671df9 Showing diff from parent 90ba7deb848d Diff from another changeset...

 
245
246
247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
249
250
 
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
@@ -245,6 +245,42 @@
  def is_collapsed(self):   return not self.is_expanded()   +class ClickableLabel(QtGui.QLabel): + + clicked = QtCore.pyqtSignal() + + def __init__(self, label, parent=None): + QtGui.QLabel.__init__(self, parent) + + self.setText(label) + + def mouseReleaseEvent(self, event): + self.clicked.emit() + +class ExpanderLabel(QtGui.QWidget): + + expanded = QtCore.pyqtSignal(bool) + + def __init__(self, label, expanded=True, stretch=True, parent=None): + QtGui.QWidget.__init__(self, parent) + + box = QtGui.QHBoxLayout() + box.setSpacing(4) + box.setContentsMargins(*(0,)*4) + self.button = PMButton(expanded, self) + self.button.clicked.connect(self.pm_clicked) + box.addWidget(self.button) + self.label = ClickableLabel(label, self) + self.label.clicked.connect(lambda: self.button.click()) + box.addWidget(self.label) + if not stretch: + box.addStretch(0) + + self.setLayout(box) + + def pm_clicked(self): + self.expanded.emit(self.button.is_expanded()) +  def fileEditor(filename):   'Open a simple modal file editing dialog'   dialog = QtGui.QDialog()