19#include "objectlistpalette.h"
25#include <tdelistview.h>
29#include "kivio_view.h"
30#include "kivio_stencil.h"
31#include "kivio_layer.h"
32#include "kivio_stencil_spawner.h"
33#include "kivio_stencil_spawner_info.h"
34#include "kivio_page.h"
35#include "kivioglobal.h"
40class ObjectListItem :
public TDEListViewItem
43 ObjectListItem(TDEListView* parent, KivioStencil* _stencil)
44 : TDEListViewItem(parent,
"")
47 setPixmap(0, Kivio::generatePixmapFromStencil(22, 22, m_stencil));
52 switch(m_stencil->type()) {
58 type = i18n(
"Connector");
59 name = _stencil->spawner()->info()->title();
62 type = i18n(
"Text Area");
67 type = i18n(
"Stencil");
68 name = _stencil->spawner()->info()->title();
74 setSelected(m_stencil->isSelected());
77 KivioStencil* stencil()
const {
return m_stencil; }
80 KivioStencil* m_stencil;
83ObjectListPalette::ObjectListPalette(KivioView* parent,
const char* name)
84 : TQWidget(parent, name), m_view(parent)
86 m_blockUpdate =
false;
88 TQVBoxLayout* layout =
new TQVBoxLayout(
this, 0, 2);
90 m_objectList =
new TDEListView(
this);
91 m_objectList->setFullWidth(
true);
92 m_objectList->setAllColumnsShowFocus(
true);
93 m_objectList->setSorting(-1);
94 m_objectList->setSelectionMode(TQListView::Extended);
95 m_objectList->addColumn(i18n(
"Name"));
96 m_objectList->addColumn(i18n(
"Type"));
98 layout->addWidget(m_objectList);
100 connect(m_objectList, TQ_SIGNAL(selectionChanged()),
this, TQ_SLOT(updateSelection()));
103ObjectListPalette::~ObjectListPalette()
107void ObjectListPalette::updateObjectList()
110 m_blockUpdate =
false;
114 KivioPage* page = m_view->activePage();
119 m_objectList->clear();
121 TQPtrList<KivioLayer>* layers = page->layers();
123 KivioLayer* layer = layers->first();
124 KivioStencil* stencil;
125 m_objectList->blockSignals(
true);
128 stencil = layer->firstStencil();
131 new ObjectListItem(m_objectList, stencil);
132 stencil = layer->nextStencil();
135 layer = layers->next();
138 m_objectList->blockSignals(
false);
141void ObjectListPalette::updateSelection()
143 KivioPage* page = m_view->activePage();
148 page->unselectAllStencils();
150 TQPtrList<TQListViewItem> selectedItems = m_objectList->selectedItems();
151 TQPtrListIterator<TQListViewItem> it(selectedItems);
152 ObjectListItem* item = 0;
154 while((item =
static_cast<ObjectListItem*
>(it.current())) != 0) {
155 page->selectStencil(item->stencil());
159 m_blockUpdate =
true;
160 m_view->doc()->updateView(page);
165#include "objectlistpalette.moc"