<window id="offline"> <layout type="vertical"> <splitter type="horizontal" id="logsplit"> <measurementtable id="log"> <column>Time</column> <column>Bean</column> <column>Air</column> <column>Note</column> </measurementtable> <graph id="graph" /> </splitter> </layout> <menu name="File"> <item id="save" shortcut="Ctrl+S">Save…</item> <item id="print" shortcut="Ctrl+P">Print…</item> <item id="export">Export CSV…</item> <item id="svgexport">Export XHTML+SVG…</item> <item id="quit" shortcut="Ctrl+Q">Quit</item> </menu> <menu name="Log"> <item id="showC">Display Celsius</item> <item id="showF">Display Fahrenheit</item> <separator /> <item id="ms">Millisecond View</item> <item id="1s">1 Second View</item> <item id="5s">5 Second View</item> <item id="10s">10 Second View</item> <item id="15s">15 Second View</item> <item id="30s">30 Second View</item> <item id="1m">1 Minute View</item> </menu> <program> <![CDATA[ var window = this; var splitter = findChildObject(this, 'logsplit'); splitter.restoreState("script/offlineViewSplitter"); window.saveTemperatureColumns = new Array(); window.saveAnnotationColumns = new Array(); this.aboutToClose.connect(function() { splitter.saveState("script/offlineViewSplitter"); }); var log = findChildObject(this, 'log'); var graph = findChildObject(this, 'graph'); var setLogOutputColumns = function() { log.clearOutputColumns(); for(var c = 0; c < window.saveTemperatureColumns.length; c++) { log.addOutputTemperatureColumn(window.saveTemperatureColumns[c]); } for(var c = 0; c < window.saveAnnotationColumns.length; c++) { log.addOutputAnnotationColumn(window.saveAnnotationColumns[c]); } }; var saveMenu = findChildObject(this, 'save'); saveMenu.triggered.connect(function() { var filename = QFileDialog.getSaveFileName(window, "Save Log As…", QSettings.value("script/lastDir", "") + "/"); if(filename != "") { var file = new QFile(filename); setLogOutputColumns(); log.saveXML(file); QSettings.setValue("script/lastDir", dir(filename)); } }); var printMenu = findChildObject(this, 'print'); printMenu.triggered.connect(function() { var exportWindow = createWindow("print"); exportWindow.windowTitle = "Typica - Print"; exportWindow.log = log; }); var exportMenu = findChildObject(this, 'export'); exportMenu.triggered.connect(function() { var filename = QFileDialog.getSaveFileName(window, "Export CSV As…", QSettings.value("script/lastDir", "") + "/"); if(filename != "") { var file = new QFile(filename); setLogOutputColumns(); log.saveCSV(file); QSettings.setValue("script/lastDir", dir(filename)); } }); var svgExportMenu = findChildObject(this, 'svgexport'); svgExportMenu.triggered.connect(function() { var exportWindow = createWindow("exportWindow"); exportWindow.windowTitle = "Typica - Export XHTML+SVG"; exportWindow.log = log; }); var quitMenu = findChildObject(this, 'quit'); quitMenu.triggered.connect(function() { window.close(); Application.quit(); }); var showC = findChildObject(this, 'showC'); showC.triggered.connect(function() { log.setDisplayUnits(Units.Celsius); graph.showC(); }); var showF = findChildObject(this, 'showF'); showF.triggered.connect(function() { log.setDisplayUnits(Units.Fahrenheit); graph.showF(); }); var v1 = findChildObject(this, 'ms'); v1.triggered.connect(log.LOD_ms); var v2 = findChildObject(this, '1s'); v2.triggered.connect(log.LOD_1s); var v3 = findChildObject(this, '5s'); v3.triggered.connect(log.LOD_5s); var v4 = findChildObject(this, '10s'); v4.triggered.connect(log.LOD_10s); var v5 = findChildObject(this, '15s'); v5.triggered.connect(log.LOD_15s); var v6 = findChildObject(this, '30s'); v6.triggered.connect(log.LOD_30s); var v7 = findChildObject(this, '1m'); v7.triggered.connect(log.LOD_1m); ]]> </program> </window>