File indexing completed on 2024-03-24 04:54:13
0001 /* 0002 SPDX-FileCopyrightText: 2020 Jean-Baptiste Mardelle 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #pragma once 0007 0008 #include "ui_editsub_ui.h" 0009 0010 #include "definitions.h" 0011 0012 0013 class SubtitleModel; 0014 class TimecodeDisplay; 0015 0016 class ShiftEnterFilter : public QObject 0017 { 0018 Q_OBJECT 0019 public: 0020 ShiftEnterFilter(QObject *parent = nullptr); 0021 protected: 0022 bool eventFilter(QObject *obj, QEvent *event) override; 0023 Q_SIGNALS: 0024 void triggerUpdate(); 0025 }; 0026 0027 0028 /** 0029 * @class SubtitleEdit: Subtitle edit widget 0030 * @brief A dialog for editing markers and guides. 0031 * @author Jean-Baptiste Mardelle 0032 */ 0033 class SubtitleEdit : public QWidget, public Ui::SubEdit_UI 0034 { 0035 Q_OBJECT 0036 0037 public: 0038 explicit SubtitleEdit(QWidget *parent = nullptr); 0039 void setModel(std::shared_ptr<SubtitleModel> model); 0040 0041 public Q_SLOTS: 0042 void setActiveSubtitle(int id); 0043 0044 private Q_SLOTS: 0045 void updateSubtitle(); 0046 void goToPrevious(); 0047 void goToNext(); 0048 void updateStyle(); 0049 void loadStyle(const QString &style); 0050 void slotZoomIn(); 0051 void slotZoomOut(); 0052 0053 private: 0054 std::shared_ptr<SubtitleModel> m_model; 0055 int m_activeSub{-1}; 0056 GenTime m_startPos; 0057 GenTime m_endPos; 0058 void updateCharInfo(); 0059 void applyFontSize(); 0060 0061 Q_SIGNALS: 0062 void addSubtitle(const QString &); 0063 void cutSubtitle(int id, int cursorPos); 0064 };