diff --git a/src/PackageModel/PackageView.h b/src/PackageModel/PackageView.h --- a/src/PackageModel/PackageView.h +++ b/src/PackageModel/PackageView.h @@ -32,7 +32,6 @@ int selectionCount() const; protected Q_SLOTS: - void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); public Q_SLOTS: diff --git a/src/PackageModel/PackageView.cpp b/src/PackageModel/PackageView.cpp --- a/src/PackageModel/PackageView.cpp +++ b/src/PackageModel/PackageView.cpp @@ -40,14 +40,6 @@ return selectionModel()->selectedRows().count(); } -void PackageView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) -{ - if (previous.row() != -1 && current.isValid()) { - emit currentPackageChanged(current); - } - QAbstractItemView::currentChanged(current, previous); -} - void PackageView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) { QTreeView::selectionChanged(selected, deselected); @@ -58,11 +50,13 @@ return; } - if (!selected.indexes().isEmpty()) { + if (selected.isEmpty()) { + emit currentPackageChanged(selectedIndexes().last()); + } else { emit currentPackageChanged(selected.indexes().first()); - if(count > 1) { - emit selectionMulti(); - } + } + if(count > 1) { + emit selectionMulti(); } }