X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c916e5ff2734ad2ba5ea0b08b0bd6d6a5b8d6a51..11289b4fc3efbc074b668d4516cd896f8ade9761:/src/tooltipmanager.cpp diff --git a/src/tooltipmanager.cpp b/src/tooltipmanager.cpp index d222175e0..e287d85b7 100644 --- a/src/tooltipmanager.cpp +++ b/src/tooltipmanager.cpp @@ -104,7 +104,9 @@ bool ToolTipManager::eventFilter(QObject* watched, QEvent* event) void ToolTipManager::requestToolTip(const QModelIndex& index) { - if (index.column() == DolphinModel::Name) { + // only request a tooltip for the name column and when no selection or + // drag & drop operation is done (indicated by the left mouse button) + if ((index.column() == DolphinModel::Name) && !(QApplication::mouseButtons() & Qt::LeftButton)) { m_waitOnPreviewTimer->stop(); KToolTip::hideTip(); @@ -115,10 +117,9 @@ void ToolTipManager::requestToolTip(const QModelIndex& index) const QModelIndex dirIndex = m_proxyModel->mapToSource(index); m_item = m_dolphinModel->itemForIndex(dirIndex); - // Only start the previewJob when the mouse has been over this item for 200msec, - // this prevents a lot of useless previewJobs (when passing rapidly over a lot of items). + // only start the previewJob when the mouse has been over this item for 200 milliseconds, + // this prevents a lot of useless preview jobs when passing rapidly over a lot of items m_previewTimer->start(200); - // reset these variables m_preview = false; m_previewIsLate = false; m_previewPass = 0; @@ -161,7 +162,9 @@ void ToolTipManager::prepareToolTip() if (m_preview && m_previewIsLate) { // We got a preview, but it is late, the tooltip has already been shown. // So update the tooltip directly. - m_emptyRenderedKToolTipItem->setData(Qt::DecorationRole, KIcon(m_pix)); + if (m_emptyRenderedKToolTipItem != 0) { + m_emptyRenderedKToolTipItem->setData(Qt::DecorationRole, KIcon(m_pix)); + } return; } @@ -185,6 +188,8 @@ void ToolTipManager::showToolTip(KToolTipItem* tip) if (QApplication::mouseButtons() & Qt::LeftButton) { delete tip; tip = 0; + // m_emptyRenderedKToolTipItem is an alias for tip. + m_emptyRenderedKToolTipItem = 0; return; }