diff -r 31463df17fd5 -r b5c84934de9c E4Gui/E4SqueezeLabels.py --- a/E4Gui/E4SqueezeLabels.py Tue Jan 12 18:39:15 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2008 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing labels that squeeze their contents to fit the size of the label. -""" - -from PyQt4.QtCore import Qt -from PyQt4.QtGui import QLabel - -from Utilities import compactPath - -class E4SqueezeLabel(QLabel): - """ - Class implementing a label that squeezes its contents to fit it's size. - """ - def __init__(self, parent = None): - """ - Constructor - - @param parent reference to the parent Widget (QWidget) - """ - QLabel.__init__(self, parent) - - self.__text = '' - self.__elided = '' - - def paintEvent(self, event): - """ - Protected method called when some painting is required. - - @param event reference to the paint event (QPaintEvent) - """ - fm = self.fontMetrics() - if fm.width(self.__text) > self.contentsRect().width(): - self.__elided = fm.elidedText(self.text(), Qt.ElideMiddle, self.width()) - QLabel.setText(self, self.__elided) - else: - QLabel.setText(self, self.__text) - QLabel.paintEvent(self, event) - - def setText(self, txt): - """ - Public method to set the label's text. - - @param txt the text to be shown (string) - """ - self.__text = txt - QLabel.setText(self, self.__text) - -class E4SqueezeLabelPath(QLabel): - """ - Class implementing a label showing a file path compacted to fit it's size. - """ - def __init__(self, parent = None): - """ - Constructor - - @param parent reference to the parent Widget (QWidget) - """ - QLabel.__init__(self, parent) - - self.__path = '' - self.__surrounding = "{0}" - - def setSurrounding(self, surrounding): - """ - Public method to set the surrounding of the path string. - - @param surrounding the a string containg placeholders for the path (string) - """ - self.__surrounding = surrounding - QLabel.setText(self, self.__surrounding.format(self.__path)) - - def setPath(self, path): - """ - Public method to set the path of the label. - - @param path path to be shown (string) - """ - self.__path = path - QLabel.setText(self, self.__surrounding.format(self.__path)) - - def setTextPath(self, surrounding, path): - """ - Public method to set the surrounding and the path of the label. - - @param surrounding the a string containg placeholders for the path (string) - @param path path to be shown (string) - """ - self.__surrounding = surrounding - self.__path = path - QLabel.setText(self, self.__surrounding.format(self.__path)) - - def paintEvent(self, event): - """ - Protected method called when some painting is required. - - @param event reference to the paint event (QPaintEvent) - """ - fm = self.fontMetrics() - if fm.width(self.__surrounding.format(self.__path)) > self.contentsRect().width(): - QLabel.setText(self, - self.__surrounding.format(compactPath(self.__path, - self.contentsRect().width(), - self.length)) - ) - else: - QLabel.setText(self, self.__surrounding.format(self.__path)) - QLabel.paintEvent(self, event) - - def length(self, txt): - """ - Public method to return the length of a text in pixels. - - @param txt text to calculate the length for after wrapped (string) - @return length of the wrapped text in pixels (integer) - """ - return self.fontMetrics().width(self.__surrounding.format(txt))