blob: 450642772eceadf456064b07721e023ecb530111 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include "CursorShapeOverrideController.hpp"
#include <ranges>
using namespace Cursor;
void CShapeOverrideController::setOverride(const std::string& name, eCursorShapeOverrideGroup group) {
if (m_overrides[group] == name)
return;
m_overrides[group] = name;
recheckOverridesResendIfChanged();
}
void CShapeOverrideController::unsetOverride(eCursorShapeOverrideGroup group) {
if (m_overrides[group].empty())
return;
m_overrides[group] = "";
recheckOverridesResendIfChanged();
}
void CShapeOverrideController::recheckOverridesResendIfChanged() {
for (const auto& s : m_overrides | std::views::reverse) {
if (s.empty())
continue;
if (s == m_overrideShape)
return;
m_overrideShape = s;
m_events.overrideChanged.emit(s);
return;
}
if (m_overrideShape.empty())
return;
m_overrideShape = "";
m_events.overrideChanged.emit("");
}
|