mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2026-02-08 00:32:27 +00:00
Make actions between the different menus global.
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 2.0
|
import QtQuick.Controls 2.0
|
||||||
|
import QtQml
|
||||||
|
|
||||||
import QMLTermWidget 1.0
|
import QMLTermWidget 1.0
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ import "menus"
|
|||||||
import "utils.js" as Utils
|
import "utils.js" as Utils
|
||||||
|
|
||||||
Item{
|
Item{
|
||||||
id: terminalContainer
|
id: preprocessedTerminal
|
||||||
signal sessionFinished()
|
signal sessionFinished()
|
||||||
|
|
||||||
property size virtualResolution: Qt.size(kterminal.totalWidth, kterminal.totalHeight)
|
property size virtualResolution: Qt.size(kterminal.totalWidth, kterminal.totalHeight)
|
||||||
@@ -47,14 +48,14 @@ Item{
|
|||||||
// Manage copy and paste
|
// Manage copy and paste
|
||||||
Connections {
|
Connections {
|
||||||
target: copyAction
|
target: copyAction
|
||||||
|
enabled: terminalContainer.hasFocus
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
kterminal.copyClipboard()
|
kterminal.copyClipboard()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Connections {
|
Connections {
|
||||||
target: pasteAction
|
target: pasteAction
|
||||||
|
enabled: terminalContainer.hasFocus
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
kterminal.pasteClipboard()
|
kterminal.pasteClipboard()
|
||||||
}
|
}
|
||||||
@@ -65,22 +66,22 @@ Item{
|
|||||||
target: appSettings
|
target: appSettings
|
||||||
|
|
||||||
onFontScalingChanged: {
|
onFontScalingChanged: {
|
||||||
terminalContainer.updateSources()
|
preprocessedTerminal.updateSources()
|
||||||
}
|
}
|
||||||
|
|
||||||
onFontWidthChanged: {
|
onFontWidthChanged: {
|
||||||
terminalContainer.updateSources()
|
preprocessedTerminal.updateSources()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Connections {
|
Connections {
|
||||||
target: terminalContainer
|
target: preprocessedTerminal
|
||||||
|
|
||||||
onWidthChanged: {
|
onWidthChanged: {
|
||||||
terminalContainer.updateSources()
|
preprocessedTerminal.updateSources()
|
||||||
}
|
}
|
||||||
|
|
||||||
onHeightChanged: {
|
onHeightChanged: {
|
||||||
terminalContainer.updateSources()
|
preprocessedTerminal.updateSources()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +119,7 @@ Item{
|
|||||||
id: ksession
|
id: ksession
|
||||||
|
|
||||||
onFinished: {
|
onFinished: {
|
||||||
terminalContainer.sessionFinished()
|
preprocessedTerminal.sessionFinished()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,8 +149,8 @@ Item{
|
|||||||
pixelSize: pixelSize
|
pixelSize: pixelSize
|
||||||
});
|
});
|
||||||
|
|
||||||
terminalContainer.fontWidth = fontWidth;
|
preprocessedTerminal.fontWidth = fontWidth;
|
||||||
terminalContainer.screenScaling = screenScaling;
|
preprocessedTerminal.screenScaling = screenScaling;
|
||||||
scaleTexture = Math.max(1.0, Math.floor(screenScaling * appSettings.windowScaling));
|
scaleTexture = Math.max(1.0, Math.floor(screenScaling * appSettings.windowScaling));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +158,7 @@ Item{
|
|||||||
target: appSettings
|
target: appSettings
|
||||||
|
|
||||||
onWindowScalingChanged: {
|
onWindowScalingChanged: {
|
||||||
scaleTexture = Math.max(1.0, Math.floor(terminalContainer.screenScaling * appSettings.windowScaling));
|
scaleTexture = Math.max(1.0, Math.floor(preprocessedTerminal.screenScaling * appSettings.windowScaling));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,7 +214,7 @@ Item{
|
|||||||
cursorShape: kterminal.terminalUsesMouse ? Qt.ArrowCursor : Qt.IBeamCursor
|
cursorShape: kterminal.terminalUsesMouse ? Qt.ArrowCursor : Qt.IBeamCursor
|
||||||
onWheel: function(wheel) {
|
onWheel: function(wheel) {
|
||||||
if (wheel.modifiers & Qt.ControlModifier) {
|
if (wheel.modifiers & Qt.ControlModifier) {
|
||||||
wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger();
|
wheel.angleDelta.y > 0 ? zoomInAction.trigger() : zoomOutAction.trigger();
|
||||||
} else {
|
} else {
|
||||||
var coord = correctDistortion(wheel.x, wheel.y);
|
var coord = correctDistortion(wheel.x, wheel.y);
|
||||||
kterminal.simulateWheel(coord.x, coord.y, wheel.buttons, wheel.modifiers, wheel.angleDelta);
|
kterminal.simulateWheel(coord.x, coord.y, wheel.buttons, wheel.modifiers, wheel.angleDelta);
|
||||||
|
|||||||
@@ -28,6 +28,13 @@ ShaderTerminal {
|
|||||||
signal sessionFinished()
|
signal sessionFinished()
|
||||||
|
|
||||||
property bool loadBloomEffect: appSettings.bloom > 0 || appSettings._frameShininess > 0
|
property bool loadBloomEffect: appSettings.bloom > 0 || appSettings._frameShininess > 0
|
||||||
|
property bool hasFocus
|
||||||
|
|
||||||
|
onHasFocusChanged: {
|
||||||
|
if (hasFocus) {
|
||||||
|
activate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
id: mainShader
|
id: mainShader
|
||||||
opacity: appSettings.windowOpacity * 0.3 + 0.7
|
opacity: appSettings.windowOpacity * 0.3 + 0.7
|
||||||
|
|||||||
@@ -130,12 +130,8 @@ Item {
|
|||||||
Repeater {
|
Repeater {
|
||||||
model: tabsModel
|
model: tabsModel
|
||||||
TerminalContainer {
|
TerminalContainer {
|
||||||
property bool shouldHaveFocus: terminalWindow.active && StackLayout.isCurrentItem
|
id: terminalContainer
|
||||||
onShouldHaveFocusChanged: {
|
hasFocus: terminalWindow.active && StackLayout.isCurrentItem
|
||||||
if (shouldHaveFocus) {
|
|
||||||
activate()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onTitleChanged: tabsModel.setProperty(index, "title", normalizeTitle(title))
|
onTitleChanged: tabsModel.setProperty(index, "title", normalizeTitle(title))
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Window 2.1
|
import QtQuick.Window 2.1
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
|
import QtQml
|
||||||
|
|
||||||
import "menus"
|
import "menus"
|
||||||
|
|
||||||
@@ -50,87 +51,18 @@ ApplicationWindow {
|
|||||||
sourceComponent: WindowMenu { }
|
sourceComponent: WindowMenu { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: newTabAction
|
||||||
|
enabled: terminalWindow.active
|
||||||
|
onTriggered: terminalTabs.addTab()
|
||||||
|
}
|
||||||
|
|
||||||
property real normalizedWindowScale: 1024 / ((0.5 * width + 0.5 * height))
|
property real normalizedWindowScale: 1024 / ((0.5 * width + 0.5 * height))
|
||||||
|
|
||||||
color: "#00000000"
|
color: "#00000000"
|
||||||
|
|
||||||
title: terminalTabs.currentTitle
|
title: terminalTabs.currentTitle
|
||||||
|
|
||||||
Action {
|
|
||||||
id: showMenubarAction
|
|
||||||
text: qsTr("Show Menubar")
|
|
||||||
enabled: !appSettings.isMacOS
|
|
||||||
shortcut: "Ctrl+Shift+M"
|
|
||||||
checkable: true
|
|
||||||
checked: appSettings.showMenubar
|
|
||||||
onTriggered: appSettings.showMenubar = !appSettings.showMenubar
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: fullscreenAction
|
|
||||||
text: qsTr("Fullscreen")
|
|
||||||
enabled: !appSettings.isMacOS
|
|
||||||
shortcut: "Alt+F11"
|
|
||||||
onTriggered: appSettings.fullscreen = !appSettings.fullscreen
|
|
||||||
checkable: true
|
|
||||||
checked: appSettings.fullscreen
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: newWindowAction
|
|
||||||
text: qsTr("New Window")
|
|
||||||
shortcut: "Ctrl+Shift+N"
|
|
||||||
onTriggered: appRoot.createWindow()
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: quitAction
|
|
||||||
text: qsTr("Quit")
|
|
||||||
shortcut: "Ctrl+Shift+Q"
|
|
||||||
onTriggered: appSettings.close()
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: showsettingsAction
|
|
||||||
text: qsTr("Settings")
|
|
||||||
onTriggered: {
|
|
||||||
settingsWindow.show()
|
|
||||||
settingsWindow.requestActivate()
|
|
||||||
settingsWindow.raise()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: copyAction
|
|
||||||
text: qsTr("Copy")
|
|
||||||
shortcut: "Ctrl+Shift+C"
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: pasteAction
|
|
||||||
text: qsTr("Paste")
|
|
||||||
shortcut: "Ctrl+Shift+V"
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: zoomIn
|
|
||||||
text: qsTr("Zoom In")
|
|
||||||
shortcut: "Ctrl++"
|
|
||||||
onTriggered: appSettings.incrementScaling()
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: zoomOut
|
|
||||||
text: qsTr("Zoom Out")
|
|
||||||
shortcut: "Ctrl+-"
|
|
||||||
onTriggered: appSettings.decrementScaling()
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: showAboutAction
|
|
||||||
text: qsTr("About")
|
|
||||||
onTriggered: {
|
|
||||||
aboutDialog.show()
|
|
||||||
aboutDialog.requestActivate()
|
|
||||||
aboutDialog.raise()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Action {
|
|
||||||
id: newTabAction
|
|
||||||
text: qsTr("New Tab")
|
|
||||||
onTriggered: terminalTabs.addTab()
|
|
||||||
}
|
|
||||||
TerminalTabs {
|
TerminalTabs {
|
||||||
id: terminalTabs
|
id: terminalTabs
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
|
import QtQuick.Controls 2.3
|
||||||
|
|
||||||
import "menus"
|
import "menus"
|
||||||
|
|
||||||
@@ -51,6 +52,80 @@ QtObject {
|
|||||||
sourceComponent: OSXMenu { }
|
sourceComponent: OSXMenu { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property Action showMenubarAction: Action {
|
||||||
|
text: qsTr("Show Menubar")
|
||||||
|
enabled: !appSettings.isMacOS
|
||||||
|
shortcut: "Ctrl+Shift+M"
|
||||||
|
checkable: true
|
||||||
|
checked: appSettings.showMenubar
|
||||||
|
onTriggered: appSettings.showMenubar = !appSettings.showMenubar
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action fullscreenAction: Action {
|
||||||
|
text: qsTr("Fullscreen")
|
||||||
|
enabled: !appSettings.isMacOS
|
||||||
|
shortcut: "Alt+F11"
|
||||||
|
onTriggered: appSettings.fullscreen = !appSettings.fullscreen
|
||||||
|
checkable: true
|
||||||
|
checked: appSettings.fullscreen
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action newWindowAction: Action {
|
||||||
|
text: qsTr("New Window")
|
||||||
|
shortcut: "Ctrl+Shift+N"
|
||||||
|
onTriggered: appRoot.createWindow()
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action quitAction: Action {
|
||||||
|
text: qsTr("Quit")
|
||||||
|
shortcut: "Ctrl+Shift+Q"
|
||||||
|
onTriggered: appSettings.close()
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action showsettingsAction: Action {
|
||||||
|
text: qsTr("Settings")
|
||||||
|
onTriggered: {
|
||||||
|
settingsWindow.show()
|
||||||
|
settingsWindow.requestActivate()
|
||||||
|
settingsWindow.raise()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action copyAction: Action {
|
||||||
|
text: qsTr("Copy")
|
||||||
|
shortcut: "Ctrl+Shift+C"
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action pasteAction: Action {
|
||||||
|
text: qsTr("Paste")
|
||||||
|
shortcut: "Ctrl+Shift+V"
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action zoomInAction: Action {
|
||||||
|
text: qsTr("Zoom In")
|
||||||
|
shortcut: "Ctrl++"
|
||||||
|
onTriggered: appSettings.incrementScaling()
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action zoomOutAction: Action {
|
||||||
|
text: qsTr("Zoom Out")
|
||||||
|
shortcut: "Ctrl+-"
|
||||||
|
onTriggered: appSettings.decrementScaling()
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action showAboutAction: Action {
|
||||||
|
text: qsTr("About")
|
||||||
|
onTriggered: {
|
||||||
|
aboutDialog.show()
|
||||||
|
aboutDialog.requestActivate()
|
||||||
|
aboutDialog.raise()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
property Action newTabAction: Action {
|
||||||
|
text: qsTr("New Tab")
|
||||||
|
}
|
||||||
|
|
||||||
function createWindow() {
|
function createWindow() {
|
||||||
var window = windowComponent.createObject(null)
|
var window = windowComponent.createObject(null)
|
||||||
if (!window)
|
if (!window)
|
||||||
|
|||||||
@@ -69,10 +69,10 @@ Menu {
|
|||||||
visible: showMenubarAction.enabled
|
visible: showMenubarAction.enabled
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
action: zoomIn
|
action: zoomInAction
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
action: zoomOut
|
action: zoomOutAction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Menu {
|
Menu {
|
||||||
|
|||||||
@@ -64,14 +64,14 @@ MenuBar {
|
|||||||
Menu {
|
Menu {
|
||||||
title: qsTr("View")
|
title: qsTr("View")
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: zoomIn.text
|
text: zoomInAction.text
|
||||||
shortcut: "Meta++"
|
shortcut: "Meta++"
|
||||||
onTriggered: zoomIn.trigger()
|
onTriggered: zoomInAction.trigger()
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: zoomOut.text
|
text: zoomOutAction.text
|
||||||
shortcut: "Meta+-"
|
shortcut: "Meta+-"
|
||||||
onTriggered: zoomOut.trigger()
|
onTriggered: zoomOutAction.trigger()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Menu {
|
Menu {
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ MenuBar {
|
|||||||
visible: showMenubarAction.enabled
|
visible: showMenubarAction.enabled
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
action: zoomIn
|
action: zoomInAction
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
action: zoomOut
|
action: zoomOutAction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Menu {
|
Menu {
|
||||||
|
|||||||
Reference in New Issue
Block a user