mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-11-04 00:52:11 +00:00 
			
		
		
		
	Refactoring of build system and use of native executable instead of qmlscene.
This commit is contained in:
		
							
								
								
									
										195
									
								
								app/qml/main.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								app/qml/main.qml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,195 @@
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
* Copyright (c) 2013 "Filippo Scognamiglio"
 | 
			
		||||
* https://github.com/Swordifish90/cool-old-term
 | 
			
		||||
*
 | 
			
		||||
* This file is part of cool-old-term.
 | 
			
		||||
*
 | 
			
		||||
* cool-old-term is free software: you can redistribute it and/or modify
 | 
			
		||||
* it under the terms of the GNU General Public License as published by
 | 
			
		||||
* the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
* (at your option) any later version.
 | 
			
		||||
*
 | 
			
		||||
* This program is distributed in the hope that it will be useful,
 | 
			
		||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
* GNU General Public License for more details.
 | 
			
		||||
*
 | 
			
		||||
* You should have received a copy of the GNU General Public License
 | 
			
		||||
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*******************************************************************************/
 | 
			
		||||
 | 
			
		||||
import QtQuick 2.2
 | 
			
		||||
import QtQuick.Window 2.1
 | 
			
		||||
import QtQuick.Controls 1.1
 | 
			
		||||
import QtGraphicalEffects 1.0
 | 
			
		||||
 | 
			
		||||
import org.kde.konsole 0.1
 | 
			
		||||
 | 
			
		||||
