1
0
mirror of https://github.com/Swordfish90/cool-retro-term.git synced 2025-01-31 02:01:19 +00:00

Migrate from QtQuick.Controls 1.x to QtQuick.Controls 2.x. Updated QMLTermWidget submodule.

This commit is contained in:
Filippo Scognamiglio 2021-06-30 08:33:31 +02:00
parent dac2b4ff16
commit dae1a56691
21 changed files with 682 additions and 603 deletions

View File

@ -79,6 +79,9 @@ int main(int argc, char *argv[])
app.setWindowIcon(QIcon(":../icons/32x32/cool-retro-term.png")); app.setWindowIcon(QIcon(":../icons/32x32/cool-retro-term.png"));
#endif #endif
app.setOrganizationName("cool-retro-term");
app.setOrganizationDomain("cool-retro-term");
// Manage command line arguments from the cpp side // Manage command line arguments from the cpp side
QStringList args = app.arguments(); QStringList args = app.arguments();

View File

@ -1,5 +1,5 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.2
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Window 2.0 import QtQuick.Window 2.0
@ -86,9 +86,12 @@ Window{
} }
Component{ Component{
id: licenseComponent id: licenseComponent
TextArea{ ScrollView {
anchors.fill: parent anchors.fill: parent
clip: true
TextArea{
readOnly: true readOnly: true
wrapMode: TextEdit.Wrap
text: "Copyright (c) 2013 Filippo Scognamiglio <flscogna@gmail.com>\n\n" + text: "Copyright (c) 2013 Filippo Scognamiglio <flscogna@gmail.com>\n\n" +
"https://github.com/Swordfish90/cool-retro-term\n\n" + "https://github.com/Swordfish90/cool-retro-term\n\n" +
@ -107,3 +110,4 @@ Window{
} }
} }
} }
}

View File

@ -19,7 +19,7 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.0 import QtQuick.Controls 2.0
import "utils.js" as Utils import "utils.js" as Utils
@ -336,6 +336,7 @@ QtObject{
_margin = settings.margin !== undefined ? settings.margin : _margin; _margin = settings.margin !== undefined ? settings.margin : _margin;
handleFontChanged(); handleFontChanged();
} }

View File

@ -19,7 +19,7 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components" import "Components"
@ -28,8 +28,8 @@ RowLayout {
property alias name: check.text property alias name: check.text
property double value property double value
property alias min_value: slider.minimumValue property alias min_value: slider.from
property alias max_value: slider.maximumValue property alias max_value: slider.to
property alias stepSize: slider.stepSize property alias stepSize: slider.stepSize
signal newValue(real newValue); signal newValue(real newValue);
@ -67,7 +67,6 @@ RowLayout {
} }
} }
SizedLabel { SizedLabel {
Layout.fillHeight: true
text: Math.round(((value - min_value) / (max_value - min_value)) * 100) + "%" text: Math.round(((value - min_value) / (max_value - min_value)) * 100) + "%"
} }
} }

View File

