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 }