Skip to content

Commit d10f4ec

Browse files
authored
Merge pull request #463 from turazashvili/fix/461-improve-tab-display-long-filenames
fix: improve tab display for long file names
2 parents 4656b06 + 93a27ae commit d10f4ec

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

zxlive/mainwindow.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323

2424
import pyperclip
2525
from PySide6.QtCore import (QByteArray, QEvent, QFile, QFileInfo, QIODevice,
26-
QMimeData, QSettings, QTextStream, QTimer, QUrl)
26+
QMimeData, QSettings, QTextStream, QTimer, QUrl,
27+
Qt)
2728
from PySide6.QtGui import (QAction, QCloseEvent, QDesktopServices, QIcon,
2829
QKeySequence, QMouseEvent, QShortcut)
2930
from PySide6.QtWidgets import (QApplication, QMainWindow, QMessageBox, QTabBar,
@@ -494,11 +495,12 @@ def redo(self, e: QEvent) -> None:
494495
def update_tab_name(self, clean: bool) -> None:
495496
i = self.tab_widget.currentIndex()
496497
name = self.tab_widget.tabText(i)
497-
if name.endswith("*"):
498-
name = name[:-1]
498+
if name.startswith("*"):
499+
name = name[1:]
499500
if not clean:
500-
name += "*"
501+
name = "*" + name
501502
self.tab_widget.setTabText(i, name)
503+
self.tab_widget.setTabToolTip(i, name)
502504

503505
def tab_changed(self, i: int) -> None:
504506
if isinstance(self.active_panel, ProofPanel):
@@ -643,6 +645,7 @@ def handle_save_as_action(self) -> bool:
643645
name = QFileInfo(file_path).baseName()
644646
i = self.tab_widget.currentIndex()
645647
self.tab_widget.setTabText(i, name)
648+
self.tab_widget.setTabToolTip(i, name)
646649
return True
647650

648651
def handle_export_tikz_proof_action(self) -> bool:
@@ -735,7 +738,8 @@ def delete_graph(self) -> None:
735738
self.active_panel.delete_selection()
736739

737740
def _new_panel(self, panel: BasePanel, name: str) -> None:
738-
self.tab_widget.addTab(panel, name)
741+
idx = self.tab_widget.addTab(panel, name)
742+
self.tab_widget.setTabToolTip(idx, name)
739743
self.tab_widget.setCurrentWidget(panel)
740744

741745
self._reset_menus(True)
@@ -775,7 +779,7 @@ def open_graph_from_notebook(self, graph: GraphT, name: str) -> None:
775779
# TODO: handle multiple tabs with the same name somehow
776780
for i in range(self.tab_widget.count()):
777781
tab_text = self.tab_widget.tabText(i)
778-
if tab_text == name or tab_text == name + "*":
782+
if tab_text == name or tab_text == "*" + name:
779783
self.tab_widget.setCurrentIndex(i)
780784
assert self.active_panel is not None
781785
self.active_panel.replace_graph(graph)
@@ -786,7 +790,7 @@ def get_copy_of_graph(self, name: str) -> Optional[GraphT]:
786790
# TODO: handle multiple tabs with the same name somehow
787791
for i in range(self.tab_widget.count()):
788792
tab_text = self.tab_widget.tabText(i)
789-
if tab_text == name or tab_text == name + "*":
793+
if tab_text == name or tab_text == "*" + name:
790794
panel = cast(BasePanel, self.tab_widget.widget(i))
791795
return cast(GraphT, copy.deepcopy(panel.graph_scene.g))
792796
return None
@@ -877,7 +881,7 @@ def update_colors(self) -> None:
877881
padding: 10px 24px;
878882
margin-right: 2px;
879883
min-width: 100px;
880-
max-width: 200px;
884+
max-width: 250px;
881885
}}
882886
883887
CustomTabBar::tab:selected {{
@@ -999,6 +1003,7 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
9991003
super().__init__(parent)
10001004
self.hovered_tab: int = -1
10011005
self.setMouseTracking(True)
1006+
self.setElideMode(Qt.TextElideMode.ElideRight)
10021007

10031008
def mouseMoveEvent(self, event: QMouseEvent) -> None:
10041009
"""Track which tab is being hovered."""

0 commit comments

Comments
 (0)