WidgetBoxCategoryListView::WidgetBoxCategoryListView(QDesignerFormEditorInterface *core, QWidget *parent) : QListView(parent), m_proxyModel(new QSortFilterProxyModel(this)), m_model(new WidgetBoxCategoryModel(core, this)) { setFocusPolicy(Qt::NoFocus); setFrameShape(QFrame::NoFrame); setIconSize(QSize(22, 22)); setSpacing(1); setTextElideMode(Qt::ElideMiddle); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setResizeMode(QListView::Adjust); setUniformItemSizes(true); setItemDelegate(new WidgetBoxCategoryEntryDelegate(this)); connect(this, SIGNAL(pressed(QModelIndex)), this, SLOT(slotPressed(QModelIndex))); setEditTriggers(QAbstractItemView::AnyKeyPressed); m_proxyModel->setSourceModel(m_model); m_proxyModel->setFilterRole(FilterRole); setModel(m_proxyModel); connect(m_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SIGNAL(scratchPadChanged())); }
WidgetBoxCategoryListView *WidgetBoxTreeWidget::addCategoryView(QTreeWidgetItem *parent, bool iconMode) { QTreeWidgetItem *embed_item = new QTreeWidgetItem(parent); embed_item->setFlags(Qt::ItemIsEnabled); WidgetBoxCategoryListView *categoryView = new WidgetBoxCategoryListView(m_core, this); categoryView->setViewMode(iconMode ? QListView::IconMode : QListView::ListMode); connect(categoryView, SIGNAL(scratchPadChanged()), this, SLOT(slotSave())); connect(categoryView, SIGNAL(pressed(QString,QString,QPoint)), this, SIGNAL(pressed(QString,QString,QPoint))); connect(categoryView, SIGNAL(itemRemoved()), this, SLOT(slotScratchPadItemDeleted())); connect(categoryView, SIGNAL(lastItemRemoved()), this, SLOT(slotLastScratchPadItemDeleted())); setItemWidget(embed_item, 0, categoryView); return categoryView; }