2017-01-26 21:55:31 +01:00
import QtQuick 2.0
import QtQuick . Controls 1.3
import QtQml . Models 2.1
import "qrc:/js/service.js" as Service
import "qrc:/js/helper.js" as Helperjs
Package {
Item {
Package.name: 'browser'
GridView {
2017-03-25 23:36:14 +01:00
id: photosGridView ; model: visualModel . parts . grid ; width: albumgridview . width ; height: albumgridview . height ; y: albumgridview . y
cellWidth: 16.5 * mm ; cellHeight: 16.5 * mm ; interactive: false //anchors.margins:2*mm
2017-01-26 21:55:31 +01:00
onCurrentIndexChanged: photosListView . positionViewAtIndex ( currentIndex , ListView . Contain )
}
}
Item {
Package.name: 'fullscreen'
ListView {
id: photosListView ; model: visualModel . parts . list ; orientation: Qt . Horizontal
2017-03-25 23:36:14 +01:00
width: albumgridview . width ; height: albumgridview . height ; //y:albumgridview.y
//width: parent.width; height: parent.height;
interactive: false
2017-01-26 21:55:31 +01:00
onCurrentIndexChanged: photosGridView . positionViewAtIndex ( currentIndex , GridView . Contain )
highlightRangeMode: ListView . StrictlyEnforceRange ; snapMode: ListView . SnapOneItem
}
}
Item {
Package.name: 'album'
2017-01-29 17:26:09 +01:00
id: albumWrapper ; width: 16.5 * mm ; height: 16.5 * mm
2017-01-26 21:55:31 +01:00
DelegateModel {
id: visualModel ; delegate: PhotoComponent { }
model: photoModel
}
PathView {
id: photosPathView ;
model: visualModel . parts . stack ;
pathItemCount: 1
anchors.centerIn: parent ;
path: Path {
PathAttribute { name: 'z' ; value: 9999.0 }
PathLine { x: 1 ; y: 1 }
PathAttribute { name: 'z' ; value: 0.0 }
}
}
Rectangle {
color: "black"
opacity: 0.5
width: albumtext . contentWidth
height: albumtext . contentHeight
anchors.bottom: albumWrapper . bottom
}
Text {
id:albumtext
2017-01-29 17:26:09 +01:00
text: albumname
2017-01-26 21:55:31 +01:00
width: albumWrapper . width - 1 * mm
height: albumtext . contentHeight
wrapMode: Text . Wrap
color: "white"
font.family: "Monospace"
font.pixelSize: 2 * mm
anchors.bottom: albumWrapper . bottom
}
ListModel {
id: photoModel
}
Component.onCompleted: {
try { photoModel . clear ( ) } catch ( e ) { print ( e ) }
if ( foreignPicture ) {
Service . requestFriendsPictures ( albumlink , fotostab , function ( obj ) {
2017-01-29 17:26:09 +01:00
if ( obj ) {
for ( var k = 0 ; k < obj . length ; k ++ ) {
photoModel . append ( { "imageLocation" : obj [ k ] . thumb , "photoDescription" : obj [ k ] . name , "photoLink" : obj [ k ] . link } )
}
}
2017-01-26 21:55:31 +01:00
} ) }
else {
Helperjs . readData ( db , "imageData" , root . login . username , function ( obj ) {
2017-01-29 17:26:09 +01:00
if ( obj ) {
for ( var k = 0 ; k < obj . length ; k ++ ) {
2017-11-07 21:57:40 +01:00
if ( obj [ k ] . desc != "" && obj [ k ] . desc != "null" ) { var name = obj [ k ] . desc } else { var name = obj [ k ] . filename }
photoModel . append ( { "imageLocation" : obj [ k ] . location + obj [ k ] . filename , "photoDescription" : name , "photoLink" : obj [ k ] . location + obj [ k ] . filename } )
2017-01-29 17:26:09 +01:00
}
}
} , "album" , albumname ) }
2017-01-26 21:55:31 +01:00
}
MouseArea {
anchors.fill: parent
2017-11-07 21:57:40 +01:00
onPressAndHold: {
var menuString = "import QtQuick.Controls 1.4; Menu {MenuItem{text:qsTr('Delete on client and server'); onTriggered: {deletepics('album',albumname);photogroupModel.remove(index)}}}" ;
var albummenuObject = Qt . createQmlObject ( menuString , albumWrapper , "albummenuOutput" )
albummenuObject . popup ( )
}
2017-01-26 21:55:31 +01:00
onClicked: albumWrapper . state = 'inGrid'
}
states: [
State {
name: 'inGrid'
PropertyChanges { target: photosGridView ; interactive: true }
PropertyChanges { target: photoBackground ; opacity: 1 }
PropertyChanges { target: backButton ; onClicked: albumWrapper . state = '' ; y: 6 }
} ,
State {
name: 'fullscreen' ; extend: 'inGrid'
PropertyChanges { target: photosGridView ; interactive: false }
PropertyChanges { target: photosListView ; interactive: true }
PropertyChanges { target: photoBackground ; opacity: 1 }
2017-03-25 23:36:14 +01:00
PropertyChanges { target: backButton ; onClicked: {
albumWrapper . state = 'inGrid' }
}
2017-01-26 21:55:31 +01:00
}
]
} //album Ende
} //Package Ende
//item Ende