Fixed many issues with new History module, including saved status.
+ Fixed (old) bug that label content wasn't being saved.
This commit is contained in:
parent
2dc9234b22
commit
448d94fee3
19 changed files with 479 additions and 459 deletions
|
@ -117,7 +117,7 @@ MenuBar {
|
|||
icon.color: sysPalette.buttonText
|
||||
onTriggered: {
|
||||
var newObj = Modules.Objects.createNewRegisteredObject(modelData)
|
||||
history.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
|
||||
Modules.History.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
|
||||
objectLists.update()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -225,7 +225,7 @@ Item {
|
|||
imageDepth: Screen.devicePixelRatio,
|
||||
fontSize: 14
|
||||
})
|
||||
Modules.History.on("updated undone redone", () => {
|
||||
Modules.History.on("cleared added undone redone", () => {
|
||||
undoCount = Modules.History.undoStack.length
|
||||
redoCount = Modules.History.redoStack.length
|
||||
})
|
||||
|
|
|
@ -42,7 +42,7 @@ ApplicationWindow {
|
|||
width: 1000
|
||||
height: 500
|
||||
color: sysPalette.window
|
||||
title: "LogarithmPlotter"
|
||||
title: qsTr("untitled")
|
||||
|
||||
SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active }
|
||||
SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled }
|
||||
|
@ -50,9 +50,7 @@ ApplicationWindow {
|
|||
menuBar: appMenu.trueItem
|
||||
|
||||
AppMenuBar {id: appMenu}
|
||||
|
||||
History { id: history }
|
||||
|
||||
|
||||
Popup.GreetScreen {}
|
||||
|
||||
Popup.Preferences {id: preferences}
|
||||
|
@ -185,7 +183,7 @@ ApplicationWindow {
|
|||
}
|
||||
|
||||
onClosing: function(close) {
|
||||
if(!history.saved) {
|
||||
if(!Modules.History.saved) {
|
||||
close.accepted = false
|
||||
appMenu.openSaveUnsavedChangesDialog()
|
||||
}
|
||||
|
@ -254,8 +252,20 @@ ApplicationWindow {
|
|||
if(evt.property === "saveFilename") {
|
||||
const fileName = evt.newValue.split('/').pop().split('\\').pop()
|
||||
if(fileName !== "")
|
||||
title = `${fileName}`
|
||||
title = fileName
|
||||
}
|
||||
})
|
||||
Modules.IO.on("saved loaded", (evt) => {
|
||||
// Refreshing sidebar
|
||||
console.log(evt.name)
|
||||
updateObjectsLists()
|
||||
if(title.endsWith("*"))
|
||||
title = title.substring(0, title.length-1)
|
||||
})
|
||||
Modules.IO.on("modified", () => {
|
||||
console.log("modified")
|
||||
if(!title.endsWith("*"))
|
||||
title = title+"*"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ Repeater {
|
|||
variables: propertyType.variables
|
||||
onChanged: function(newExpr) {
|
||||
if(obj[propertyName].toString() != newExpr.toString()) {
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], newExpr
|
||||
))
|
||||
|
@ -123,7 +123,7 @@ Repeater {
|
|||
|
||||
// Ensuring old and new values are different to prevent useless adding to history.
|
||||
if(obj[propertyName] != newValueParsed) {
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], newValueParsed
|
||||
))
|
||||
|
@ -168,7 +168,7 @@ Repeater {
|
|||
return obj[propertyName]
|
||||
}
|
||||
onClicked: {
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], this.checked
|
||||
))
|
||||
|
@ -209,7 +209,9 @@ Repeater {
|
|||
if(selectedObj == null) {
|
||||
// Creating new object.
|
||||
selectedObj = Modules.Objects.createNewRegisteredObject(propertyType.objType)
|
||||
history.addToHistory(new JS.HistoryLib.CreateNewObject(selectedObj.name, propertyType.objType, selectedObj.export()))
|
||||
Modules.History.addToHistory(
|
||||
new JS.HistoryLib.CreateNewObject(selectedObj.name, propertyType.objType, selectedObj.export())
|
||||
)
|
||||
baseModel = Modules.Objects.getObjectsName(propertyType.objType).concat(
|
||||
isRealObject ? [qsTr("+ Create new %1").arg(Modules.Objects.types[propertyType.objType].displayType())] :
|
||||
[])
|
||||
|
@ -219,14 +221,14 @@ Repeater {
|
|||
//Modules.Objects.currentObjects[objType][objIndex].requiredBy = obj[propertyName].filter((obj) => obj.name != obj.name)
|
||||
}
|
||||
obj.requiredBy = obj.requiredBy.filter((obj) => obj.name != obj.name)
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], selectedObj
|
||||
))
|
||||
obj[propertyName] = selectedObj
|
||||
} else if(baseModel[newIndex] != obj[propertyName]) {
|
||||
// Ensuring new property is different to not add useless history entries.
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], baseModel[newIndex]
|
||||
))
|
||||
|
@ -256,7 +258,7 @@ Repeater {
|
|||
|
||||
onChanged: {
|
||||
var exported = exportModel()
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, propertyName,
|
||||
obj[propertyName], exported
|
||||
))
|
||||
|
|
|
@ -112,7 +112,7 @@ Popup.BaseDialog {
|
|||
if(newName in Modules.Objects.currentObjectsByName) {
|
||||
invalidNameDialog.showDialog(newName)
|
||||
} else {
|
||||
history.addToHistory(new JS.HistoryLib.NameChanged(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.NameChanged(
|
||||
objEditor.obj.name, objEditor.objType, newName
|
||||
))
|
||||
Modules.Objects.renameObject(obj.name, newName)
|
||||
|
@ -127,13 +127,17 @@ Popup.BaseDialog {
|
|||
id: labelContentProperty
|
||||
height: 30
|
||||
width: dlgProperties.width
|
||||
label: qsTr("Label content")
|
||||
label: qsTranslate("prop", "labelContent")
|
||||
model: [qsTr("null"), qsTr("name"), qsTr("name + value")]
|
||||
property var idModel: ["null", "name", "name + value"]
|
||||
icon: "common/label.svg"
|
||||
currentIndex: idModel.indexOf(objEditor.obj.labelContent)
|
||||
onActivated: function(newIndex) {
|
||||
if(idModel[newIndex] != objEditor.obj.labelContent) {
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
obj.name, objType, "labelContent",
|
||||
objEditor.obj.labelContent, idModel[newIndex]
|
||||
))
|
||||
objEditor.obj.labelContent = idModel[newIndex]
|
||||
objEditor.obj.update()
|
||||
objectListList.update()
|
||||
|
|
|
@ -104,7 +104,9 @@ Column {
|
|||
|
||||
onClicked: {
|
||||
let newObj = Modules.Objects.createNewRegisteredObject(modelData)
|
||||
history.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
|
||||
Modules.History.addToHistory(new JS.HistoryLib.CreateNewObject(
|
||||
newObj.name, modelData, newObj.export()
|
||||
))
|
||||
objectLists.update()
|
||||
|
||||
let hasXProp = newObj.constructor.properties().hasOwnProperty('x')
|
||||
|
|
|
@ -72,7 +72,7 @@ Item {
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: 5
|
||||
onClicked: {
|
||||
history.addToHistory(new JS.HistoryLib.EditedVisibility(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedVisibility(
|
||||
obj.name, obj.type, this.checked
|
||||
))
|
||||
obj.visible = this.checked
|
||||
|
@ -212,7 +212,7 @@ Item {
|
|||
selectedColor: obj.color
|
||||
title: qsTr("Pick new color for %1 %2").arg(obj.constructor.displayType()).arg(obj.name)
|
||||
onAccepted: {
|
||||
history.addToHistory(new JS.HistoryLib.ColorChanged(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.ColorChanged(
|
||||
obj.name, obj.type, obj.color, selectedColor.toString()
|
||||
))
|
||||
obj.color = selectedColor.toString()
|
||||
|
@ -231,7 +231,7 @@ Item {
|
|||
// Object still exists
|
||||
// Temporary fix for objects require not being propertly updated.
|
||||
object.requiredBy = []
|
||||
history.addToHistory(new JS.HistoryLib.DeleteObject(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.DeleteObject(
|
||||
object.name, object.type, object.export()
|
||||
))
|
||||
Modules.Objects.deleteObject(object.name)
|
||||
|
|
|
@ -115,7 +115,7 @@ Item {
|
|||
let obj = Modules.Objects.currentObjectsByName[objName]
|
||||
// Set values
|
||||
if(parent.userPickX && parent.userPickY) {
|
||||
history.addToHistory(new JS.HistoryLib.EditedPosition(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedPosition(
|
||||
objName, objType, obj[propertyX], newValueX, obj[propertyY], newValueY
|
||||
))
|
||||
obj[propertyX] = newValueX
|
||||
|
@ -124,7 +124,7 @@ Item {
|
|||
objectLists.update()
|
||||
pickerRoot.picked(obj)
|
||||
} else if(parent.userPickX) {
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
objName, objType, propertyX, obj[propertyX], newValueX
|
||||
))
|
||||
obj[propertyX] = newValueX
|
||||
|
@ -132,7 +132,7 @@ Item {
|
|||
objectLists.update()
|
||||
pickerRoot.picked(obj)
|
||||
} else if(parent.userPickY) {
|
||||
history.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
|
||||
objName, objType, propertyY, obj[propertyY], newValueY
|
||||
))
|
||||
obj[propertyY] = newValueY
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue