X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Futil%2Fqui_utils.py;h=9e33f88fc71d4a99b60280073c13de86e5558dae;hb=842f868e4e0f7d4912699c568d32b1c0f9ef97e1;hp=56a34085eac3757c915b81a83afcb850e6d4abed;hpb=94f6a7c28186896e93dc039a8eecfdb251a679d6;p=gc-dialer diff --git a/src/util/qui_utils.py b/src/util/qui_utils.py index 56a3408..9e33f88 100644 --- a/src/util/qui_utils.py +++ b/src/util/qui_utils.py @@ -231,9 +231,17 @@ class QHtmlDelegate(QtGui.QStyledItemDelegate): doc.documentLayout().draw(painter, ctx) painter.restore() - def setWidth(self, width): - # @bug we need to be emitting sizeHintChanged but it requires an index + def setWidth(self, width, model): + if self._width == width: + return self._width = width + for c in xrange(model.rowCount()): + cItem = model.item(c, 0) + for r in xrange(model.rowCount()): + rItem = cItem.child(r, 0) + rIndex = model.indexFromItem(rItem) + self.sizeHintChanged.emit(rIndex) + return def sizeHint(self, option, index): newOption = QtGui.QStyleOptionViewItemV4(option) @@ -250,6 +258,28 @@ class QHtmlDelegate(QtGui.QStyledItemDelegate): return size +class QSignalingMainWindow(QtGui.QMainWindow): + + closed = QtCore.pyqtSignal() + hidden = QtCore.pyqtSignal() + shown = QtCore.pyqtSignal() + + def __init__(self, *args, **kwd): + QtGui.QMainWindow.__init__(*((self, )+args), **kwd) + + def closeEvent(self, event): + QtGui.QMainWindow.closeEvent(self, event) + self.closed.emit() + + def hideEvent(self, event): + QtGui.QMainWindow.hideEvent(self, event) + self.hidden.emit() + + def showEvent(self, event): + QtGui.QMainWindow.showEvent(self, event) + self.shown.emit() + + def _null_set_stackable(window, isStackable): pass