@ -42,8 +42,7 @@ Item {
anchors.fill: parent anchors.fill: parent
radius: 10 radius: 10
color: rootItem.color color: rootItem.color
border.color: "black"
Glossy {}
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
anchors.margins: parent.height * 0.25 anchors.margins: parent.height * 0.25

View File

@ -20,16 +20,14 @@
import QtQuick 2.0 import QtQuick 2.0
import QtQuick.Controls 1.0 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
// This component is simply a label with a predefined size. // This component is simply a label with a predefined size.
// Used to improve alignment. // Used to improve alignment.
Item {
property alias text: textfield.text
width: appSettings.labelWidth
Label { Label {
id: textfield id: textfield
anchors { right: parent.right; verticalCenter: parent.verticalCenter } Layout.minimumWidth: appSettings.labelWidth
} width: appSettings.labelWidth
} }

View File

@ -1,21 +0,0 @@
import QtQuick 2.2
Rectangle {
anchors.centerIn: parent
width: parent.width - parent.border.width
height: parent.height - parent.border.width
radius:parent.radius - parent.border.width/2
smooth: true
border.width: parent.border.width/2
border.color: "#22FFFFFF"
gradient: Gradient {
GradientStop { position: 0; color: "#88FFFFFF" }
GradientStop { position: .1; color: "#55FFFFFF" }
GradientStop { position: .5; color: "#33FFFFFF" }
GradientStop { position: .501; color: "#11000000" }
GradientStop { position: .8; color: "#11FFFFFF" }
GradientStop { position: 1; color: "#55FFFFFF" }
}
}

View File

@ -20,7 +20,7 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Window 2.0 import QtQuick.Window 2.0
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1

View File

@ -19,10 +19,11 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QMLTermWidget 1.0 import QMLTermWidget 1.0
import "menus"
import "utils.js" as Utils import "utils.js" as Utils
Item{ Item{
@ -156,31 +157,23 @@ Item{
Component.onCompleted: { Component.onCompleted: {
appSettings.terminalFontChanged.connect(handleFontChanged); appSettings.terminalFontChanged.connect(handleFontChanged);
appSettings.initializedSettings.connect(startSession); appSettings.initializedSettings.connect(startSession);
appSettings.handleFontChanged()
} }
} }
Component { Component {
id: linuxContextMenu id: shortContextMenu
Menu{ ShortContextMenu { }
id: contextmenu
MenuItem { action: copyAction }
MenuItem { action: pasteAction }
MenuSeparator { visible: !appSettings.showMenubar }
MenuItem { action: showsettingsAction ; visible: !appSettings.showMenubar}
MenuSeparator { visible: !appSettings.showMenubar }
CRTMainMenuBar { visible: !appSettings.showMenubar }
}
} }
Component { Component {
id: osxContextMenu id: fullContextMenu
Menu{ FullContextMenu { }
id: contextmenu
MenuItem{action: copyAction}
MenuItem{action: pasteAction}
}
} }
Loader { Loader {
id: menuLoader id: menuLoader
sourceComponent: (Qt.platform.os === "osx" ? osxContextMenu : linuxContextMenu) sourceComponent: (Qt.platform.os === "osx" || appSettings.showMenubar ? shortContextMenu : fullContextMenu)
} }
property alias contextmenu: menuLoader.item property alias contextmenu: menuLoader.item

View File

@ -19,18 +19,17 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml 2.0
import "Components" import "Components"
Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent
GroupBox{ GroupBox{
Layout.fillWidth: true Layout.fillWidth: true
title: qsTr("Command") title: qsTr("Command")
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
CheckBox{ CheckBox{
@ -66,12 +65,12 @@ Tab{
Layout.fillWidth: true Layout.fillWidth: true
GridLayout{ GridLayout{
anchors.fill: parent anchors.fill: parent
rows: 2 columns: 4
columns: 3
Label{text: qsTr("Effects FPS")} Label{text: qsTr("Effects FPS")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
Layout.columnSpan: 2
id: fpsSlider id: fpsSlider
onValueChanged: { onValueChanged: {
if (enabled) { if (enabled) {
@ -81,58 +80,61 @@ Tab{
stepSize: 1 stepSize: 1
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0; from = 0;
maximumValue = 60; to = 60;
value = appSettings.fps !== 0 ? appSettings.fps - 1 : 60; value = appSettings.fps !== 0 ? appSettings.fps - 1 : 60;
enabled = true; enabled = true;
} }
} }
SizedLabel{text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")} Label{text: appSettings.fps !== 0 ? appSettings.fps : qsTr("Max")}
Label{text: qsTr("Texture Quality")} Label{text: qsTr("Texture Quality")}
Slider{ Slider{
Layout.fillWidth: true
id: txtslider id: txtslider
Layout.fillWidth: true
Layout.columnSpan: 2
onValueChanged: if (enabled) appSettings.windowScaling = value; onValueChanged: if (enabled) appSettings.windowScaling = value;
stepSize: 0.05 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.25 //Without this value gets set to 0.5 from = 0.25 //Without this value gets set to 0.5
value = appSettings.windowScaling; value = appSettings.windowScaling;
enabled = true; enabled = true;
} }
} }
SizedLabel{text: Math.round(txtslider.value * 100) + "%"} Label{text: Math.round(txtslider.value * 100) + "%"}
Label{text: qsTr("Bloom Quality")} Label{text: qsTr("Bloom Quality")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
Layout.columnSpan: 2
id: bloomSlider id: bloomSlider
onValueChanged: if (enabled) appSettings.bloomQuality = value; onValueChanged: if (enabled) appSettings.bloomQuality = value;
stepSize: 0.05 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.25 from = 0.25
value = appSettings.bloomQuality; value = appSettings.bloomQuality;
enabled = true; enabled = true;
} }
} }
SizedLabel{text: Math.round(bloomSlider.value * 100) + "%"} Label{text: Math.round(bloomSlider.value * 100) + "%"}
Label{text: qsTr("BurnIn Quality")} Label{text: qsTr("BurnIn Quality")}
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
id: burnInSlider id: burnInSlider
Layout.columnSpan: 2
onValueChanged: if (enabled) appSettings.burnInQuality = value; onValueChanged: if (enabled) appSettings.burnInQuality = value;
stepSize: 0.05 stepSize: 0.05
enabled: false enabled: false
Component.onCompleted: { Component.onCompleted: {
minimumValue = 0.25 from = 0.25
value = appSettings.burnInQuality; value = appSettings.burnInQuality;
enabled = true; enabled = true;
} }
} }
SizedLabel{text: Math.round(burnInSlider.value * 100) + "%"} Label{text: Math.round(burnInSlider.value * 100) + "%"}
CheckBox{ CheckBox{
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr("Burnin optimization (Might display timing artifacts)") text: qsTr("Burnin optimization (Might display timing artifacts)")
@ -142,4 +144,3 @@ Tab{
} }
} }
} }
}

View File

@ -19,12 +19,10 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent
spacing: 2 spacing: 2
GroupBox{ GroupBox{
@ -88,4 +86,3 @@ Tab{
} }
} }
} }
}

