From a4e40f771e7f6df9dc8d7e63c5460761eb0e33c0 Mon Sep 17 00:00:00 2001 From: Arno Moeller Date: Thu, 17 Jun 2010 17:59:39 +0200 Subject: Partial implementation of adding new Series Adding an item to the TreeView works, but it doesn't get focus after inserting. Also the data is not shown. And setting the title of the new item should make the database puke. --- seriestreewidget.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'seriestreewidget.cpp') diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index d440140..5fb7d2c 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -12,6 +12,9 @@ #include #include #include +#include +#include +#include #include "seriestreewidget.h" #include "smubermodel.h" @@ -35,15 +38,15 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ //the view mView = new SeriesTreeView; mProxy = new QSortFilterProxyModel; - SeriesTreeModel *sourceModel = SmUberModelSingleton::instance()->seriesModel(); - mProxy->setSourceModel(sourceModel); + mModel = SmUberModelSingleton::instance()->seriesModel(); + mProxy->setSourceModel(mModel); mView->setModel(mProxy); mView->setSortingEnabled(true); for(int i = 1; i < 5 ;++i){ mView->setColumnHidden(i, true); } mView->resizeColumnToContents(0); - connect(sourceModel, SIGNAL(needResort()), this, SLOT(resort())); + connect(mModel, SIGNAL(needResort()), this, SLOT(resort())); //layout QVBoxLayout *mainLayout = new QVBoxLayout; @@ -53,6 +56,17 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ } +void SeriesTreeWidget::newSeries(){ + QList data; + data << tr("") << -1 << -1 << 0 << SeriesTreeModel::NewSeries; + if(mModel->addRow(data, QModelIndex())){ + QModelIndex newRow = mModel->index(mModel->rowCount(QModelIndex()) - 1, 0, QModelIndex()); + if(newRow.isValid()){ + mView->edit(newRow); + } + } +} + void SeriesTreeWidget::filter(){ mProxy->setFilterRegExp(mFilterEdit->text()); } @@ -62,3 +76,11 @@ void SeriesTreeWidget::resort(){ } SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent) {} + +void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){ + QMenu contextMenu(this); + foreach(QAction *a, actions()){ + contextMenu.addAction(a); + } + contextMenu.exec(e->globalPos()); +} -- cgit v1.2.3-70-g09d2