Adding color schemes for expressions
This commit is contained in:
parent
7ec80e6682
commit
5ef8cac1c0
3 changed files with 150 additions and 133 deletions
|
@ -17,7 +17,7 @@
|
||||||
"""
|
"""
|
||||||
from shutil import which
|
from shutil import which
|
||||||
|
|
||||||
__VERSION__ = "0.3.0"
|
__VERSION__ = "0.4.0"
|
||||||
is_release = True
|
is_release = True
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -194,11 +194,12 @@ MenuBar {
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu {
|
Menu {
|
||||||
|
id: colorSchemeSetting
|
||||||
title: qsTr("Color Scheme")
|
title: qsTr("Color Scheme")
|
||||||
property var schemes: ["Breeze Light", "Breeze Dark", "Solarized", "Github Light", "Github Dark", "Nord", "Monokai"]
|
property var schemes: ["Breeze Light", "Breeze Dark", "Solarized", "Github Light", "Github Dark", "Nord", "Monokai"]
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: ["Breeze Light", "Breeze Dark", "Solarized", "Github Light", "Github Dark", "Nord", "Monokai"]
|
model: colorSchemeSetting.schemes
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: modelData
|
text: modelData
|
||||||
|
|
|
@ -37,143 +37,159 @@ Popup {
|
||||||
height: Math.min(parent.height-40, 700)
|
height: Math.min(parent.height-40, 700)
|
||||||
modal: true
|
modal: true
|
||||||
focus: true
|
focus: true
|
||||||
|
clip: true
|
||||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
|
|
||||||
Item {
|
ScrollView {
|
||||||
id: welcome
|
anchors.left: parent.left
|
||||||
height: logo.height
|
anchors.right: parent.right
|
||||||
width: logo.width + 10 + welcomeText.width
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: (parent.width-width)/2
|
anchors.bottom: parent.bottom
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.bottomMargin: bottomButtons.height + 20
|
||||||
|
clip: true
|
||||||
|
|
||||||
Image {
|
Column {
|
||||||
id: logo
|
width: greetingPopup.width - 25
|
||||||
source: "../icons/logarithmplotter.svg"
|
spacing: 10
|
||||||
sourceSize.width: 48
|
clip: true
|
||||||
sourceSize.height: 48
|
topPadding: 35
|
||||||
width: 48
|
|
||||||
height: 48
|
Row {
|
||||||
}
|
id: welcome
|
||||||
|
height: logo.height
|
||||||
Label {
|
spacing: 10
|
||||||
id: welcomeText
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.left: logo.right
|
Image {
|
||||||
anchors.leftMargin: 10
|
id: logo
|
||||||
//width: parent.width
|
source: "../icons/logarithmplotter.svg"
|
||||||
wrapMode: Text.WordWrap
|
sourceSize.width: 48
|
||||||
font.pixelSize: 32
|
sourceSize.height: 48
|
||||||
text: qsTr("Welcome to LogarithmPlotter")
|
width: 48
|
||||||
|
height: 48
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: welcomeText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
font.pixelSize: 32
|
||||||
|
text: qsTr("Welcome to LogarithmPlotter")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: versionText
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
width: implicitWidth
|
||||||
|
font.pixelSize: 18
|
||||||
|
font.italic: true
|
||||||
|
text: qsTr("Version %1").arg(Helper.getVersion())
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: helpText
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
font.pixelSize: 14
|
||||||
|
width: parent.width - 50
|
||||||
|
text: qsTr("Take a few seconds to configure LogarithmPlotter.\nThese settings can be changed at any time from the \"Settings\" menu.")
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: checkForUpdatesSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("check_for_updates")
|
||||||
|
text: qsTr('Check for updates on startup (requires online connectivity)')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("check_for_updates", checked)
|
||||||
|
// Set in the menu bar
|
||||||
|
appMenu.settingsMenu.children[0].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: resetRedoStackSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("reset_redo_stack")
|
||||||
|
text: qsTr('Reset redo stack when a new action is added to history')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("reset_redo_stack", checked)
|
||||||
|
appMenu.settingsMenu.children[1].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: enableLatexSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("enable_latex")
|
||||||
|
text: qsTr('Enable LaTeX rendering')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("enable_latex", checked)
|
||||||
|
appMenu.settingsMenu.children[2].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: autocloseFormulaSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("expression_editor.autoclose")
|
||||||
|
text: qsTr('Automatically close parenthesises and brackets in expressions')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("expression_editor.autoclose", checked)
|
||||||
|
appMenu.settingsMenu.children[3].children[0].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: colorizeFormulaSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("expression_editor.colorize")
|
||||||
|
text: qsTr('Enable syntax highlighting for expressions')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("expression_editor.colorize", checked)
|
||||||
|
appMenu.settingsMenu.children[3].children[1].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: autocompleteFormulaSetting
|
||||||
|
anchors.left: parent.left
|
||||||
|
checked: Helper.getSettingBool("autocompletion.enabled")
|
||||||
|
text: qsTr('Enable autocompletion interface in expression editor')
|
||||||
|
onClicked: {
|
||||||
|
Helper.setSettingBool("autocompletion.enabled", checked)
|
||||||
|
appMenu.settingsMenu.children[3].children[2].checked = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: 10
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: colorSchemeLabel
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
text: qsTr("Color scheme:")
|
||||||
|
}
|
||||||
|
|
||||||
|
ComboBox {
|
||||||
|
model: ["Breeze Light", "Breeze Dark", "Solarized", "Github Light", "Github Dark", "Nord", "Monokai"]
|
||||||
|
currentIndex: Helper.getSettingInt("expression_editor.color_scheme")
|
||||||
|
|
||||||
|
onActivated: function(index) {
|
||||||
|
Helper.setSettingInt("expression_editor.color_scheme", index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
|
||||||
id: versionText
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: welcome.bottom
|
|
||||||
anchors.topMargin: 10
|
|
||||||
//width: parent.width
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
width: implicitWidth
|
|
||||||
font.pixelSize: 18
|
|
||||||
font.italic: true
|
|
||||||
text: qsTr("Version %1").arg(Helper.getVersion())
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: helpText
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: versionText.bottom
|
|
||||||
anchors.topMargin: 40
|
|
||||||
//width: parent.width
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
font.pixelSize: 14
|
|
||||||
width: parent.width - 50
|
|
||||||
text: qsTr("Take a few seconds to configure LogarithmPlotter.\nThese settings can be changed at any time from the \"Settings\" menu.")
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: checkForUpdatesSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: helpText.bottom
|
|
||||||
anchors.topMargin: 10
|
|
||||||
checked: Helper.getSettingBool("check_for_updates")
|
|
||||||
text: qsTr('Check for updates on startup (requires online connectivity)')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("check_for_updates", checked)
|
|
||||||
// Set in the menu bar
|
|
||||||
appMenu.settingsMenu.children[0].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: resetRedoStackSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: checkForUpdatesSetting.bottom
|
|
||||||
checked: Helper.getSettingBool("reset_redo_stack")
|
|
||||||
text: qsTr('Reset redo stack when a new action is added to history')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("reset_redo_stack", checked)
|
|
||||||
appMenu.settingsMenu.children[1].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: enableLatexSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: resetRedoStackSetting.bottom
|
|
||||||
checked: Helper.getSettingBool("enable_latex")
|
|
||||||
text: qsTr('Enable LaTeX rendering')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("enable_latex", checked)
|
|
||||||
appMenu.settingsMenu.children[2].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: autocloseFormulaSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: enableLatexSetting.bottom
|
|
||||||
checked: Helper.getSettingBool("expression_editor.autoclose")
|
|
||||||
text: qsTr('Automatically close parenthesises and brackets in expressions')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("expression_editor.autoclose", checked)
|
|
||||||
appMenu.settingsMenu.children[3].children[0].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: colorizeFormulaSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: autocloseFormulaSetting.bottom
|
|
||||||
checked: Helper.getSettingBool("expression_editor.colorize")
|
|
||||||
text: qsTr('Enable syntax highlighting for expressions')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("expression_editor.colorize", checked)
|
|
||||||
appMenu.settingsMenu.children[3].children[1].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckBox {
|
|
||||||
id: autocompleteFormulaSetting
|
|
||||||
anchors.left: parent.left
|
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: colorizeFormulaSetting.bottom
|
|
||||||
checked: Helper.getSettingBool("autocompletion.enabled")
|
|
||||||
text: qsTr('Enable autocompletion interface in expression editor')
|
|
||||||
onClicked: {
|
|
||||||
Helper.setSettingBool("autocompletion.enabled", checked)
|
|
||||||
appMenu.settingsMenu.children[3].children[2].checked = checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
|
id: bottomButtons
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: 10
|
anchors.bottomMargin: 10
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
@ -201,7 +217,7 @@ Popup {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: if(Helper.getSetting("last_install_greet") != Helper.getVersion()) {
|
Component.onCompleted: if(Helper.getSetting("last_install_greet") +1 != Helper.getVersion()) {
|
||||||
greetingPopup.open()
|
greetingPopup.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue