@** A window for program configuration. \noindent A previous version of Typica introduced a window specifically for configuring the measurement pipeline in Typica. This is a fairly limited subset of things that should be more easily configurable in Typica. Starting with version 1.6 that window has been converted into a widget that is available through a tab in a more general configuration window with other tabs available for settings that do not logically belong with a single part of the measurement pipeline. @= class SettingsWindow : public QMainWindow@/ {@/ @[Q_OBJECT@]@; public:@/ SettingsWindow(); }; @ The constructor takes care of the initial interface setup. Most of the functionality is delegated to more specialized widgets that are available through a set of tabs. @s QTabWidget int @s GraphSettingsWidget int @= SettingsWindow::SettingsWindow() : QMainWindow(NULL) { QTabWidget *settingsTab = new QTabWidget; DeviceConfigurationWindow *deviceSettings = new DeviceConfigurationWindow; settingsTab->addTab(deviceSettings, tr("Roasters")); GraphSettingsWidget *graphSettings = new GraphSettingsWidget; settingsTab->addTab(graphSettings, tr("Graph")); ColorSettingsWidget *colorSettings = new ColorSettingsWidget; settingsTab->addTab(colorSettings, tr("Color")); AdvancedSettingsWidget *advancedSettings = new AdvancedSettingsWidget; settingsTab->addTab(advancedSettings, tr("Advanced")); setCentralWidget(settingsTab); } @ This widget is made available to the host environment for access wherever appropriate. @= QScriptValue constructSettingsWindow(QScriptContext *context, QScriptEngine *engine); @ The constructor is trivial. @= QScriptValue constructSettingsWindow(QScriptContext *, QScriptEngine *engine) { QScriptValue object = engine->newQObject(new SettingsWindow); return object; } @ The host environment is informed of this as usual. @= constructor = engine->newFunction(constructSettingsWindow); value = engine->newQMetaObject(&DeviceConfigurationWindow::staticMetaObject, constructor); engine->globalObject().setProperty("SettingsWindow", value); @i graphsettings.w @i colorsettings.w @i advancedsettings.w