Commit e9bd295b authored by Kai Uwe Broulik's avatar Kai Uwe Broulik 🍇
Browse files

[Places Panel] Make use of KFilePlacesView::dragAutoActivationDelay

Code moved to KIO
parent 32c072fe
Pipeline #136035 passed with stage
in 2 minutes and 34 seconds
......@@ -95,17 +95,9 @@ void PlacesPanel::proceedWithTearDown()
void PlacesPanel::readSettings()
{
if (GeneralSettings::autoExpandFolders()) {
if (!m_dragActivationTimer) {
m_dragActivationTimer = new QTimer(this);
m_dragActivationTimer->setInterval(750);
m_dragActivationTimer->setSingleShot(true);
connect(m_dragActivationTimer, &QTimer::timeout,
this, &PlacesPanel::slotDragActivationTimeout);
}
setDragAutoActivationDelay(750);
} else {
delete m_dragActivationTimer;
m_dragActivationTimer = nullptr;
m_pendingDragActivation = QPersistentModelIndex();
setDragAutoActivationDelay(0);
}
const int iconSize = qMax(0, PlacesPanelSettings::iconSize());
......@@ -135,46 +127,6 @@ void PlacesPanel::showEvent(QShowEvent* event)
KFilePlacesView::showEvent(event);
}
void PlacesPanel::dragMoveEvent(QDragMoveEvent *event)
{
KFilePlacesView::dragMoveEvent(event);
if (!m_dragActivationTimer) {
return;
}
const QModelIndex index = indexAt(event->pos());
if (!index.isValid()) {
return;
}
QPersistentModelIndex persistentIndex(index);
if (!m_pendingDragActivation.isValid() || m_pendingDragActivation != persistentIndex) {
m_pendingDragActivation = persistentIndex;
m_dragActivationTimer->start();
}
}
void PlacesPanel::dragLeaveEvent(QDragLeaveEvent *event)
{
KFilePlacesView::dragLeaveEvent(event);
if (m_dragActivationTimer) {
m_dragActivationTimer->stop();
m_pendingDragActivation = QPersistentModelIndex();
}
}
void PlacesPanel::dropEvent(QDropEvent *event)
{
KFilePlacesView::dropEvent(event);
if (m_dragActivationTimer) {
m_dragActivationTimer->stop();
m_pendingDragActivation = QPersistentModelIndex();
}
}
void PlacesPanel::slotConfigureTrash()
{
const QUrl url = currentIndex().data(KFilePlacesModel::UrlRole).toUrl();
......@@ -185,16 +137,6 @@ void PlacesPanel::slotConfigureTrash()
settingsDialog->show();
}
void PlacesPanel::slotDragActivationTimeout()
{
if (!m_pendingDragActivation.isValid()) {
return;
}
auto *placesModel = static_cast<KFilePlacesModel *>(model());
Q_EMIT placeActivated(KFilePlacesModel::convertedUrl(placesModel->url(m_pendingDragActivation)));
}
void PlacesPanel::slotUrlsDropped(const QUrl& dest, QDropEvent* event, QWidget* parent)
{
KIO::DropJob *job = DragAndDropHelper::dropUrls(dest, event, parent);
......
......@@ -54,13 +54,9 @@ Q_SIGNALS:
protected:
void showEvent(QShowEvent* event) override;
void dragMoveEvent(QDragMoveEvent *event) override;
void dragLeaveEvent(QDragLeaveEvent *event) override;
void dropEvent(QDropEvent *event) override;
private Q_SLOTS:
void slotConfigureTrash();
void slotDragActivationTimeout();
void slotUrlsDropped(const QUrl& dest, QDropEvent* event, QWidget* parent);
void slotContextMenuAboutToShow(const QModelIndex &index, QMenu *menu);
void slotTearDownRequested(const QModelIndex &index);
......@@ -75,9 +71,6 @@ private:
QUrl m_url; // only used for initial setUrl
QList<QAction*> m_customContextMenuActions;
QTimer *m_dragActivationTimer = nullptr;
QPersistentModelIndex m_pendingDragActivation;
Solid::StorageAccess *m_deviceToTearDown = nullptr;
QAction *m_configureTrashAction;
......
  • Please update the CMakeLists to indicate which version of kio this function is available in. Building against 5.91.0 does not work.

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment