X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Fmainscreen.py;h=e6e4fb41d4e597106dff91a574966771085d7a4d;hp=b20ae516c414e0e70d5fe25d226e503c4662f617;hb=b5b5075588b35341f7169a6956dc8f7db624fcc5;hpb=45b9f4bf0be035b42bb7b30c10628c0119661473 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)