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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
#include <istream>
#include <utils/icon.h>
#include <vector>
#include <QDataStream>
#include <QObject>
QT_FORWARD_DECLARE_CLASS(QEvent)
namespace QmlDesigner {
namespace TimelineUtils {
enum class Side { Top, Right, Bottom, Left };
inline bool isDeleteKey(int key)
{
return (key == Qt::Key_Backspace) || (key == Qt::Key_Delete);
}
template<typename T>
inline T clamp(const T &value, const T &lo, const T &hi)
{
return value < lo ? lo : value > hi ? hi : value;
}
template<typename T>
inline T lerp(const T &blend, const T &lhs, const T &rhs)
{
static_assert(std::is_floating_point<T>::value,
"TimelineUtils::lerp: For floating point types only!");
return blend * lhs + (1.0 - blend) * rhs;
}
template<typename T>
inline T reverseLerp(const T &val, const T &lhs, const T &rhs)
{
static_assert(std::is_floating_point<T>::value,
"TimelineUtils::reverseLerp: For floating point types only!");
return (val - rhs) / (lhs - rhs);
}
inline QIcon mergeIcons(const Utils::Icon &on, const Utils::Icon &off)
{
QIcon out;
out.addPixmap(on.pixmap(), QIcon::Normal, QIcon::On);
out.addPixmap(off.pixmap(), QIcon::Normal, QIcon::Off);
return out;
}
class DisableContextMenu : public QObject
{
Q_OBJECT
public:
explicit DisableContextMenu(QObject *parent = nullptr);
bool eventFilter(QObject *watched, QEvent *event) override;
};
} // End namespace TimelineUtils.
} // namespace QmlDesigner
|