Preview task-group selections until Meta is released

This commit is contained in:
ajp_anton
2026-09-11 10:59:54 +00:00
parent ccd0161398
commit 0ec628e786
18 changed files with 867 additions and 21 deletions
@@ -0,0 +1,38 @@
// SPDX-License-Identifier: MIT
#include "pendingselection.h"
PendingSelection::PendingSelection(QAbstractItemModel &model)
{
connect(&model, &QAbstractItemModel::modelReset, this, &PendingSelection::cancel);
connect(&model, &QAbstractItemModel::rowsRemoved, this, [this] {
if (!m_task.isValid()) {
cancel();
}
});
}
void PendingSelection::select(const QModelIndex &task, bool defer)
{
m_task = task;
if (defer && task.isValid()) {
Q_EMIT previewRequested(task);
} else {
finish();
}
}
void PendingSelection::finish()
{
const QPersistentModelIndex task = m_task;
cancel();
if (task.isValid()) {
Q_EMIT activationRequested(task);
}
}
void PendingSelection::cancel()
{
m_task = QPersistentModelIndex();
Q_EMIT previewHidden();
}