summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-08-05 20:39:09 +0200
committerArno <am@disconnect.de>2010-08-05 20:39:09 +0200
commit9e12957c363a68543456dfe95ab88a11a69ae610 (patch)
tree77c1e10e7547d8764fa4a6da5d39368ec7d6540e
parent3ed95b4e8edd7faaefa0a296a8d33f1dadd60b83 (diff)
downloadSheMov-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.cpp9
-rw-r--r--seriestreewidget.cpp9
-rw-r--r--seriestreewidget.h1
-rw-r--r--shemov.cpp3
-rw-r--r--shemov.h1
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();
diff --git a/shemov.cpp b/shemov.cpp
index 36b0f1f..4bb7dd9 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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);
diff --git a/shemov.h b/shemov.h
index 24e00dc..2d7c94e 100644
--- a/shemov.h
+++ b/shemov.h
@@ -92,6 +92,7 @@ class SheMov : public QMainWindow {
QAction *mExpandCurrentA;
QAction *mNewMovieWizardA;
QAction *mAddCoverA;
+ QAction *mEditItemA;
//TreeView View Actions
QAction *mShowLocalA;