X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sface%2Fscreens%2Fmainscreen.py;h=e6e4fb41d4e597106dff91a574966771085d7a4d;hb=ab5bd9742a2d1b306e1a65b7f37c46f602c3fdd3;hp=b20ae516c414e0e70d5fe25d226e503c4662f617;hpb=9be93c1e7a8a2a4e0cd1c890e9ebe2acf6030787;p=sface.git diff --git a/sface/screens/mainscreen.py b/sface/screens/mainscreen.py index b20ae51..e6e4fb4 100644 --- a/sface/screens/mainscreen.py +++ b/sface/screens/mainscreen.py @@ -31,6 +31,9 @@ NODE_STATUS_COLUMN = 1 MEMBERSHIP_STATUS_COLUMN = 2 KIND_COLUMN = 3 +# maximum length of a name to display before clipping +NAME_MAX_LEN = 48 + def itemType(index): if index.parent().parent().isValid(): return "tag" @@ -144,15 +147,21 @@ class NodeNameDelegate(QStyledItemDelegate): def __init__(self, parent): QStyledItemDelegate.__init__(self, parent) + def displayText(self, value, locale): + data = str(QStyledItemDelegate.displayText(self, value, locale)) + if (len(data)>NAME_MAX_LEN): + data = data[:(NAME_MAX_LEN-3)] + "..." + return QString(data) + def paint(self, painter, option, index): model = index.model() + data = str(self.displayText(index.data(), QLocale())) status_index = model.index(index.row(), MEMBERSHIP_STATUS_COLUMN, index.parent()) status_data = status_index.data().toString() fm = QFontMetrics(option.font) rect = QRect(option.rect) - data = index.data().toString() rect.setHeight(rect.height() - 2) rect.setWidth(fm.width(QString(data)) + 6) rect.setX(rect.x() + 5)