Warning, /maui/shelf/src/views/Viewer/Viewer_CB.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick 2.13
0002 import QtQuick.Controls 2.13
0003 import QtQuick.Window 2.12
0004 
0005 import org.mauikit.controls 1.3 as Maui
0006 import org.mauikit.filebrowsing 1.3 as FB
0007 
0008 import org.mauikit.documents 1.0 as Peruse
0009 
0010 Maui.Page
0011 {
0012     id: control
0013     property string path
0014 
0015     title: _model.title
0016     property int imageWidth : control.width
0017     property int imageHeight : control.height
0018 
0019     property bool twoPagesMode : true
0020     property alias orientation : _listView.orientation
0021 
0022     headBar.visible: false
0023 
0024     footBar.leftContent: ToolButton
0025     {
0026         icon.name: "view-dual-symbolic"
0027         checked: control.twoPagesMode
0028         onClicked: control.twoPagesMode = !control.twoPagesMode
0029     }
0030 
0031     ListView
0032     {
0033         id: _listView
0034         anchors.fill: parent
0035         orientation: ListView.Horizontal
0036         snapMode: control.twoPagesMode ? ListView.SnapPosition : ListView.SnapOneItem
0037         cacheBuffer: 3000
0038 
0039         onMovementEnded:
0040         {
0041             var indexHere = indexAt(contentX + width / 2, contentY + height / 2);
0042             if(currentIndex !== indexHere) {
0043                 currentIndex = indexHere;
0044             }
0045         }
0046 
0047         model: Peruse.ArchiveBookModel
0048         {
0049             id: _model
0050             qmlEngine: globalQmlEngine
0051             onLoadingCompleted: {
0052                 //                root.loadingCompleted(success);
0053                 //                if (success) {
0054                 //                    initialPageChange.start();
0055                 //                    for (var i = 0 ; i < root.languageCount; ++i) {
0056                 //                        var language = imageBrowser.model.acbfData.metaData.bookInfo.languages[i];
0057                 //                        var action = translationActionEntry.createObject(translationsAction, {language: language});
0058                 //                        translationsAction.children.push(action);
0059                 //                    }
0060                 //                }
0061             }
0062         }
0063 
0064         delegate: Maui.ImageViewer
0065         {
0066             source: model.url
0067             height: ListView.view.height
0068             width: Math.floor(ListView.view.width / (control.twoPagesMode ? 2 : 1))
0069             fillMode: Image.PreserveAspectFit
0070             asynchronous: true
0071 
0072             //                                            property bool shouldCheat: imageWidth * 2 > maxTextureSize || imageHeight * 2 > maxTextureSize;
0073             //                                                           property bool isTall: imageHeight < imageWidth;
0074             //                                                           property int fixedWidth: isTall ? maxTextureSize * (imageWidth / imageHeight) : maxTextureSize;
0075             //                                                           property int fixedHeight: isTall ? maxTextureSize : maxTextureSize * (imageHeight / imageWidth);
0076             //                                                           sourceSize.width: shouldCheat ? fixedWidth : imageWidth * 2;
0077             //                                                           sourceSize.height: shouldCheat ? fixedHeight : imageHeight * 2;
0078         }
0079     }
0080 
0081     Component.onCompleted:  _model.filename = control.path.replace("file://", "")
0082 
0083 }