From ff4a70f50e42152c5c391fd7801b916e64b181a4 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 26 Feb 2012 09:31:49 +0100 Subject: Move some code from NewPicsDialog around Put mapping editor into a seperate class to make it easier using it for changing mappings later. --- mappingtreewidget.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'mappingtreewidget.cpp') diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index d9ea7da..6108ebe 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -232,3 +232,55 @@ void MappingTreeView::contextMenuEvent(QContextMenuEvent *e){ ctxMenu.addActions(actions()); ctxMenu.exec(e->globalPos()); } + +MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) {} + +MappingEditWidget::MappingEditWidget(QWidget *parent) : QWidget(parent){ + //the views + mMappingTree = new MappingTreeWidget; + mMappingResult = new MappingTreeResultView; + mResultModel = new MappingTreeResultModel(QStringList() << tr("Name") << tr("Id"), this); + mMappingResult->setModel(mResultModel); + mMappingResult->setAlternatingRowColors(true); + mMappingResult->setColumnHidden(1, true); + + //buttons + mAddMapping = new QPushButton(tr(">>")); + connect(mAddMapping, SIGNAL(clicked()), this, SLOT(addMapping())); + mRemoveMapping = new QPushButton(tr("<<")); + connect(mRemoveMapping, SIGNAL(clicked()), this, SLOT(removeMapping())); + + //layout + QHBoxLayout *mainLayout = new QHBoxLayout; + mainLayout->addWidget(mMappingTree); + QVBoxLayout *buttonLayout = new QVBoxLayout; + buttonLayout->addStretch(); + buttonLayout->addWidget(mAddMapping); + buttonLayout->addWidget(mRemoveMapping); + buttonLayout->addStretch(); + mainLayout->addLayout(buttonLayout); + mainLayout->addWidget(mMappingResult); + setLayout(mainLayout); +} + +QList MappingEditWidget::mappingIds() const { + return mResultModel->mappingsIds(); +} + +void MappingEditWidget::addMapping(){ + MappingData selected = mMappingTree->selectedItem(); + if(selected.id == -1){ + return; + } + mResultModel->addItem(selected); + mMappingResult->expandAll(); +} + +void MappingEditWidget::removeMapping(){ + QModelIndexList sel = mMappingResult->selectionModel()->selectedRows(); + if(sel.isEmpty()){ + return; + } + QModelIndex firstIdx = sel.first(); + mResultModel->removeRows(firstIdx.row(), 1, firstIdx.parent()); +} -- cgit v1.2.3-70-g09d2