File indexing completed on 2024-05-26 04:59:46

0001 /*
0002     SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar>
0003     SPDX-FileCopyrightText: 2010-2022 Mladen Milinkovic <max@smoothware.net>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "textoverlaywidget.h"
0009 
0010 #include <QCoreApplication>
0011 #include <QPainter>
0012 #include <QTextDocument>
0013 #include <QAbstractTextDocumentLayout>
0014 #include <QResizeEvent>
0015 
0016 using namespace SubtitleComposer;
0017 
0018 TextOverlayWidget::TextOverlayWidget(QWidget *parent)
0019     : QWidget(parent)
0020 {
0021 }
0022 
0023 TextOverlayWidget::~TextOverlayWidget()
0024 {
0025 }
0026 
0027 QSize
0028 TextOverlayWidget::minimumSizeHint() const
0029 {
0030     return QSize(100, m_overlay.textSize().height());
0031 }
0032 
0033 QSize
0034 TextOverlayWidget::sizeHint() const
0035 {
0036     return m_overlay.textSize();
0037 }
0038 
0039 void
0040 TextOverlayWidget::resizeEvent(QResizeEvent *event)
0041 {
0042     m_overlay.setImageSize(event->size());
0043 }
0044 
0045 void
0046 TextOverlayWidget::paintEvent(QPaintEvent * /*event */)
0047 {
0048     QPainter painter(this);
0049     painter.fillRect(rect(), Qt::transparent);
0050     const QImage &img = m_overlay.image();
0051     const int imgCenterX = img.width() / 2;
0052     const int widgetHalfWidth = width() / 2;
0053     const QRect src(imgCenterX - widgetHalfWidth, height() - m_overlay.textSize().height(),
0054                     imgCenterX + widgetHalfWidth, height());
0055     painter.drawImage(rect(), img, src);
0056 }