Clarify link callback captures and their lifetime requirements
This commit is contained in:
1 parent
25f0e21fb9
commit
b7ca74d61d
1 file changed
+3
-2
@@ -40,7 +40,8 @@ public:
|
||||
bool isRowSelected(const QModelIndex &idx) const; // Включительный диапазон номеров строк; idx ожидается из той же модели.
|
||||
void setTextSelChars(int start, int end) { m_textSel.startChar = start; m_textSel.endChar = end; } // Обратная связь от delegate.
|
||||
/* Сохранить hit-test ссылки: fn(index, viewport point) → строка ссылки либо пусто. Пустой fn отключает ссылки.
|
||||
* Callback вызывается в GUI при hover/release; hover может передать invalid index. Захваченные объекты живут до замены callback. */
|
||||
* Callback вызывается в GUI при hover/release; hover может передать invalid index.
|
||||
* Вызывающий обеспечивает lifetime захваченных объектов на время их использования callback. */
|
||||
void setLinkHitTest(std::function<QString(const QModelIndex&, const QPoint&)> fn) { m_linkHitTest = std::move(fn); }
|
||||
|
||||
signals:
|
||||
@@ -78,6 +79,6 @@ private:
|
||||
QPoint m_pressPos; // Координата события press для порога drag и проверки click.
|
||||
bool m_selecting = false; // Идёт drag собственного выделения, не состояние стандартной модели выбора.
|
||||
bool m_historicalWindow = false; // Выбран исторический снимок, владелец должен обработать latestRequested.
|
||||
std::function<QString(const QModelIndex&, const QPoint&)> m_linkHitTest; // Собственная копия callback, без владения захваченными QObject.
|
||||
std::function<QString(const QModelIndex&, const QPoint&)> m_linkHitTest; // Собственная копия callback и его захваченных значений.
|
||||
QPushButton *m_scrollDownBtn = nullptr; // QObject-child вида: latestRequested и затем локальная прокрутка вниз.
|
||||
};
|
||||
Reference in new issue
Block a user