summaryrefslogtreecommitdiffstats
path: root/kjsembed/docs/examples/madminute
diff options
context:
space:
mode:
Diffstat (limited to 'kjsembed/docs/examples/madminute')
-rw-r--r--kjsembed/docs/examples/madminute/configdialog.ui274
-rw-r--r--kjsembed/docs/examples/madminute/helpdialog.ui85
-rwxr-xr-xkjsembed/docs/examples/madminute/madminute.js161
-rw-r--r--kjsembed/docs/examples/madminute/madminute.ui361
4 files changed, 881 insertions, 0 deletions
diff --git a/kjsembed/docs/examples/madminute/configdialog.ui b/kjsembed/docs/examples/madminute/configdialog.ui
new file mode 100644
index 00000000..3760c11d
--- /dev/null
+++ b/kjsembed/docs/examples/madminute/configdialog.ui
@@ -0,0 +1,274 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>configDialog</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>configDialog</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>258</width>
+ <height>204</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Configure Mad Minute</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <property name="modal">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&lt;H2&gt;General Settings&lt;/H2&gt;</string>
+ </property>
+ </widget>
+ <widget class="Line" row="1" column="0">
+ <property name="name">
+ <cstring>line2</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>HLine</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Operations:</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>addition</cstring>
+ </property>
+ <property name="text">
+ <string>Addition</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>subtraction</cstring>
+ </property>
+ <property name="text">
+ <string>Subtraction</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Time:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>time</cstring>
+ </property>
+ <property name="suffix">
+ <string> seconds</string>
+ </property>
+ <property name="maxValue">
+ <number>120</number>
+ </property>
+ <property name="minValue">
+ <number>30</number>
+ </property>
+ <property name="value">
+ <number>30</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="6" column="0">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonHelp</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Help</string>
+ </property>
+ <property name="accel">
+ <string>F1</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="4" column="0">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="5" column="0">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Maximum Value</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>the maximum value the number will reach</string>
+ </property>
+ </widget>
+ <widget class="KIntNumInput">
+ <property name="name">
+ <cstring>maximum</cstring>
+ </property>
+ <property name="value">
+ <number>20</number>
+ </property>
+ <property name="minValue">
+ <number>5</number>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>the maximum value the number will reach</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>configDialog</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>configDialog</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+</includehints>
+</UI>
diff --git a/kjsembed/docs/examples/madminute/helpdialog.ui b/kjsembed/docs/examples/madminute/helpdialog.ui
new file mode 100644
index 00000000..baa1a4e4
--- /dev/null
+++ b/kjsembed/docs/examples/madminute/helpdialog.ui
@@ -0,0 +1,85 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>helpDialog</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>helpDialog</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>343</width>
+ <height>398</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Help Using MadMinute</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <property name="modal">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QTextBrowser">
+ <property name="name">
+ <cstring>helpText</cstring>
+ </property>
+ <property name="text">
+ <string>&lt;h2&gt;Mad Minute&lt;/h2&gt;
+This is a small mathdrill program to help students become faster at simple addition and subtraction. To configure the application select the "&lt;b&gt;Preferences&lt;/b&gt;" and set the time of the drill and the types of problems that are covered. Currently addition and subtraction are covered.
+
+Once the application is configured the student can start the drill by pressing the "&lt;b&gt;Go&lt;/b&gt;" button or "&lt;tt&gt;Ctrl+G&lt;/tt&gt;". Once the drill is started the student may answer the questions as fast as they can and press the "&lt;tt&gt;Enter&lt;/tt&gt; key to submit the answer. The drill will notify the student when it is complete.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout9</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>221</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>pushButton7</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>pushButton7</sender>
+ <signal>clicked()</signal>
+ <receiver>helpDialog</receiver>
+ <slot>accept()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/kjsembed/docs/examples/madminute/madminute.js b/kjsembed/docs/examples/madminute/madminute.js
new file mode 100755
index 00000000..a2762cde
--- /dev/null
+++ b/kjsembed/docs/examples/madminute/madminute.js
@@ -0,0 +1,161 @@
+#!/usr/bin/env kjscmd
+
+StdDirs.addResourceType("madminute", StdDirs.kde_default("data") + "/madminute");
+try {
+ //var view = Factory.loadui( StdDirs.findResource("madminute", "madminute.ui"), this, mw );
+ var view = Factory.loadui( "madminute.ui" );
+
+} catch( err ) {
+ alert( err );
+ exit(0);
+}
+var Addition = 1;
+var Subtraction = 2;
+
+var config = new Config("madminute");
+config.setGroup("Game Options");
+// Timer
+var timer = new QTimer(this);
+// Current Argument 1
+var arg1 = 0;
+// Current Argument 2
+var arg2 = 0;
+// Current Operation
+var operation = Addition;
+// Acceptable operations 1 = Addition 2 = Subtraction 3 = Both
+var operations = config.readNumEntry("Operations", Addition);
+// Time to run the drill
+var drillTime = config.readNumEntry("Drill Time", 60);
+// maxInput is maximum value for the numbers in the question
+var maxInput = config.readNumEntry("Maximum Input", 10);
+var total = 0;
+
+view.connect(view.fileExitAction, 'activated()', application, 'quit()');
+view.connect(view.fileGoAction, 'activated()', this, 'start');
+view.connect(view.editPreferencesAction, 'activated()', this, 'configure');
+view.connect(view.helpAboutAction, 'activated()', this, 'about');
+view.connect(view.helpHelpAction, 'activated()', this, 'helpDialog');
+
+
+view.connect( view.qt_central_widget.answer, 'returnPressed()', this, 'checkAnswer' );
+view.connect( timer, 'timeout()', this, 'countdown');
+
+view.qt_central_widget.answer.enabled = false;
+
+view.show();
+// Run the main event loop.
+application.exec();
+
+function configure()
+{
+ //var configUI = Factory.loadui( StdDirs.findResource("madminute", "configdialog.ui"), this, mw );
+ var configUI = Factory.loadui( "configdialog.ui" );
+ configUI.connect( configUI.buttonHelp, 'clicked()', this, 'helpDialog');
+ configUI.addition.checked = false;
+ configUI.subtraction.checked == false;
+ configUI.time.value = drillTime;
+ configUI.maximum.value = maxInput;
+ if( operations == 1 )
+ configUI.addition.checked = true;
+ if( operations == 2 )
+ configUI.subtraction.checked = true;
+ if( operations == 3 )
+ {
+ configUI.addition.checked = true;
+ configUI.subtraction.checked = true;
+ }
+
+ if ( configUI.exec() == 1 )
+ {
+ operations = 0;
+ if( configUI.addition.checked == true )
+ operations += 1;
+ if( configUI.subtraction.checked == true )
+ operations += 2;
+ drillTime = configUI.time.value;
+ maxInput = configUI.maximum.value;
+ config.setGroup("Game Options");
+ config.writeNumEntry("Operations",operations);
+ config.writeNumEntry("Drill Time", drillTime );
+ config.writeNumEntry("Maximum Input", maxInput );
+ config.sync();
+ }
+}
+
+function about()
+{
+ alert("<h2>MadMinute 1.0</h2>A math tutoring drill to help students master basic math skills.<br>Copyright 2004 Ian Reinhart Geiser <a href='mailto:geiseri@kde.org'>geiseri@kde.org</a>");
+}
+
+function helpDialog()
+{
+ //var helpUI = Factory.loadui( StdDirs.findResource("madminute", "helpdialog.ui"), this, mw );
+ var helpUI = Factory.loadui( "helpdialog.ui" );
+ helpUI.exec();
+}
+
+function askQuestion()
+{
+ arg1 = Math.floor( Math.random() * maxInput );
+ arg2 = Math.floor( Math.random() * maxInput );
+ if( operations == 3 )
+ operation = Math.floor( (Math.random() * 2)+1);
+ else
+ operation = operations;
+
+ var operationText = "";
+ if( operation == Addition )
+ operationText = " + ";
+ else if( operation == Subtraction )
+ {
+ operationText = " - ";
+ if( arg1 < arg2 )
+ {
+ var arg = arg1;
+ arg1 = arg2;
+ arg2 = arg;
+ }
+ }
+ view.qt_central_widget.question.text = "<h2>" + arg1 + operationText + arg2 + "=</h2>";
+}
+
+function checkAnswer( )
+{
+ var answer = 0;
+ if( operation == Addition )
+ answer = (arg1 + arg2) ;
+ else if( operation == Subtraction )
+ answer = (arg1 - arg2) ;
+ if( view.qt_central_widget.answer.text == answer )
+ {
+ view.qt_central_widget.correct.value++;
+ }
+ total++;
+ askQuestion();
+ view.qt_central_widget.answer.text = "";
+}
+
+function start()
+{
+ askQuestion();
+ total = 0;
+ timer.start(1000);
+ view.fileGoAction.enabled = false;
+ view.qt_central_widget.answer.enabled = true;
+ view.qt_central_widget.answer.setFocus();
+ view.qt_central_widget.timeleft.progress = drillTime;
+ view.qt_central_widget.correct.value = 0;
+}
+
+function countdown()
+{
+ view.qt_central_widget.timeleft.progress--;
+ if( view.qt_central_widget.timeleft.progress == 0 )
+ {
+ timer.stop();
+ view.fileGoAction.enabled = true;
+ view.qt_central_widget.answer.enabled = false;
+ alert( "<h1>Times Up!</h1>You got " + view.qt_central_widget.correct.value + " out of " + total + " questions correct." );
+ }
+}
+
diff --git a/kjsembed/docs/examples/madminute/madminute.ui b/kjsembed/docs/examples/madminute/madminute.ui
new file mode 100644
index 00000000..dadab4d8
--- /dev/null
+++ b/kjsembed/docs/examples/madminute/madminute.ui
@@ -0,0 +1,361 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>MainWindow</class>
+<author>Ian Reinhart Geiser &lt;geiseri@kde.org&gt;</author>
+<widget class="QMainWindow">
+ <property name="name">
+ <cstring>MadMinute</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>362</width>
+ <height>212</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Mad Minute</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>3</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout8</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&lt;h1&gt;Question:&lt;/h1&gt;</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="Line">
+ <property name="name">
+ <cstring>line1</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>HLine</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout7</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>question</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>128</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>answer</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>4</number>
+ </property>
+ <property name="trapEnterKeyEvent" stdset="0">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>&lt;h2&gt;Time left:&lt;/h2&gt;</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter</set>
+ </property>
+ </widget>
+ <widget class="QProgressBar">
+ <property name="name">
+ <cstring>timeleft</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="totalSteps">
+ <number>60</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6_2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>&lt;h2&gt;Correct answers:&lt;/h2&gt;</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter</set>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>51</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLCDNumber">
+ <property name="name">
+ <cstring>correct</cstring>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="numDigits">
+ <number>2</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<menubar>
+ <property name="name">
+ <cstring>MenuBar</cstring>
+ </property>
+ <item text="&amp;File" name="fileMenu">
+ <action name="fileGoAction"/>
+ <separator/>
+ <action name="fileExitAction"/>
+ </item>
+ <item text="&amp;Edit" name="Edit">
+ <action name="editPreferencesAction"/>
+ </item>
+ <item text="&amp;Help" name="helpMenu">
+ <action name="helpHelpAction"/>
+ <separator/>
+ <action name="helpAboutAction"/>
+ </item>
+</menubar>
+<toolbars>
+ <toolbar dock="2">
+ <property name="name">
+ <cstring>toolBar</cstring>
+ </property>
+ <property name="label">
+ <string>Tools</string>
+ </property>
+ <action name="fileGoAction"/>
+ <action name="fileExitAction"/>
+ </toolbar>
+</toolbars>
+<actions>
+ <action>
+ <property name="name">
+ <cstring>fileGoAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="text">
+ <string>Go...</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Go...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+G</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileExitAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="text">
+ <string>Exit</string>
+ </property>
+ <property name="menuText">
+ <string>E&amp;xit</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpHelpAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="text">
+ <string>Help...</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Help...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+H</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpAboutAction</cstring>
+ </property>
+ <property name="text">
+ <string>About</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;About</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editPreferencesAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image3</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Preferences...</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Preferences...</string>
+ </property>
+ <property name="toolTip">
+ <string>Preferences...</string>
+ </property>
+ </action>
+</actions>
+<images>
+ <image name="image0">
+ <data format="PNG" length="1197">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000047449444154388d85954d881c4518869fe954c7eaa447a7704752eaae6925c2b0041dff60050dee4554f09083889780ab8778080a8a821ea3b9683cede610c82d5efc3dad62400f4bb2c2c68c1174c4153bb84baadd8ca9d6b4a97252997898cd269a44bfcb4bd55bf5f4cbd7dd5535fea3da3bbf8b75aa9aa6424bc906ef0d5a6a67bc2fa4742bf3ef8ef7afb5b7f61fd009504f81bd1ba1c60876234243c8cf825e02731cd407edb0fbf081fd07ceff2f78e2959377f8cabea853fd8c13b2d1ba3589903099810f507a389203951b748bd249c161aa7cf7643a3bffe6bb6f86ab82db3b4fde06761f327bacbdd933f58842371cd96882739024e01c1060fe84e35827e1a36f72bca72b43fe6a9b0f3f9dd93f1300d65d9e34f4ed74b6297bf4f1fb93da6b4f248c36a0797dccdb9fc0b63bc155900888fb90dd14d3ba05b25b143f9c64c4a3ee2bfacd633bb68d2ecf7d3577610ddcbcebd93dc8ece9c936b51d0fc69cea3b92f53145e978622266f727967b6e4f284a07514cfe87a3be214648c7961bebb5b91f7a37fa818a533f7b68e2de8973eb862df87a42a7a37bb68cd5e5d44331651f9a22a6fa031031ea0678783ce1b9fd30d98a31d5253f163141407a9d6271d96feec9d671d59fcfa3f6ceaf63d04f39caeb1fdf0a45652140b7e7b001f29e5d7b070777c11b1f73852f01951a5443d67de5b797b41a9196ba09feeeecd62cf2804491f74092acaafac757737017bc7368d52fc0148ae92fe148aeb141453acdc62d7a2c32de689063307c72b7584d5c9855b5fcbb0eee82e939c82b98ed3af21e747b8004e38d46e8b1484abd016137660db596b0a8a021f4aaaa2bc017e19d1c20c1035a0ee7659a25045b8fbc3780a6dbb370063ac66081ee298bb3f051d75d157c119e572001e387ea2b0342459196da11fc5950cc97e0bca6b30879a9985d0642724df0e45ba053f0805c552d952798bf2253990258eaf61cd643b704ef212f879b8dbf369400a6022918523d98caac24c82292a95c01735c8b64908861020464e9f02fbbd8bb2b92caa19f3556d7a540700399ca1f1ba163a2e1d1a73e30e5f7bfcb00e0d8945ea6e29f3d9e9a7164abf39b1a97d69595055ffe49d93dd410f674043011de3e2c857adf96965623414968e9a1b6472ef5f8e5030cfd14da97f94a800be07dfec564a3730438b30e60e1d8c285e6d6ed3ffb10b74a6f6e7b6024ad55f490a24ec0f0f0d63abbdf336b63adea546e38ae826171390c8ae5ee518dd947bff39d409c593b84a6b6e9df967c76d4d31c5f2ecde62d37dd8e486054d5f9fcdba1d62e805675ac87d17a9d133dc7a902ba27f3a3edf54b7b46c2170bcdb4d9db3bbdf7fc1a78eeabb90b4fde2b4e17fdb453f66fdeb0b86236fbb3627d1814b54c29cab396469a602a4369030b3f1583c55f42756265f1333d58da9786d9058158d93bbdf71c5ce50679fda5d7235bd98d9d746ad27bbf5dcb6cdc78af1b2332a13224427b53fa1599ba1f65d53df460da39622bfbab4a5579cd1be462bdf0fc0b358f5f5fd26ad8a0c7907a8c60eb081511cc5f09b290a16336097bdae3cf48a49bd93f33b89cf1376f8d272940ee2b7c0000000049454e44ae426082</data>
+ </image>
+ <image name="image1">
+ <data format="PNG" length="1290">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004d149444154388dad95c18b1cc715c67fdd5b0bd5a637a98e6760ca48ce1644c42d2c875d64889428209dec0d092822979890201d0c91738a6fc644b6ff053be0837d11f6c1b0ca21201f1c5660c752b08c56b0e016ec921a7616aad10e9e22db680aa999f2a1676d27b9a62e4555bdfaea7bef7daf1e742391b0c0ff61cc7192e41018881795fc8911bca895320e1ecdf7d1802374d7da801612db06a490d086a8918b2e786b036fbfebc3a787c00910dfecc93faf3d65aea8f3bf8952789083046f4119fe63ce35d65b4c6e08de2295c67a1b8ba00837ae27d777ea2b2f8dc36b09c01f94fce90b4f9b4fca5f5f9e55f546d4f5044bc0088915605ab06d6000d4024c5ee00468240e30025c2e290289fdf066babe539f5900f8a5126fac5dbafca3eafee64c6ded2fb4d127fdef88d4febb490714e9e2638ba979662d6d9ed0e989232b693b1ea6593a4d5d9ba4e67b47d2f0a0490ad94bf72533f3b849b7ef6d0901a073f5a4171e5d3b6ce6a3c965627da01c18e4f98b14277f0e1914f38464072fe33e5fc77cf43ed60f31522536d4d1088913012de593298083389003a6044c4f263604564eaea15f5da738d3813299c2a68529b004faec05f41fd729974f7561536582901835c0411487aab0de920989f59e72b9a4f8ed652860ba7d87f0e1fb54c30a932b5c1b289f5a217bfe12688dfcc50b98ab16d758b494d87a0890a487fa33cae0040c728d3eff0af4355477f057dfc2dddde0f4f93fa15f7f8f72658dfa9fd799fcf51d3880eca8419f5a43e7ba4ba45a8616d2439d5a6f512d0425e1d9e3004cfef60e555d9129cd444c01a84540f634d5ce2df8c77ac7eae4055c3b99e30cd1cc81dd9c3121503e7dae331e4df03b15e591151c50e4a6f32c5fc6b6600625936ae3eb722b8f9dfee6fc1098396304d830e9d88e2b20609b1a0d4c1adbd935c34eb78d0360baef6011ea03074262fd10f96d6093ebb9f83500c5a0c449d97922a05073c66a1990e89ec1898cacafe11198bee93ccf07c07fc5d848891ddeec5ed205e50f56b1e30a291593a606c0353548891d571c2f4f75b62d7c31dac4e419d6db6fc5b80d98dc802cc8bc85ea4ec7faf95730474a6ce329a4eade930adb7856ca73f0e30b1df0ce065a0e4048746eb084eeab3cd753bfd73fec2f2fcd421c3d08695e8fc89e390dba40f47a148da7babb81dcdaa6dabdc5896757c87ef63bf86ec674dfd1def880d12cb08489a37b1fa7f65fe36157206d884669366b8f1994f87a88fcfb35b2e72e911d5b255b5ea568a6505714cb2f7795083081ecf30d262d185d62f72d5a69427babab3c8d4cacb718c0fa3a9a5c259bb7af51ba0acefc8ae2c469283228560f73cd646b03b979131b02461aec818b5a40b56731422602c005bf5b04052a605a99b8e0a3e9ad24616ce1a36b7cf1c9358e9767a1a9410d98da4d4012da80d1251cb8785c97c964eb066adfe15a7617004a21c647bdbb987d5fb32fc24c43740f7d5c9232ba5988fd87216eef6e46be74717baf8a4b24d1cddab8949a387a308a196dac76efc5706323a98775f259135e5a0092dba1dd5d7d18c8c793b347fbc712d93649f1582f1ddddf4b8de8a5ed782feda7836e3dcbd3b05ba55923d2d1cec769df87b4b97b3be1f66749bde7d3eacbf6ca6bf79babffdbf3242f6a298d6d7924054968e9624f402209040cdff4bcd08668845c746db0aee5edbf8cbb9ef715f3313f39c80fcae40000000049454e44ae426082</data>
+ </image>
+ <image name="image2">
+ <data format="PNG" length="1007">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b649444154388d8d953d681c4714c77f7bec89397bc5ed9215dc1611b790e6440acba4c885a4f0419a54c2e9ae9555b870a5ca10630c6e84102e4c70714e6975318210a7085c29a508da26f80409ec2104bbe01337426bef200d6c8ad9b53e1239996678efddfce777f33ed6e23f567fad10b1c4c7c54142e090c59249b46ea90f9db3ae0a741f142eb084a607cc034d00a539c2661fcd10d88ad62df9bf846fad158ecae8872eab52d1eeb6a953c7faa20d49066818fe4981e6343a608cc386926c8e9e58d995c2b71e144d058f84cd4aa7c5b5e5af4038b0d082d729840ec4192cf8b0fd176c47f0728f77523140f370f4d43afa877049fab8e373b71332b3fca5210c04080d8d003805ea308d41f8104b485378fc1327293c43f2dde8a921af55c22aa32f6cee840133cb9f9b439e0dc22d4531a2005e080a7369cb87d5af99118a3b40bfd2ab55890a5d56439febb73f8391040f087c68d40d697e6c48392dc567cdc59e80860bb76f701d586ddf2fdcf3c44b4946bbd78178020248d419e13483e11ec41a7efcfd5c523cd84dcdefa9832b682bc91240adbf560834bd9b2dea4a1b8a510a8173767eb877e6f76c202f03c7e68d5fec80ca01415d38f4da770b61c7121f984f145657409442cb81577fc06266c45cdbf83b3e84ad1c1a0d00b6c7f06a6488d30c3c8115a7cc0b1bbf868b03343b3e8c2646a4da877ba6222abbd786f063239abc811f7620744d22431784497653691c5b4d8c239e40c785ed29346c88a6d0b28dedd9b07823873923fa3a868d5f40298831c471d97faadc6ba1cbb1d21c79024665dd4e33704bdbb3c19d8585f08cf4fb5f4d35601bd26a571a84c311705c8b2587d8ecef4e28c0fcedf7bb362481037999b017bf19d2a46ce0242bab2883a9a25019fbc0612d5ab7149a616073aa7449c04592288174023f47e6b2ca2fce133b20334e85c3301d58aaaae3add184b1d2305520044c357484b1d1b07b90130890f9a5b836769442ae18ab8cadf70d12ad5b12878d64c2dbd033efb7300752c042008b217cdb6d70b303fdeea5f81ca02051bc559a8d7460c6e8d9ac906c4ac5f3971127ae369d27e60c71e8425eb6722c219c2be31ec46f7276c69c2429cf81cd4aefc2d8ecdc2b9ab83c72352bdf7cca35d180d037c5dffda44c9832890d040c471049de25070c84c3c3f1937f199bd56adf2b1ca0df80d5964fbbe34feb41e859429b048d929c44368ae8203f4d6463ac341bc0663af8c0a0bf70c1fdc245b284434f65cc0b87a692a64e55c6be7018aa8cadea4d2faf2b85abd55a2984b0f94869664bd73170980e3efc31fd1b46ffa51cb01b5f6d0000000049454e44ae426082</data>
+ </image>
+ <image name="image3">
+ <data format="PNG" length="919">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000035e49444154388da5d44f681c6518c7f16fea56de815978a7a430537621532874da0ab341a18d14760b1e62f06229825ea2e2a182f4d22292830d45a4e45082b908896b21a71a8dc89a43211921261121c922c62d1e76722899c52ebb832e9d173b301e26a5cd1fc95a7f976767e6e133ef3c0f6c0fbbb2b1bcb56e64842bfb0cfc468481a2dd505fa2337a7ae0d8e6eefeae53f96ea9dcaa3f4c76e4ef2499bfbb9aac2ed4879f190698b9335f6efdbe0b4f9264e3ee56b234572ffe2f7cfa76a5bcf54b6b0f3e7dbbe27705ccdf592d4f7e5e71f77b363955996dd577c2f59f5bc9bff53f9d43c15fc1b089e54d8c4fef689e189f761d6117456f94de789496762644c646f140d8b66c8606fb659fb4bdb19b293e7673da75f2056f60f094d4b21a44c0612002bbd7c6eff8f240b816f8908753e76c696179374627871d697bce594b6240bb1d81f6a42effba8c8aadcd83e08c8c8d9007483b67110d4a69dd93e50b2ff683041e80a16b3b2a6d81ead40e849fcb9fe83f993b9a77e3e7638e9b5944af207b4423680564f52c41ab4d56d7f0ff08507fc6284dd1a9c7eec41bebdaa74347ef7d32d754fb8ec214e6e817b3df842216444db084b15dad27d70d2014b41b0a5bb7289d9c73ed13f62d62bc8753851df34e924402f400bcffde988bc07bf7b58b5298604b1bbfe363eb69b532267ed34f17b7721527f6089b01d6799bb54555b5a174e4c35af8f40b7a1eff18b93ce9fa1dff56a1af505442e19836b5fb352c61f26a69009933a87957710eafa105ebe90e3ac00b03048b7e155d948e5d590ff7c08ff3faa5913e81d5a7088a027e5020cf9985f280bb200bb187ca041842000a1044b142cb5b2c78546d281dbf919e7c0fbc5f66ae15ae5f38637d6c64d7a0574047812ed213eb405381eef09bd7a8a2533a3d520bbb82373e72a41fe30d9570d123901a84a4e36846291e02b1c6f71e550b4a5dc100aba38ef443bc8baf982eb93045ef2b20025f4116c8001d87af571adf760d032c7d909efcadb3b89c17d068a77810a6a3510af292b5458343ff057ef9b35a68e994a67ea44a55a69f9fdb0633db4d0202a2ee96b73b95b71db919e3bd73a6ed6a39052fd950f5d33fab18167eb2ba5bde7e99b9ecc84688f7a6db760d3d04292054ac6d9aacdcd7469f190618bbe4481e31eb64298699364219a11f337eedabdaf57f008dc09ee67a81bacc0000000049454e44ae426082</data>
+ </image>
+</images>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>