1 /*
2 SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar>
3 SPDX-FileCopyrightText: 2010-2018 Mladen Milinkovic <max@smoothware.net>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8 #include "config.h"
9
10 #include "joinsubtitlesdialog.h"
11 #include "helpers/commondefs.h"
12 #include "videoplayer/videoplayer.h"
13 #include "widgets/timeedit.h"
14
15 #include <QIcon>
16 #include <QGridLayout>
17 #include <QGroupBox>
18 #include <QCheckBox>
19 #include <QPushButton>
20
21 using namespace SubtitleComposer;
22
JoinSubtitlesDialog(QWidget * parent)23 JoinSubtitlesDialog::JoinSubtitlesDialog(QWidget *parent) :
24 SelectableSubtitleDialog(i18n("Join Subtitles"), parent)
25 {
26 createSubtitleGroupBox();
27
28 m_shiftSubtitleCheckBox = new QCheckBox(m_subtitleGroupBox);
29 m_shiftSubtitleCheckBox->setText(i18n("Shift subtitle forwards before append"));
30 m_shiftSubtitleCheckBox->setChecked(true);
31
32 m_shiftTimeFromVideoButton = new QPushButton(m_subtitleGroupBox);
33 m_shiftTimeFromVideoButton->setIcon(QIcon::fromTheme(QStringLiteral("time_from_video")));
34 int buttonSize = m_shiftTimeFromVideoButton->sizeHint().height();
35 m_shiftTimeFromVideoButton->setFixedSize(buttonSize, buttonSize);
36 m_shiftTimeFromVideoButton->setToolTip(i18n("Set from video length"));
37
38 m_shiftTimeEdit = new TimeEdit(m_subtitleGroupBox);
39
40 connect(m_shiftTimeFromVideoButton, &QAbstractButton::clicked, this, &JoinSubtitlesDialog::setShiftTimeFromVideo);
41 connect(m_shiftSubtitleCheckBox, &QAbstractButton::toggled, m_shiftTimeFromVideoButton, &QWidget::setEnabled);
42 connect(m_shiftSubtitleCheckBox, &QAbstractButton::toggled, m_shiftTimeEdit, &QWidget::setEnabled);
43
44 createTargetsGroupBox();
45 createTextTargetsButtonGroup();
46
47 QHBoxLayout *shiftTimeLayout = new QHBoxLayout();
48 shiftTimeLayout->addStretch();
49 shiftTimeLayout->addWidget(m_shiftTimeFromVideoButton);
50 shiftTimeLayout->addWidget(m_shiftTimeEdit);
51
52 m_subtitleLayout->addWidget(m_shiftSubtitleCheckBox, 2, 0, 1, 2);
53 m_subtitleLayout->addLayout(shiftTimeLayout, 2, 2);
54 }
55
56 void
setShiftTimeFromVideo()57 JoinSubtitlesDialog::setShiftTimeFromVideo()
58 {
59 m_shiftTimeEdit->setValue((int)(VideoPlayer::instance()->duration() * 1000 + 0.5));
60 }
61
62 Time
shiftTime() const63 JoinSubtitlesDialog::shiftTime() const
64 {
65 return m_shiftSubtitleCheckBox->isChecked() ? m_shiftTimeEdit->value() : 0;
66 }
67
68 void
show()69 JoinSubtitlesDialog::show()
70 {
71 m_shiftTimeFromVideoButton->setEnabled(VideoPlayer::instance()->state() > VideoPlayer::Opening);
72 if(m_shiftTimeFromVideoButton->isEnabled())
73 setShiftTimeFromVideo();
74
75 SelectableSubtitleDialog::show();
76 }
77
78
79