Warning, /graphics/krita/libs/libqml/qml/WelcomePage.qml is written in an unsupported language. File is not indexed.

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2012 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 import QtQuick 2.3
0008 import org.krita.sketch 1.0
0009 import org.krita.sketch.components 1.0
0010 import "panels"
0011 
0012 Page {
0013     property string pageName: "WelcomePage"
0014 
0015     Rectangle {
0016         anchors.fill: parent;
0017         color: Settings.theme.color("pages/welcome/background");
0018     }
0019 
0020 //    Header {
0021 //        id: header;
0022 
0023 //        anchors {
0024 //            top: parent.top;
0025 //            left: parent.left;
0026 //            right: parent.right;
0027 //        }
0028 
0029 //        text: (window.applicationName !== undefined) ? window.applicationName : "KRITA SKETCH";
0030 
0031 //        leftArea: Image {
0032 //            width: Constants.GridWidth * 0.5;
0033 //            height: parent.height;
0034 //            source: Settings.theme.image("kritasketch.png");
0035 //            fillMode: Image.PreserveAspectFit;
0036 
0037 //            sourceSize.width: width;
0038 //        }
0039 
0040 //        rightArea: [
0041 //            Button {
0042 //                id: minimizeButton;
0043 
0044 //                anchors.verticalCenter: parent.verticalCenter;
0045 //                width: Constants.GridWidth * 0.75;
0046 //                height: Constants.GridHeight * 0.75;
0047 
0048 //                tooltip: "Minimize";
0049 
0050 //                image: Settings.theme.icon("minimize");
0051 //                onClicked: Krita.Window.minimize();
0052 //            },
0053 //            Button {
0054 //                id: closeButton;
0055 
0056 //                anchors.verticalCenter: parent.verticalCenter;
0057 //                width: Constants.GridWidth * 0.75;
0058 //                height: Constants.GridHeight * 0.75;
0059 
0060 //                tooltip: "Close";
0061 
0062 //                image: Settings.theme.icon("close");
0063 //                onClicked: Krita.Window.close();
0064 //            }
0065 //        ]
0066 
0067 //        Image {
0068 //            anchors.fill: parent;
0069 //            source: Settings.theme.image("header_krita_sketch_light.png");
0070 //        }
0071 //    }
0072 
0073     Row {
0074         id: headersRow;
0075         anchors.top: header.bottom;
0076         width: parent.width;
0077 
0078         Rectangle {
0079             height: Constants.GridHeight;
0080             width: parent.width / 3;
0081 
0082             gradient: Gradient {
0083                 GradientStop {
0084                     position: 0
0085                     color: Settings.theme.color("pages/welcome/open/header/start");
0086                 }
0087 
0088 
0089                 GradientStop {
0090                     position: 1
0091                     color: Settings.theme.color("pages/welcome/open/header/stop");
0092                 }
0093             }
0094 
0095 
0096             Label {
0097                 anchors {
0098                     left: parent.left;
0099                     leftMargin: Constants.DefaultMargin;
0100                     verticalCenter: parent.verticalCenter;
0101                 }
0102                 text: "Recent Images";
0103                 font: Settings.theme.font("title");
0104                 color: Settings.theme.color("pages/welcome/open/header/text");
0105             }
0106 
0107             Shadow { width: parent.width; height: Constants.GridHeight / 8; anchors.top: parent.bottom; }
0108         }
0109 
0110         Rectangle {
0111             height: Constants.GridHeight;
0112             width: parent.width / 3;
0113 
0114             gradient: Gradient {
0115                 GradientStop {
0116                     position: 0
0117                     color: Settings.theme.color("pages/welcome/create/header/start");
0118                 }
0119 
0120 
0121                 GradientStop {
0122                     position: 1
0123                     color: Settings.theme.color("pages/welcome/create/header/stop");
0124                 }
0125             }
0126 
0127             Label {
0128                 anchors {
0129                     left: parent.left;
0130                     leftMargin: Constants.DefaultMargin;
0131                     verticalCenter: parent.verticalCenter;
0132                 }
0133                 text: "Create New";
0134                 font: Settings.theme.font("title");
0135                 color: Settings.theme.color("pages/welcome/create/header/text");
0136             }
0137 
0138             Shadow { width: parent.width; height: Constants.GridHeight / 8; anchors.top: parent.bottom; }
0139         }
0140 
0141         Rectangle {
0142             height: Constants.GridHeight;
0143             width: parent.width / 3;
0144 
0145             gradient: Gradient {
0146                 GradientStop {
0147                     position: 0
0148                     color: Settings.theme.color("pages/welcome/news/header/start");
0149                 }
0150 
0151 
0152                 GradientStop {
0153                     position: 1
0154                     color: Settings.theme.color("pages/welcome/news/header/stop");
0155                 }
0156             }
0157 
0158             Label {
0159                 anchors {
0160                     left: parent.left;
0161                     leftMargin: Constants.DefaultMargin;
0162                     verticalCenter: parent.verticalCenter;
0163                 }
0164                 text: "Community News";
0165                 font: Settings.theme.font("title");
0166                 color: Settings.theme.color("pages/welcome/news/header/text");
0167             }
0168 
0169             Shadow { width: parent.width; height: Constants.GridHeight / 8; anchors.top: parent.bottom; }
0170         }
0171     }
0172 
0173     Row {
0174         id: listsRow;
0175         anchors.bottom: parent.bottom;
0176         width: parent.width;
0177 
0178         RecentFilesList {
0179             width: parent.width / 3 - 4;
0180             height: Constants.GridHeight * (Constants.GridRows - 3);
0181 
0182             onClicked: d.openImage(file);
0183         }
0184 
0185         Divider { height: Constants.GridHeight * (Constants.GridRows - 3); }
0186 
0187         NewImageList {
0188             width: parent.width / 3 - 8;
0189             height: Constants.GridHeight * (Constants.GridRows - 3);
0190             onClicked: d.createNewImage(options);
0191         }
0192 
0193         Divider { height: Constants.GridHeight * (Constants.GridRows - 3); }
0194 
0195         NewsList {
0196             width: parent.width / 3 - 4;
0197             height: Constants.GridHeight * (Constants.GridRows - 3);
0198         }
0199     }
0200 
0201     QtObject {
0202         id: d;
0203 
0204         property bool mainPageActive: false;
0205 
0206         function createNewImage(options) {
0207             if(options !== undefined) {
0208                 if(options.template !== undefined) {
0209                     Settings.currentFile = Krita.ImageBuilder.createImageFromTemplate(options);
0210                     Settings.temporaryFile = true;
0211                 } else if(options.source === undefined) {
0212                     Settings.currentFile = Krita.ImageBuilder.createBlankImage(options);
0213                     Settings.temporaryFile = true;
0214                 } else if(options.source == "clipboard") {
0215                     Settings.currentFile = Krita.ImageBuilder.createImageFromClipboard();
0216                     Settings.temporaryFile = true;
0217                 }
0218             } else {
0219                 pageStack.push(customImagePage);
0220             }
0221         }
0222 
0223         function openImage(file) {
0224             if(file !== "") {
0225                 Settings.currentFile = file;
0226             } else {
0227                 pageStack.push(openImagePage);
0228             }
0229         }
0230     }
0231 
0232     Connections {
0233         target: Settings;
0234 
0235         onCurrentFileChanged: if (!d.mainPageActive) {
0236             d.mainPageActive = true;
0237             pageStack.push( main );
0238         }
0239     }
0240     Component { id: main; MainPage { } }
0241     Component { id: help; HelpPage { } }
0242     Component { id: openImagePage; OpenImagePage { onFinished: { pageStack.pop(); d.openImage(file); } } }
0243     Component { id: customImagePage; CustomImagePage { onFinished: d.createNewImage(options); } }
0244 
0245 }