diff --git a/src/kitemviews/private/kfileitemclipboard.cpp b/src/kitemviews/private/kfileitemclipboard.cpp index 6d60856415..c5f88194d3 100644 --- a/src/kitemviews/private/kfileitemclipboard.cpp +++ b/src/kitemviews/private/kfileitemclipboard.cpp @@ -55,12 +55,8 @@ KFileItemClipboard::~KFileItemClipboard() void KFileItemClipboard::updateCutItems() { const QMimeData* mimeData = QApplication::clipboard()->mimeData(); - const QByteArray data = mimeData->data("application/x-kde-cutselection"); - const bool isCutSelection = (!data.isEmpty() && data.at(0) == QLatin1Char('1')); - if (isCutSelection) { - m_cutItems = KUrl::List::fromMimeData(mimeData).toSet(); - emit cutItemsChanged(); - } + m_cutItems = KUrl::List::fromMimeData(mimeData).toSet(); + emit cutItemsChanged(); } KFileItemClipboard::KFileItemClipboard() : diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index e677613bac..035d3dc558 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -101,6 +101,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : m_scrollToCurrentItem(false), m_restoredContentsPosition(), m_selectedUrls(), + m_clearSelectionBeforeSelectingNewItems(false), m_versionControlObserver(0) { m_topLayout = new QVBoxLayout(this); @@ -1227,6 +1228,12 @@ void DolphinView::updateViewState() if (!m_selectedUrls.isEmpty()) { KItemListSelectionManager* selectionManager = m_container->controller()->selectionManager(); + + if (m_clearSelectionBeforeSelectingNewItems) { + selectionManager->clearSelection(); + m_clearSelectionBeforeSelectingNewItems = false; + } + QSet selectedItems = selectionManager->selectedItems(); for (QList::iterator it = m_selectedUrls.begin(); it != m_selectedUrls.end(); ++it) { @@ -1544,6 +1551,7 @@ void DolphinView::markPastedUrlsAsSelected(const QMimeData* mimeData) destUrls << destination; } markUrlsAsSelected(destUrls); + m_clearSelectionBeforeSelectingNewItems = true; } void DolphinView::updateWritableState() diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 1feaf0f11e..6d15ebf323 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -765,6 +765,7 @@ private: QPoint m_restoredContentsPosition; QList m_selectedUrls; // Used for making the view to remember selections after F5 + bool m_clearSelectionBeforeSelectingNewItems; VersionControlObserver* m_versionControlObserver; diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index d948bfd866..bd6948363e 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -104,7 +104,9 @@ void ToolTipManager::hideToolTip() if (m_fileMetaDataToolTip) { m_fileMetaDataToolTip->hide(); - delete m_fileMetaDataToolTip; + // Do not delete the tool tip immediately to prevent crashes when + // QCoreApplication tries to deliver an 'Enter' event to it, see bug 310579. + m_fileMetaDataToolTip->deleteLater(); m_fileMetaDataToolTip = 0; } }