diff options
author | Arno Moeller <am@mindwerk.de> | 2010-06-17 17:59:39 +0200 |
---|---|---|
committer | Arno Moeller <am@mindwerk.de> | 2010-06-17 17:59:39 +0200 |
commit | a4e40f771e7f6df9dc8d7e63c5460761eb0e33c0 (patch) | |
tree | 2c4585a84ba9179aea8309960e6824bb7f6ec6b4 /seriestreewidget.cpp | |
parent | b503c9e9a29c41b4e0d5e6c43af42b6dc135b9c8 (diff) | |
download | SheMov-a4e40f771e7f6df9dc8d7e63c5460761eb0e33c0.tar.gz SheMov-a4e40f771e7f6df9dc8d7e63c5460761eb0e33c0.tar.bz2 SheMov-a4e40f771e7f6df9dc8d7e63c5460761eb0e33c0.zip |
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.
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r-- | seriestreewidget.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index d440140..5fb7d2c 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -12,6 +12,9 @@ #include <QLabel> #include <QSortFilterProxyModel> #include <QRegExp> +#include <QContextMenuEvent> +#include <QMenu> +#include <QAction> #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<QVariant> data; + data << tr("<New series>") << -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()); +} |