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

List:       kde-commits
Subject:    extragear/utils/yakuake
From:       Eike Hein <hein () kde ! org>
Date:       2009-03-19 18:42:12
Message-ID: 1237488132.806351.6769.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 941478 by hein:

* Add D-Bus interfaces for splitting.
* Change the return value of sessionIdForTerminalId to int.


 M  +1 -0      ChangeLog  
 M  +2 -2      app/mainwindow.cpp  
 M  +12 -10    app/session.cpp  
 M  +2 -2      app/session.h  
 M  +31 -13    app/sessionstack.cpp  
 M  +6 -4      app/sessionstack.h  


--- trunk/extragear/utils/yakuake/ChangeLog #941477:941478
@@ -18,6 +18,7 @@
   a multi-key shortcut to open/close the window, consistent with the short-
   cut configuration dialog (the required API is new in 4.2). The reason
   multi-key global shortcuts are not allowed in KDE is that they don't work.
+* Added D-Bus interfaces for splitting.
 
 
 Changes in 2.9.4:
--- trunk/extragear/utils/yakuake/app/mainwindow.cpp #941477:941478
@@ -334,10 +334,10 @@
         m_sessionStack->closeActiveTerminal(sessionId);
 
     if (action == actionCollection()->action("split-left-right"))
-        m_sessionStack->splitLeftRight(sessionId);
+        m_sessionStack->splitSessionLeftRight(sessionId);
 
     if (action == actionCollection()->action("split-top-bottom"))
-        m_sessionStack->splitTopBottom(sessionId);
+        m_sessionStack->splitSessionTopBottom(sessionId);
 }
 
 void MainWindow::handleContextDependentToggleAction(bool toggle, QAction* action, int sessionId)
--- trunk/extragear/utils/yakuake/app/session.cpp #941477:941478
@@ -230,24 +230,26 @@
     }
 }
 
-void Session::splitLeftRight()
+void Session::splitLeftRight(int terminalId)
 {
-    if (m_activeTerminalId == -1) return;
-    if (!m_terminals.contains(m_activeTerminalId)) return;
+    if (terminalId == -1) terminalId = m_activeTerminalId;
+    if (terminalId == -1) return;
+    if (!m_terminals.contains(terminalId)) return;
 
-    Terminal* activeTerminal = m_terminals[m_activeTerminalId];
+    Terminal* terminal = m_terminals[terminalId];
 
-    if (activeTerminal) split(activeTerminal, Qt::Horizontal);
+    if (terminal) split(terminal, Qt::Horizontal);
 }
 
-void Session::splitTopBottom()
+void Session::splitTopBottom(int terminalId)
 {
-    if (m_activeTerminalId == -1) return;
-    if (!m_terminals.contains(m_activeTerminalId)) return;
+    if (terminalId == -1) terminalId = m_activeTerminalId;
+    if (terminalId == -1) return;
+    if (!m_terminals.contains(terminalId)) return;
 
-    Terminal* activeTerminal = m_terminals[m_activeTerminalId];
+    Terminal* terminal = m_terminals[terminalId];
 
-    if (activeTerminal) split(activeTerminal, Qt::Vertical);
+    if (terminal) split(terminal, Qt::Vertical);
 }
 
 void Session::split(Terminal* terminal, Qt::Orientation orientation)
--- trunk/extragear/utils/yakuake/app/session.h #941477:941478
@@ -57,8 +57,8 @@
         void focusNextTerminal();
         void focusPreviousTerminal();
 
-        void splitLeftRight();
-        void splitTopBottom();
+        void splitLeftRight(int terminalId = -1);
+        void splitTopBottom(int terminalId = -1);
 
         void runCommand(const QString& command, int terminalId = -1);
 
--- trunk/extragear/utils/yakuake/app/sessionstack.cpp #941477:941478
@@ -185,8 +185,15 @@
     return idList.join(",");
 }
 
-const QString SessionStack::sessionIdForTerminalId(int terminalId)
+const QString SessionStack::terminalIdsForSessionId(int sessionId)
 {
+    if (!m_sessions.contains(sessionId)) return QString::number(-1);
+
+    return m_sessions[sessionId]->terminalIdList();
+}
+
+int SessionStack::sessionIdForTerminalId(int terminalId)
+{
     int sessionId = -1;
 
     QHashIterator<int, Session*> it(m_sessions);
@@ -202,16 +209,9 @@
         }
     }
 
-    return QString::number(sessionId);
+    return sessionId;
 }
 
-const QString SessionStack::terminalIdsForSessionId(int sessionId)
-{
-    if (!m_sessions.contains(sessionId)) return QString::number(-1);
-
-    return m_sessions[sessionId]->terminalIdList();
-}
-
 void SessionStack::runCommand(const QString& command)
 {
     if (m_activeSessionId == -1) return;
@@ -249,24 +249,42 @@
     m_sessions[sessionId]->editProfile();
 }
 
-void SessionStack::splitLeftRight(int sessionId)
+void SessionStack::splitSessionLeftRight(int sessionId)
 {
-    if (sessionId == -1) sessionId = m_activeSessionId;
     if (sessionId == -1) return;
     if (!m_sessions.contains(sessionId)) return;
 
     m_sessions[sessionId]->splitLeftRight();
 }
 
-void SessionStack::splitTopBottom(int sessionId)
+void SessionStack::splitSessionTopBottom(int sessionId)
 {
-    if (sessionId == -1) sessionId = m_activeSessionId;
     if (sessionId == -1) return;
     if (!m_sessions.contains(sessionId)) return;
 
     m_sessions[sessionId]->splitTopBottom();
 }
 
+void SessionStack::splitTerminalLeftRight(int terminalId)
+{
+    int sessionId = sessionIdForTerminalId(terminalId);
+
+    if (sessionId == -1) return;
+    if (!m_sessions.contains(sessionId)) return;
+
+    m_sessions[sessionId]->splitLeftRight(terminalId);
+}
+
+void SessionStack::splitTerminalTopBottom(int terminalId)
+{
+    int sessionId = sessionIdForTerminalId(terminalId);
+
+    if (sessionId == -1) return;
+    if (!m_sessions.contains(sessionId)) return;
+
+    m_sessions[sessionId]->splitTopBottom(terminalId);
+}
+
 void SessionStack::emitTitles()
 {
     QString title;
--- trunk/extragear/utils/yakuake/app/sessionstack.h #941477:941478
@@ -45,9 +45,6 @@
 
         void editProfile(int sessionId = -1);
 
-        void splitLeftRight(int sessionId = -1);
-        void splitTopBottom(int sessionId = -1);
-
         void emitTitles();
 
 
@@ -62,13 +59,18 @@
         Q_SCRIPTABLE void removeSession(int sessionId);
         Q_SCRIPTABLE void removeTerminal(int terminalId);
 
+        Q_SCRIPTABLE void splitSessionLeftRight(int sessionId);
+        Q_SCRIPTABLE void splitSessionTopBottom(int sessionId);
+        Q_SCRIPTABLE void splitTerminalLeftRight(int terminalId);
+        Q_SCRIPTABLE void splitTerminalTopBottom(int terminalId);
+
         Q_SCRIPTABLE int activeSessionId() { return m_activeSessionId; }
         Q_SCRIPTABLE int activeTerminalId();
 
         Q_SCRIPTABLE const QString sessionIdList();
         Q_SCRIPTABLE const QString terminalIdList();
-        Q_SCRIPTABLE const QString sessionIdForTerminalId(int terminalId);
         Q_SCRIPTABLE const QString terminalIdsForSessionId(int sessionId);
+        Q_SCRIPTABLE int sessionIdForTerminalId(int terminalId);
 
         Q_SCRIPTABLE void runCommand(const QString& command);
         Q_SCRIPTABLE void runCommandInTerminal(int terminalId, const QString& command);
[prev in list] [next in list] [prev in thread] [next in thread] 

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