From: Peter Penz Date: Tue, 12 Feb 2008 00:06:21 +0000 (+0000) Subject: don't keep a KFileItem inside the selection manager for the whole lifetime, work... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/bcb1c6b2328ff5dadf16cb4a0355ad2101780939?ds=inline don't keep a KFileItem inside the selection manager for the whole lifetime, work with the URL internally instead svn path=/trunk/KDE/kdebase/apps/; revision=773890 --- diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index 02125d7c9..fecbcbb72 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -62,7 +62,7 @@ void SelectionManager::slotEntered(const QModelIndex& index) { m_toggle->hide(); if (index.isValid() && (index.column() == DolphinModel::Name)) { - m_toggle->setFileItem(itemForIndex(index)); + m_toggle->setUrl(urlForIndex(index)); connect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); @@ -78,7 +78,7 @@ void SelectionManager::slotEntered(const QModelIndex& index) m_toggle->setChecked(selModel->isSelected(index)); m_toggle->show(); } else { - m_toggle->setFileItem(KFileItem()); + m_toggle->setUrl(KUrl()); disconnect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); } @@ -92,9 +92,8 @@ void SelectionManager::slotViewportEntered() void SelectionManager::setItemSelected(bool selected) { emit selectionChanged(); - Q_ASSERT(!m_toggle->fileItem().isNull()); - const QModelIndex index = indexForItem(m_toggle->fileItem()); + const QModelIndex index = indexForUrl(m_toggle->url()); if (index.isValid()) { QItemSelectionModel* selModel = m_view->selectionModel(); if (selected) { @@ -113,19 +112,19 @@ void SelectionManager::slotRowsRemoved(const QModelIndex& parent, int start, int m_toggle->hide(); } -KFileItem SelectionManager::itemForIndex(const QModelIndex& index) const +KUrl SelectionManager::urlForIndex(const QModelIndex& index) const { QAbstractProxyModel* proxyModel = static_cast(m_view->model()); KDirModel* dirModel = static_cast(proxyModel->sourceModel()); const QModelIndex dirIndex = proxyModel->mapToSource(index); - return dirModel->itemForIndex(dirIndex); + return dirModel->itemForIndex(dirIndex).url(); } -const QModelIndex SelectionManager::indexForItem(const KFileItem& item) const +const QModelIndex SelectionManager::indexForUrl(const KUrl& url) const { QAbstractProxyModel* proxyModel = static_cast(m_view->model()); KDirModel* dirModel = static_cast(proxyModel->sourceModel()); - const QModelIndex dirIndex = dirModel->indexForItem(item); + const QModelIndex dirIndex = dirModel->indexForUrl(url); return proxyModel->mapFromSource(dirIndex); } diff --git a/src/selectionmanager.h b/src/selectionmanager.h index 04e6e29c1..c263da3ea 100644 --- a/src/selectionmanager.h +++ b/src/selectionmanager.h @@ -62,8 +62,8 @@ private slots: void slotRowsRemoved(const QModelIndex& parent, int start, int end); private: - KFileItem itemForIndex(const QModelIndex& index) const; - const QModelIndex indexForItem(const KFileItem& item) const; + KUrl urlForIndex(const QModelIndex& index) const; + const QModelIndex indexForUrl(const KUrl& url) const; private: QAbstractItemView* m_view; diff --git a/src/selectiontoggle.cpp b/src/selectiontoggle.cpp index 7a3f0ef56..16d3c5979 100644 --- a/src/selectiontoggle.cpp +++ b/src/selectiontoggle.cpp @@ -54,21 +54,21 @@ QSize SelectionToggle::sizeHint() const void SelectionToggle::reset() { - m_item = KFileItem(); + m_url = KUrl(); hide(); } -void SelectionToggle::setFileItem(const KFileItem& item) +void SelectionToggle::setUrl(const KUrl& url) { - m_item = item; - if (!item.isNull()) { + m_url = url; + if (!url.isEmpty()) { startFading(); } } -KFileItem SelectionToggle::fileItem() const +KUrl SelectionToggle::url() const { - return m_item; + return m_url; } void SelectionToggle::setVisible(bool visible) diff --git a/src/selectiontoggle.h b/src/selectiontoggle.h index 653104ab5..a6d5eae58 100644 --- a/src/selectiontoggle.h +++ b/src/selectiontoggle.h @@ -20,7 +20,7 @@ #ifndef SELECTIONTOGGLE_H #define SELECTIONTOGGLE_H -#include +#include #include #include @@ -50,8 +50,8 @@ public: */ void reset(); - void setFileItem(const KFileItem& item); - KFileItem fileItem() const; + void setUrl(const KUrl& url); + KUrl url() const; public slots: virtual void setVisible(bool visible); @@ -78,7 +78,7 @@ private: int m_fadingValue; QPixmap m_icon; QTimeLine* m_fadingTimeLine; - KFileItem m_item; + KUrl m_url; }; #endif