diff options
author | Arno <am@disconnect.de> | 2010-08-05 20:39:09 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-08-05 20:39:09 +0200 |
commit | 9e12957c363a68543456dfe95ab88a11a69ae610 (patch) | |
tree | 77c1e10e7547d8764fa4a6da5d39368ec7d6540e | |
parent | 3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83 (diff) | |
download | SheMov-9e12957c363a68543456dfe95ab88a11a69ae610.tar.gz SheMov-9e12957c363a68543456dfe95ab88a11a69ae610.tar.bz2 SheMov-9e12957c363a68543456dfe95ab88a11a69ae610.zip |
Fixed edit trigger in SeriesTreeView
Until now doubleclicking an item with children in SeriesTreeWidget did 3
things:
1. Expand or collapse the item
2. Trigger editing
3. Start playing all child movies in the default player
This is not really expected behavior. So I disabled all EditTriggers on
SeriesTreeView and set expandsOnDoubleClick to false. To still retain
the ability to edit series a new slot was introduced to SeriesTreeWidget
triggering the edit event. It's available from the SeriesTreeWidget
context menu.
Now doubleclicking an item in SeriesTreeView just plays all child
movies.
Child items also have their name changed when changing the parent item.
This bug was long present in renameSeries. mergeSeries always did the
right thing (tm).
-rw-r--r-- | seriestreemodel.cpp | 9 | ||||
-rw-r--r-- | seriestreewidget.cpp | 9 | ||||
-rw-r--r-- | seriestreewidget.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 3 | ||||
-rw-r--r-- | shemov.h | 1 |
5 files changed, 23 insertions, 0 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp index 0f20f3a..8de3d01 100644 --- a/seriestreemodel.cpp +++ b/seriestreemodel.cpp @@ -492,6 +492,15 @@ bool SeriesTreeModel::renameSeries(const QModelIndex &source, const QVariant &va SmTreeItem *curItem = static_cast<SmTreeItem*>(source.internalPointer()); curItem->setData(Name, value); emit dataChanged(source, source); + for(int i = 0; i < curItem->childCount(); ++i){ + SmTreeItem *child = curItem->child(i); + child->setData(Name, value); + } + if(curItem->childCount()){ + QModelIndex start = source.child(0, 0); + QModelIndex end = source.child(curItem->childCount() - 1, 0); + emit dataChanged(start, end); + } emit needResort(); return true; } diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index b09d7f7..e717b13 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -58,6 +58,8 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ } mView->resizeColumnToContents(0); mView->setSelectionMode(QAbstractItemView::ExtendedSelection); + mView->setEditTriggers(QAbstractItemView::NoEditTriggers); + mView->setExpandsOnDoubleClick(false); connect(mModel, SIGNAL(needResort()), this, SLOT(resort())); connect(mView, SIGNAL(expanded(QModelIndex)), this, SLOT(itemExpanded(QModelIndex))); connect(mView, SIGNAL(collapsed(QModelIndex)), this, SLOT(itemCollaped(QModelIndex))); @@ -268,6 +270,13 @@ void SeriesTreeWidget::expandItems(const QStringList &items){ } } +void SeriesTreeWidget::editItem(){ + QModelIndex current = mView->selectionModel()->currentIndex(); + if(current.isValid()){ + mView->edit(current); + } +} + void SeriesTreeWidget::addCover(){ QModelIndexList selected = mView->selectionModel()->selectedRows(); if(selected.isEmpty()){ diff --git a/seriestreewidget.h b/seriestreewidget.h index 2e28c1c..a917501 100644 --- a/seriestreewidget.h +++ b/seriestreewidget.h @@ -46,6 +46,7 @@ class SeriesTreeWidget : public QWidget { void itemExpanded(const QModelIndex &); void itemCollaped(const QModelIndex &); void expandItems(const QStringList &items); + void editItem(); signals: void filesReload(); @@ -343,6 +343,8 @@ void SheMov::createActions(){ connect(mExpandCurrentA, SIGNAL(triggered()), mATree->seriesWidget(), SLOT(expandCurrent())); mAddCoverA = new QAction(tr("Add cover..."), this); connect(mAddCoverA, SIGNAL(triggered()), mATree->seriesWidget(), SLOT(addCover())); + mEditItemA = new QAction(tr("Edit..."), this); + connect(mEditItemA, SIGNAL(triggered()), mATree->seriesWidget(), SLOT(editItem())); //Tree view menu mViewTreeGroup = new QActionGroup(this); @@ -467,6 +469,7 @@ void SheMov::createMenus(){ //ArchiveTreeView context menu mATree->seriesWidget()->seriesTree()->addAction(mNewSeriesA); mATree->seriesWidget()->seriesTree()->addAction(mDeleteFromSeriesA); + mATree->seriesWidget()->seriesTree()->addAction(mEditItemA); QAction *sep4 = new QAction(this); sep4->setSeparator(true); mATree->seriesWidget()->seriesTree()->addAction(sep4); @@ -92,6 +92,7 @@ class SheMov : public QMainWindow { QAction *mExpandCurrentA; QAction *mNewMovieWizardA; QAction *mAddCoverA; + QAction *mEditItemA; //TreeView View Actions QAction *mShowLocalA; |