repair video playback
This commit is contained in:
parent
b59513ab91
commit
0dc0ce7f35
|
@ -13,7 +13,7 @@ if(CMAKE_VERSION VERSION_LESS "3.7.0")
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core Widgets Quick QuickControls2 Sql DBus NetworkAuth Multimedia REQUIRED)
|
find_package(Qt6 REQUIRED COMPONENTS Core Quick QuickControls2 Widgets Sql DBus NetworkAuth Multimedia REQUIRED)
|
||||||
|
|
||||||
qt_standard_project_setup()
|
qt_standard_project_setup()
|
||||||
|
|
||||||
|
|
|
@ -355,7 +355,7 @@ void XHR::onReplyError(QNetworkReply::NetworkError code)
|
||||||
void XHR::onReplySuccess()
|
void XHR::onReplySuccess()
|
||||||
{
|
{
|
||||||
qDebug() << "!";
|
qDebug() << "!";
|
||||||
QHashIterator<QString, QString> i(params);
|
//QHashIterator<QString, QString> i(params);
|
||||||
// while(i.hasNext()) {
|
// while(i.hasNext()) {
|
||||||
// i.next();
|
// i.next();
|
||||||
// //qDebug() << i.key()<< " " << i.value();
|
// //qDebug() << i.key()<< " " << i.value();
|
||||||
|
|
|
@ -41,40 +41,42 @@ function requestFriends(login,database,rootwindow,callback){
|
||||||
var result2 = tx.executeSql('DELETE from groups where username="'+login.username+'"'); // clean old groups
|
var result2 = tx.executeSql('DELETE from groups where username="'+login.username+'"'); // clean old groups
|
||||||
})
|
})
|
||||||
// /api/statuses/friends not working in Friendica 2/2022 , switching to api/v1/lists and download of all list members
|
// /api/statuses/friends not working in Friendica 2/2022 , switching to api/v1/lists and download of all list members
|
||||||
// Helperjs.friendicaRequest(login,"/api/statuses/friends?count=9999", rootwindow,function (obj){
|
Helperjs.friendicaRequest(login,"/api/statuses/friends?count=9999", rootwindow,function (obj){
|
||||||
var allfriends=[];
|
//var allfriends=[];
|
||||||
Helperjs.friendicaRequest(login,"/api/v1/lists",rootwindow,function(listsobj){
|
//Helperjs.friendicaRequest(login,"/api/v1/lists",rootwindow,function(listsobj){
|
||||||
var lists=JSON.parse(listsobj)
|
// var lists=JSON.parse(listsobj)
|
||||||
for (var list in lists){
|
// for (var list in lists){
|
||||||
Helperjs.friendicaRequest(login,"/api/v1/lists/"+lists[list].id+"/accounts?limit=0", rootwindow,function (obj){
|
// Helperjs.friendicaRequest(login,"/api/v1/lists/"+lists[list].id+"/accounts?limit=0", rootwindow,function (obj){
|
||||||
var friends=JSON.parse(obj);
|
let friendsobj=JSON.parse(obj);
|
||||||
var memberarray=[];
|
let friends=friendsobj.users;
|
||||||
|
//var memberarray=[];
|
||||||
for (var i=0;i<friends.length;i++){
|
for (var i=0;i<friends.length;i++){
|
||||||
if (friends[i].note!=null){
|
// if (friends[i].note!=null){
|
||||||
friends[i].description=friends[i].note;}
|
// friends[i].description=friends[i].note;}
|
||||||
else{friends[i].description=""}
|
// else{friends[i].description=""}
|
||||||
friends[i].name=friends[i].display_name;
|
// friends[i].name=friends[i].display_name;
|
||||||
friends[i].screen_name=friends[i].acct;
|
// friends[i].screen_name=friends[i].acct;
|
||||||
friends[i].location="";
|
// friends[i].location="";
|
||||||
friends[i].profile_image=friends[i].avatar_static;
|
// friends[i].profile_image=friends[i].avatar_static;
|
||||||
friends[i].profile_image_url=friends[i].avatar;
|
// friends[i].profile_image_url=friends[i].avatar;
|
||||||
friends[i].protected=false;
|
// friends[i].protected=false;
|
||||||
friends[i].friends_count=friends[i].following_count;
|
// friends[i].friends_count=friends[i].following_count;
|
||||||
friends[i].created_at=Date.parse(friends[i].created_at);
|
friends[i].created_at=Date.parse(cleanDate(friends[i].created_at));
|
||||||
friends[i].favorites_count=0;
|
// friends[i].favorites_count=0;
|
||||||
friends[i].utc_offset=0;
|
// friends[i].utc_offset=0;
|
||||||
friends[i].isFriend=1
|
friends[i].isFriend=1
|
||||||
friends[i].cid=0
|
// friends[i].cid=0
|
||||||
friends[i].following=true
|
// friends[i].following=true
|
||||||
memberarray.push(parseInt(friends[i].id))
|
//memberarray.push(parseInt(friends[i].id))
|
||||||
}
|
}
|
||||||
//requestGroups() not working with Friendica 02/2022
|
//requestGroups() not working with Friendica 02/2022
|
||||||
db.transaction( function(tx) {
|
// db.transaction( function(tx) {
|
||||||
var result3 = tx.executeSql('INSERT INTO groups VALUES (?,?,?,?)', [login.username,lists[list].title,lists[list].id,JSON.stringify(memberarray)])
|
// var result3 = tx.executeSql('INSERT INTO groups VALUES (?,?,?,?)', [login.username,lists[list].title,lists[list].id,JSON.stringify(memberarray)])
|
||||||
})
|
// })
|
||||||
callback(friends)
|
callback(friends)
|
||||||
})};
|
})
|
||||||
});
|
//};
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -548,7 +548,7 @@ function showGroups(){
|
||||||
Helperjs.readData(db,"groups",login.username,function(groups){
|
Helperjs.readData(db,"groups",login.username,function(groups){
|
||||||
var groupitems="";
|
var groupitems="";
|
||||||
for (var i=0;i<groups.length;i++){
|
for (var i=0;i<groups.length;i++){
|
||||||
groupitems=groupitems+"MenuItem{text:'"+groups[i].groupname+"'; onTriggered: {print('getGroupnews');Service.getGroupnews("+groups[i].gid+")}}"
|
groupitems=groupitems+"MenuItem{text:'"+groups[i].groupname+"'; onTriggered: {Service.getGroupnews("+groups[i].gid+")}}"
|
||||||
}
|
}
|
||||||
var menuString="import QtQuick.Controls 6.3; import 'qrc:/js/service.js' as Service; Menu {"+groupitems+"}";
|
var menuString="import QtQuick.Controls 6.3; import 'qrc:/js/service.js' as Service; Menu {"+groupitems+"}";
|
||||||
var grouplistObject=Qt.createQmlObject(menuString,newstabitem,"groupmenuOutput");
|
var grouplistObject=Qt.createQmlObject(menuString,newstabitem,"groupmenuOutput");
|
||||||
|
@ -564,7 +564,7 @@ function setBackgroundsync(){
|
||||||
},"k","lastsync")
|
},"k","lastsync")
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGroupnews(list){print("Liste "+list);
|
function getGroupnews(list){
|
||||||
newstab.newstabstatus="Group news";
|
newstab.newstabstatus="Group news";
|
||||||
newsBusy.running=true;
|
newsBusy.running=true;
|
||||||
xhr.setAccount(login);
|
xhr.setAccount(login);
|
||||||
|
|
|
@ -102,7 +102,7 @@ Rectangle{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked:{print (JSON.stringify(event))
|
onClicked:{
|
||||||
if (status==""){
|
if (status==""){
|
||||||
rootstackView.push("qrc:/qml/calendarqml/EventList.qml",{"dayint": event.startday, "events":[event]});
|
rootstackView.push("qrc:/qml/calendarqml/EventList.qml",{"dayint": event.startday, "events":[event]});
|
||||||
} else {rootstackView.pop()}
|
} else {rootstackView.pop()}
|
||||||
|
|
|
@ -62,7 +62,7 @@ Page{
|
||||||
Helperjs.friendicaRequest(userconfig,"/api/v1/accounts/verify_credentials",root,function(obj){
|
Helperjs.friendicaRequest(userconfig,"/api/v1/accounts/verify_credentials",root,function(obj){
|
||||||
accountBusy.running=false;
|
accountBusy.running=false;
|
||||||
try{var credentials=JSON.parse(obj);
|
try{var credentials=JSON.parse(obj);
|
||||||
if (credentials.hasOwnProperty('error')){print("error "+credentials.error);
|
if (credentials.hasOwnProperty('error')){
|
||||||
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password or 2FA enabled!"),root)
|
Helperjs.showMessage(qsTr("Error"),qsTr("Wrong password or 2FA enabled!"),root)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -479,13 +479,13 @@ Page{
|
||||||
function onSuccess(text,api){
|
function onSuccess(text,api){
|
||||||
if(api=="/api/v1/instance/rules"){
|
if(api=="/api/v1/instance/rules"){
|
||||||
let rulestext="";
|
let rulestext="";
|
||||||
let rulesarray=JSON.parse(text)
|
try{let rulesarray=JSON.parse(text)
|
||||||
for (let rule in rulesarray){
|
for (let rule in rulesarray){
|
||||||
rulestext=rulestext+rulesarray[rule].text+"\n"
|
rulestext=rulestext+rulesarray[rule].text+"\n"
|
||||||
}
|
}
|
||||||
var component = Qt.createComponent("qrc:/qml/configqml/AcceptRules.qml");
|
var component = Qt.createComponent("qrc:/qml/configqml/AcceptRules.qml");
|
||||||
var rulesdialog = component.createObject(accountPage,{"rules": rulestext});
|
var rulesdialog = component.createObject(accountPage,{"rules": rulestext});
|
||||||
rulesdialog.open();
|
rulesdialog.open();}catch(e){print("/api/v1/instance/rules" +e)}
|
||||||
}
|
}
|
||||||
else if(api=="/api/statusnet/config"){
|
else if(api=="/api/statusnet/config"){
|
||||||
try{let serverdata = JSON.parse(text);
|
try{let serverdata = JSON.parse(text);
|
||||||
|
@ -505,9 +505,6 @@ Page{
|
||||||
oauth2.grant();
|
oauth2.grant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function onError(text,api){
|
|
||||||
print(api + " Error "+ text)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections{
|
Connections{
|
||||||
|
@ -588,7 +585,7 @@ Page{
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
Component.onCompleted: { //print("filesystem.osType " +filesystem.osType)
|
Component.onCompleted: {
|
||||||
try{Helperjs.readData(db,"config","",function(storedUsers){
|
try{Helperjs.readData(db,"config","",function(storedUsers){
|
||||||
storedUsers.sort(function(obj1, obj2) {
|
storedUsers.sort(function(obj1, obj2) {
|
||||||
return obj1.isActive - obj2.isActive;
|
return obj1.isActive - obj2.isActive;
|
||||||
|
@ -615,7 +612,6 @@ Page{
|
||||||
|
|
||||||
},"isActive",0)
|
},"isActive",0)
|
||||||
})}
|
})}
|
||||||
catch (e){//print("onCompleted" +users.count +e)
|
catch (e){print(e)}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,6 @@ import "qrc:/qml/genericqml"
|
||||||
Rectangle {
|
Rectangle {
|
||||||
y:1
|
y:1
|
||||||
color: osSettings.backgroundColor
|
color: osSettings.backgroundColor
|
||||||
|
|
||||||
function showContactdetails(contact){
|
function showContactdetails(contact){
|
||||||
root.contactdetailsSignal(contact)
|
root.contactdetailsSignal(contact)
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ Item{
|
||||||
|
|
||||||
Connections{
|
Connections{
|
||||||
target:xhr
|
target:xhr
|
||||||
function onError(data,url,api,code){print(data)}//if (data=="image"){Helperjs.showMessage()}}
|
//function onError(data,url,api,code){print(data)}
|
||||||
function onSuccess(data,api){
|
function onSuccess(data,api){
|
||||||
if(api.startsWith("/api/friendica/group")){
|
if(api.startsWith("/api/friendica/group")){
|
||||||
Newsjs.requestGroups(root.login,root.db,root,function(){
|
Newsjs.requestGroups(root.login,root.db,root,function(){
|
||||||
|
|
|
@ -92,7 +92,7 @@ ApplicationWindow{
|
||||||
if(newContacts.length>0){// download contact images and update db
|
if(newContacts.length>0){// download contact images and update db
|
||||||
var contacturls=[];
|
var contacturls=[];
|
||||||
var contactnames=[];
|
var contactnames=[];
|
||||||
for (var link in newContacts){//print("new contact " +newContacts[link].screen_name);
|
for (var link in newContacts){
|
||||||
contacturls.push(newContacts[link].profile_image_url);
|
contacturls.push(newContacts[link].profile_image_url);
|
||||||
contactnames.push(newContacts[link].screen_name);
|
contactnames.push(newContacts[link].screen_name);
|
||||||
Service.updateContactInDB(login,db,newContacts[link].isFriend,newContacts[link])
|
Service.updateContactInDB(login,db,newContacts[link].isFriend,newContacts[link])
|
||||||
|
@ -311,7 +311,7 @@ ApplicationWindow{
|
||||||
systemTray.visible=true
|
systemTray.visible=true
|
||||||
systemTray.show();
|
systemTray.show();
|
||||||
}
|
}
|
||||||
|
root.contactdetailsSignal.connect(showContact);
|
||||||
if(osSettings.osType=="Android"){
|
if(osSettings.osType=="Android"){
|
||||||
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
var component = Qt.createComponent("qrc:/qml/genericqml/IntentReceiver.qml");
|
||||||
var IntentReceiverQml = component.createObject(root);
|
var IntentReceiverQml = component.createObject(root);
|
||||||
|
|
|
@ -181,8 +181,6 @@ Page {
|
||||||
|
|
||||||
MButton{
|
MButton{
|
||||||
id:dmbutton
|
id:dmbutton
|
||||||
// height: 6*mm
|
|
||||||
// width: 8*mm
|
|
||||||
visible: (contact.following=="true")
|
visible: (contact.following=="true")
|
||||||
text: qsTr("Direct Message")
|
text: qsTr("Direct Message")
|
||||||
display: AbstractButton.IconOnly
|
display: AbstractButton.IconOnly
|
||||||
|
@ -211,7 +209,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id:approvebutton
|
id:approvebutton
|
||||||
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Approve")
|
text:qsTr("Approve")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
xhr.setAccount(login);
|
xhr.setAccount(login);
|
||||||
|
@ -225,7 +223,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id:rejectbutton
|
id:rejectbutton
|
||||||
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Reject")
|
text:qsTr("Reject")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
xhr.setAccount(login);
|
xhr.setAccount(login);
|
||||||
|
@ -239,7 +237,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id:ignorebutton
|
id:ignorebutton
|
||||||
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
visible:(contact.hasOwnProperty("acct")&&!contact.searchContact)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Ignore")
|
text:qsTr("Ignore")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
xhr.setAccount(login);
|
xhr.setAccount(login);
|
||||||
|
@ -253,7 +251,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id:followbutton
|
id:followbutton
|
||||||
visible:(contact.isFriend==0 || !contact.hasOwnProperty("isFriend"))
|
visible:(contact.isFriend==0 || !contact.hasOwnProperty("isFriend"))
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Follow")
|
text:qsTr("Follow")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
contactBusy.running=true;
|
contactBusy.running=true;
|
||||||
|
@ -269,7 +267,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id:unfollowbutton
|
id:unfollowbutton
|
||||||
visible:(contact.isFriend==1)
|
visible:(contact.isFriend==1)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Unfollow")
|
text:qsTr("Unfollow")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
contactBusy.running=true;
|
contactBusy.running=true;
|
||||||
|
@ -284,7 +282,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id: blockbutton
|
id: blockbutton
|
||||||
visible:(contact.statusnet_blocking!=1)
|
visible:(contact.statusnet_blocking!=1)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Block")
|
text:qsTr("Block")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
contactBusy.running=true;
|
contactBusy.running=true;
|
||||||
|
@ -300,7 +298,7 @@ Page {
|
||||||
MButton{
|
MButton{
|
||||||
id: unblockbutton
|
id: unblockbutton
|
||||||
visible:(contact.statusnet_blocking==1)
|
visible:(contact.statusnet_blocking==1)
|
||||||
//height: 6*mm
|
width: implicitWidth
|
||||||
text:qsTr("Unblock")
|
text:qsTr("Unblock")
|
||||||
onClicked:{
|
onClicked:{
|
||||||
contactBusy.running=true;
|
contactBusy.running=true;
|
||||||
|
@ -358,12 +356,10 @@ Page {
|
||||||
}
|
}
|
||||||
function onSuccess(data,api){
|
function onSuccess(data,api){
|
||||||
if (api=="/api/statuses/user_timeline"){
|
if (api=="/api/statuses/user_timeline"){
|
||||||
|
if (data!=""){
|
||||||
Service.processNews(api,data)
|
Service.processNews(api,data)
|
||||||
|
}else{contactBusy.running=false}
|
||||||
}
|
}
|
||||||
else if (api=="/api/statuses/user_timeline"){
|
|
||||||
Service.processNews(api,data)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -292,11 +292,11 @@ Window{
|
||||||
enabled: bodyField.canPaste
|
enabled: bodyField.canPaste
|
||||||
action: pasteAction
|
action: pasteAction
|
||||||
}
|
}
|
||||||
MenuItem {
|
// MenuItem {
|
||||||
text: qsTr("Text")
|
// text: qsTr("Text")
|
||||||
enabled: bodyField.selectedText
|
// enabled: bodyField.selectedText
|
||||||
onTriggered: print(bodyField.getFormattedText(bodyField.selectionStart,bodyField.selectionEnd))
|
// onTriggered: print(bodyField.getFormattedText(bodyField.selectionStart,bodyField.selectionEnd))
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
DocumentHandler { id: document
|
DocumentHandler { id: document
|
||||||
document: bodyField.textDocument
|
document: bodyField.textDocument
|
||||||
|
|
|
@ -266,7 +266,7 @@ Rectangle{
|
||||||
|
|
||||||
Connections{
|
Connections{
|
||||||
target:xhr
|
target:xhr
|
||||||
function onError(data,url,api,code){print("api "+api+" code "+code+"data"+data)
|
function onError(data,url,api,code){print("api "+api+" code "+code)
|
||||||
newsBusy.running=false;
|
newsBusy.running=false;
|
||||||
expectScreenUpdate=false;
|
expectScreenUpdate=false;
|
||||||
}
|
}
|
||||||
|
@ -314,7 +314,7 @@ Rectangle{
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {id:replytimer; interval: 1000; running: false; repeat: false
|
Timer {id:replytimer; interval: 1000; running: false; repeat: false
|
||||||
onTriggered: {print("replytimer")
|
onTriggered: {//print("replytimer")
|
||||||
newsBusy.running=true;
|
newsBusy.running=true;
|
||||||
if(newstab.newstabstatus=="Conversation"){
|
if(newstab.newstabstatus=="Conversation"){
|
||||||
showConversation(newsStack.timelineIndex-1,newsModel.get(0).newsitemobject)}
|
showConversation(newsStack.timelineIndex-1,newsModel.get(0).newsitemobject)}
|
||||||
|
@ -556,7 +556,6 @@ Rectangle{
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
root.contactdetailsSignal.connect(showContact);
|
|
||||||
root.newsSignal.connect(showNews);
|
root.newsSignal.connect(showNews);
|
||||||
root.searchSignal.connect(search);
|
root.searchSignal.connect(search);
|
||||||
try{newsModel.clear()} catch(e){}
|
try{newsModel.clear()} catch(e){}
|
||||||
|
|
|
@ -32,24 +32,14 @@
|
||||||
import QtQuick 6.3
|
import QtQuick 6.3
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
color:"grey"
|
color:"light grey"
|
||||||
width:toprow.width/2;
|
width: 7*root.fontFactor*osSettings.bigFontSize
|
||||||
height:toprow.width/3
|
height: 7*root.fontFactor*osSettings.bigFontSize
|
||||||
property var attachment:({})
|
property var attachment:({})
|
||||||
Image{
|
Image{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: "qrc:/assets/icons/play.svg"
|
source: "qrc:/assets/icons/play.svg"
|
||||||
}
|
}
|
||||||
// Text{
|
|
||||||
// id:noticeText
|
|
||||||
// text:"\uf144";
|
|
||||||
// color:"light grey"
|
|
||||||
// width:parent.width
|
|
||||||
// font.pixelSize: parent.height/2
|
|
||||||
// x: (parent.width-contentWidth)/2
|
|
||||||
// y:parent.height/5
|
|
||||||
// }
|
|
||||||
|
|
||||||
MouseArea {anchors.fill:parent;
|
MouseArea {anchors.fill:parent;
|
||||||
onClicked:{
|
onClicked:{
|
||||||
rootstackView.push("qrc:/qml/newsqml/NewsVideoLarge.qml",{"source": Qt.resolvedUrl(attachment.url),"mimetype": attachment.mimetype});
|
rootstackView.push("qrc:/qml/newsqml/NewsVideoLarge.qml",{"source": Qt.resolvedUrl(attachment.url),"mimetype": attachment.mimetype});
|
||||||
|
|
|
@ -38,8 +38,14 @@ Page{
|
||||||
id:newsvideofullscreen
|
id:newsvideofullscreen
|
||||||
width:root.width;
|
width:root.width;
|
||||||
height:root.height-3*root.fontFactor*osSettings.bigFontSize
|
height:root.height-3*root.fontFactor*osSettings.bigFontSize
|
||||||
property alias source:video.source
|
property alias source: video.source
|
||||||
property string mimetype:""
|
property string mimetype:""
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
anchors.fill: newsvideofullscreen
|
||||||
|
color: "black"
|
||||||
|
}
|
||||||
|
|
||||||
Text{
|
Text{
|
||||||
id:noticeText
|
id:noticeText
|
||||||
text:""
|
text:""
|
||||||
|
@ -52,49 +58,70 @@ Page{
|
||||||
visible: video.playbackState!=MediaPlayer.PlayingState
|
visible: video.playbackState!=MediaPlayer.PlayingState
|
||||||
}
|
}
|
||||||
|
|
||||||
Video {
|
MediaPlayer {
|
||||||
id:video;
|
id: video
|
||||||
anchors.fill:parent
|
audioOutput: AudioOutput {}
|
||||||
|
videoOutput: videoOutput
|
||||||
onErrorChanged:{
|
Component.onCompleted: {play()}
|
||||||
noticeText.font.pointSize=osSettings.bigFontSize;
|
onErrorChanged: {noticeText.text=errorString;Qt.openUrlExternally(source)}
|
||||||
noticeText.text=errorString;
|
|
||||||
Qt.openUrlExternally(source)
|
|
||||||
}
|
|
||||||
fillMode: Image.PreserveAspectFit;
|
|
||||||
// autoLoad: true
|
|
||||||
// autoPlay: true
|
|
||||||
// audioRole: MediaPlayer.VideoRole
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ProgressBar{
|
VideoOutput {
|
||||||
id: videoProgress
|
id: videoOutput
|
||||||
width: parent.width
|
anchors.fill: parent
|
||||||
height: 2*mm
|
|
||||||
anchors.bottom: video.bottom
|
|
||||||
z:2
|
|
||||||
visible:video.playbackState!=MediaPlayer.StoppedState
|
|
||||||
value: video.position/video.duration
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill:parent;
|
anchors.fill:parent;
|
||||||
onClicked:{
|
onClicked:{
|
||||||
if(video.playbackState!=MediaPlayer.PlayingState){
|
if(video.playbackState!=MediaPlayer.PlayingState){
|
||||||
video.play()} else{video.pause()
|
video.play()} else{video.pause()
|
||||||
}
|
}
|
||||||
|
if(Math.round(video.position/video.duration*1000) == 1000){
|
||||||
|
video.position=0;video.play()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
color:"light grey"
|
||||||
|
visible: video.playbackState!=MediaPlayer.PlayingState || (Math.round(video.position/video.duration*1000) == 1000)
|
||||||
|
opacity: 0.5
|
||||||
|
anchors.centerIn: videoOutput
|
||||||
|
width: 5*root.fontFactor*osSettings.bigFontSize
|
||||||
|
height: 5*root.fontFactor*osSettings.bigFontSize
|
||||||
|
Image{
|
||||||
|
anchors.fill: parent
|
||||||
|
source: "qrc:/assets/icons/play.svg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
ProgressBar{
|
ProgressBar{
|
||||||
id: videoBuffer
|
id: videoBuffer
|
||||||
width: parent.width
|
width: parent.width-4*mm
|
||||||
height: 2*mm
|
x: 2*mm
|
||||||
anchors.bottom: video.bottom
|
height: mm
|
||||||
visible:video.playbackState!=MediaPlayer.StoppedState
|
contentItem: Item {
|
||||||
|
Rectangle {
|
||||||
|
width: videoBuffer.visualPosition * parent.width
|
||||||
|
height: parent.height
|
||||||
|
color: "light blue"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
value: video.bufferProgress
|
value: video.bufferProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Slider{
|
||||||
|
id: videoSlider
|
||||||
|
x: 2*mm
|
||||||
|
width: parent.width-4*mm
|
||||||
|
height: 2*mm
|
||||||
|
z: 2
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
visible:video.playbackState!=MediaPlayer.StoppedState && video.seekable
|
||||||
|
value: video.position/video.duration
|
||||||
|
onMoved: video.position=value*video.duration
|
||||||
|
}
|
||||||
|
|
||||||
MButton {
|
MButton {
|
||||||
id: closeButton
|
id: closeButton
|
||||||
z:2
|
z:2
|
||||||
|
@ -102,6 +129,7 @@ Page{
|
||||||
anchors.topMargin: 1*mm
|
anchors.topMargin: 1*mm
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 1*mm
|
anchors.rightMargin: 1*mm
|
||||||
|
opacity: 0.6
|
||||||
text: qsTr("Close")
|
text: qsTr("Close")
|
||||||
display: AbstractButton.IconOnly
|
display: AbstractButton.IconOnly
|
||||||
icon.name: "dialog-close"
|
icon.name: "dialog-close"
|
||||||
|
@ -109,15 +137,4 @@ Page{
|
||||||
onClicked: {if (rootstackView.depth>1){ rootstackView.pop()}
|
onClicked: {if (rootstackView.depth>1){ rootstackView.pop()}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Slider{
|
|
||||||
id: videoSlider
|
|
||||||
width: parent.width
|
|
||||||
height: 3*mm
|
|
||||||
anchors.top: video.bottom
|
|
||||||
visible:video.playbackState!=MediaPlayer.StoppedState && video.seekable
|
|
||||||
value: video.position/video.duration
|
|
||||||
onMoved: video.seek(value*video.duration)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,8 +73,8 @@ Item {
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id:toprow
|
id:toprow
|
||||||
width: newsitemobject.hasOwnProperty("indent")?newsitem.width-(newsitem.width/20 *(newsitemobject.indent+1)):newsitem.width//-8*mm
|
width: newsitemobject.hasOwnProperty("indent")?newsitem.width-(newsitem.width/20 *(newsitemobject.indent+1))-mm:newsitem.width-mm
|
||||||
x:newsitemobject.hasOwnProperty("indent")?newsitem.width/20*(newsitemobject.indent):0
|
x:newsitemobject.hasOwnProperty("indent")?newsitem.width/20*(newsitemobject.indent)+0.5*mm:0.5*mm
|
||||||
height: newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
height: newsitemobject.nsfw?5*mm:Math.min(implicitHeight,3/4*root.height)
|
||||||
clip: true
|
clip: true
|
||||||
Item{id:itemHeader
|
Item{id:itemHeader
|
||||||
|
@ -190,19 +190,11 @@ Item {
|
||||||
height:5*mm
|
height:5*mm
|
||||||
anchors.bottom: toprow.bottom
|
anchors.bottom: toprow.bottom
|
||||||
visible: toprow.implicitHeight>3/4*root.height || newsitemobject.nsfw
|
visible: toprow.implicitHeight>3/4*root.height || newsitemobject.nsfw
|
||||||
//text:"\uf078"
|
|
||||||
// fontColor: osSettings.secondaryTextColor
|
|
||||||
// border.color: "transparent"
|
|
||||||
// color: osSettings.backgroundColor
|
|
||||||
// gradient: Gradient {
|
|
||||||
// GradientStop { position: 0.0; color: "transparent" }
|
|
||||||
// GradientStop { position: 0.5; color: osSettings.backgroundDimColor}
|
|
||||||
// }
|
|
||||||
//radius:0
|
|
||||||
icon.name:"arrow-down"
|
icon.name:"arrow-down"
|
||||||
icon.source: "qrc:/assets/icons/chevron-down.svg"
|
icon.source: "qrc:/assets/icons/chevron-down.svg"
|
||||||
icon.width: 2*root.fontFactor*osSettings.bigFontSize
|
icon.width: 2*root.fontFactor*osSettings.bigFontSize
|
||||||
icon.height: 2*root.fontFactor*osSettings.bigFontSize
|
icon.height: 2*root.fontFactor*osSettings.bigFontSize
|
||||||
|
icon.color:"transparent"
|
||||||
background: Rectangle{
|
background: Rectangle{
|
||||||
gradient: Gradient {
|
gradient: Gradient {
|
||||||
GradientStop { position: 0.0; color: "transparent" }
|
GradientStop { position: 0.0; color: "transparent" }
|
||||||
|
@ -216,7 +208,7 @@ Item {
|
||||||
} else {
|
} else {
|
||||||
toprow.height=Math.min(toprow.implicitHeight,3/4*root.height);
|
toprow.height=Math.min(toprow.implicitHeight,3/4*root.height);
|
||||||
icon.name="arrow-down";icon.source="qrc:/assets/icons/chevron-down.svg";
|
icon.name="arrow-down";icon.source="qrc:/assets/icons/chevron-down.svg";
|
||||||
newsView.positionViewAtIndex(index,ListView.Beginning);
|
newsitem.ListView.view.positionViewAtIndex(index,ListView.Beginning);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,6 @@ Package {
|
||||||
enabled: false
|
enabled: false
|
||||||
}
|
}
|
||||||
|
|
||||||
// onStateChanged: print("State"+photoWrapper.state+index)
|
|
||||||
states: [
|
states: [
|
||||||
State {
|
State {
|
||||||
name: 'stacked'; when: albumWrapper.state == ''
|
name: 'stacked'; when: albumWrapper.state == ''
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue