Krita Source Code Documentation
Loading...
Searching...
No Matches
StoryboardDelegate.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Saurabh Kumar <saurabhk660@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __STORYBOARD_DELEGATE_H
8#define __STORYBOARD_DELEGATE_H
9
10#include <QStyledItemDelegate>
11#include <QTextEdit>
12
13#include "StoryboardView.h"
14#include <kis_types.h>
15#include <kis_debug.h>
16#include <kis_image.h>
17
18class QListView;
19class StoryboardModel;
20class StoryboardView;
21
22class StoryboardDelegate : public QStyledItemDelegate
23{
24 Q_OBJECT
25public:
26 StoryboardDelegate(QObject *parent);
27 ~StoryboardDelegate() override;
28
29 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
30 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
31 bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override;
32 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
33 const QModelIndex &index) const override;
34 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
35 void setModelData(QWidget *editor, QAbstractItemModel *model,
36 const QModelIndex &index) const override;
37 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
38
39 void setView(StoryboardView *view);
40
44 void drawSpinBox(QPainter *p, const QStyleOptionViewItem &option, QString data, QString suffix) const;
45
49 QStyleOptionSlider drawCommentHeader(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
50
54 QRect spinBoxUpButton(const QStyleOptionViewItem &option);
55
59 QRect spinBoxDownButton(const QStyleOptionViewItem &option);
60
64 QRect spinBoxEditField(const QStyleOptionViewItem &option);
65
69 QRect scrollBar(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption) const;
70
74 QRect scrollDownButton(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption);
75
79 QRect scrollUpButton(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption);
80 void setImageSize(QSize imageSize);
81
82 bool isOverlappingActionIcons(const QRect& rect, const QMouseEvent *event);
83
84protected:
85 bool eventFilter(QObject* editor, QEvent* event) override;
86
87private Q_SLOTS:
88
93 void slotCommentScrolledTo(int value) const;
94
95private:
97 QPoint m_lastDragPos = QPoint(0, 0);
99};
100
101class LimitedTextEditor : public QTextEdit {
102 Q_OBJECT
103public:
104 LimitedTextEditor(int limit, QWidget* parent = nullptr)
105 : QTextEdit(parent)
106 , m_charLimit(limit){
107 connect(this, SIGNAL(textChanged()), this, SLOT(restrictText()));
108 }
109
111
112public Q_SLOTS:
114 if (toPlainText().length() > m_charLimit) {
115 setText(toPlainText().left(m_charLimit));
116 QTextCursor c = textCursor();
117 c.setPosition(m_charLimit);
118 setTextCursor(c);
119 }
120 }
121
122private:
123 const int m_charLimit;
124};
125
126#endif
qreal length(const QPointF &vec)
Definition Ellipse.cc:82
float value(const T *src, size_t ch)
const Params2D p
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
LimitedTextEditor(int limit, QWidget *parent=nullptr)
StoryboardDelegate(QObject *parent)
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setEditorData(QWidget *editor, const QModelIndex &index) const override
QStyleOptionSlider drawCommentHeader(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
Draw the comment header.
void setView(StoryboardView *view)
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QRect scrollDownButton(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption)
QRect scrollBar(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption) const
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QRect spinBoxEditField(const QStyleOptionViewItem &option)
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
void slotCommentScrolledTo(int value) const
updates the scroll value of the CommentBox in StoryboardModel This enables the model to keep track of...
bool eventFilter(QObject *editor, QEvent *event) override
void drawSpinBox(QPainter *p, const QStyleOptionViewItem &option, QString data, QString suffix) const
Draw the spin box.
QRect spinBoxUpButton(const QStyleOptionViewItem &option)
bool isOverlappingActionIcons(const QRect &rect, const QMouseEvent *event)
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
QRect spinBoxDownButton(const QStyleOptionViewItem &option)
QRect scrollUpButton(const QStyleOptionViewItem &option, QStyleOptionSlider &scrollBarOption)
StoryboardView * m_view
void setImageSize(QSize imageSize)
The main storyboard model. This class manages a StoryboardItemList which is a list of StoryboardItem ...