From db460aeec3639df901d0ac63724192df147fd2a1 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 7 Apr 2021 14:57:10 +1000 Subject: [PATCH 1/4] docker: restored Qt5Svg in script too --- docker/scripts/build_olive.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/scripts/build_olive.sh b/docker/scripts/build_olive.sh index 6f79a67ac..cb11f717a 100644 --- a/docker/scripts/build_olive.sh +++ b/docker/scripts/build_olive.sh @@ -22,7 +22,6 @@ libQt5Pdf.so,\ libQt5Qml.so,\ libQt5QmlModels.so,\ libQt5Quick.so,\ -libQt5Svg.so,\ libQt5VirtualKeyboard.so \ -bundle-non-qt-libs \ -executable=appdir/usr/bin/crashpad_handler \ From df93ab519557aebe4445d7e4fefe57b4c0fba8f3 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 7 Apr 2021 17:30:01 +1000 Subject: [PATCH 2/4] try custom AppRun --- .github/workflows/ci.yml | 3 +++ app/packaging/linux/AppRun | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100755 app/packaging/linux/AppRun diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bb501299..feb74cea3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,6 +83,9 @@ jobs: # Create install tree cmake --install app --prefix appdir/usr + # Inject custom AppRun (linuxdeployqt won't replace if it already exists) + cp $GITHUB_WORKSPACE/app/packaging/linux/AppRun appdir + # Process AppDir /usr/local/linuxdeployqt-x86_64.AppImage \ appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \ diff --git a/app/packaging/linux/AppRun b/app/packaging/linux/AppRun new file mode 100755 index 000000000..ddd63ced9 --- /dev/null +++ b/app/packaging/linux/AppRun @@ -0,0 +1,15 @@ +#!/bin/bash + +# Custom AppRun that ensures the AppImage doesn't dismount before olive-crashhandler exits + +# Run main program +usr/bin/olive-editor + +# Wait arbitrary amount of time +sleep 5 + +# While olive-crashhandler exists, keep sleeping +while [[ $(ps -aux | grep olive-crashhandler | grep -v grep) ]] +do + sleep 5 +done From 490e067911beb3e20894d6a8f1e0cd54803efbcf Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 7 Apr 2021 17:47:50 +1000 Subject: [PATCH 3/4] use APPDIR env variable --- app/packaging/linux/AppRun | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/packaging/linux/AppRun b/app/packaging/linux/AppRun index ddd63ced9..22bb500b8 100755 --- a/app/packaging/linux/AppRun +++ b/app/packaging/linux/AppRun @@ -3,7 +3,7 @@ # Custom AppRun that ensures the AppImage doesn't dismount before olive-crashhandler exits # Run main program -usr/bin/olive-editor +$APPDIR/usr/bin/olive-editor # Wait arbitrary amount of time sleep 5 From 02b21a22aa677ccfab1ef9a3d01773370c12f40a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 8 Apr 2021 09:49:21 +1000 Subject: [PATCH 4/4] slider: start listening to mouse input only after positioning --- app/widget/slider/sliderbase.cpp | 2 ++ app/widget/slider/sliderladder.cpp | 14 +++++++------- app/widget/slider/sliderladder.h | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/widget/slider/sliderbase.cpp b/app/widget/slider/sliderbase.cpp index 9a174a565..25d36f10b 100644 --- a/app/widget/slider/sliderbase.cpp +++ b/app/widget/slider/sliderbase.cpp @@ -396,6 +396,8 @@ void SliderBase::RepositionLadder() drag_ladder_->move(ladder_x, ladder_y); } + + drag_ladder_->StartListeningToMouseInput(); } } diff --git a/app/widget/slider/sliderladder.cpp b/app/widget/slider/sliderladder.cpp index 47542765e..af630dedf 100644 --- a/app/widget/slider/sliderladder.cpp +++ b/app/widget/slider/sliderladder.cpp @@ -113,6 +113,11 @@ void SliderLadder::SetValue(const QString &s) } } +void SliderLadder::StartListeningToMouseInput() +{ + drag_timer_.start(); +} + void SliderLadder::mouseReleaseEvent(QMouseEvent *event) { Q_UNUSED(event) @@ -120,13 +125,6 @@ void SliderLadder::mouseReleaseEvent(QMouseEvent *event) this->close(); } -void SliderLadder::showEvent(QShowEvent *event) -{ - QWidget::showEvent(event); - - drag_timer_.start(); -} - void SliderLadder::closeEvent(QCloseEvent *event) { Q_UNUSED(event) @@ -134,6 +132,8 @@ void SliderLadder::closeEvent(QCloseEvent *event) drag_timer_.stop(); emit Released(); + + QFrame::closeEvent(event); } void SliderLadder::TimerUpdate() diff --git a/app/widget/slider/sliderladder.h b/app/widget/slider/sliderladder.h index a881cd75a..ca67c303d 100644 --- a/app/widget/slider/sliderladder.h +++ b/app/widget/slider/sliderladder.h @@ -70,11 +70,11 @@ public: void SetValue(const QString& s); + void StartListeningToMouseInput(); + protected: virtual void mouseReleaseEvent(QMouseEvent *event) override; - virtual void showEvent(QShowEvent *event) override; - virtual void closeEvent(QCloseEvent* event) override; signals: