cool-retro-term/app/qml/main.qml

188 lines
5.3 KiB
QML
Raw Normal View History

2013-12-28 14:52:10 +01:00
/*******************************************************************************
* Copyright (c) 2013 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
2013-12-28 14:52:10 +01:00
*
* This file is part of cool-retro-term.
2013-12-28 14:52:10 +01:00
*
* cool-retro-term is free software: you can redistribute it and/or modify
2013-12-28 14:52:10 +01:00
* 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
ApplicationWindow{
id: terminalWindow
2014-07-12 01:51:53 +02:00
width: 1024
height: 768
2014-07-07 01:42:17 +02:00
minimumWidth: 320
minimumHeight: 240
visible: true
2014-07-12 01:51:53 +02:00
property bool fullscreen: shadersettings.fullscreen
onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed)
2014-07-14 02:23:22 +02:00
flags: Qt.WA_TranslucentBackground
color: "#00000000"
title: qsTr("cool-retro-term")
2014-08-01 00:07:54 +02:00
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")
2014-08-07 00:30:08 +02:00
shortcut: "Ctrl+Shift+Q"
onTriggered: terminalWindow.close();
}
Action{
id: showsettingsAction
text: qsTr("Settings")
onTriggered: settingswindow.show();
}
2014-04-16 19:30:11 +02:00
Action{
id: copyAction
text: qsTr("Copy")
2014-04-16 19:30:11 +02:00
shortcut: "Ctrl+Shift+C"
onTriggered: terminal.copyClipboard()
}
Action{
id: pasteAction
text: qsTr("Paste")
2014-04-16 19:30:11 +02:00
shortcut: "Ctrl+Shift+V"
onTriggered: terminal.pasteClipboard()
}
Action{
id: zoomIn
text: qsTr("Zoom In")
shortcut: "Ctrl++"
onTriggered: {
var oldScaling = shadersettings.fontScalingIndex;
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.fontScalingIndex;
shadersettings.setScalingIndex(Math.max(oldScaling - 1, 0));
}
}
2014-07-27 18:00:18 +02:00
Action{
id: showAboutAction
text: qsTr("About")
onTriggered: {
aboutDialog.show();
}
}
menuBar: MenuBar {
id: menubar
Menu {
title: qsTr("File")
2014-08-01 00:07:54 +02:00
visible: shadersettings.showMenubar
MenuItem {action: quitAction}
}
Menu {
title: qsTr("Edit")
2014-08-01 00:07:54 +02:00
visible: shadersettings.showMenubar
2014-04-16 19:30:11 +02:00
MenuItem {action: copyAction}
MenuItem {action: pasteAction}
MenuSeparator{}
MenuItem {action: showsettingsAction}
2014-04-16 19:30:11 +02:00
}
Menu{
title: qsTr("View")
2014-08-01 00:07:54 +02:00
visible: shadersettings.showMenubar
MenuItem {action: fullscreenAction}
2014-08-01 00:07:54 +02:00
MenuItem {action: showMenubarAction}
MenuSeparator{}
MenuItem {action: zoomIn}
MenuItem {action: zoomOut}
}
2014-07-27 18:00:18 +02:00
Menu{
title: qsTr("Help")
2014-08-01 00:07:54 +02:00
visible: shadersettings.showMenubar
2014-07-27 18:00:18 +02:00
MenuItem {action: showAboutAction}
}
}
2014-06-27 23:54:17 +02:00
ApplicationSettings{
2014-06-07 02:19:37 +02:00
id: shadersettings
}
2014-07-12 01:51:53 +02:00
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
2014-07-14 02:23:22 +02:00
opacity: shadersettings.windowOpacity * 0.3 + 0.7
2014-07-09 19:03:02 +02:00
Loader{
id: frame
anchors.fill: parent
z: 2.1
source: shadersettings.frame_source
}
2014-06-27 23:54:17 +02:00
PreprocessedTerminal{
2014-03-30 22:29:15 +02:00
id: terminal
anchors.fill: parent
}
2014-06-27 23:54:17 +02:00
ShaderTerminal{
id: shadercontainer
anchors.fill: parent
z: 1.9
}
2013-11-25 16:46:10 +01:00
}
SettingsWindow{
id: settingswindow
visible: false
}
2014-07-27 18:00:18 +02:00
AboutDialog{
id: aboutDialog
visible: false
}
2014-04-20 22:59:46 +02:00
Loader{
id: sizeoverlayloader
z: 3
anchors.centerIn: parent
active: shadersettings.show_terminal_size
sourceComponent: SizeOverlay{
terminalSize: terminal.terminalSize
}
}
2014-06-25 14:29:10 +02:00
Component.onCompleted: shadersettings.handleFontChanged();
}