commit gwenview for openSUSE:Factory
Hello community, here is the log from the commit of package gwenview for openSUSE:Factory checked in at 2013-10-03 15:47:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gwenview (Old) and /work/SRC/openSUSE:Factory/.gwenview.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gwenview" Changes: -------- --- /work/SRC/openSUSE:Factory/gwenview/gwenview.changes 2013-09-09 11:07:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gwenview.new/gwenview.changes 2013-10-03 15:47:40.000000000 +0200 @@ -1,0 +2,7 @@ +Sat Sep 28 15:09:14 UTC 2013 - tittiatcoke@gmail.com + +- Update to 4.11.2 + * KDE 4.11.2 bugfix release + * See http://www.kde.org/announcements/announce-4.11.2.php + +------------------------------------------------------------------- Old: ---- gwenview-4.11.1.tar.xz New: ---- gwenview-4.11.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gwenview.spec ++++++ --- /var/tmp/diff_new_pack.Z2SsaJ/_old 2013-10-03 15:47:41.000000000 +0200 +++ /var/tmp/diff_new_pack.Z2SsaJ/_new 2013-10-03 15:47:41.000000000 +0200 @@ -17,7 +17,7 @@ Name: gwenview -Version: 4.11.1 +Version: 4.11.2 Release: 0 Summary: Simple Image Viewer for KDE License: GPL-2.0+ ++++++ gwenview-4.11.1.tar.xz -> gwenview-4.11.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-4.11.1/app/contextmanager.cpp new/gwenview-4.11.2/app/contextmanager.cpp --- old/gwenview-4.11.1/app/contextmanager.cpp 2013-08-28 19:06:41.000000000 +0200 +++ new/gwenview-4.11.2/app/contextmanager.cpp 2013-09-26 21:22:36.000000000 +0200 @@ -80,7 +80,7 @@ } }; -ContextManager::ContextManager(SortedDirModel* dirModel, QItemSelectionModel* selectionModel, QObject* parent) +ContextManager::ContextManager(SortedDirModel* dirModel, QObject* parent) : QObject(parent) , d(new ContextManagerPrivate) { @@ -94,7 +94,26 @@ connect(d->mDirModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(slotDirModelDataChanged(QModelIndex,QModelIndex))); - d->mSelectionModel = selectionModel; + /* HACK! In extended-selection mode, when the current index is removed, + * QItemSelectionModel selects the previous index if there is one, if not it + * selects the next index. This is not what we want: when the user removes + * an image, he expects to go to the next one, not the previous one. + * + * To overcome this, we must connect to the mDirModel.rowsAboutToBeRemoved() + * signal *before* QItemSelectionModel connects to it, so that our slot is + * called before QItemSelectionModel slot. This allows us to pick a new + * current index ourself, leaving QItemSelectionModel slot with nothing to + * do. + * + * This is the reason ContextManager creates a QItemSelectionModel itself: + * doing so ensures QItemSelectionModel cannot be connected to the + * mDirModel.rowsAboutToBeRemoved() signal before us. + */ + connect(d->mDirModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), + SLOT(slotRowsAboutToBeRemoved(QModelIndex,int,int))); + + d->mSelectionModel = new QItemSelectionModel(d->mDirModel); + connect(d->mSelectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(slotSelectionChanged())); connect(d->mSelectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)), @@ -109,6 +128,11 @@ delete d; } +QItemSelectionModel* ContextManager::selectionModel() const +{ + return d->mSelectionModel; +} + void ContextManager::addItem(AbstractContextManagerItem* item) { d->mList << item; @@ -215,4 +239,24 @@ d->mQueuedSignals.clear(); } +void Gwenview::ContextManager::slotRowsAboutToBeRemoved(const QModelIndex& /*parent*/, int start, int end) +{ + QModelIndex oldCurrent = d->mSelectionModel->currentIndex(); + if (oldCurrent.row() < start || oldCurrent.row() > end) { + // currentIndex has not been removed + return; + } + QModelIndex newCurrent; + if (end + 1 < d->mDirModel->rowCount()) { + newCurrent = d->mDirModel->index(end + 1, 0); + } else if (start > 0) { + newCurrent = d->mDirModel->index(start - 1, 0); + } else { + // No index we can select, nothing to do + return; + } + d->mSelectionModel->select(oldCurrent, QItemSelectionModel::Deselect); + d->mSelectionModel->setCurrentIndex(newCurrent, QItemSelectionModel::Select); +} + } // namespace diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-4.11.1/app/contextmanager.h new/gwenview-4.11.2/app/contextmanager.h --- old/gwenview-4.11.1/app/contextmanager.h 2013-06-28 19:36:02.000000000 +0200 +++ new/gwenview-4.11.2/app/contextmanager.h 2013-09-26 21:22:36.000000000 +0200 @@ -47,7 +47,7 @@ { Q_OBJECT public: - ContextManager(SortedDirModel*, QItemSelectionModel*, QObject* parent); + ContextManager(SortedDirModel*, QObject* parent); ~ContextManager(); @@ -65,6 +65,8 @@ SortedDirModel* dirModel() const; + QItemSelectionModel* selectionModel() const; + Q_SIGNALS: void selectionChanged(); void selectionDataChanged(); @@ -75,6 +77,7 @@ void slotSelectionChanged(); void slotCurrentChanged(const QModelIndex&); void emitQueuedSignals(); + void slotRowsAboutToBeRemoved(const QModelIndex& /*parent*/, int start, int end); private: ContextManagerPrivate* const d; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-4.11.1/app/mainwindow.cpp new/gwenview-4.11.2/app/mainwindow.cpp --- old/gwenview-4.11.1/app/mainwindow.cpp 2013-08-28 19:06:41.000000000 +0200 +++ new/gwenview-4.11.2/app/mainwindow.cpp 2013-09-26 21:22:36.000000000 +0200 @@ -268,9 +268,11 @@ void setupThumbnailView(QWidget* parent) { + Q_ASSERT(mContextManager); mBrowseMainPage = new BrowseMainPage(parent, q->actionCollection(), mGvCore); mThumbnailView = mBrowseMainPage->thumbnailView(); + mThumbnailView->setSelectionModel(mContextManager->selectionModel()); mUrlNavigator = mBrowseMainPage->urlNavigator(); mDocumentInfoProvider = new DocumentInfoProvider(mDirModel); @@ -279,7 +281,7 @@ mThumbnailViewHelper = new ThumbnailViewHelper(mDirModel, q->actionCollection()); mThumbnailView->setThumbnailViewHelper(mThumbnailViewHelper); - mThumbnailBarSelectionModel = new KLinkItemSelectionModel(mThumbnailBarModel, mThumbnailView->selectionModel(), q); + mThumbnailBarSelectionModel = new KLinkItemSelectionModel(mThumbnailBarModel, mContextManager->selectionModel(), q); // Connect thumbnail view connect(mThumbnailView, SIGNAL(indexActivated(QModelIndex)), @@ -485,12 +487,11 @@ edit->addAction(action->objectName(), action); } - void setupContextManager() + void setupContextManagerItems() { + Q_ASSERT(mContextManager); KActionCollection* actionCollection = q->actionCollection(); - mContextManager = new ContextManager(mDirModel, mThumbnailView->selectionModel(), q); - // Create context manager items FolderViewContextManagerItem* folderViewItem = new FolderViewContextManagerItem(mContextManager); mContextManager->addItem(folderViewItem); @@ -886,6 +887,7 @@ d->q = this; d->mCurrentMainPageId = StartMainPageId; d->mDirModel = new SortedDirModel(this); + d->mContextManager = new ContextManager(d->mDirModel, this); d->setupThumbnailBarModel(); d->mGvCore = new GvCore(this, d->mDirModel); d->mPreloader = new Preloader(this); @@ -896,7 +898,7 @@ d->setupWidgets(); d->setupActions(); d->setupUndoActions(); - d->setupContextManager(); + d->setupContextManagerItems(); d->setupFullScreenContent(); d->updateActions(); updatePreviousNextActions(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-4.11.1/lib/thumbnailview/thumbnailview.cpp new/gwenview-4.11.2/lib/thumbnailview/thumbnailview.cpp --- old/gwenview-4.11.1/lib/thumbnailview/thumbnailview.cpp 2013-08-28 19:06:41.000000000 +0200 +++ new/gwenview-4.11.2/lib/thumbnailview/thumbnailview.cpp 2013-09-26 21:22:36.000000000 +0200 @@ -493,18 +493,6 @@ d->mThumbnailProvider->removeItems(itemList); } - // Update current index if it is among the deleted rows - const int row = currentIndex().row(); - if (start <= row && row <= end) { - QModelIndex index; - if (end < model()->rowCount() - 1) { - index = model()->index(end + 1, 0); - } else if (start > 0) { - index = model()->index(start - 1, 0); - } - setCurrentIndex(index); - } - // Removing rows might make new images visible, make sure their thumbnail // is generated d->mScheduledThumbnailGenerationTimer.start(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gwenview-4.11.1/lib/version.h new/gwenview-4.11.2/lib/version.h --- old/gwenview-4.11.1/lib/version.h 2013-08-28 19:06:41.000000000 +0200 +++ new/gwenview-4.11.2/lib/version.h 2013-09-26 21:22:36.000000000 +0200 @@ -33,6 +33,6 @@ https://bugs.kde.org/editversions.cgi?product=gwenview */ -#define GWENVIEW_VERSION "4.11.0" +#define GWENVIEW_VERSION "4.11.2" #endif /* VERSION_H */ -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de