Warning, /plasma/libplasma/examples/applets/testshaders/contents/ui/EditorPage.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick
0008 
0009 import org.kde.plasma.components as PlasmaComponents
0010 import org.kde.kirigami as Kirigami
0011 
0012 // ButtonsPage
0013 
0014 PlasmaComponents.Page {
0015     id: editorPage
0016 
0017     property string shader
0018     property alias shaderText: editor.text
0019     property string pageName: "Editor"
0020     property string icon: "accessories-text-editor"
0021 
0022     anchors {
0023         fill: parent
0024         margins: _s
0025     }
0026 
0027     Image {
0028         id: imageItem
0029         anchors.fill: parent
0030         //source: "../images/elarun-small.png"
0031     }
0032 
0033     ShaderEffectSource {
0034         id: effectSource
0035         sourceItem: imageItem
0036         //hideSource: hideSourceCheckbox.checked
0037         hideSource: true
0038     }
0039 
0040     ShaderEffect {
0041         id: mainShader
0042         anchors.fill: editorPage
0043         property ShaderEffectSource source: effectSource
0044         property real f: 0
0045         property real f2: 0
0046         property int intensity: 1
0047         smooth: true
0048     }
0049     PlasmaComponents.ToolButton {
0050         iconSource: "dialog-close"
0051         width: _h
0052         height: width
0053         visible: !(mainShader.fragmentShader == "" && mainShader.vertexShader == "")
0054         anchors { top: parent.top; right: parent.right; }
0055         onClicked: {
0056             mainShader.fragmentShader = "";
0057             mainShader.vertexShader = "";
0058             editorPage.shader = ""
0059             vertexPage.shader = ""
0060         }
0061     }
0062 
0063 
0064     Kirigami.Heading {
0065         id: heading
0066         level: 1
0067         anchors {
0068             top: parent.top;
0069             left: parent.left
0070             right: parent.right
0071         }
0072         text: pageName
0073     }
0074     PlasmaComponents.ButtonColumn {
0075         anchors {
0076             right: parent.right
0077             top: heading.top
0078         }
0079         PlasmaComponents.RadioButton {
0080             id: fragmentRadio
0081             text: "Fragment / Pixel Shader"
0082         }
0083         PlasmaComponents.RadioButton {
0084             text: "Vertex Shader"
0085         }
0086     }
0087 
0088 //     PlasmaComponents.TextArea {
0089 //         id: editor
0090 //         anchors {
0091 //             top: heading.bottom;
0092 //             topMargin: _s
0093 //             left: parent.left
0094 //             right: parent.right
0095 //             bottom: applyButton.top
0096 //             wrapMode: TextEdit.Wrap
0097 //             bottomMargin: _s
0098 //
0099 //         }
0100 // //         text: { "void main(void) {\
0101 // //         gl_FragColor = vec4(1.0, 0.0, 0.0, 0.3);\
0102 // //     }"
0103 // //         }
0104 //         text:"
0105 //         void main(void) {
0106 //             gl_FragColor = vec4(0.2, 0.8, 0.6, 0.3);
0107 //         }
0108 //         "
0109 //
0110 // //         width: parent.width
0111 // //         parent.height-height: _h*2
0112 //     }
0113 
0114     PlasmaComponents.Button {
0115         id: applyButton
0116         text: "Upload Shader"
0117         onClicked: {
0118             shader = editor.text
0119             if (fragmentRadio.checked) {
0120                 print("Uploading new fragment shader: \n" + shader);
0121                 mainShader.fragmentShader = shader
0122             } else {
0123                 print("Uploading new vertex shader: \n" + shader);
0124                 mainShader.vertexShader = shader;
0125             }
0126         }
0127 
0128         anchors {
0129             right: parent.right
0130             bottom: parent.bottom
0131 
0132         }
0133 
0134 
0135 
0136     }
0137 //     PlasmaComponents.CheckBox {
0138 //         id: hideSourceCheckbox
0139 //         text: "Hide Source Item"
0140 //         anchors { bottom: parent.bottom; left: parent.left; margins: _s; }
0141 //         onCheckedChanged: effectSource.hideSource = checked
0142 //     }
0143 
0144 }