diff --git a/app/ShaderSettings.qml b/app/ShaderSettings.qml index a15a156..bbdea5c 100644 --- a/app/ShaderSettings.qml +++ b/app/ShaderSettings.qml @@ -51,10 +51,10 @@ Item{ onFont_scalingChanged: handleFontChanged(); function handleFontChanged(){ - terminalwindowloader.source = ""; + terminal.source = ""; currentfont.source = fontlist.get(font_index).source; currentfont.pixelSize = fontlist.get(font_index).pixelSize; - terminalwindowloader.source = "TerminalWindow.qml"; + terminal.source = "Terminal.qml"; } FontLoader{ diff --git a/app/Terminal.qml b/app/Terminal.qml new file mode 100644 index 0000000..ec83572 --- /dev/null +++ b/app/Terminal.qml @@ -0,0 +1,27 @@ +import QtQuick 2.0 + +import org.kde.konsole 0.1 + +KTerminal { + font.pointSize: shadersettings.fontSize + font.family: shadersettings.font.name + + colorScheme: "WhiteOnBlack" + + session: KSession { + id: ksession + kbScheme: "linux" + + onFinished: { + Qt.quit() + } + } + + Component.onCompleted: { + font.pointSize = shadersettings.fontSize; + font.family = shadersettings.font.name; + console.log(shadersettings.font.name); + } + + Component.onDestruction: console.log("Destroy") +} diff --git a/app/main.qml b/app/main.qml index 0ef3762..e468129 100644 --- a/app/main.qml +++ b/app/main.qml @@ -21,17 +21,103 @@ import QtQuick 2.1 import QtQuick.Window 2.0 import QtQuick.Controls 1.0 +import QtGraphicalEffects 1.0 import org.kde.konsole 0.1 -Item{ - ShaderSettings{ - id: shadersettings - Component.onCompleted: terminalwindowloader.source = "TerminalWindow.qml" +ApplicationWindow{ + id: terminalWindow + width: 1024 + height: 768 + + title: qsTr("Terminal") + + Action { + id: fullscreenAction + text: "&Fullscreen" + shortcut: "Alt+F11" + onTriggered: shadersettings.fullscreen = !shadersettings.fullscreen; + } + Action { + id: quitAction + text: "&Quit" + shortcut: "Ctrl+Q" + onTriggered: terminalWindow.close(); + } + Action{ + id: showsettingsAction + text: "&Settings" + onTriggered: settingswindow.show(); } - Loader{ - id: terminalwindowloader + menuBar: MenuBar { + id: menubar + + Menu { + title: qsTr("File") + visible: shadersettings.fullscreen ? false : true + MenuItem {action: quitAction} + } + Menu { + title: qsTr("Edit") + visible: shadersettings.fullscreen ? false : true + MenuItem {action: showsettingsAction} + MenuItem {action: fullscreenAction} + } + } + + visible: true + visibility: shadersettings.fullscreen ? Window.FullScreen : Window.Windowed + + Item{ + id: maincontainer + anchors.fill: parent + clip: true + + ShaderEffectSource{ + id: theSource + sourceItem: terminal + sourceRect: frame.sourceRect + } + + ShaderManager{ + id: shadercontainer + anchors.fill: terminal + blending: true + z: 1.9 + } + + Loader{ + property rect sourceRect: item.sourceRect + + id: frame + anchors.fill: parent + z: 2.1 + source: shadersettings.frame_source + } + + Loader{ + id: terminal + width: parent.width + height: parent.height + } + + RadialGradient{ + id: ambientreflection + z: 2.0 + anchors.fill: parent + cached: true + opacity: shadersettings.ambient_light * 0.66 + gradient: Gradient{ + GradientStop{position: 0.0; color: "white"} + GradientStop{position: 0.7; color: "#00000000"} + } + } + } + + ShaderSettings{ + id: shadersettings + Component.onCompleted: terminal.source = "Terminal.qml" } SettingsWindow{