Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/modules/qt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ function(mlt_add_qt_module ARG_TARGET)
gps_drawing.cpp
gps_parser.cpp gps_parser.h
graph.cpp graph.h
kdenlivegraphics.cpp
kdenlivetitle_wrapper.cpp
producer_kdenlivetitle.c
producer_qimage.c
Expand Down
23 changes: 23 additions & 0 deletions src/modules/qt/kdenlivegraphics.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include "kdenlivegraphics.h"

KdenliveGraphicsRect::KdenliveGraphicsRect(QRectF rect,
const QBrush &brush,
const QPen &pen,
int cornerRadius)
{
this->setRect(rect);
this->setBrush(brush);
this->setPen(pen);
this->cornerRadius = cornerRadius;
}

void KdenliveGraphicsRect::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
int radius = qMin(cornerRadius, (int) qMin(rect().width(), rect().height()) / 2);
painter->setBrush(brush());
painter->setPen(pen());
painter->setRenderHint(QPainter::Antialiasing);
painter->drawRoundedRect(rect(), radius, radius);
}
23 changes: 23 additions & 0 deletions src/modules/qt/kdenlivegraphics.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#pragma once

#include <QBrush>
#include <QGraphicsRectItem>
#include <QPainter>
#include <QPen>

class KdenliveGraphicsRect : public QGraphicsRectItem
{
public:
explicit KdenliveGraphicsRect(QRectF rect,
const QBrush &brush,
const QPen &pen,
int cornerRadius);

protected:
void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget = nullptr) override;

private:
int cornerRadius{0};
};
7 changes: 6 additions & 1 deletion src/modules/qt/kdenlivetitle_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
*/

#include "kdenlivetitle_wrapper.h"
#include "kdenlivegraphics.h"
#include "typewriter.h"

#include "common.h"
Expand Down Expand Up @@ -602,6 +603,8 @@ void loadFromXml(producer_ktitle self,
QRectF rect = stringToRect(rectProperties.namedItem("rect").nodeValue());
QString pen_str = rectProperties.namedItem("pencolor").nodeValue();
double penwidth = rectProperties.namedItem("penwidth").nodeValue().toDouble();
double cornerRadius
= rectProperties.namedItem("cornerRadius").nodeValue().toDouble();
QBrush brush;
if (!rectProperties.namedItem("gradient").isNull()) {
// Calculate gradient
Expand Down Expand Up @@ -648,7 +651,9 @@ void loadFromXml(producer_ktitle self,
gitem = ellipse;
} else {
// QGraphicsRectItem
QGraphicsRectItem *rec = scene->addRect(rect, pen, brush);
KdenliveGraphicsRect *rec
= new KdenliveGraphicsRect(rect, brush, pen, cornerRadius);
scene->addItem(rec);
gitem = rec;
}
} else if (nodeAttributes.namedItem("type").nodeValue() == "QGraphicsPixmapItem") {
Expand Down
2 changes: 1 addition & 1 deletion src/modules/qt/producer_kdenlivetitle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ schema_version: 0.1
type: producer
identifier: kdenlivetitle
title: Kdenlive Titler
version: 5
version: 6
copyright: Marco Gittler, Jean-Baptiste Mardelle
creator: Marco Gittler, Jean-Baptiste Mardelle
license: LGPLv2.1
Expand Down