summaryrefslogtreecommitdiffstats
path: root/kate/app/katesessionpanel.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2015-10-23 17:59:00 +0700
committerMichele Calgaro <[email protected]>2015-10-23 17:59:00 +0700
commitde91a161b1555bca58c4c30c6367dcc38750ca17 (patch)
treeec3ebc67b5391bc395a365ca13f267593eb4f9df /kate/app/katesessionpanel.cpp
parentf0f642f6b23b9a38727944a6db194bf4d16f0377 (diff)
downloadtdebase-de91a161b1555bca58c4c30c6367dcc38750ca17.tar.gz
tdebase-de91a161b1555bca58c4c30c6367dcc38750ca17.zip
Populated session panel. Now able to switch session within the new panel.
*** NOTE *** In this commit both the old and new session managers are active, therefore funny things occasionally happen. Then won't be the case from the next commit since the old session manager will be disabled. Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'kate/app/katesessionpanel.cpp')
-rw-r--r--kate/app/katesessionpanel.cpp65
1 files changed, 46 insertions, 19 deletions
diff --git a/kate/app/katesessionpanel.cpp b/kate/app/katesessionpanel.cpp
index e852a9eee..93bca5d06 100644
--- a/kate/app/katesessionpanel.cpp
+++ b/kate/app/katesessionpanel.cpp
@@ -25,6 +25,7 @@
#include <kiconloader.h>
#include <tdelocale.h>
+#include <tqlistview.h>
void KateSessionPanelToolBarParent::setToolBar(TDEToolBar *tbar)
@@ -46,23 +47,41 @@ void KateSessionPanelToolBarParent::resizeEvent (TQResizeEvent*)
KateSessionPanel::KateSessionPanel(KateMainWindow *mainWindow, KateViewManager *viewManager,
TQWidget *parent, const char *name)
: TQVBox(parent, name), m_mainWin(mainWindow), m_viewManager(viewManager),
- m_sessionManager(OldKateSessionManager::self()), m_actionCollection(new TDEActionCollection(this))
+ m_sessionManager(KateSessionManager::self()), m_actionCollection(new TDEActionCollection(this)),
+ m_columnSessionId(0), m_columnPixmap(0)
{
// Toolbar
setup_toolbar();
// Listview
m_listview = new TDEListView(this);
- m_listview->setRootIsDecorated(true);
- m_listview->setSorting(-1);
+ m_listview->header()->hide();
+ m_listview->addColumn("Session name");
+ m_columnSessionId = m_listview->addColumn("Session id", 0);
+ m_columnPixmap = m_listview->addColumn("Pixmap", 24);
+ m_listview->setColumnAlignment(2, TQt::AlignCenter);
m_listview->setMinimumWidth(m_listview->sizeHint().width());
+ m_listview->setSorting(-1);
+ //m_listview->setRootIsDecorated(true); // to enable after inserting doc list
+
+ TQPtrList<KateSession>& sessions = m_sessionManager->getSessionsList();
+ for (int idx = sessions.count()-1; idx >= 0; --idx)
+ {
+ new TDEListViewItem(m_listview, sessions[idx]->getSessionName(), TQString("%1").arg(idx));
+ if (idx == m_sessionManager->getActiveSessionId())
+ {
+ m_listview->setSelected(m_listview->firstChild(), true);
+ m_listview->firstChild()->setPixmap(m_columnPixmap, SmallIcon("ok"));
+ }
+ }
+
}
//-------------------------------------------
void KateSessionPanel::setup_toolbar()
{
// Toolbar widget and frame
- KateSessionPanelToolBarParent *tbarParent=new KateSessionPanelToolBarParent(this);
+ KateSessionPanelToolBarParent *tbarParent = new KateSessionPanelToolBarParent(this);
m_toolbar = new TDEToolBar(tbarParent, "Kate Session Panel Toolbar", true);
tbarParent->setToolBar(m_toolbar);
m_toolbar->setMovingEnabled(false);
@@ -71,8 +90,10 @@ void KateSessionPanel::setup_toolbar()
m_toolbar->setIconSize(16);
m_toolbar->setEnableContextMenu(false);
+//FIXME : uncomment and activate as long as the new session manager gets fixed
// Toolbar actions
TDEAction *a;
+/*
a = new TDEAction(i18n("New"), SmallIcon("list-add"), 0,
TQT_TQOBJECT(m_sessionManager), TQT_SLOT(sessionNew()), m_actionCollection, "session_new");
a->setWhatsThis(i18n("Create a new session."));
@@ -99,12 +120,12 @@ void KateSessionPanel::setup_toolbar()
a->plug(m_toolbar);
m_toolbar->insertLineSeparator();
-
+*/
a = new TDEAction(i18n("Activate"), SmallIcon("forward"), 0,
TQT_TQOBJECT(this), TQT_SLOT(sessionActivate()), m_actionCollection, "session_activate");
a->setWhatsThis(i18n("Activate the selected session."));
a->plug(m_toolbar);
-
+/*
TDEToggleAction *tglA = new TDEToggleAction(i18n("Toggle read only"), SmallIcon("encrypted"), 0,
TQT_TQOBJECT(this), TQT_SLOT(sessionToggleReadOnly()), m_actionCollection, "session_toggle_read_only");
tglA->setWhatsThis(i18n("Toggle read only status for the selected session.<p>"
@@ -122,18 +143,7 @@ void KateSessionPanel::setup_toolbar()
TQT_TQOBJECT(this), TQT_SLOT(sessionMoveDown()), m_actionCollection, "session_move_down");
a->setWhatsThis(i18n("Move down the selected session."));
a->plug(m_toolbar);
-
- m_toolbar->insertLineSeparator();
-
- a = new TDEAction(i18n("Open"), SmallIcon("document-open"), 0,
- TQT_TQOBJECT(m_sessionManager), TQT_SLOT(sessionOpen()), m_actionCollection, "session_open");
- a->setWhatsThis(i18n("Switch to another session chosen from a list of existing ones."));
- a->plug(m_toolbar);
-
- a = new TDEAction(i18n("Manage"), SmallIcon("view_choose"), 0,
- TQT_TQOBJECT(m_sessionManager), TQT_SLOT(sessionManage()), m_actionCollection, "session_manage");
- a->setWhatsThis(i18n("Manage existing sessions."));
- a->plug(m_toolbar);
+*/
}
//-------------------------------------------
@@ -163,7 +173,24 @@ void KateSessionPanel::deleteSession()
//-------------------------------------------
void KateSessionPanel::sessionActivate()
{
-//TODO
+ TQListViewItem *newSessionItem = m_listview->selectedItem();
+ int currSessionId = m_sessionManager->getActiveSessionId();
+ if (!newSessionItem)
+ return;
+ int newSessionId = newSessionItem->text(m_columnSessionId).toInt();
+ if (newSessionId != currSessionId)
+ {
+ if (!m_sessionManager->activateSession(newSessionId))
+ return;
+
+ TQListViewItem *item = m_listview->firstChild();
+ for (int idx = 0; idx < currSessionId; ++idx)
+ {
+ item = item->nextSibling();
+ }
+ item->setPixmap(m_columnPixmap, TQPixmap());
+ newSessionItem->setPixmap(m_columnPixmap, SmallIcon("ok"));
+ }
}
//-------------------------------------------