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