diff options
| author | Jon Ander Peñalba <jonan88@gmail.com> | 2010-11-30 22:04:41 +0100 | 
|---|---|---|
| committer | Jon Ander Peñalba <jonan88@gmail.com> | 2010-11-30 22:04:41 +0100 | 
| commit | 491f63610fc9f74ca8097a516347f1399cbc71c2 (patch) | |
| tree | 6eb71f8db630de6e510af44441656443da68758b | |
| parent | Port SearchEngine from somewhat unsafe "naked" static variables to (diff) | |
| download | rekonq-491f63610fc9f74ca8097a516347f1399cbc71c2.tar.xz | |
Show and hide the add-tab button automatically
| -rw-r--r-- | src/mainview.cpp | 38 | ||||
| -rw-r--r-- | src/mainview.h | 2 | ||||
| -rw-r--r-- | src/tabbar.cpp | 30 | ||||
| -rw-r--r-- | src/tabbar.h | 6 | 
4 files changed, 33 insertions, 43 deletions
| diff --git a/src/mainview.cpp b/src/mainview.cpp index 37a5df0d..850101e2 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -99,7 +99,7 @@ MainView::MainView(MainWindow *parent)  void MainView::postLaunch()  {      QStringList list = Application::sessionManager()->closedSites(); -    foreach(const QString &line, list) +    Q_FOREACH(const QString &line, list)      {          if(line.startsWith( QL1S("about") ))              break; @@ -176,41 +176,17 @@ WebTab *MainView::currentWebTab() const  void MainView::updateTabBar()  { -    if (ReKonfig::alwaysShowTabBar()) +    if (ReKonfig::alwaysShowTabBar() || tabBar()->count() > 1)      { -        if (!isTabBarHidden()) -        { -            if (tabBar()->isHidden()) -            { -                tabBar()->show(); -                m_addTabButton->show(); -            } -            updateTabButtonPosition(); -        } -        return; +        if (tabBar()->isHidden()) +            tabBar()->show();      } - -    if (tabBar()->count() == 1) +    else      {          tabBar()->hide(); -        m_addTabButton->hide(); -    } -    else if (!isTabBarHidden()) -    { -        if (tabBar()->isHidden()) -        { -            tabBar()->show(); -            m_addTabButton->show(); -        } -        updateTabButtonPosition();      } -} - -void MainView::setTabBarHidden(bool hide) -{ -    m_addTabButton->setVisible(!hide); -    KTabWidget::setTabBarHidden(hide); +    updateTabButtonPosition();  } @@ -557,7 +533,7 @@ void MainView::webViewIconChanged()      WebView *view = qobject_cast<WebView *>(sender());      WebTab *tab = qobject_cast<WebTab *>(view->parent());      int index = indexOf(tab); -     +      if (-1 != index)      {          kDebug() << "TAB URL: " << tab->url(); diff --git a/src/mainview.h b/src/mainview.h index 2ba18892..1d04d284 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -83,8 +83,6 @@ public:       */      void updateTabBar(); -    void setTabBarHidden(bool hide); -      inline QToolButton *addTabButton() const { return m_addTabButton; }      /** diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 0866bfd8..286d7d45 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -77,11 +77,6 @@ TabBar::TabBar(QWidget *parent)  } -TabBar::~TabBar() -{ -} - -  QSize TabBar::tabSizeHint(int index) const  {      MainView *view = qobject_cast<MainView *>(parent()); @@ -189,6 +184,26 @@ void TabBar::showTabPreview()  } +void TabBar::hideEvent(QHideEvent *event) +{ +    if (!event->spontaneous()) +    { +        qobject_cast<MainView *>(parent())->addTabButton()->hide(); +    } +    QTabBar::hideEvent(event); +} + + +void TabBar::showEvent(QShowEvent *event) +{ +    QTabBar::showEvent(event); +    if (!event->spontaneous()) +    { +        qobject_cast<MainView *>(parent())->addTabButton()->show(); +    } +} + +  void TabBar::mouseMoveEvent(QMouseEvent *event)  {      if (count() == 1) @@ -338,9 +353,8 @@ void TabBar::mouseReleaseEvent(QMouseEvent *event)  } -void TabBar::tabRemoved(int index) +void TabBar::tabRemoved(int /*index*/)  { -    Q_UNUSED(index)      if (ReKonfig::alwaysShowTabPreviews())      {          if (!m_previewPopup.isNull()) @@ -374,7 +388,7 @@ void TabBar::setupHistoryActions()      if(!isEnabled)          return; -    foreach (const HistoryItem &item, mv->recentlyClosedTabs()) +    Q_FOREACH(const HistoryItem &item, mv->recentlyClosedTabs())      {          KAction *a = new KAction(Application::iconManager()->iconForUrl(item.url), item.title, this);          a->setData(item.url); diff --git a/src/tabbar.h b/src/tabbar.h index a80776e1..acd8e2fb 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -51,8 +51,8 @@ class REKONQ_TESTS_EXPORT TabBar : public KTabBar      Q_OBJECT  public: -    TabBar(QWidget *parent); -    ~TabBar(); +    explicit TabBar(QWidget *parent); +    virtual ~TabBar() {}  signals:      void cloneTab(int index); @@ -68,6 +68,8 @@ protected:       */      virtual QSize tabSizeHint(int index) const; +    virtual void hideEvent(QHideEvent *event); +    virtual void showEvent(QShowEvent *event);      virtual void mouseMoveEvent(QMouseEvent *event);      virtual void leaveEvent(QEvent *event);      virtual void mousePressEvent(QMouseEvent *event); | 
