From faf7cde7961e801d6271f0663554658f158f2eab Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 13 Jul 2017 06:42:04 +0200 Subject: [PATCH] Some refactoring for #128. --- src/gui/tabwidget.cpp | 39 +++++++++++++++++++++------------------ src/gui/tabwidget.h | 23 +++++++++++++---------- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp index 2bf045957..d04044e87 100755 --- a/src/gui/tabwidget.cpp +++ b/src/gui/tabwidget.cpp @@ -286,6 +286,21 @@ int TabWidget::addBrowser(bool move_after_current, bool make_active, const QUrl #endif } +void TabWidget::indentTabText(int index){ +#if defined (Q_OS_MACOS) + if (tabBar()->tabType(index) != TabBar::FeedReader && !tabIcon(index).isNull()) { + // We have closable tab with some icon, fix the title. + const QString text = tabText(index); + + if (!text.startsWith(QSL(" "))) { + setTabText(index, QSL(" ") + text); + } + } +#else + Q_UNUSED(index) +#endif +} + void TabWidget::removeTab(int index, bool clear_from_memory) { if (clear_from_memory) { widget(index)->deleteLater(); @@ -297,6 +312,7 @@ void TabWidget::removeTab(int index, bool clear_from_memory) { int TabWidget::addTab(TabContent *widget, const QIcon &icon, const QString &label, const TabBar::TabType &type) { const int index = QTabWidget::addTab(widget, icon, label); tabBar()->setTabType(index, type); + indentTabText(index); return index; } @@ -304,6 +320,7 @@ int TabWidget::addTab(TabContent *widget, const QIcon &icon, const QString &labe int TabWidget::addTab(TabContent *widget, const QString &label, const TabBar::TabType &type) { const int index = QTabWidget::addTab(widget, label); tabBar()->setTabType(index, type); + indentTabText(index); return index; } @@ -311,6 +328,7 @@ int TabWidget::addTab(TabContent *widget, const QString &label, const TabBar::Ta int TabWidget::insertTab(int index, QWidget *widget, const QIcon &icon, const QString &label, const TabBar::TabType &type) { const int tab_index = QTabWidget::insertTab(index, widget, icon, label); tabBar()->setTabType(tab_index, type); + indentTabText(index); return tab_index; } @@ -318,35 +336,20 @@ int TabWidget::insertTab(int index, QWidget *widget, const QIcon &icon, const QS int TabWidget::insertTab(int index, QWidget *widget, const QString &label, const TabBar::TabType &type) { const int tab_index = QTabWidget::insertTab(index, widget, label); tabBar()->setTabType(tab_index, type); + indentTabText(index); return tab_index; } void TabWidget::changeIcon(int index, const QIcon &new_icon) { setTabIcon(index, new_icon); - -#if defined (Q_OS_MACOS) - if (tabBar()->tabType(index) != TabBar::FeedReader && !tabIcon(index).isNull()) { - // We have closable tab with some icon, fix the title. - if (!tabText(index).startsWith(QSL(" "))) { - setTabText(index, QSL(" ") + tabText(index)); - } - } -#endif + indentTabText(index); } void TabWidget::changeTitle(int index, const QString &new_title) { setTabText(index, TextFactory::shorten(new_title)); setTabToolTip(index, new_title); - -#if defined (Q_OS_MACOS) - if (tabBar()->tabType(index) != TabBar::FeedReader && !tabIcon(index).isNull()) { - // We have closable tab with some icon, fix the title. - if (!tabText(index).startsWith(QSL(" "))) { - setTabText(index, QSL(" ") + tabText(index)); - } - } -#endif + indentTabText(index); } void TabWidget::fixContentsAfterMove(int from, int to) { diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h index 8fca1a293..e7bdfb640 100755 --- a/src/gui/tabwidget.h +++ b/src/gui/tabwidget.h @@ -89,24 +89,14 @@ class TabWidget : public QTabWidget { void tabRemoved(int index); public slots: - // Fixes tabs indexes. - void fixContentsAfterMove(int from, int to); - // Called when number of tab pages changes. void checkTabBarVisibility(); - // Changes icon/text of the tab. - void changeTitle(int index, const QString &new_title); - void changeIcon(int index, const QIcon &new_icon); - // Tab closing. bool closeTab(int index); void closeAllTabsExceptCurrent(); void closeAllTabs(); - // Opens main menu. - void openMainMenu(); - // Displays download manager. void showDownloadManager(); @@ -123,7 +113,20 @@ class TabWidget : public QTabWidget { // General method for adding WebBrowsers. int addBrowser(bool move_after_current, bool make_active, const QUrl &initial_url = QUrl()); + private slots: + // Fixes tabs indexes. + void fixContentsAfterMove(int from, int to); + + // Changes icon/text of the tab. + void changeTitle(int index, const QString &new_title); + void changeIcon(int index, const QIcon &new_icon); + + // Opens main menu. + void openMainMenu(); + private: + void indentTabText(int index); + PlainToolButton *m_btnMainMenu; QMenu *m_menuMain; FeedMessageViewer *m_feedMessageViewer;