Add additiona; media element for audio.
This commit is contained in:
parent
7e2d91a106
commit
e46e53da16
25 changed files with 319 additions and 36 deletions
|
@ -68,6 +68,7 @@ DISTFILES += qml/harbour-tooterb.qml \
|
||||||
qml/pages/components/MyList.qml \
|
qml/pages/components/MyList.qml \
|
||||||
qml/pages/components/ProfileHeader.qml \
|
qml/pages/components/ProfileHeader.qml \
|
||||||
qml/pages/components/MediaBlock.qml \
|
qml/pages/components/MediaBlock.qml \
|
||||||
|
qml/pages/components/MediaItem.qml \
|
||||||
qml/cover/CoverPage.qml \
|
qml/cover/CoverPage.qml \
|
||||||
qml/pages/MainPage.qml \
|
qml/pages/MainPage.qml \
|
||||||
qml/pages/LoginPage.qml \
|
qml/pages/LoginPage.qml \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.15.2, 2022-11-14T13:45:36. -->
|
<!-- Written by QtCreator 4.15.2, 2022-11-29T17:24:15. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
|
||||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
|
||||||
|
|
|
@ -67,6 +67,8 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
Logic.init()
|
Logic.init()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onDestruction: {
|
Component.onDestruction: {
|
||||||
|
|
|
@ -8,6 +8,7 @@ import "./components/"
|
||||||
Page {
|
Page {
|
||||||
id: conversationPage
|
id: conversationPage
|
||||||
|
|
||||||
|
property bool debug: false
|
||||||
property ListModel suggestedModel
|
property ListModel suggestedModel
|
||||||
property ListModel mdl
|
property ListModel mdl
|
||||||
property int tootMaxChar: 500
|
property int tootMaxChar: 500
|
||||||
|
@ -25,9 +26,11 @@ Page {
|
||||||
property string status_link:
|
property string status_link:
|
||||||
if (status_url === "") {
|
if (status_url === "") {
|
||||||
var test = status_uri.split("/")
|
var test = status_uri.split("/")
|
||||||
console.log(status_uri)
|
if (debug) {
|
||||||
console.log(JSON.stringify(test))
|
console.log(status_uri)
|
||||||
console.log(JSON.stringify(test.length))
|
console.log(JSON.stringify(test))
|
||||||
|
console.log(JSON.stringify(test.length))
|
||||||
|
}
|
||||||
if (test.length === 8 && (test[7] === "activity")) {
|
if (test.length === 8 && (test[7] === "activity")) {
|
||||||
var urialt = status_uri.replace("activity", "")
|
var urialt = status_uri.replace("activity", "")
|
||||||
status_link = urialt
|
status_link = urialt
|
||||||
|
@ -37,7 +40,7 @@ Page {
|
||||||
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
onSuggestedUserChanged: {
|
onSuggestedUserChanged: {
|
||||||
console.log(suggestedUser)
|
//console.log(suggestedUser)
|
||||||
suggestedModel = Qt.createQmlObject( 'import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject' )
|
suggestedModel = Qt.createQmlObject( 'import QtQuick 2.0; ListModel { }', Qt.application, 'InternalQmlObject' )
|
||||||
predictionList.visible = false
|
predictionList.visible = false
|
||||||
if (suggestedUser.length > 0) {
|
if (suggestedUser.length > 0) {
|
||||||
|
@ -67,7 +70,9 @@ Page {
|
||||||
WorkerScript {
|
WorkerScript {
|
||||||
id: worker
|
id: worker
|
||||||
source: "../lib/Worker.js"
|
source: "../lib/Worker.js"
|
||||||
onMessage: { console.log(JSON.stringify(messageObject)) }
|
onMessage: {
|
||||||
|
//console.log(JSON.stringify(messageObject))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
|
@ -98,7 +103,7 @@ Page {
|
||||||
if (mdl)
|
if (mdl)
|
||||||
for (var i = 0; i < mdl.count; i++) {
|
for (var i = 0; i < mdl.count; i++) {
|
||||||
if (mdl.get(i).status_id === status_id) {
|
if (mdl.get(i).status_id === status_id) {
|
||||||
console.log(mdl.get(i).status_id)
|
//console.log(mdl.get(i).status_id)
|
||||||
positionViewAtIndex(i, ListView.Center)
|
positionViewAtIndex(i, ListView.Center)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -266,7 +271,7 @@ Page {
|
||||||
textOperations.select(
|
textOperations.select(
|
||||||
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
|
textOperations.selectionStart ? textOperations.selectionStart - 1 : 0,
|
||||||
textOperations.selectionEnd)
|
textOperations.selectionEnd)
|
||||||
console.log(toot.text.length)
|
//console.log(toot.text.length)
|
||||||
suggestedUser = ""
|
suggestedUser = ""
|
||||||
if (textOperations.selectedText.charAt(0) === "@") {
|
if (textOperations.selectedText.charAt(0) === "@") {
|
||||||
suggestedUser = textOperations.selectedText.trim().substring(1)
|
suggestedUser = textOperations.selectedText.trim().substring(1)
|
||||||
|
@ -292,7 +297,9 @@ Page {
|
||||||
right: parent.right
|
right: parent.right
|
||||||
rightMargin: Theme.paddingSmall
|
rightMargin: Theme.paddingSmall
|
||||||
}
|
}
|
||||||
onSelectionChanged: { console.log(selection) }
|
onSelectionChanged: {
|
||||||
|
//console.log(selection)
|
||||||
|
}
|
||||||
onClicked: pageStack.push(emojiDialog)
|
onClicked: pageStack.push(emojiDialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,7 +328,7 @@ Page {
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var idx = index
|
var idx = index
|
||||||
console.log(idx)
|
//console.log(idx)
|
||||||
//mediaModel.remove(idx)
|
//mediaModel.remove(idx)
|
||||||
remorse.execute(myDelegate, "", function () {
|
remorse.execute(myDelegate, "", function () {
|
||||||
mediaModel.remove(idx)
|
mediaModel.remove(idx)
|
||||||
|
@ -381,7 +388,9 @@ Page {
|
||||||
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", { "allowedOrientations": Orientation.All })
|
var imagePicker = pageStack.push("Sailfish.Pickers.ImagePickerPage", { "allowedOrientations": Orientation.All })
|
||||||
imagePicker.selectedContentChanged.connect(function () {
|
imagePicker.selectedContentChanged.connect(function () {
|
||||||
var imagePath = imagePicker.selectedContent
|
var imagePath = imagePicker.selectedContent
|
||||||
console.log(imagePath)
|
|
||||||
|
// console.log(imagePath)
|
||||||
|
|
||||||
imageUploader.setUploadUrl(Logic.conf.instance + "/api/v1/media")
|
imageUploader.setUploadUrl(Logic.conf.instance + "/api/v1/media")
|
||||||
imageUploader.setFile(imagePath)
|
imageUploader.setFile(imagePath)
|
||||||
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token)
|
imageUploader.setAuthorizationHeader(Logic.conf.api_user_token)
|
||||||
|
@ -393,19 +402,19 @@ Page {
|
||||||
ImageUploader {
|
ImageUploader {
|
||||||
id: imageUploader
|
id: imageUploader
|
||||||
onProgressChanged: {
|
onProgressChanged: {
|
||||||
console.log("progress " + progress)
|
// console.log("progress " + progress)
|
||||||
uploadProgress.width = parent.width * progress
|
uploadProgress.width = parent.width * progress
|
||||||
}
|
}
|
||||||
onSuccess: {
|
onSuccess: {
|
||||||
uploadProgress.width = 0
|
uploadProgress.width = 0
|
||||||
console.log(replyData)
|
//console.log(replyData)
|
||||||
mediaModel.append(JSON.parse(replyData))
|
mediaModel.append(JSON.parse(replyData))
|
||||||
}
|
}
|
||||||
onFailure: {
|
onFailure: {
|
||||||
uploadProgress.width = 0
|
uploadProgress.width = 0
|
||||||
btnAddImage.enabled = true
|
btnAddImage.enabled = true
|
||||||
console.log(status)
|
//console.log(status)
|
||||||
console.log(statusText)
|
//console.log(statusText)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,7 +456,7 @@ Page {
|
||||||
var visibility = ["public", "unlisted", "private", "direct"]
|
var visibility = ["public", "unlisted", "private", "direct"]
|
||||||
var media_ids = []
|
var media_ids = []
|
||||||
for (var k = 0; k < mediaModel.count; k++) {
|
for (var k = 0; k < mediaModel.count; k++) {
|
||||||
console.log(mediaModel.get(k).id)
|
// console.log(mediaModel.get(k).id)
|
||||||
media_ids.push(mediaModel.get(k).id)
|
media_ids.push(mediaModel.get(k).id)
|
||||||
}
|
}
|
||||||
var msg = {
|
var msg = {
|
||||||
|
@ -511,7 +520,7 @@ Page {
|
||||||
privacy.currentIndex = setIndex
|
privacy.currentIndex = setIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify())
|
// console.log(JSON.stringify())
|
||||||
|
|
||||||
worker.sendMessage({
|
worker.sendMessage({
|
||||||
"action": 'statuses/' + mdl.get(0).status_id + '/context',
|
"action": 'statuses/' + mdl.get(0).status_id + '/context',
|
||||||
|
|
|
@ -290,7 +290,7 @@ Page {
|
||||||
tlSearch.search = "#"+decodeURIComponent(test[4])
|
tlSearch.search = "#"+decodeURIComponent(test[4])
|
||||||
slideshow.positionViewAtIndex(5, ListView.SnapToItem)
|
slideshow.positionViewAtIndex(5, ListView.SnapToItem)
|
||||||
navigation.navigateTo('search')
|
navigation.navigateTo('search')
|
||||||
console.log("search tag")
|
if (debug) console.log("search tag")
|
||||||
|
|
||||||
} else if (test.length === 4 && test[3][0] === "@" ) {
|
} else if (test.length === 4 && test[3][0] === "@" ) {
|
||||||
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
|
tlSearch.search = decodeURIComponent("@"+test[3].substring(1)+"@"+test[2])
|
||||||
|
|
|
@ -10,14 +10,17 @@ Item {
|
||||||
property double wRatio : 16/9
|
property double wRatio : 16/9
|
||||||
property double hRatio : 9/16
|
property double hRatio : 9/16
|
||||||
|
|
||||||
|
property bool debug: true
|
||||||
width: width
|
width: width
|
||||||
height: height
|
height: height
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
console.log("MB: " + JSON.stringify(model.get(0)))
|
||||||
if (model && model.count && model.get(0).type === "video") {
|
if (model && model.count && model.get(0).type === "video") {
|
||||||
|
//console.log("Mediablock")
|
||||||
|
//console.log(JSON.stringify(model.get(0).type))
|
||||||
while (model.count>1) {
|
while (model.count>1) {
|
||||||
model.remove(model.count-1)
|
model.remove(model.count-1)
|
||||||
}
|
}
|
||||||
//console.log(JSON.stringify(model.get(0)))
|
|
||||||
}
|
}
|
||||||
var count = 0
|
var count = 0
|
||||||
if (model && model.count)
|
if (model && model.count)
|
||||||
|
@ -89,6 +92,8 @@ Item {
|
||||||
type = model.get(0).type
|
type = model.get(0).type
|
||||||
previewURL = model.get(0).preview_url
|
previewURL = model.get(0).preview_url
|
||||||
mediaURL = model.get(0).url
|
mediaURL = model.get(0).url
|
||||||
|
url = model.get(0).url
|
||||||
|
if(debug) console.log( model.get(0).url )
|
||||||
height = Theme.itemSizeLarge
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
|
@ -108,6 +113,8 @@ Item {
|
||||||
type = model.get(1).type
|
type = model.get(1).type
|
||||||
previewURL = model.get(1).preview_url
|
previewURL = model.get(1).preview_url
|
||||||
mediaURL = model.get(1).url
|
mediaURL = model.get(1).url
|
||||||
|
url = model.get(0).url
|
||||||
|
if(debug) console.log( model.get(1).url )
|
||||||
height = Theme.itemSizeLarge
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
|
@ -127,6 +134,7 @@ Item {
|
||||||
type = model.get(2).type
|
type = model.get(2).type
|
||||||
previewURL = model.get(2).preview_url
|
previewURL = model.get(2).preview_url
|
||||||
mediaURL = model.get(2).url
|
mediaURL = model.get(2).url
|
||||||
|
url = model.get(0).url
|
||||||
height = Theme.itemSizeLarge
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
|
@ -146,6 +154,7 @@ Item {
|
||||||
type = model.get(3).type
|
type = model.get(3).type
|
||||||
previewURL = model.get(3).preview_url
|
previewURL = model.get(3).preview_url
|
||||||
mediaURL = model.get(3).url
|
mediaURL = model.get(3).url
|
||||||
|
url = model.get(0).url
|
||||||
height = Theme.itemSizeLarge
|
height = Theme.itemSizeLarge
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -9,6 +9,7 @@ FullscreenContentPage {
|
||||||
property string type: ""
|
property string type: ""
|
||||||
property string previewURL: ""
|
property string previewURL: ""
|
||||||
property string mediaURL: ""
|
property string mediaURL: ""
|
||||||
|
property string url: ""
|
||||||
|
|
||||||
allowedOrientations: Orientation.All
|
allowedOrientations: Orientation.All
|
||||||
Component.onCompleted: function() {
|
Component.onCompleted: function() {
|
||||||
|
@ -18,6 +19,13 @@ FullscreenContentPage {
|
||||||
if (type != 'gifv' && type != 'video') {
|
if (type != 'gifv' && type != 'video') {
|
||||||
imagePreview.source = mediaURL
|
imagePreview.source = mediaURL
|
||||||
imageFlickable.visible = true
|
imageFlickable.visible = true
|
||||||
|
} else if( type == 'audio'){
|
||||||
|
video.source = url
|
||||||
|
videoFlickable.visible = true
|
||||||
|
playerIcon.visible = true
|
||||||
|
playerProgress.visible = true
|
||||||
|
video.play()
|
||||||
|
hideTimer.start()
|
||||||
} else {
|
} else {
|
||||||
video.source = mediaURL
|
video.source = mediaURL
|
||||||
video.fillMode = VideoOutput.PreserveAspectFit
|
video.fillMode = VideoOutput.PreserveAspectFit
|
||||||
|
|
|
@ -7,6 +7,7 @@ import "."
|
||||||
SilicaListView {
|
SilicaListView {
|
||||||
id: myList
|
id: myList
|
||||||
|
|
||||||
|
property bool debug:false
|
||||||
property string type
|
property string type
|
||||||
property string title
|
property string title
|
||||||
property string description
|
property string description
|
||||||
|
@ -25,7 +26,7 @@ SilicaListView {
|
||||||
|
|
||||||
signal notify (string what, int num)
|
signal notify (string what, int num)
|
||||||
onNotify: {
|
onNotify: {
|
||||||
console.log(what + " - " + num)
|
if(debug) console.log(what + " - " + num)
|
||||||
}
|
}
|
||||||
signal openDrawer (bool setDrawer)
|
signal openDrawer (bool setDrawer)
|
||||||
onOpenDrawer: {
|
onOpenDrawer: {
|
||||||
|
@ -33,7 +34,7 @@ SilicaListView {
|
||||||
}
|
}
|
||||||
signal send (string notice)
|
signal send (string notice)
|
||||||
onSend: {
|
onSend: {
|
||||||
console.log("LIST send signal emitted with notice: " + notice)
|
if (debug) console.log("LIST send signal emitted with notice: " + notice)
|
||||||
}
|
}
|
||||||
|
|
||||||
header: PageHeader {
|
header: PageHeader {
|
||||||
|
@ -178,7 +179,7 @@ SilicaListView {
|
||||||
Timer {
|
Timer {
|
||||||
triggeredOnStart: false; interval: 5*60*1000; running: true; repeat: true
|
triggeredOnStart: false; interval: 5*60*1000; running: true; repeat: true
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
console.log(title + ' ' +Date().toString())
|
if(debug) console.log(title + ' ' +Date().toString())
|
||||||
loadData("prepend")
|
loadData("prepend")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,7 +205,7 @@ SilicaListView {
|
||||||
'conf' : Logic.conf
|
'conf' : Logic.conf
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify(msg))
|
if (debug) console.log(JSON.stringify(msg))
|
||||||
if (type !== "")
|
if (type !== "")
|
||||||
worker.sendMessage(msg)
|
worker.sendMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ Item {
|
||||||
property string type : ""
|
property string type : ""
|
||||||
property string previewURL: ""
|
property string previewURL: ""
|
||||||
property string mediaURL: ""
|
property string mediaURL: ""
|
||||||
|
property string url: ""
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
opacity: 0.4
|
opacity: 0.4
|
||||||
|
@ -31,13 +32,36 @@ Item {
|
||||||
source: "image://theme/icon-m-file-video?"
|
source: "image://theme/icon-m-file-video?"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
Text {
|
||||||
Image {
|
anchors{
|
||||||
|
topMargin: 10
|
||||||
|
}
|
||||||
|
id: audioUrl
|
||||||
visible: type == 'audio'
|
visible: type == 'audio'
|
||||||
//opacity: img.status === Image.Ready ? 0.0 : 1.0
|
text: "<a href='" + url + "'>" + 'Audio file' + '</a>'
|
||||||
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Image {
|
||||||
|
MediaItem {
|
||||||
|
id: audioContent
|
||||||
|
visible: type == 'audio'
|
||||||
|
opacity: img.status === Image.Ready ? 0.0 : 1.0
|
||||||
Behavior on opacity { FadeAnimator {} }
|
Behavior on opacity { FadeAnimator {} }
|
||||||
source: "image://theme/icon-m-file-audio?"
|
mimeType: 'audio/mp3'
|
||||||
|
url: url
|
||||||
|
//source: "image://theme/icon-m-file-audio?"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
/*MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
pageStack.push(Qt.resolvedUrl("./MediaFullScreen.qml"), {
|
||||||
|
"url": url,
|
||||||
|
"type": type
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -109,5 +133,19 @@ Item {
|
||||||
onClicked: parent.visible = false
|
onClicked: parent.visible = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
IconButton {
|
||||||
|
id: mediaDlBtn
|
||||||
|
icon.source: "image://theme/icon-m-cloud-download"
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: Theme.horizontalPageMargin
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: Theme.horizontalPageMargin
|
||||||
|
}
|
||||||
|
onClicked: {
|
||||||
|
var filename = url.split("/")
|
||||||
|
FileDownloader.downloadFile(url, filename[filename.length-1])
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import "../../lib/API.js" as Logic
|
||||||
BackgroundItem {
|
BackgroundItem {
|
||||||
id: delegate
|
id: delegate
|
||||||
|
|
||||||
|
property bool debug:false
|
||||||
|
|
||||||
signal send (string notice)
|
signal send (string notice)
|
||||||
signal navigateTo(string link)
|
signal navigateTo(string link)
|
||||||
|
|
||||||
|
@ -195,9 +197,11 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
onLinkActivated: {
|
onLinkActivated: {
|
||||||
var test = link.split("/")
|
var test = link.split("/")
|
||||||
console.log(link)
|
if (debug) {
|
||||||
console.log(JSON.stringify(test))
|
console.log(link)
|
||||||
console.log(JSON.stringify(test.length))
|
console.log(JSON.stringify(test))
|
||||||
|
console.log(JSON.stringify(test.length))
|
||||||
|
}
|
||||||
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
|
if (test.length === 5 && (test[3] === "tags" || test[3] === "tag") ) {
|
||||||
pageStack.pop(pageStack.find(function(page) {
|
pageStack.pop(pageStack.find(function(page) {
|
||||||
var check = page.isFirstPage === true;
|
var check = page.isFirstPage === true;
|
||||||
|
@ -447,11 +451,11 @@ BackgroundItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
onPressAndHold: {
|
onPressAndHold: {
|
||||||
console.log(JSON.stringify(mdl.get(index)))
|
if (debug) console.log(JSON.stringify(mdl.get(index)))
|
||||||
mnu.open(delegate)
|
mnu.open(delegate)
|
||||||
}
|
}
|
||||||
|
|
||||||
onDoubleClicked: {
|
onDoubleClicked: {
|
||||||
console.log("double click")
|
if (debug) console.log("double click")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ Name: harbour-tooterb
|
||||||
%{?qtc_builddir:%define _builddir %qtc_builddir}
|
%{?qtc_builddir:%define _builddir %qtc_builddir}
|
||||||
Summary: Tooter β
|
Summary: Tooter β
|
||||||
Version: 1.0.9
|
Version: 1.0.9
|
||||||
Release: 1
|
Release: 2
|
||||||
Group: Qt/Qt
|
Group: Qt/Qt
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
URL: https://github.com/poetaster/harbour-tooter#readme
|
URL: https://github.com/poetaster/harbour-tooter#readme
|
||||||
|
@ -43,10 +43,11 @@ Categories:
|
||||||
- Network
|
- Network
|
||||||
PackagerName: Mark Washeim (poetaster)
|
PackagerName: Mark Washeim (poetaster)
|
||||||
Custom:
|
Custom:
|
||||||
- Repo: https://github.com/poetaster/harbour-tooter
|
- Repo: https://github.com/molan-git/harbour-tooter
|
||||||
|
- PackagingRepo: https://github.com/poetaster/harbour-tooter
|
||||||
Icon: https://raw.githubusercontent.com/poetaster/harbour-tooter/master/icons/256x256/harbour-tooterb.png
|
Icon: https://raw.githubusercontent.com/poetaster/harbour-tooter/master/icons/256x256/harbour-tooterb.png
|
||||||
Url:
|
Url:
|
||||||
Homepage: https://github.com/poetaster/harbour-tooter
|
- Bugtracker: https://github.com/poetaster/harbour-tooter/issues
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Ladefehler</translation>
|
<translation>Ladefehler</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Error al cargar</translation>
|
<translation>Error al cargar</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Erreur au chargement</translation>
|
<translation>Erreur au chargement</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Errore durante caricamento</translation>
|
<translation>Errore durante caricamento</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Laadfout</translation>
|
<translation>Laadfout</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Ошибка при загрузке</translation>
|
<translation>Ошибка при загрузке</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Fel vid inläsning</translation>
|
<translation>Fel vid inläsning</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>加载错误</translation>
|
<translation>加载错误</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -161,6 +161,21 @@
|
||||||
<translation>Error loading</translation>
|
<translation>Error loading</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MediaItem</name>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Video</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PDF document</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MiniStatus</name>
|
<name>MiniStatus</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
Loading…
Reference in a new issue