File: kpixmapsequenceoverlaypaintertest.cpp

package info (click to toggle)
kwidgetsaddons 5.116.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,836 kB
  • sloc: cpp: 32,526; python: 677; sh: 14; makefile: 7
file content (93 lines) | stat: -rw-r--r-- 3,425 bytes parent folder | download
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "kpixmapsequenceoverlaypaintertest.h"
#include "kpixmapsequence.h"
#include "kpixmapsequenceoverlaypainter.h"

#include <QApplication>
#include <QComboBox>
#include <QEvent>
#include <QGridLayout>
#include <QSpinBox>
#include <QTest>
#include <QVariant>

Q_DECLARE_METATYPE(Qt::Alignment)

TestWidget::TestWidget()
    : QWidget()
{
    m_draggingLeft = false;
    m_draggingRight = false;
    m_draggingTop = false;
    m_draggingBottom = false;

    QGridLayout *layout = new QGridLayout(this);
    m_widget = new QWidget(this);
    m_alignment = new QComboBox(this);
    m_offsetX = new QSpinBox(this);
    m_offsetY = new QSpinBox(this);

    layout->addWidget(m_widget, 0, 0, 1, 2);
    layout->addWidget(m_alignment, 1, 0, 1, 2);
    layout->addWidget(m_offsetX, 2, 0, 1, 1);
    layout->addWidget(m_offsetY, 2, 1, 1, 1);

    m_alignment->addItem(QStringLiteral("Center"), QVariant::fromValue(Qt::Alignment(Qt::AlignCenter)));
    m_alignment->addItem(QStringLiteral("Top-left"), QVariant::fromValue(Qt::Alignment(Qt::AlignTop | Qt::AlignLeft)));
    m_alignment->addItem(QStringLiteral("Top"), QVariant::fromValue(Qt::Alignment(Qt::AlignTop | Qt::AlignHCenter)));
    m_alignment->addItem(QStringLiteral("Top-right"), QVariant::fromValue(Qt::Alignment(Qt::AlignTop | Qt::AlignRight)));
    m_alignment->addItem(QStringLiteral("Right"), QVariant::fromValue(Qt::Alignment(Qt::AlignRight | Qt::AlignVCenter)));
    m_alignment->addItem(QStringLiteral("Bottom-right"), QVariant::fromValue(Qt::Alignment(Qt::AlignRight | Qt::AlignBottom)));
    m_alignment->addItem(QStringLiteral("Bottom"), QVariant::fromValue(Qt::Alignment(Qt::AlignHCenter | Qt::AlignBottom)));
    m_alignment->addItem(QStringLiteral("Bottom-left"), QVariant::fromValue(Qt::Alignment(Qt::AlignLeft | Qt::AlignBottom)));
    m_alignment->addItem(QStringLiteral("Left"), QVariant::fromValue(Qt::Alignment(Qt::AlignLeft | Qt::AlignVCenter)));

    connect(m_alignment, qOverload<int>(&QComboBox::activated), this, &TestWidget::alignementChanged);
    connect(m_offsetX, qOverload<int>(&QSpinBox::valueChanged), this, &TestWidget::offsetChanged);
    connect(m_offsetY, qOverload<int>(&QSpinBox::valueChanged), this, &TestWidget::offsetChanged);

    m_painter = new KPixmapSequenceOverlayPainter(KPixmapSequence(QFINDTESTDATA("kpixmap-animation.png"), 22), this);
    m_painter->setWidget(m_widget);
    m_painter->start();
}

TestWidget::~TestWidget()
{
}

void TestWidget::alignementChanged(int i)
{
    m_painter->setAlignment(m_alignment->itemData(i).value<Qt::Alignment>());
}

void TestWidget::offsetChanged()
{
    m_painter->setOffset(QPoint(m_offsetX->value(), m_offsetY->value()));
}

bool TestWidget::eventFilter(QObject *o, QEvent *e)
{
    if (o == m_widget) {
        if (e->type() == QEvent::Paint) {
        } else if (e->type() == QEvent::MouseButtonPress) {
        } else if (e->type() == QEvent::MouseButtonRelease) {
        } else if (e->type() == QEvent::MouseMove) {
        }
    }
    return QWidget::eventFilter(o, e);
}

/* --- MAIN -----------------------*/
int main(int argc, char **argv)
{
    QApplication::setApplicationName(QStringLiteral("test"));
    QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);

    TestWidget *window;

    QApplication testapp(argc, argv);
    window = new TestWidget();
    window->show();
    return testapp.exec();
}

#include "moc_kpixmapsequenceoverlaypaintertest.cpp"