add tooltips to IconOnly tabs

This commit is contained in:
Alfred 2021-10-23 00:25:56 +02:00 committed by John Maguire
parent 2dc8df7e23
commit 1b3b621957
1 changed files with 8 additions and 6 deletions

View File

@ -38,7 +38,7 @@ const QSize FancyTabWidget::TabSize_LargeSidebar = QSize(70, 47);
class FancyTabBar : public QTabBar { class FancyTabBar : public QTabBar {
private: private:
int mouseHoverTabIndex = -1; int mouseHoverTabIndex = -1;
QMap<QWidget*, QString> labelCache; bool isTextHiddenInToolTip = false;
public: public:
explicit FancyTabBar(QWidget* parent = 0) : QTabBar(parent) { explicit FancyTabBar(QWidget* parent = 0) : QTabBar(parent) {
@ -96,20 +96,22 @@ class FancyTabBar : public QTabBar {
verticalTextTabs = true; verticalTextTabs = true;
// Restore any label text that was hidden/cached for the IconOnlyTabs mode // Restore any label text that was hidden/cached for the IconOnlyTabs mode
if (labelCache.count() > 0 && if (isTextHiddenInToolTip &&
tabWidget->mode() != FancyTabWidget::Mode_IconOnlyTabs) { tabWidget->mode() != FancyTabWidget::Mode_IconOnlyTabs) {
for (int i = 0; i < count(); i++) { for (int i = 0; i < count(); i++) {
setTabText(i, labelCache[tabWidget->widget(i)]); setTabText(i, tabToolTip(i));
setTabToolTip(i, "");
} }
labelCache.clear(); isTextHiddenInToolTip = false;
} }
if (tabWidget->mode() != FancyTabWidget::Mode_LargeSidebar && if (tabWidget->mode() != FancyTabWidget::Mode_LargeSidebar &&
tabWidget->mode() != FancyTabWidget::Mode_SmallSidebar) { tabWidget->mode() != FancyTabWidget::Mode_SmallSidebar) {
// Cache and hide label text for IconOnlyTabs mode // Cache and hide label text for IconOnlyTabs mode
if (tabWidget->mode() == FancyTabWidget::Mode_IconOnlyTabs && if (tabWidget->mode() == FancyTabWidget::Mode_IconOnlyTabs &&
labelCache.count() == 0) { !isTextHiddenInToolTip) {
for (int i = 0; i < count(); i++) { for (int i = 0; i < count(); i++) {
labelCache[tabWidget->widget(i)] = tabText(i); isTextHiddenInToolTip = true;
setTabToolTip(i, tabText(i));
setTabText(i, ""); setTabText(i, "");
} }
} }