Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Multimedia
Kdenlive
Commits
afe60bb7
Commit
afe60bb7
authored
Nov 12, 2020
by
Sashmita Raghav
Committed by
Jean-Baptiste Mardelle
Nov 12, 2020
Browse files
Add menu for subtitle clips
parent
5f763e31
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/mainwindow.cpp
View file @
afe60bb7
...
...
@@ -586,6 +586,10 @@ void MainWindow::init()
timelineRulerMenu
->
addAction
(
actionCollection
()
->
action
(
QStringLiteral
(
"add_project_note"
)));
timelineRulerMenu
->
addAction
(
actionCollection
()
->
action
(
QStringLiteral
(
"add_subtitle"
)));
//Timeline subtitle menu
QMenu
*
timelineSubtitleMenu
=
new
QMenu
(
this
);
timelineSubtitleMenu
->
addAction
(
actionCollection
()
->
action
(
QStringLiteral
(
"delete_subtitle_clip"
)));
// Timeline headers menu
QMenu
*
timelineHeadersMenu
=
new
QMenu
(
this
);
timelineHeadersMenu
->
addAction
(
actionCollection
()
->
action
(
QStringLiteral
(
"insert_track"
)));
...
...
@@ -767,7 +771,7 @@ void MainWindow::init()
#ifdef USE_JOGSHUTTLE
new
JogManager
(
this
);
#endif
getMainTimeline
()
->
setTimelineMenu
(
timelineClipMenu
,
compositionMenu
,
timelineMenu
,
guideMenu
,
timelineRulerMenu
,
actionCollection
()
->
action
(
QStringLiteral
(
"edit_guide"
)),
timelineHeadersMenu
,
thumbsMenu
);
getMainTimeline
()
->
setTimelineMenu
(
timelineClipMenu
,
compositionMenu
,
timelineMenu
,
guideMenu
,
timelineRulerMenu
,
actionCollection
()
->
action
(
QStringLiteral
(
"edit_guide"
)),
timelineHeadersMenu
,
thumbsMenu
,
timelineSubtitleMenu
);
scmanager
->
slotCheckActiveScopes
();
// m_messageLabel->setMessage(QStringLiteral("This is a beta version. Always backup your data"), MltError);
}
...
...
@@ -1703,8 +1707,8 @@ void MainWindow::setupActions()
addAction
(
QStringLiteral
(
"delete_all_guides"
),
i18n
(
"Delete All Guides"
),
this
,
SLOT
(
slotDeleteAllGuides
()),
QIcon
::
fromTheme
(
QStringLiteral
(
"edit-delete"
)));
addAction
(
QStringLiteral
(
"add_subtitle"
),
i18n
(
"Add Subtitle"
),
this
,
SLOT
(
slotAddSubtitle
()),
QIcon
::
fromTheme
(
QStringLiteral
(
"list-add"
)),
Qt
::
SHIFT
+
Qt
::
Key_S
);
addAction
(
QStringLiteral
(
"import_subtitle"
),
i18n
(
"Import Subtitle File"
),
this
,
SLOT
(
slotImportSubtitle
()),
QIcon
::
fromTheme
(
QStringLiteral
(
"list-add"
)));
addAction
(
QStringLiteral
(
"delete_subtitle_clip"
),
i18n
(
"Delete Subtitle"
),
this
,
SLOT
(
slotDeleteItem
()),
QIcon
::
fromTheme
(
QStringLiteral
(
"edit-delete"
)));
m_saveAction
=
KStandardAction
::
save
(
pCore
->
projectManager
(),
SLOT
(
saveFile
()),
actionCollection
());
m_saveAction
->
setIcon
(
QIcon
::
fromTheme
(
QStringLiteral
(
"document-save"
)));
...
...
src/mainwindow.h
View file @
afe60bb7
...
...
@@ -512,7 +512,7 @@ private slots:
void
slotActivateVideoTrackSequence
();
/** @brief Select target for current track */
void
slotActivateTarget
();
/** @brief Add
a
subtitle
at current position
*/
/** @brief Add subtitle
clip to timeline
*/
void
slotAddSubtitle
();
/** @brief Import a subtitle file */
void
slotImportSubtitle
();
...
...
src/timeline2/view/qml/SubTitle.qml
View file @
afe60bb7
...
...
@@ -44,18 +44,12 @@ Item {
drag.minimumX
:
0
onPressed
:
{
console
.
log
(
'
IT IS PRESSED
'
)
if
(
mouse
.
button
==
Qt
.
RightButton
)
{
console
.
log
(
'
RIGHT BUTTON CLICKED
'
)
timeline
.
deleteSubtitle
(
subtitleBase
.
x
/
timeline
.
scaleFactor
,
subtitleBase
.
x
/
timeline
.
scaleFactor
+
duration
,
subtitleEdit
.
text
)
}
else
{
root
.
autoScrolling
=
false
oldStartX
=
mouseX
oldStartFrame
=
subtitleBase
.
x
originalDuration
=
subtitleBase
.
width
/
timeScale
console
.
log
(
"
originalDuration
"
,
originalDuration
)
controller
.
requestSubtitleSelection
(
model
.
startframe
);
}
root
.
autoScrolling
=
false
oldStartX
=
mouseX
oldStartFrame
=
subtitleBase
.
x
originalDuration
=
subtitleBase
.
width
/
timeScale
console
.
log
(
"
originalDuration
"
,
originalDuration
)
controller
.
requestSubtitleSelection
(
model
.
startframe
);
}
onReleased
:
{
console
.
log
(
'
IT IS RELEASED
'
)
...
...
@@ -68,6 +62,12 @@ Item {
}
console
.
log
(
"
originalDuration after shifting
"
,
originalDuration
)
}
onClicked
:
{
if
(
mouse
.
button
==
Qt
.
RightButton
)
{
//console.log('RIGHT BUTTON CLICKED')
root
.
showSubtitleClipMenu
()
}
}
onDoubleClicked
:
{
parent
.
textEditBegin
=
true
}
...
...
src/timeline2/view/qml/timeline.qml
View file @
afe60bb7
...
...
@@ -24,6 +24,7 @@ Rectangle {
signal
zoomIn
(
bool
onMouse
)
signal
zoomOut
(
bool
onMouse
)
signal
processingDrag
(
bool
dragging
)
signal
showSubtitleClipMenu
()
FontMetrics
{
id
:
fontMetrics
...
...
src/timeline2/view/timelinewidget.cpp
View file @
afe60bb7
...
...
@@ -115,7 +115,7 @@ const QMap<QString, QString> TimelineWidget::sortedItems(const QStringList &item
return
sortedItems
;
}
void
TimelineWidget
::
setTimelineMenu
(
QMenu
*
clipMenu
,
QMenu
*
compositionMenu
,
QMenu
*
timelineMenu
,
QMenu
*
guideMenu
,
QMenu
*
timelineRulerMenu
,
QAction
*
editGuideAction
,
QMenu
*
headerMenu
,
QMenu
*
thumbsMenu
)
void
TimelineWidget
::
setTimelineMenu
(
QMenu
*
clipMenu
,
QMenu
*
compositionMenu
,
QMenu
*
timelineMenu
,
QMenu
*
guideMenu
,
QMenu
*
timelineRulerMenu
,
QAction
*
editGuideAction
,
QMenu
*
headerMenu
,
QMenu
*
thumbsMenu
,
QMenu
*
subtitleClipMenu
)
{
m_timelineClipMenu
=
clipMenu
;
m_timelineCompositionMenu
=
compositionMenu
;
...
...
@@ -125,6 +125,7 @@ void TimelineWidget::setTimelineMenu(QMenu *clipMenu, QMenu *compositionMenu, QM
m_headerMenu
=
headerMenu
;
m_thumbsMenu
=
thumbsMenu
;
m_headerMenu
->
addMenu
(
m_thumbsMenu
);
m_timelineSubtitleClipMenu
=
subtitleClipMenu
;
m_editGuideAcion
=
editGuideAction
;
updateEffectFavorites
();
updateTransitionFavorites
();
...
...
@@ -146,6 +147,7 @@ void TimelineWidget::setTimelineMenu(QMenu *clipMenu, QMenu *compositionMenu, QM
connect
(
m_timelineCompositionMenu
,
&
QMenu
::
aboutToHide
,
this
,
&
TimelineWidget
::
slotUngrabHack
,
Qt
::
DirectConnection
);
connect
(
m_timelineRulerMenu
,
&
QMenu
::
aboutToHide
,
this
,
&
TimelineWidget
::
slotUngrabHack
,
Qt
::
DirectConnection
);
connect
(
m_timelineMenu
,
&
QMenu
::
aboutToHide
,
this
,
&
TimelineWidget
::
slotUngrabHack
,
Qt
::
DirectConnection
);
connect
(
m_timelineSubtitleClipMenu
,
&
QMenu
::
aboutToHide
,
this
,
&
TimelineWidget
::
slotUngrabHack
,
Qt
::
DirectConnection
);
m_timelineClipMenu
->
addMenu
(
m_favEffects
);
m_timelineClipMenu
->
addMenu
(
m_favCompositions
);
...
...
@@ -189,6 +191,7 @@ void TimelineWidget::setModel(const std::shared_ptr<TimelineItemModel> &model, M
connect
(
rootObject
(),
SIGNAL
(
showRulerMenu
()),
this
,
SLOT
(
showRulerMenu
()));
connect
(
rootObject
(),
SIGNAL
(
showHeaderMenu
()),
this
,
SLOT
(
showHeaderMenu
()));
connect
(
rootObject
(),
SIGNAL
(
showTargetMenu
(
int
)),
this
,
SLOT
(
showTargetMenu
(
int
)));
connect
(
rootObject
(),
SIGNAL
(
showSubtitleClipMenu
()),
this
,
SLOT
(
showSubtitleClipMenu
()));
m_proxy
->
setRoot
(
rootObject
());
setVisible
(
true
);
loading
=
false
;
...
...
@@ -351,6 +354,11 @@ void TimelineWidget::showTimelineMenu()
m_timelineMenu
->
popup
(
m_clickPos
);
}
void
TimelineWidget
::
showSubtitleClipMenu
()
{
m_timelineSubtitleClipMenu
->
popup
(
m_clickPos
);
}
void
TimelineWidget
::
slotChangeZoom
(
int
value
,
bool
zoomOnMouse
)
{
double
pixelScale
=
QFontMetrics
(
font
()).
maxWidth
()
*
2
;
...
...
src/timeline2/view/timelinewidget.h
View file @
afe60bb7
...
...
@@ -54,7 +54,7 @@ public:
/* @brief Give keyboard focus to timeline qml */
void
focusTimeline
();
/** @brief Initiate timeline clip context menu */
void
setTimelineMenu
(
QMenu
*
clipMenu
,
QMenu
*
compositionMenu
,
QMenu
*
timelineMenu
,
QMenu
*
timelineRulerMenu
,
QMenu
*
guideMenu
,
QAction
*
editGuideAction
,
QMenu
*
headerMenu
,
QMenu
*
thumbsMenu
);
void
setTimelineMenu
(
QMenu
*
clipMenu
,
QMenu
*
compositionMenu
,
QMenu
*
timelineMenu
,
QMenu
*
timelineRulerMenu
,
QMenu
*
guideMenu
,
QAction
*
editGuideAction
,
QMenu
*
headerMenu
,
QMenu
*
thumbsMenu
,
QMenu
*
subtitleClipMenu
);
bool
loading
;
void
connectSubtitleModel
();
bool
showSubtitles
=
false
;
...
...
@@ -84,6 +84,7 @@ private slots:
void
showTimelineMenu
();
void
showRulerMenu
();
void
showHeaderMenu
();
void
showSubtitleClipMenu
();
private:
TimelineController
*
m_proxy
;
...
...
@@ -99,6 +100,7 @@ private:
QMenu
*
m_favEffects
;
QMenu
*
m_favCompositions
;
QAction
*
m_editGuideAcion
;
QMenu
*
m_timelineSubtitleClipMenu
;
static
const
int
comboScale
[];
std
::
unique_ptr
<
QSortFilterProxyModel
>
m_sortModel
;
/* @brief Keep last scale before fit to restore it on second click */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment