[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [yakuake] /: Retract after last tab closes.
From:       Eike Hein <hein () kde ! org>
Date:       2011-12-05 21:47:51
Message-ID: 20111205214751.A5D4AA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit ebe9b2b30716c02e0d3e5f008465897093d453ac by Eike Hein.
Committed on 05/12/2011 at 22:38.
Pushed by hein into branch 'master'.

Retract after last tab closes.

Patch by A Janardhan Reddy, with minor cleanup by me.

BUG:206845

M  +1    -0    ChangeLog
M  +8    -0    app/mainwindow.cpp
M  +1    -0    app/mainwindow.h
M  +1    -1    app/tabbar.cpp
M  +1    -0    app/tabbar.h

http://commits.kde.org/yakuake/ebe9b2b30716c02e0d3e5f008465897093d453ac

diff --git a/ChangeLog b/ChangeLog
index 76605bd..10cc0ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,7 @@ Changes since 2.9.8:
   option to also use the action to focus the window is disabled, has now
   been changed to move the window to the current virtual desktop and focus
   it, rather than retract it.
+* Yakuake now automatically retracts after the last open tab closes.
 * A number of default keyboard shortcuts have been changed to reestablish
   consistency with Konsole, which introduced changed defaults in KDE Soft-
   ware Compilation v4.6.
diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp
index 8a6a2dd..256c2d5 100644
--- a/app/mainwindow.cpp
+++ b/app/mainwindow.cpp
@@ -83,6 +83,8 @@ MainWindow::MainWindow(QWidget* parent)
     setupMenu();
 
     connect(m_tabBar, SIGNAL(newTabRequested()), m_sessionStack, \
SLOT(addSession())); +    connect(m_tabBar, SIGNAL(lastTabClosed()), m_tabBar, \
SIGNAL(newTabRequested())); +    connect(m_tabBar, SIGNAL(lastTabClosed()), this, \
                SLOT(void handleLastTabClosed()));
     connect(m_tabBar, SIGNAL(tabSelected(int)), m_sessionStack, \
                SLOT(raiseSession(int)));
     connect(m_tabBar, SIGNAL(tabClosed(int)), m_sessionStack, \
                SLOT(removeSession(int)));
     connect(m_tabBar, SIGNAL(requestTerminalHighlight(int)), m_sessionStack, \
SLOT(handleTerminalHighlightRequest(int))); @@ -534,6 +536,12 @@ void \
MainWindow::handleTerminalSilence(Terminal* terminal)  }
 }
 
+void MainWindow::handleLastTabClosed()
+{
+    if (isVisible())
+        toggleWindowState();
+}
+
 void MainWindow::handleSwitchToAction()
 {
     QAction* action = qobject_cast<QAction*>(QObject::sender());
diff --git a/app/mainwindow.h b/app/mainwindow.h
index 9f5c061..0128686 100644
--- a/app/mainwindow.h
+++ b/app/mainwindow.h
@@ -78,6 +78,7 @@ class MainWindow : public KMainWindow
         void handleToggleTerminalMonitorSilence(bool checked);
         void handleTerminalActivity(Terminal* terminal);
         void handleTerminalSilence(Terminal* terminal);
+        void handleLastTabClosed();
 
 
     signals:
diff --git a/app/tabbar.cpp b/app/tabbar.cpp
index ab84cc2..f48136b 100644
--- a/app/tabbar.cpp
+++ b/app/tabbar.cpp
@@ -758,7 +758,7 @@ void TabBar::removeTab(int sessionId)
     m_tabTitles.remove(sessionId);
 
     if (m_tabs.count() == 0)
-        emit newTabRequested();
+        emit lastTabClosed();
     else
         emit tabSelected(m_tabs.last());
 }
diff --git a/app/tabbar.h b/app/tabbar.h
index d1a4cf2..2b05a6a 100644
--- a/app/tabbar.h
+++ b/app/tabbar.h
@@ -81,6 +81,7 @@ class TabBar : public QWidget
         void requestTerminalHighlight(int terminalId);
         void requestRemoveTerminalHighlight();
         void tabContextMenuClosed();
+        void lastTabClosed();
 
 
     protected:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic