[-]
[+]
|
Added |
_service:tar_git:harbour-stopmotion.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/poetaster/harbour-stopmotion.git</param>
<param name="branch">imageprovider</param>
- <param name="revision">0.4.2</param>
+ <param name="revision">v0.4.4</param>
<param name="debian">N</param>
<param name="dumb">N</param>
</service>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/.github/workflows/build.yml
^
|
@@ -0,0 +1,77 @@
+name: Github CI build
+
+on:
+ push:
+ tags:
+ - 'v*'
+env:
+ OS_VERSION: 4.4.0.68
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: Build App
+ strategy:
+ matrix:
+ arch: ['armv7hl', 'aarch64', 'i486']
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Prepare
+ run: docker pull coderus/sailfishos-platform-sdk:$OS_VERSION && mkdir output
+
+ - name: Build ${{ matrix.arch }}
+ run: docker run --rm --privileged -v $PWD:/share coderus/sailfishos-platform-sdk:$OS_VERSION /bin/bash -c "
+ mkdir -p build ;
+ cd build ;
+ cp -r /share/* . ;
+ mb2 -t SailfishOS-$OS_VERSION-${{ matrix.arch }} build ;
+ sudo cp -r RPMS/*.rpm /share/output"
+
+ - name: Upload RPM (${{ matrix.arch }})
+ uses: actions/upload-artifact@v3
+ with:
+ name: rpm-${{ matrix.arch }}
+ path: output
+ release:
+ name: Release
+ if: startsWith(github.ref, 'refs/tags/v')
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Download armv7hl
+ uses: actions/download-artifact@v3
+ with:
+ name: rpm-armv7hl
+ continue-on-error: true
+ - name: Download aarch64
+ uses: actions/download-artifact@v3
+ with:
+ name: rpm-aarch64
+ continue-on-error: true
+ - name: Download i486
+ uses: actions/download-artifact@v3
+ with:
+ name: rpm-i486
+ continue-on-error: true
+ - name: Extract Version Name
+ id: extract_name
+ uses: actions/github-script@v4
+ with:
+ result-encoding: string
+ script: |
+ return context.payload.ref.replace(/refs\/tags\//, '');
+ - name: Create a Release
+ uses: softprops/action-gh-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ name: ${{ steps.extract_name.outputs.result }}
+ draft: false
+ prerelease: false
+ body: This release was autogenerated.
+ files: '*.rpm'
+
+
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/harbour-stopmotion.pro
^
|
@@ -40,8 +40,8 @@
qml/sound/*.wav \
qml/py/videox.py \
rpm/harbour-stopmotion.spec \
- rpm/harbour-stopmotion.changes.in \
- rpm/harbour-stopmotion.changes.run.in \
+ rpm/harbour-stopmotion.changes \
+ rpm/harbour-stopmotion.changes.run \
translations/*.ts \
harbour-stopmotion.desktop
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/qml/harbour-stopmotion.qml
^
|
@@ -10,6 +10,8 @@
ApplicationWindow
{
property bool debug:false
+ // global for name of current picture series
+ property var seriesName
// global banner used for feedback, for instance from ffmpeg python file save.
Banner {
id: banner
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/qml/pages/ShootScreen.qml
^
|
@@ -14,7 +14,6 @@
property alias oCamera: camera
property var pStopmotion
property var savePath: Database.getProp('path')
- property var seriesName
property int seriesCounter: 0
property int counter: 0
property string recordPath : StandardPaths.pictures
@@ -92,7 +91,10 @@
FolderPickerDialog {
id: folderiDialog
title: "Save to:"
- onAccepted: savePath = selectedPath
+ onAccepted:{
+ savePath = selectedPath
+ selectPath.text = savePath
+ }
onRejected: savePath = StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
}
}
@@ -104,7 +106,10 @@
id: foldereDialog
path: "/run/media/defaultuser"
title: "Save to:"
- onAccepted: savePath = selectedPath + "/"
+ onAccepted: {
+ savePath = selectedPath + "/"
+ selectPath.text = savePath
+ }
onRejected: savePath = StandardPaths.pictures
}
}
@@ -349,31 +354,28 @@
id:leftPanelCol
anchors.fill: panel
// visible: false
- ComboBox
- {
+ Slider {
id:delaySelector
+ label: "Delay"
anchors {
left: parent.left
right:parent.right
}
- label: "Delay"
- menu: ContextMenu {
- MenuItem { text: "1 min" ;
- onClicked: pStopmotion.interval = 60*1000 }
- MenuItem { text: "20 sec" ;
- onClicked: pStopmotion.interval = 20*1000 }
- MenuItem { text: "10 sec"
- onClicked: pStopmotion.interval = 10*1000 }
- MenuItem { text: "4 sec"
- onClicked: pStopmotion.interval = 4*1000 }
- MenuItem { text: "1 sec" ;
- onClicked: pStopmotion.interval = 1000 }
-
+ //width: parent.width - Theme.paddingLarge
+ minimumValue: 1
+ maximumValue: 120
+ value: 1
+ stepSize: 1
+ valueText: sliderValue
+ onReleased: {
+ pStopmotion.interval = value * 1000
+ Database.setProp('delay',String(sliderValue))
}
- onCurrentIndexChanged: Database.setProp('delay',String(currentIndex))
-
Component.onCompleted: {
- currentIndex = Database.getProp('delay')
+ value = Database.getProp('delay')
+ if (value < 1 )
+ value = 1
+ pStopmotion.interval = value * 1000
}
}
ComboBox
@@ -415,7 +417,7 @@
left: parent.left
right:parent.right
}
- // text : StandardPaths.pictures+"/Stopmotion"
+ text : StandardPaths.pictures+"/Stopmotion"
height:Theme.itemSizeMedium
placeholderText: "Enter path"
label: "Selected path"
@@ -633,19 +635,6 @@
if (debug) console.log("delay " + Database.getProp('delay'));
- delaySelector.currentIndex = parseInt(Database.getProp('delay'));
- if (delaySelector.currentIndex==0)
- //pStopmotion.setTimeout(60);
- pStopmotion.interval = 60*1000;
- if (delaySelector.currentIndex==1)
- pStopmotion.interval = 20*1000;
- if (delaySelector.currentIndex==2)
- pStopmotion.interval = 10*1000;
- if (delaySelector.currentIndex==3)
- pStopmotion.interval = 4*1000;
- if (delaySelector.currentIndex==4)
- pStopmotion.interval = 1*1000;
-
pathSelector.currentIndex = parseInt(Database.getProp('path_type'));
if (Database.getProp('path')!=="")
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/qml/pages/SlideshowPage.qml
^
|
@@ -2,6 +2,7 @@
import Sailfish.Silica 1.0
import Sailfish.Pickers 1.0
import Nemo.Thumbnailer 1.0
+import Qt.labs.folderlistmodel 2.1
import "../components"
import "../utils/localdb.js" as Database
@@ -49,14 +50,43 @@
property int fpsMode: 0
property int loop: 1
+ function addLastSeries(){
+ //const p = Database.getProp('path')
+ //const s = seriesName
+ if(debug) console.log(seriesName)
+ if(debug) console.log(Database.getProp('path'))
+
+ seriesModel.folder = Database.getProp('path')
+ seriesModel.nameFilters =[seriesName + "*.jpg"]
+
+ if(debug) console.log(seriesModel.count)
+ if(debug) console.log(seriesModel.folder)
+
+ imageListModel.clear()
+
+ for (var i = 0; i < seriesModel.count; ++i) {
+ var url = seriesModel.get(i, "fileURL")
+ if (debug) console.log(url)
+ var fileName = seriesModel.get(i, "fileName")
+ // Handle selection
+ imageListModel.append({'fileName': fileName, 'url': Qt.resolvedUrl(url)})
+ }
+
+ }
+
+
+ FolderListModel {
+ id: seriesModel
+ nameFilters: [seriesName + "*.jpg"]
+ folder: Database.getProp('path')
+ }
+
onStatusChanged: {
- if(status === PageStatus.Activating)
- {
+ if(status === PageStatus.Activating) {
// Connection to Video display from window page
cameraState.slidesShow(true)
-
- } else if(status === PageStatus.Deactivating) // Deactivating, set defaults.
- {
+ } else if(status === PageStatus.Deactivating) {
+ // Deactivating, set defaults.
}
}
@@ -163,6 +193,11 @@
}
}
MenuItem {
+ id: seriesPictures
+ text: qsTr("Add last series")
+ onClicked: addLastSeries()
+ }
+ MenuItem {
id: menuPictures
text: qsTr("Add files")
onClicked: pageStack.push(multiImagePickerDialog)
@@ -176,8 +211,6 @@
text: qsTr("Start slideshow")
enabled: imageListModel.count > 0
onClicked: {
- if (debug) console.log("Start slideshow...")
- //playSlideshowPage = pageStack.push(Qt.resolvedUrl("PlaySlideshowPage.qml"), {'imageModel': imageListModel, 'musicModel': backgroundMusicModel, 'slideshowOrderArray': getSlideshowOrder()})
playSlideshowPage = pageStack.push(Qt.resolvedUrl("PlaySlideshowPage.qml"), {'imageModel': imageListModel, 'fpsMode':fpsMode, 'slideshowOrderArray': getSlideshowOrder(), 'loop':loop})
mainWinConnections.target = playSlideshowPage
}
@@ -187,21 +220,9 @@
text: qsTr("Start canvas slideshow")
enabled: imageListModel.count > 0
onClicked: {
- if (debug) console.log("Start slideshow...")
pageStack.push(Qt.resolvedUrl("CanvasSlideshowPage.qml"), {'imageModel': imageListModel, 'fpsMode':fpsMode, 'slideshowOrderArray': getSlideshowOrder(), 'loop':loop})
}
}
- /*
- MenuItem {
- id: menuSlideviewStartSlideshow
- text: qsTr("Start sView slideshow")
- enabled: imageListModel.count > 0
- onClicked: {
- if (debug) console.log("Start slideshow...")
- pageStack.push(Qt.resolvedUrl("SlideshowViewPage.qml"), {'imageModel': imageListModel, 'fpsMode':fpsMode, 'slideshowOrderArray': getSlideshowOrder(), 'loop':loop})
- }
- }
- */
}
@@ -244,6 +265,8 @@
}
Component.onCompleted: {
value = Database.getProp('saveFps')
+ if (value < 1 )
+ value = 5
saveFps = value
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/qml/py/videox.py
^
|
@@ -639,10 +639,10 @@
#pyotherside.send('errorOccured', message )
if portrait == "1920":
- for progress in run_ffmpeg_command([ ffmpeg_staticPath, "-hide_banner", "-y", "-framerate", sFps, "-pattern_type", "glob", "-i", tempMediaFolderPath+"/*.jpg", "-vf", "transpose=1", "-c:v", "mjpeg", "-preset", "veryfast", "-r", sFps, "-pix_fmt", "yuv420p", outputPathPy ]):
+ for progress in run_ffmpeg_command([ ffmpeg_staticPath, "-hide_banner", "-y", "-framerate", sFps, "-pattern_type", "glob", "-i", tempMediaFolderPath+"/*.jpg", "-vf", "transpose=1", "-preset", "veryfast", "-r", sFps, "-pix_fmt", "yuv420p", outputPathPy ]):
pyotherside.send('progressPercentage', progress)
else:
- for progress in run_ffmpeg_command([ ffmpeg_staticPath, "-hide_banner", "-y", "-framerate", sFps, "-pattern_type", "glob", "-i", tempMediaFolderPath+"/*.jpg", "-c:v", "mjpeg", "-preset", "veryfast", "-r", sFps, "-pix_fmt", "yuv420p", outputPathPy ]):
+ for progress in run_ffmpeg_command([ ffmpeg_staticPath, "-hide_banner", "-y", "-framerate", sFps, "-pattern_type", "glob", "-i", tempMediaFolderPath+"/*.jpg", "-preset", "veryfast", "-r", sFps, "-pix_fmt", "yuv420p", outputPathPy ]):
pyotherside.send('progressPercentage', progress)
if "true" in success :
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/translations/harbour-stopmotion-de.ts
^
|
@@ -183,5 +183,9 @@
<source>Start canvas slideshow</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Add last series</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-stopmotion-0.4.4.tar.bz2/translations/harbour-stopmotion.ts
^
|
@@ -183,5 +183,9 @@
<source>Start canvas slideshow</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Add last series</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-stopmotion.changes.in
^
|
@@ -1,18 +0,0 @@
-# Rename this file as harbour-stopmotion.changes to include changelog
-# entries in your RPM file.
-#
-# Add new changelog entries following the format below.
-# Add newest entries to the top of the list.
-# Separate entries from eachother with a blank line.
-#
-# Alternatively, if your changelog is automatically generated (e.g. with
-# the git-change-log command provided with Sailfish OS SDK), create a
-# harbour-stopmotion.changes.run script to let mb2 run the required commands for you.
-
-# * date Author's Name <author's email> version-release
-# - Summary of changes
-
-* Sun Apr 13 2014 Jack Tar <jack.tar@example.com> 0.0.1-1
-- Scrubbed the deck
-- Hoisted the sails
-
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-stopmotion.changes.run.in
^
|
@@ -1,25 +0,0 @@
-#!/bin/bash
-#
-# Rename this file as harbour-stopmotion.changes.run to let mb2 automatically
-# generate changelog from well formatted Git commit messages and tag
-# annotations.
-
-git-change-log
-
-# Here are some basic examples how to change from the default behavior. Run
-# git-change-log --help inside the Sailfish OS SDK chroot or build engine to
-# learn all the options git-change-log accepts.
-
-# Use a subset of tags
-#git-change-log --tags refs/tags/my-prefix/*
-
-# Group entries by minor revision, suppress headlines for patch-level revisions
-#git-change-log --dense '/[0-9]+.[0-9+$'
-
-# Trim very old changes
-#git-change-log --since 2014-04-01
-#echo '[ Some changelog entries trimmed for brevity ]'
-
-# Use the subjects (first lines) of tag annotations when no entry would be
-# included for a revision otherwise
-#git-change-log --auto-add-annotations
|