File extension for plotter, with icon for it.

This commit is contained in:
Adsooi 2021-03-09 11:14:12 +01:00
parent faffd67e28
commit 08dd31ddbc
5 changed files with 140 additions and 6 deletions

View file

@ -24,7 +24,7 @@ D.FileDialog {
property bool exportMode: false
title: exportMode ? "Export Logarithmic Graph file" : "Import Logarithmic Graph file"
nameFilters: ["Logarithmic Graph JSON Data (*.json)", "All files (*)"]
nameFilters: ["Logarithmic Graph JSON Data (*.lgg)", "Old Logarithmic Graph JSON Data (*.json)", "All files (*)"]
folder: shortcuts.documents
selectExisting: !exportMode

View file

@ -29,7 +29,7 @@ ApplicationWindow {
width: 1000
height: 500
color: sysPalette.window
title: "Logarithmic Plotter " + (settings.saveFilename != "" ? " - " + settings.saveFilename.split('/')[0] : "")
title: "Logarithmic Plotter " + (settings.saveFilename != "" ? " - " + settings.saveFilename.split('/')[settings.saveFilename.split('/').length -1] : "")
SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active }
SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled }
@ -116,6 +116,7 @@ ApplicationWindow {
}
function saveDiagram(filename) {
settings.saveFilename = filename
var objs = {}
for(var objType in Objects.currentObjects){
objs[objType] = []
@ -143,6 +144,7 @@ ApplicationWindow {
function loadDiagram(filename) {
var data = JSON.parse(Helper.load(filename))
if(Object.keys(data).includes("type") && data["type"] == "logplotv1") {
settings.saveFilename = filename
settings.xzoom = data["xzoom"]
settings.yzoom = data["yzoom"]
settings.xmin = data["xmin"]

View file

@ -1167,14 +1167,14 @@ class RepartitionFunction extends ExecutableObject {
getReadableString() {
var keys = Object.keys(this.probabilities).sort();
var keys = Object.keys(this.probabilities).sort((a,b) => a-b);
return `F_${this.name}(x) = P(${this.name} ≤ x)\n` + keys.map(idx => `P(${this.name}=${idx})=${this.probabilities[idx]}`).join("; ")
}
execute(x = 1) {
var ret = 0;
Object.keys(this.probabilities).sort().forEach(idx => {
if(x >= idx) ret += this.probabilities[idx]
Object.keys(this.probabilities).sort((a,b) => a-b).forEach(idx => {
if(x >= idx) ret += parseFloat(this.probabilities[idx])
})
return ret
}
@ -1236,7 +1236,6 @@ class RepartitionFunction extends ExecutableObject {
}
}
}
console.log("Checking end", canvas.visible(keys[keys.length-1],currentY+parseFloat(this.probabilities[keys[keys.length-1]])), canvas.y2px(currentY+parseFloat(this.probabilities[keys[keys.length-1]])))
if(canvas.visible(keys[keys.length-1],currentY+parseFloat(this.probabilities[keys[keys.length-1]]))) {
canvas.drawLine(ctx,
Math.max(0,canvas.x2px(keys[keys.length-1])),