diff options
author | Michele Calgaro <[email protected]> | 2015-10-23 17:59:00 +0700 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2015-10-23 17:59:00 +0700 |
commit | de91a161b1555bca58c4c30c6367dcc38750ca17 (patch) | |
tree | ec3ebc67b5391bc395a365ca13f267593eb4f9df /kate/app/katesessionpanel.cpp | |
parent | f0f642f6b23b9a38727944a6db194bf4d16f0377 (diff) | |
download | tdebase-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.cpp | 65 |
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")); + } } //------------------------------------------- |