Commit eb395991 authored by Vincent Pinon's avatar Vincent Pinon

Merge branch 'Applications/18.04'

parents 2a377bf6 2e1c3990
......@@ -26,12 +26,7 @@ install(FILES
timeline_vthumbs.png
kdenliveeffectscategory.rc
kdenlivetranscodingrc
# Qml are now embedded as Qt resources from /src/uiresources.qrc
# kdenlivemonitor.qml
# kdenliveclipmonitor.qml
# kdenlivemonitoreffectscene.qml
# kdenlivemonitorcornerscene.qml
# kdenlivemonitorsplit.qml
DESTINATION ${DATA_INSTALL_DIR}/kdenlive)
install(FILES kdenlive.notifyrc DESTINATION ${KNOTIFYRC_INSTALL_DIR})
install(FILES kdenlive_renderprofiles.knsrc kdenlive_wipes.knsrc kdenlive_titles.knsrc DESTINATION ${CONFIG_INSTALL_DIR})
......@@ -40,6 +35,6 @@ install(FILES org.kde.kdenlive.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR
install(FILES org.kde.kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
find_package(SharedMimeInfo REQUIRED)
install(FILES kdenlive.xml westley.xml DESTINATION ${XDG_MIME_INSTALL_DIR})
install(FILES org.kde.kdenlive.xml westley.xml DESTINATION ${XDG_MIME_INSTALL_DIR})
update_xdg_mimetypes(${XDG_MIME_INSTALL_DIR})
function get_files
{
echo kdenlive.xml
echo org.kde.kdenlive.xml
}
function po_for_file
{
case "$1" in
kdenlive.xml)
org.kde.kdenlive.xml)
echo kdenlive_xml_mimetypes.po
;;
esac
......@@ -15,7 +15,7 @@ function po_for_file
function tags_for_file
{
case "$1" in
kdenlive.xml)
org.kde.kdenlive.xml)
echo comment
;;
esac
......
......@@ -48,12 +48,12 @@ Item {
height: root.profile.y * root.scaley
anchors.centerIn: parent
visible: root.showSafezone
property color overlayColor: 'cyan'
Rectangle {
id: safezone
objectName: "safezone"
color: "transparent"
border.color: "cyan"
border.color: frame.overlayColor
width: parent.width * 0.9
height: parent.height * 0.9
anchors.centerIn: parent
......@@ -61,11 +61,51 @@ Item {
id: safetext
objectName: "safetext"
color: "transparent"
border.color: "cyan"
border.color: frame.overlayColor
width: frame.width * 0.8
height: frame.height * 0.8
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
width: frame.width / 20
height: 1
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
height: frame.width / 20
width: 1
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
height: frame.height / 11
width: 1
y: 0
x: parent.width / 2
}
Rectangle {
color: frame.overlayColor
height: frame.height / 11
width: 1
y: parent.height -height
x: parent.width / 2
}
Rectangle {
color: frame.overlayColor
width: frame.width / 11
height: 1
y: parent.height / 2
x: 0
}
Rectangle {
color: frame.overlayColor
width: frame.width / 11
height: 1
y: parent.height / 2
x: parent.width -width
}
}
}
......
......@@ -47,11 +47,12 @@ Item {
height: root.profile.y * root.scaley
anchors.centerIn: parent
visible: root.showSafezone
property color overlayColor: 'cyan'
Rectangle {
id: safezone
objectName: "safezone"
color: "transparent"
border.color: "cyan"
border.color: frame.overlayColor
width: parent.width * 0.9
height: parent.height * 0.9
anchors.centerIn: parent
......@@ -59,11 +60,51 @@ Item {
id: safetext
objectName: "safetext"
color: "transparent"
border.color: "cyan"
border.color: frame.overlayColor
width: frame.width * 0.8
height: frame.height * 0.8
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
width: frame.width / 20
height: 1
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
height: frame.width / 20
width: 1
anchors.centerIn: parent
}
Rectangle {
color: frame.overlayColor
height: frame.height / 11
width: 1
y: 0
x: parent.width / 2
}
Rectangle {
color: frame.overlayColor
height: frame.height / 11
width: 1
y: parent.height -height
x: parent.width / 2
}
Rectangle {
color: frame.overlayColor
width: frame.width / 11
height: 1
y: parent.height / 2
x: 0
}
Rectangle {
color: frame.overlayColor
width: frame.width / 11
height: 1
y: parent.height / 2
x: parent.width -width
}
}
}
......
......@@ -244,7 +244,7 @@
</ul>
</description>
<releases>
<release date="2018-04-19" version="18.04.0"/>
<release date="2018-06-07" version="18.04.2"/>
</releases>
<url type="homepage">https://kdenlive.org/</url>
<url type="bugtracker">https://bugs.kde.org</url>
......
......@@ -69,7 +69,7 @@ bool MyWizardPage::isComplete() const
return m_isComplete;
}
Wizard::Wizard(bool autoClose, QWidget *parent) :
Wizard::Wizard(bool autoClose, bool appImageCheck, QWidget *parent) :
QWizard(parent),
m_systemCheckIsOk(false),
m_brokenModule(false)
......@@ -98,7 +98,7 @@ Wizard::Wizard(bool autoClose, QWidget *parent) :
setButtonText(QWizard::FinishButton, i18n("OK"));
slotCheckMlt();
if (!m_errors.isEmpty() || !m_warnings.isEmpty() || !m_infos.isEmpty()) {
if (!m_errors.isEmpty() || !m_warnings.isEmpty() || (!m_infos.isEmpty() && !appImageCheck)) {
QLabel *lab = new QLabel(this);
lab->setText(i18n("Startup error or warning, check our <a href='#'>online manual</a>."));
connect(lab, &QLabel::linkActivated, this, &Wizard::slotOpenManual);
......
......@@ -45,7 +45,7 @@ class Wizard : public QWizard
{
Q_OBJECT
public:
explicit Wizard(bool autoClose, QWidget *parent = nullptr);
explicit Wizard(bool autoClose, bool appImageCheck, QWidget *parent = nullptr);
void installExtraMimes(const QString &baseName, const QStringList &globs);
void runUpdateMimeDatabase();
void adjustSettings();
......
......@@ -242,9 +242,9 @@ void AnimKeyframeRuler::mouseReleaseEvent(QMouseEvent *event)
void AnimKeyframeRuler::wheelEvent(QWheelEvent *e)
{
if (e->delta() < 0) {
--m_position;
} else {
++m_position;
} else {
--m_position;
}
m_position = qMax(0, m_position);
m_position = qMin(frameLength, m_position);
......
......@@ -235,9 +235,9 @@ void KeyframeHelper::mouseReleaseEvent(QMouseEvent *event)
void KeyframeHelper::wheelEvent(QWheelEvent *e)
{
if (e->delta() < 0) {
--m_position;
} else {
++m_position;
} else {
--m_position;
}
m_position = qMax(0, m_position);
m_position = qMin(frameLength, m_position);
......
......@@ -1644,7 +1644,7 @@ bool MainWindow::readOptions()
// Check color theme
ThemeManager::instance()->initDarkTheme();
// this is our first run, show Wizard
QPointer<Wizard> w = new Wizard(true);
QPointer<Wizard> w = new Wizard(true, false);
if (w->exec() == QDialog::Accepted && w->isOk()) {
w->adjustSettings();
delete w;
......@@ -1654,7 +1654,7 @@ bool MainWindow::readOptions()
}
} else if (!KdenliveSettings::ffmpegpath().isEmpty() && !QFile::exists(KdenliveSettings::ffmpegpath())) {
// Invalid entry for FFmpeg, check system
QPointer<Wizard> w = new Wizard(true);
QPointer<Wizard> w = new Wizard(true, config->name().contains(QLatin1String("appimage")));
if (w->exec() == QDialog::Accepted && w->isOk()) {
w->adjustSettings();
}
......@@ -1666,7 +1666,7 @@ bool MainWindow::readOptions()
void MainWindow::slotRunWizard()
{
QPointer<Wizard> w = new Wizard(false, this);
QPointer<Wizard> w = new Wizard(false, false, this);
if (w->exec() == QDialog::Accepted && w->isOk()) {
w->adjustSettings();
}
......
......@@ -956,21 +956,21 @@ void Monitor::slotMouseSeek(int eventDelta, int modifiers)
delta = 0 - delta;
}
if (render->requestedSeekPosition != SEEK_INACTIVE) {
slotSeek(render->requestedSeekPosition - delta);
slotSeek(render->requestedSeekPosition + delta);
} else {
slotSeek(render->seekFramePosition() - delta);
slotSeek(render->seekFramePosition() + delta);
}
} else if (modifiers & Qt::AltModifier) {
if (eventDelta >= 0) {
emit seekToNextSnap();
} else {
emit seekToPreviousSnap();
} else {
emit seekToNextSnap();
}
} else {
if (eventDelta >= 0) {
slotForwardOneFrame();
} else {
slotRewindOneFrame();
} else {
slotForwardOneFrame();
}
}
}
......
......@@ -263,7 +263,7 @@ void SimpleTimelineWidget::mouseDoubleClickEvent(QMouseEvent *event)
void SimpleTimelineWidget::wheelEvent(QWheelEvent *event)
{
int change = event->delta() < 0 ? -1 : 1;
int change = event->delta() < 0 ? 1 : -1;
/*if (m_currentKeyframe > 0) {
m_currentKeyframe = qBound(0, m_currentKeyframe + change, m_duration);
emit keyframeMoved(m_currentKeyframeOriginal, m_currentKeyframe);
......
......@@ -410,8 +410,8 @@ bool CustomTrackView::checkTrackHeight(bool force)
*
* If mousewheel+Ctrl, zooms in/out on the timeline.
*
* With Ctrl, moves viewport towards end of timeline if down/back,
* opposite on up/forward.
* With Alt, moves viewport towards end of timeline if down,
* opposite on up.
*
* See also http://www.kdenlive.org/mantis/view.php?id=265 */
void CustomTrackView::wheelEvent(QWheelEvent *e)
......@@ -427,9 +427,9 @@ void CustomTrackView::wheelEvent(QWheelEvent *e)
} else if (e->modifiers() == Qt::AltModifier) {
if (m_moveOpMode == None || m_moveOpMode == WaitingForConfirm || m_moveOpMode == ZoomTimeline) {
if (e->delta() > 0) {
slotSeekToNextSnap();
} else {
slotSeekToPreviousSnap();
} else {
slotSeekToNextSnap();
}
}
} else {
......@@ -4286,9 +4286,9 @@ void CustomTrackView::moveCursorPos(int delta)
{
int currentPos = m_document->renderer()->requestedSeekPosition;
if (currentPos == SEEK_INACTIVE) {
currentPos = m_document->renderer()->seekFramePosition() + delta;
currentPos = m_document->renderer()->seekFramePosition() - delta;
} else {
currentPos += delta;
currentPos -= delta;
}
emit updateRuler(currentPos);
m_document->renderer()->seek(qMax(0, currentPos));
......
......@@ -599,7 +599,9 @@ void KeyframeView::updateKeyFramePos(const QRectF &br, int frame, const double y
}
// Remove kfr at previous position
m_keyAnim = m_keyProperties.get_animation(paramName.toUtf8().constData());
m_keyAnim.remove(activeKeyframe);
if (m_keyAnim.is_valid()) {
m_keyAnim.remove(activeKeyframe);
}
}
m_keyAnim = m_keyProperties.get_animation(m_inTimeline.toUtf8().constData());
}
......@@ -718,7 +720,9 @@ void KeyframeView::removeKeyframe(int frame)
paramNames.removeAll(m_inTimeline);
foreach (const QString &paramName, paramNames) {
m_keyAnim = m_keyProperties.get_animation(paramName.toUtf8().constData());
m_keyAnim.remove(frame);
if (m_keyAnim.is_valid()) {
m_keyAnim.remove(frame);
}
}
m_keyAnim = m_keyProperties.get_animation(m_inTimeline.toUtf8().constData());
}
......@@ -772,6 +776,9 @@ const QString KeyframeView::serialize(const QString &name, bool rectAnimation)
if (!name.isEmpty()) {
m_keyAnim = m_keyProperties.get_animation(name.toUtf8().constData());
}
if (!m_keyAnim.is_valid()) {
return m_keyProperties.get(name.toUtf8().constData());
}
if (attachToEnd == -2 || rectAnimation) {
return m_keyAnim.serialize_cut();
}
......@@ -946,7 +953,7 @@ bool KeyframeView::loadKeyframes(const QLocale &locale, const QDomElement &effec
}
if (paramName == m_inTimeline) {
m_keyAnim = m_keyProperties.get_animation(m_inTimeline.toUtf8().constData());
if (m_keyAnim.next_key(activeKeyframe) <= activeKeyframe) {
if (m_keyAnim.is_valid() && m_keyAnim.next_key(activeKeyframe) <= activeKeyframe) {
activeKeyframe = -1;
}
}
......
......@@ -842,8 +842,8 @@ void TitleWidget::displayBackgroundFrame()
QRectF r = m_frameBorder->sceneBoundingRect();
if (!displayBg->isChecked()) {
QPixmap pattern(20, 20);
pattern.fill();
QColor bgcolor(210, 210, 210);
pattern.fill(Qt::gray);
QColor bgcolor(180, 180, 180);
QPainter p(&pattern);
p.fillRect(QRect(0, 0, 10, 10), bgcolor);
p.fillRect(QRect(10, 10, 20, 20), bgcolor);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment