[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