View File

@ -19,32 +19,34 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.4
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1
Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent
GroupBox{ GroupBox{
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true
title: qsTr("Profile") title: qsTr("Profile")
RowLayout { RowLayout {
anchors.fill: parent anchors.fill: parent
TableView { ListView {
id: profilesView id: profilesView
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
model: appSettings.profilesList model: appSettings.profilesList
headerVisible: false delegate: Rectangle {
TableViewColumn { width: label.width
title: qsTr("Profile") height: label.height
role: "text" color: (index == profilesView.currentIndex) ? palette.highlight : palette.base
width: parent.width * 0.5 Label {
id: label
text: appSettings.profilesList.get(index).text
MouseArea {
anchors.fill: parent
onClicked: profilesView.currentIndex = index
onDoubleClicked: appSettings.loadProfile(index)
}
} }
onActivated: {
appSettings.loadProfile(row);
} }
} }
ColumnLayout { ColumnLayout {
@ -60,11 +62,11 @@ Tab{
} }
Button{ Button{
Layout.fillWidth: true Layout.fillWidth: true
property alias currentIndex: profilesView.currentRow property alias currentIndex: profilesView.currentIndex
enabled: currentIndex >= 0 enabled: currentIndex >= 0
text: qsTr("Load") text: qsTr("Load")
onClicked: { onClicked: {
var index = profilesView.currentRow; var index = currentIndex;
if (index >= 0) if (index >= 0)
appSettings.loadProfile(index); appSettings.loadProfile(index);
} }
@ -72,7 +74,7 @@ Tab{
Button{ Button{
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("Remove") text: qsTr("Remove")
property alias currentIndex: profilesView.currentRow property alias currentIndex: profilesView.currentIndex
enabled: currentIndex >= 0 && !appSettings.profilesList.get(currentIndex).builtin enabled: currentIndex >= 0 && !appSettings.profilesList.get(currentIndex).builtin
onClicked: { onClicked: {
@ -121,7 +123,7 @@ Tab{
} }
} }
Button{ Button{
property alias currentIndex: profilesView.currentRow property alias currentIndex: profilesView.currentIndex
Layout.fillWidth: true Layout.fillWidth: true
@ -231,4 +233,3 @@ Tab{
} }
} }
} }
}

View File

@ -19,14 +19,13 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml 2.0
import "Components" import "Components"
Tab{
ColumnLayout{ ColumnLayout{
anchors.fill: parent
GroupBox{ GroupBox{
title: qsTr("Font") title: qsTr("Font")
@ -52,6 +51,7 @@ Tab{
id: fontChanger id: fontChanger
Layout.fillWidth: true Layout.fillWidth: true
model: appSettings.fontlist model: appSettings.fontlist
textRole: "text"
onActivated: { onActivated: {
var name = appSettings.fontlist.get(index).name; var name = appSettings.fontlist.get(index).name;
appSettings.fontNames[appSettings.rasterization] = name; appSettings.fontNames[appSettings.rasterization] = name;
@ -75,19 +75,11 @@ Tab{
Slider{ Slider{
Layout.fillWidth: true Layout.fillWidth: true
id: fontScalingChanger id: fontScalingChanger
onValueChanged: if(enabled) appSettings.fontScaling = value onValueChanged: appSettings.fontScaling = value
value: appSettings.fontScaling
stepSize: 0.05 stepSize: 0.05
enabled: false // Another trick to fix initial bad behavior. from: appSettings.minimumFontScaling;
Component.onCompleted: { to: appSettings.maximumFontScaling;
minimumValue = appSettings.minimumFontScaling;
maximumValue = appSettings.maximumFontScaling;
value = appSettings.fontScaling;
enabled = true;
}
Connections{
target: appSettings
onFontScalingChanged: fontScalingChanger.value = appSettings.fontScaling;
}
} }
SizedLabel{ SizedLabel{
text: Math.round(fontScalingChanger.value * 100) + "%" text: Math.round(fontScalingChanger.value * 100) + "%"
@ -102,11 +94,8 @@ Tab{
onValueChanged: appSettings.fontWidth = value; onValueChanged: appSettings.fontWidth = value;
value: appSettings.fontWidth value: appSettings.fontWidth
stepSize: 0.05 stepSize: 0.05
Component.onCompleted: { from: 0.5
// This is needed to avoid unnecessary chnaged events. to: 1.5
minimumValue = 0.5;
maximumValue = 1.5;
}
} }
SizedLabel{ SizedLabel{
text: Math.round(widthChanger.value * 100) + "%" text: Math.round(widthChanger.value * 100) + "%"
@ -171,4 +160,3 @@ Tab{
} }
} }
} }
}

View File

@ -19,46 +19,50 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.1
import QtQuick.Window 2.1 import QtQuick.Window 2.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.3
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1
Window { Window {
id: settings_window id: settings_window
title: qsTr("Settings") title: qsTr("Settings")
width: 580 width: 800
height: 400 height: 600
property int tabmargins: 15 property int tabmargins: 15
TabView{ TabBar {
id: tabView id: bar
anchors.fill: parent width: parent.width
anchors.margins: 10 TabButton {
SettingsGeneralTab { text: qsTr("General")
id: generalTab
title: qsTr("General")
anchors.fill: parent
anchors.margins: tabmargins
} }
SettingsTerminalTab { TabButton {
id: terminalTab text: qsTr("Terminal")
title: qsTr("Terminal")
anchors.fill: parent
anchors.margins: tabmargins
} }
SettingsEffectsTab { TabButton {
id: effectsTab text: qsTr("Effects")
title: qsTr("Effects")
anchors.fill: parent
anchors.margins: tabmargins
} }
SettingsAdvancedTab { TabButton {
id: performanceTab text: qsTr("Advanced")
title: qsTr("Advanced")
anchors.fill: parent
anchors.margins: tabmargins
} }
} }
StackLayout {
anchors {
top: bar.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
margins: tabmargins
}
currentIndex: bar.currentIndex
SettingsGeneralTab { }
SettingsTerminalTab { }
SettingsEffectsTab { }
SettingsAdvancedTab { }
}
} }

View File

@ -19,7 +19,7 @@
*******************************************************************************/ *******************************************************************************/
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import "Components" import "Components"
@ -27,8 +27,8 @@ import "Components"
RowLayout { RowLayout {
property alias value: slider.value property alias value: slider.value
property alias stepSize: slider.stepSize property alias stepSize: slider.stepSize
property alias minimumValue: slider.minimumValue property alias minimumValue: slider.from
property alias maximumValue: slider.maximumValue property alias maximumValue: slider.to
property real maxMultiplier: 100 property real maxMultiplier: 100
id: setting_component id: setting_component

View File

@ -20,8 +20,9 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Window 2.1 import QtQuick.Window 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.3
import QtGraphicalEffects 1.0
import "menus"
ApplicationWindow{ ApplicationWindow{
id: terminalWindow id: terminalWindow
@ -37,8 +38,6 @@ ApplicationWindow{
// Load saved window geometry and show the window // Load saved window geometry and show the window
Component.onCompleted: { Component.onCompleted: {
appSettings.handleFontChanged();
x = appSettings.x x = appSettings.x
y = appSettings.y y = appSettings.y
width = appSettings.width width = appSettings.width
@ -55,11 +54,9 @@ ApplicationWindow{
property bool fullscreen: appSettings.fullscreen property bool fullscreen: appSettings.fullscreen
onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed) onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed)
//Workaround: Without __contentItem a ugly thin border is visible. menuBar: WindowMenu {
menuBar: CRTMainMenuBar{
id: mainMenu id: mainMenu
visible: (Qt.platform.os === "osx" || appSettings.showMenubar) visible: (Qt.platform.os === "osx" || appSettings.showMenubar)
__contentItem.visible: mainMenu.visible
} }
property string wintitle: appSettings.wintitle property string wintitle: appSettings.wintitle
@ -136,7 +133,6 @@ ApplicationWindow{
} }
TerminalContainer{ TerminalContainer{
id: terminalContainer id: terminalContainer
y: appSettings.showMenubar ? 0 : -2 // Workaroud to hide the margin in the menubar.
width: parent.width width: parent.width
height: (parent.height + Math.abs(y)) height: (parent.height + Math.abs(y))
} }

View File

@ -0,0 +1,72 @@
/*******************************************************************************
* Copyright (c) 2013-2021 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
*
* This file is part of cool-retro-term.
*
* cool-retro-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.Controls 2.3
Menu{
id: contextmenu
MenuItem { action: copyAction }
MenuItem { action: pasteAction }
MenuItem { action: showsettingsAction }
MenuSeparator { }
Menu {
title: qsTr("File")
MenuItem {
action: quitAction
}
}
Menu {
title: qsTr("Edit")
MenuItem {action: copyAction}
MenuItem {action: pasteAction}
MenuSeparator { }
MenuItem {action: showsettingsAction}
}
Menu{
title: qsTr("View")
MenuItem {action: fullscreenAction; visible: fullscreenAction.enabled}
MenuItem {action: showMenubarAction; visible: showMenubarAction.enabled}
MenuItem {action: zoomIn}
MenuItem {action: zoomOut}
}
Menu{
id: profilesMenu
title: qsTr("Profiles")
Instantiator{
model: appSettings.profilesList
delegate: MenuItem {
text: model.text
onTriggered: {
appSettings.loadProfileString(obj_string);
appSettings.handleFontChanged();
}
}
onObjectAdded: profilesMenu.insertItem(index, object)
onObjectRemoved: profilesMenu.removeItem(object)
}
}
Menu{
title: qsTr("Help")
MenuItem {action: showAboutAction}
}
}

View File

@ -0,0 +1,28 @@
/*******************************************************************************
* Copyright (c) 2013-2021 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
*
* This file is part of cool-retro-term.
*
* cool-retro-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.Controls 2.3
Menu{
id: contextmenu
MenuItem { action: copyAction }
MenuItem { action: pasteAction }
}

View File

@ -1,35 +1,51 @@
/*******************************************************************************
* Copyright (c) 2013-2021 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
*
* This file is part of cool-retro-term.
*
* cool-retro-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 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.3
MenuBar { MenuBar {
id: defaultMenuBar id: defaultMenuBar
property bool visible: true visible: appSettings.showMenubar
Menu { Menu {
title: qsTr("File") title: qsTr("File")
visible: defaultMenuBar.visible
MenuItem {action: quitAction} MenuItem {action: quitAction}
} }
Menu { Menu {
title: qsTr("Edit") title: qsTr("Edit")
visible: defaultMenuBar.visible && appSettings.showMenubar
MenuItem {action: copyAction} MenuItem {action: copyAction}
MenuItem {action: pasteAction} MenuItem {action: pasteAction}
MenuSeparator{visible: Qt.platform.os !== "osx"} MenuSeparator { }
MenuItem {action: showsettingsAction} MenuItem {action: showsettingsAction}
} }
Menu{ Menu{
title: qsTr("View") title: qsTr("View")
visible: defaultMenuBar.visible
MenuItem {action: fullscreenAction; visible: fullscreenAction.enabled} MenuItem {action: fullscreenAction; visible: fullscreenAction.enabled}
MenuItem {action: showMenubarAction; visible: showMenubarAction.enabled} MenuItem {action: showMenubarAction; visible: showMenubarAction.enabled}
MenuSeparator{visible: showMenubarAction.enabled}
MenuItem {action: zoomIn} MenuItem {action: zoomIn}
MenuItem {action: zoomOut} MenuItem {action: zoomOut}
} }
Menu{ Menu{
id: profilesMenu id: profilesMenu
title: qsTr("Profiles") title: qsTr("Profiles")
visible: defaultMenuBar.visible
Instantiator{ Instantiator{
model: appSettings.profilesList model: appSettings.profilesList
delegate: MenuItem { delegate: MenuItem {
@ -45,7 +61,6 @@ MenuBar {
} }
Menu{ Menu{
title: qsTr("Help") title: qsTr("Help")
visible: defaultMenuBar.visible
MenuItem {action: showAboutAction} MenuItem {action: showAboutAction}
} }
} }

View File

@ -12,7 +12,6 @@
<file>TimeManager.qml</file> <file>TimeManager.qml</file>
<file>SimpleSlider.qml</file> <file>SimpleSlider.qml</file>
<file>ColorButton.qml</file> <file>ColorButton.qml</file>
<file>Glossy.qml</file>
<file>AboutDialog.qml</file> <file>AboutDialog.qml</file>
<file>InsertNameDialog.qml</file> <file>InsertNameDialog.qml</file>
<file>SettingsEffectsTab.qml</file> <file>SettingsEffectsTab.qml</file>
@ -22,7 +21,6 @@
<file>fonts/1977-apple2/PrintChar21.ttf</file> <file>fonts/1977-apple2/PrintChar21.ttf</file>
<file>fonts/1971-ibm-3278/3270Medium.ttf</file> <file>fonts/1971-ibm-3278/3270Medium.ttf</file>
<file>Storage.qml</file> <file>Storage.qml</file>
<file>CRTMainMenuBar.qml</file>
<file>SettingsAdvancedTab.qml</file> <file>SettingsAdvancedTab.qml</file>
<file>TerminalContainer.qml</file> <file>TerminalContainer.qml</file>
<file>images/crt256.png</file> <file>images/crt256.png</file>
@ -44,5 +42,8 @@
<file>fonts/modern-terminus/TerminusTTF-4.46.0.ttf</file> <file>fonts/modern-terminus/TerminusTTF-4.46.0.ttf</file>
<file>NewTerminalFrame.qml</file> <file>NewTerminalFrame.qml</file>
<file>SlowBurnIn.qml</file> <file>SlowBurnIn.qml</file>
<file>menus/WindowMenu.qml</file>
<file>menus/FullContextMenu.qml</file>
<file>menus/ShortContextMenu.qml</file>
</qresource> </qresource>
</RCC> </RCC>

@ -1 +1 @@
Subproject commit 59f967d5e1f6e9ce8e1632d9405422b071d93d30 Subproject commit 5c47d1f49455394226e0e595f79c148f0c098006