25#include "listtabwidget.h"
26#include "feedlistview.h"
30#include <tdemultitabbar.h>
37#include <tqvaluelist.h>
38#include <tqwidgetstack.h>
44class ListTabWidget::ListTabWidgetPrivate
51 NodeListView* current;
53 TQValueList<NodeListView*> views;
54 TQMap<int, NodeListView*> idToView;
57 TQMap<TQWidget*, TQString> captions;
64 d->current->slotItemUp();
70 d->current->slotItemDown();
76 d->current->slotItemBegin();
82 d->current->slotItemEnd();
88 d->current->slotItemLeft();
94 d->current->slotItemRight();
97void ListTabWidget::slotPrevFeed()
100 d->current->slotPrevFeed();
103void ListTabWidget::slotNextFeed()
106 d->current->slotNextFeed();
109void ListTabWidget::slotPrevUnreadFeed()
112 d->current->slotPrevUnreadFeed();
115void ListTabWidget::slotNextUnreadFeed()
118 d->current->slotNextUnreadFeed();
121void ListTabWidget::slotRootNodeChanged(NodeListView* view, TreeNode* node)
138void ListTabWidget::slotTabClicked(
int id)
140 NodeListView* view = d->idToView[id];
143 d->stack->raiseWidget(view);
146 if (d->currentID >= 0)
147 d->tabBar->setTab(d->currentID,
false);
149 d->tabBar->setTab(d->currentID,
true);
151 emit signalNodeSelected(d->current->selectedNode());
155ListTabWidget::ListTabWidget(TQWidget* parent,
const char* name) : TQWidget(parent, name), d(new ListTabWidgetPrivate)
160 d->viewMode = verticalTabs;
161 d->layout =
new TQHBoxLayout(
this);
163 d->tabBar =
new KMultiTabBar(KMultiTabBar::Vertical,
this);
164 d->tabBar->setStyle(KMultiTabBar::KDEV3ICON);
166 d->tabBar->showActiveTabTexts(
true);
167 d->tabBar->setPosition(KMultiTabBar::Left);
168 d->layout->addWidget(d->tabBar);
170 d->stack =
new TQWidgetStack(
this);
171 d->layout->addWidget(d->stack);
176ListTabWidget::~ListTabWidget()
183void ListTabWidget::setViewMode(ViewMode mode)
185 if (mode == d->viewMode)
191 d->tabBar->setHidden(mode == single);
194ListTabWidget::ViewMode ListTabWidget::viewMode()
const
199void ListTabWidget::addView(NodeListView* view,
const TQString& caption,
const TQPixmap& icon)
201 d->captions[view] = caption;
203 view->reparent(d->stack, TQPoint(0,0));
204 d->stack->addWidget(view);
206 int tabId = d->idCounter++;
207 d->tabBar->appendTab(icon, tabId, caption);
208 d->idToView[tabId] = view;
209 connect(d->tabBar->tab(tabId), TQ_SIGNAL(clicked(
int)),
this, TQ_SLOT(slotTabClicked(
int)));
212 connect(view, TQ_SIGNAL(signalNodeSelected(TreeNode*)),
this, TQ_SIGNAL(signalNodeSelected(TreeNode*)));
213 connect(view, TQ_SIGNAL(signalRootNodeChanged(NodeListView*, TreeNode*)),
this, TQ_SLOT(slotRootNodeChanged(NodeListView*, TreeNode*)));
219 d->currentID = tabId;
220 d->tabBar->setTab(d->currentID,
true);
221 d->stack->raiseWidget(view);
225NodeListView* ListTabWidget::activeView()
const
232#include "listtabwidget.h"
234#include "listtabwidget.moc"