In future Qt versions, Qt Timers do not allow negative intervals.
Instead, they will be changed to 1.
Related Qt commit:
https://github.com/qt/qtbase/commit/
f1f610bc67bfd5c2ef31270a6945e7bae93b5e4a
Instead of relying on the interval, use a boolean variable
to check if the autoactivation is enabled or not.
m_autoActivationTimer = new QTimer(this);
m_autoActivationTimer->setSingleShot(true);
- m_autoActivationTimer->setInterval(-1);
+ m_autoActivationTimer->setInterval(750);
connect(m_autoActivationTimer, &QTimer::timeout, this, &KItemListController::slotAutoActivationTimeout);
setModel(model);
return -1;
}
-void KItemListController::setAutoActivationDelay(int delay)
+void KItemListController::setAutoActivationEnabled(bool enabled)
{
- m_autoActivationTimer->setInterval(delay);
+ m_autoActivationEnabled = enabled;
}
-int KItemListController::autoActivationDelay() const
+bool KItemListController::isAutoActivationEnabled() const
{
- return m_autoActivationTimer->interval();
+ return m_autoActivationEnabled;
}
void KItemListController::setSingleClickActivationEnforced(bool singleClick)
Q_EMIT itemHovered(index);
}
- if (!m_autoActivationTimer->isActive() && m_autoActivationTimer->interval() >= 0 && m_model->canEnterOnHover(index)) {
+ if (m_autoActivationEnabled && !m_autoActivationTimer->isActive() && m_model->canEnterOnHover(index)) {
m_autoActivationTimer->setProperty("index", index);
m_autoActivationTimer->start();
newHoveredWidget->startActivateSoonAnimation(m_autoActivationTimer->remainingTime());
int indexCloseToMousePressedPosition() const;
- /**
- * Sets the delay in milliseconds when dragging an object above an item
- * until the item gets activated automatically. A value of -1 indicates
- * that no automatic activation will be done at all (= default value).
- *
- * The hovered item must support dropping (see KItemModelBase::supportsDropping()),
- * otherwise the automatic activation is not available.
- *
- * After activating the item the signal itemActivated() will be
- * emitted. If the view supports the expanding of items
- * (KItemListView::supportsItemExpanding() returns true) and the item
- * itself is expandable (see KItemModelBase::isExpandable()) then instead
- * of activating the item it gets expanded instead (see
- * KItemModelBase::setExpanded()).
- */
- void setAutoActivationDelay(int delay);
- int autoActivationDelay() const;
+ void setAutoActivationEnabled(bool enabled);
+ bool isAutoActivationEnabled() const;
/**
* If set to true, the signals itemActivated() and itemsActivated() are emitted
std::optional<int> m_pressedIndex;
QPointF m_pressedMouseGlobalPos;
+ bool m_autoActivationEnabled = false;
QTimer *m_autoActivationTimer;
Qt::GestureType m_swipeGesture;
m_controller->setSelectionBehavior(KItemListController::SingleSelection);
m_controller->setAutoActivationBehavior(KItemListController::ExpansionOnly);
m_controller->setMouseDoubleClickAction(KItemListController::ActivateAndExpandItem);
- m_controller->setAutoActivationDelay(750);
m_controller->setSingleClickActivationEnforced(true);
connect(m_controller, &KItemListController::itemActivated, this, &FoldersPanel::slotItemActivated);
applyModeToView();
KItemListController *controller = new KItemListController(m_model, m_view, this);
- const int delay = GeneralSettings::autoExpandFolders() ? 750 : -1;
- controller->setAutoActivationDelay(delay);
+ controller->setAutoActivationEnabled(GeneralSettings::autoExpandFolders());
connect(controller, &KItemListController::doubleClickViewBackground, this, &DolphinView::doubleClickViewBackground);
// The EnlargeSmallPreviews setting can only be changed after the model
m_view->readSettings();
applyViewProperties();
- const int delay = GeneralSettings::autoExpandFolders() ? 750 : -1;
- m_container->controller()->setAutoActivationDelay(delay);
+ m_container->controller()->setAutoActivationEnabled(GeneralSettings::autoExpandFolders());
const int newZoomLevel = m_view->zoomLevel();
if (newZoomLevel != oldZoomLevel) {