18#ifndef SUBTITLESDOCK_H
19#define SUBTITLESDOCK_H
21#include <MltPlaylist.h>
25class SubtitlesSelectionModel;
34class SubtitlesDock :
public QDockWidget
39 explicit SubtitlesDock(QWidget *parent = 0);
41 void setModel(SubtitlesModel *model, SubtitlesSelectionModel *selectionModel);
42 void importSrtFromFile(
const QString &srtPath,
43 const QString &trackName,
45 bool includeNonspoken);
48 void seekRequested(
int pos);
49 void addAllTimeline(Mlt::Playlist *,
bool skipProxy,
bool emptyTrack);
50 void createOrEditFilterOnOutput(Mlt::Filter *,
const QStringList &key_properties);
53 void onPositionChanged(
int position);
54 void onStartColumnToggled(
bool checked);
55 void onEndColumnToggled(
bool checked);
56 void onDurationColumnToggled(
bool checked);
59 void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
63 void onCreateOrEditRequested();
64 void onAddRequested();
65 void onRemoveRequested();
66 void onSetStartRequested();
67 void onSetEndRequested();
68 void onMoveRequested();
71 void updateActionAvailablity();
72 void addSubtitleTrack();
73 void removeSubtitleTrack();
74 void editSubtitleTrack();
75 void refreshTracksCombo();
76 void importSubtitles();
77 void exportSubtitles();
78 void onItemDoubleClicked(
const QModelIndex &index);
79 void resizeTextWidgets();
80 void updateTextWidgets();
81 void setCurrentItem(
int trackIndex,
int itemIndex);
82 void refreshWidgets();
83 void selectItemForTime();
84 QString availableTrackName();
85 bool trackNameExists(
const QString &name);
86 void ensureTrackExists();
87 void burnInOnTimeline();
88 void generateTextOnTimeline();
91 bool findWhisperExe();
92 void seekToText(QString text,
int step);
94 SubtitlesModel *m_model;
95 SubtitlesSelectionModel *m_selectionModel;
96 QLabel *m_addToTimelineLabel;
97 QComboBox *m_trackCombo;
98 QTreeView *m_treeView;
105 QLineEdit *m_searchField;
107 bool m_textEditInProgress;
108 std::unique_ptr<SpeechDialog> m_speechDialog;