ApplicationWindow{
 | 
			
		||||
    id: terminalWindow
 | 
			
		||||
 | 
			
		||||
    width: 1024
 | 
			
		||||
    height: 768
 | 
			
		||||
    minimumWidth: 320
 | 
			
		||||
    minimumHeight: 240
 | 
			
		||||
 | 
			
		||||
    visible: true
 | 
			
		||||
 | 
			
		||||
    property bool fullscreen: shadersettings.fullscreen
 | 
			
		||||
    onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed)
 | 
			
		||||
 | 
			
		||||
    flags: Qt.WA_TranslucentBackground
 | 
			
		||||
    color: "#00000000"
 | 
			
		||||
    title: qsTr("cool-old-term")
 | 
			
		||||
 | 
			
		||||
    Action {
 | 
			
		||||
        id: showMenubarAction
 | 
			
		||||
        text: qsTr("Show Menubar")
 | 
			
		||||
        checkable: true
 | 
			
		||||
        checked: shadersettings.showMenubar
 | 
			
		||||
        onTriggered: shadersettings.showMenubar = !shadersettings.showMenubar
 | 
			
		||||
    }
 | 
			
		||||
    Action {
 | 
			
		||||
        id: fullscreenAction
 | 
			
		||||
        text: qsTr("Fullscreen")
 | 
			
		||||
        shortcut: "Alt+F11"
 | 
			
		||||
        onTriggered: shadersettings.fullscreen = !shadersettings.fullscreen;
 | 
			
		||||
        checkable: true
 | 
			
		||||
        checked: shadersettings.fullscreen
 | 
			
		||||
    }
 | 
			
		||||
    Action {
 | 
			
		||||
        id: quitAction
 | 
			
		||||
        text: qsTr("Quit")
 | 
			
		||||
        shortcut: "Ctrl+Shift+Q"
 | 
			
		||||
        onTriggered: terminalWindow.close();
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: showsettingsAction
 | 
			
		||||
        text: qsTr("Settings")
 | 
			
		||||
        onTriggered: settingswindow.show();
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: copyAction
 | 
			
		||||
        text: qsTr("Copy")
 | 
			
		||||
        shortcut: "Ctrl+Shift+C"
 | 
			
		||||
        onTriggered: terminal.copyClipboard()
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: pasteAction
 | 
			
		||||
        text: qsTr("Paste")
 | 
			
		||||
        shortcut: "Ctrl+Shift+V"
 | 
			
		||||
        onTriggered: terminal.pasteClipboard()
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: zoomIn
 | 
			
		||||
        text: qsTr("Zoom In")
 | 
			
		||||
        shortcut: "Ctrl++"
 | 
			
		||||
        onTriggered: {
 | 
			
		||||
            var oldScaling = shadersettings.fontScalingIndexes[shadersettings.rasterization];
 | 
			
		||||
            var maxScalingIndex = shadersettings.fontScalingList.length - 1;
 | 
			
		||||
            shadersettings.setScalingIndex(Math.min(oldScaling + 1, maxScalingIndex));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: zoomOut
 | 
			
		||||
        text: qsTr("Zoom Out")
 | 
			
		||||
        shortcut: "Ctrl+-"
 | 
			
		||||
        onTriggered: {
 | 
			
		||||
            var oldScaling = shadersettings.fontScalingIndexes[shadersettings.rasterization];
 | 
			
		||||
            shadersettings.setScalingIndex(Math.max(oldScaling - 1, 0));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Action{
 | 
			
		||||
        id: showAboutAction
 | 
			
		||||
        text: qsTr("About")
 | 
			
		||||
        onTriggered: {
 | 
			
		||||
            aboutDialog.show();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    menuBar: MenuBar {
 | 
			
		||||
        id: menubar
 | 
			
		||||
        Menu {
 | 
			
		||||
            title: qsTr("File")
 | 
			
		||||
            visible: shadersettings.showMenubar
 | 
			
		||||
            MenuItem {action: quitAction}
 | 
			
		||||
        }
 | 
			
		||||
        Menu {
 | 
			
		||||
            title: qsTr("Edit")
 | 
			
		||||
            visible: shadersettings.showMenubar
 | 
			
		||||
            MenuItem {action: copyAction}
 | 
			
		||||
            MenuItem {action: pasteAction}
 | 
			
		||||
            MenuSeparator{}
 | 
			
		||||
            MenuItem {action: showsettingsAction}
 | 
			
		||||
        }
 | 
			
		||||
        Menu{
 | 
			
		||||
            title: qsTr("View")
 | 
			
		||||
            visible: shadersettings.showMenubar
 | 
			
		||||
            MenuItem {action: fullscreenAction}
 | 
			
		||||
            MenuItem {action: showMenubarAction}
 | 
			
		||||
            MenuSeparator{}
 | 
			
		||||
            MenuItem {action: zoomIn}
 | 
			
		||||
            MenuItem {action: zoomOut}
 | 
			
		||||
        }
 | 
			
		||||
        Menu{
 | 
			
		||||
            title: qsTr("Help")
 | 
			
		||||
            visible: shadersettings.showMenubar
 | 
			
		||||
            MenuItem {action: showAboutAction}
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    ApplicationSettings{
 | 
			
		||||
        id: shadersettings
 | 
			
		||||
    }
 | 
			
		||||
    TimeManager{
 | 
			
		||||
        id: timeManager
 | 
			
		||||
        enableTimer: terminalWindow.visible
 | 
			
		||||
    }
 | 
			
		||||
    Item{
 | 
			
		||||
        id: maincontainer
 | 
			
		||||
        anchors.centerIn: parent
 | 
			
		||||
        width: parent.width * shadersettings.window_scaling
 | 
			
		||||
        height: parent.height * shadersettings.window_scaling
 | 
			
		||||
        scale: 1.0 / shadersettings.window_scaling
 | 
			
		||||
        smooth: false
 | 
			
		||||
        antialiasing: false
 | 
			
		||||
        opacity: shadersettings.windowOpacity * 0.3 + 0.7
 | 
			
		||||
 | 
			
		||||
        Loader{
 | 
			
		||||
            id: frame
 | 
			
		||||
            anchors.fill: parent
 | 
			
		||||
 | 
			
		||||
            property rect sourceRect: item.sourceRect
 | 
			
		||||
 | 
			
		||||
            z: 2.1
 | 
			
		||||
            source: shadersettings.frame_source
 | 
			
		||||
        }
 | 
			
		||||
        PreprocessedTerminal{
 | 
			
		||||
            id: terminal
 | 
			
		||||
            anchors.fill: parent
 | 
			
		||||
            anchors.margins: 30
 | 
			
		||||
        }
 | 
			
		||||
        ShaderTerminal{
 | 
			
		||||
            id: shadercontainer
 | 
			
		||||
            anchors.fill: parent
 | 
			
		||||
            z: 1.9
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    SettingsWindow{
 | 
			
		||||
        id: settingswindow
 | 
			
		||||
        visible: false
 | 
			
		||||
    }
 | 
			
		||||
    AboutDialog{
 | 
			
		||||
        id: aboutDialog
 | 
			
		||||
        visible: false
 | 
			
		||||
    }
 | 
			
		||||
    Loader{
 | 
			
		||||
        id: sizeoverlayloader
 | 
			
		||||
        z: 3
 | 
			
		||||
        anchors.centerIn: parent
 | 
			
		||||
        active: shadersettings.show_terminal_size
 | 
			
		||||
        sourceComponent: SizeOverlay{
 | 
			
		||||
            terminalSize: terminal.terminalSize
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Component.onCompleted: shadersettings.handleFontChanged();
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user