From 170c8ef4045ea621fd6f1ecf5259cdbe71feaea7 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Tue, 14 Nov 2017 18:11:50 +0100 Subject: [PATCH] Fixes #194: Editor tab should trim long titles --- manuskript/ui/editors/editorWidget.py | 12 +++++++++++- manuskript/ui/editors/mainEditor.py | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/manuskript/ui/editors/editorWidget.py b/manuskript/ui/editors/editorWidget.py index 623b62a..b23d349 100644 --- a/manuskript/ui/editors/editorWidget.py +++ b/manuskript/ui/editors/editorWidget.py @@ -40,6 +40,8 @@ class editorWidget(QWidget, Ui_editorWidget_ui): toggledSpellcheck = pyqtSignal(bool) dictChanged = pyqtSignal(str) + _maxTabTitleLength = 24 + def __init__(self, parent): QWidget.__init__(self, parent) self.setupUi(self) @@ -113,7 +115,15 @@ class editorWidget(QWidget, Ui_editorWidget_ui): return i = self._tabWidget.indexOf(self) - self._tabWidget.setTabText(i, item.title()) + + self._tabWidget.setTabText(i, self.ellidedTitle(item.title())) + self._tabWidget.setTabToolTip(i, item.title()) + + def ellidedTitle(self, title): + if len(title) > self._maxTabTitleLength: + return "{}…".format(title[:self._maxTabTitleLength]) + else: + return title def setView(self): # index = mainWindow().treeRedacOutline.currentIndex() diff --git a/manuskript/ui/editors/mainEditor.py b/manuskript/ui/editors/mainEditor.py index d410e28..1eafe22 100644 --- a/manuskript/ui/editors/mainEditor.py +++ b/manuskript/ui/editors/mainEditor.py @@ -220,7 +220,8 @@ class mainEditor(QWidget, Ui_mainEditor): editor = editorWidget(self) editor.setCurrentModelIndex(index) editor._tabWidget = tabWidget - tabWidget.addTab(editor, title) + i = tabWidget.addTab(editor, editor.ellidedTitle(title)) + tabWidget.setTabToolTip(i, title) tabWidget.setCurrentIndex(tabWidget.count() - 1) else: self.currentEditor(tabWidget).setCurrentModelIndex(index)