Index: README
===================================================================
--- README	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ README	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,3 +1,3 @@
-TSPSG - TSP Solver and Generator
+TSPSG: TSP Solver and Generator
 Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
 
Index: i18n/en.ts
===================================================================
--- i18n/en.ts	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ i18n/en.ts	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -16,41 +16,41 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="156"/>
+        <location filename="../src/tspmodel.cpp" line="147"/>
         <source>Unexpected end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="158"/>
+        <location filename="../src/tspmodel.cpp" line="149"/>
         <source>Corrupt data read. File possibly corrupted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/tspmodel.cpp" line="151"/>
+        <source>Unknown error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="152"/>
         <location filename="../src/tspmodel.cpp" line="160"/>
-        <source>Unknown error.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="169"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Task Load</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <location filename="../src/tspmodel.cpp" line="152"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Unable to load task:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="169"/>
+        <location filename="../src/tspmodel.cpp" line="160"/>
         <source>Unable to open task file.
 Error: %1</source>
@@ -58,11 +58,11 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="184"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
         <source>Unknown file format or file is corrupted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="243"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <source>File version is newer than application supports.
 Please, try to update application.</source>
@@ -70,6 +70,6 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="213"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="243"/>
         <source>Unexpected data read.
 File is possibly corrupted.</source>
@@ -77,17 +77,17 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <location filename="../src/tspmodel.cpp" line="273"/>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Task Save</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
+        <location filename="../src/tspmodel.cpp" line="273"/>
         <source>Unable to create task file.
 Error: %1
@@ -96,13 +96,41 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Unable to save task.
 Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTSPSolver</name>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="137"/>
+        <source>%v of %m parts found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="141"/>
+        <source>Calculating optimal route...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="142"/>
+        <source>Solution Progress</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>Solution Result</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>This task has no solution.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -111,81 +139,129 @@
     <name>MainWindow</name>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
-        <location filename="../src/mainwindow.cpp" line="323"/>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
+        <location filename="../src/mainwindow.cpp" line="439"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>Language change</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
         <source>Unable to load translation language.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
+        <location filename="../src/mainwindow.cpp" line="181"/>
         <source>New Task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
-        <location filename="../src/mainwindow.cpp" line="173"/>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <location filename="../src/mainwindow.cpp" line="181"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Would you like to save changes in current task?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="173"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
         <source>Task Open</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="180"/>
+        <location filename="../src/mainwindow.cpp" line="202"/>
         <source>All Supported Formats</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="181"/>
-        <location filename="../src/mainwindow.cpp" line="182"/>
+        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="204"/>
         <source>%1 Task Files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="183"/>
-        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="205"/>
+        <location filename="../src/mainwindow.cpp" line="232"/>
+        <location filename="../src/mainwindow.cpp" line="251"/>
         <source>All Files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="202"/>
+        <location filename="../src/mainwindow.cpp" line="230"/>
+        <source>HTML Files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="231"/>
+        <source>OpenDocument Files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="250"/>
         <source>%1 Task File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>Settings Changed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>You have changed color settings.
+Do you wish to apply them to current solution text?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Data error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Error in cell [Row %1; Column %2]: Invalid data format.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>Solution error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>There was an error while solving the task.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="323"/>
+        <location filename="../src/mainwindow.cpp" line="350"/>
+        <source>Variant #%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="351"/>
+        <source>Task:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="354"/>
+        <location filename="../src/mainwindow.cpp" line="380"/>
+        <source>Solution of Variant #%1 task</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="361"/>
+        <source>Step #%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="364"/>
+        <source>This step has alternate candidates for branching.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="376"/>
+        <source>Optimal path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="378"/>
+        <source>The price is &lt;b&gt;%1&lt;/b&gt; units.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="439"/>
         <source>Language will be autodetected on next application start.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>You have language autodetection turned on.
 It needs to be off.
@@ -194,125 +270,131 @@
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Application Close</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="56"/>
-        <location filename="../ui/mainwindow.ui" line="35"/>
+        <location filename="../ui/mainwindow.ce.ui" line="53"/>
+        <location filename="../ui/mainwindow.ui" line="41"/>
         <source>Task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="77"/>
-        <location filename="../ui/mainwindow.ui" line="56"/>
+        <location filename="../ui/mainwindow.ce.ui" line="74"/>
+        <location filename="../ui/mainwindow.ui" line="62"/>
         <source>&amp;Variant:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="90"/>
-        <location filename="../ui/mainwindow.ui" line="69"/>
+        <location filename="../ui/mainwindow.ce.ui" line="87"/>
+        <location filename="../ui/mainwindow.ui" line="75"/>
         <source>Number of variant</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="100"/>
-        <location filename="../ui/mainwindow.ui" line="79"/>
+        <location filename="../ui/mainwindow.ce.ui" line="97"/>
+        <location filename="../ui/mainwindow.ui" line="85"/>
         <source>&amp;Cities:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="113"/>
-        <location filename="../ui/mainwindow.ui" line="92"/>
+        <location filename="../ui/mainwindow.ce.ui" line="110"/>
+        <location filename="../ui/mainwindow.ui" line="98"/>
         <source>Number of cities</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="144"/>
-        <location filename="../ui/mainwindow.ui" line="123"/>
+        <location filename="../ui/mainwindow.ce.ui" line="141"/>
+        <location filename="../ui/mainwindow.ui" line="129"/>
         <source>Cost of travel from city to city</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/mainwindow.ce.ui" line="169"/>
+        <location filename="../ui/mainwindow.ui" line="157"/>
+        <source>Fill table with random numbers</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/mainwindow.ce.ui" line="172"/>
-        <location filename="../ui/mainwindow.ui" line="151"/>
-        <source>Fill table with random numbers</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="175"/>
-        <location filename="../ui/mainwindow.ui" line="154"/>
+        <location filename="../ui/mainwindow.ui" line="160"/>
         <source>Random</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/mainwindow.ce.ui" line="186"/>
+        <location filename="../ui/mainwindow.ui" line="174"/>
+        <source>Solve current task</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/mainwindow.ce.ui" line="189"/>
-        <location filename="../ui/mainwindow.ui" line="168"/>
-        <source>Solve current task</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="192"/>
-        <location filename="../ui/mainwindow.ui" line="171"/>
+        <location filename="../ui/mainwindow.ui" line="177"/>
         <source>Solve</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="206"/>
-        <location filename="../ui/mainwindow.ui" line="185"/>
+        <location filename="../ui/mainwindow.ce.ui" line="203"/>
+        <location filename="../ui/mainwindow.ui" line="191"/>
         <source>Solution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="223"/>
-        <location filename="../ui/mainwindow.ui" line="202"/>
+        <location filename="../ui/mainwindow.ce.ui" line="212"/>
+        <location filename="../ui/mainwindow.ui" line="200"/>
         <source>Solution steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="233"/>
-        <location filename="../ui/mainwindow.ui" line="212"/>
-        <source>Solution graph</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="259"/>
-        <location filename="../ui/mainwindow.ui" line="240"/>
+        <location filename="../ui/mainwindow.ce.ui" line="242"/>
+        <location filename="../ui/mainwindow.ui" line="230"/>
         <source>&amp;File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="266"/>
-        <location filename="../ui/mainwindow.ui" line="244"/>
+        <location filename="../ui/mainwindow.ce.ui" line="249"/>
+        <location filename="../ui/mainwindow.ui" line="234"/>
         <source>Save &amp;As...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="348"/>
-        <location filename="../ui/mainwindow.ui" line="361"/>
+        <location filename="../ui/mainwindow.ce.ui" line="277"/>
+        <location filename="../ui/mainwindow.ui" line="265"/>
+        <source>&amp;Language</source>
+        <comment>Please, append &quot; / Language&quot; when translating this string.</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="328"/>
+        <location filename="../ui/mainwindow.ui" line="351"/>
         <source>Solution S&amp;teps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="362"/>
-        <location filename="../ui/mainwindow.ui" line="375"/>
+        <location filename="../ui/mainwindow.ce.ui" line="342"/>
+        <location filename="../ui/mainwindow.ui" line="365"/>
         <source>Solution &amp;Graph</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="466"/>
-        <location filename="../ui/mainwindow.ui" line="479"/>
+        <location filename="../ui/mainwindow.ce.ui" line="359"/>
+        <source>Solution...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="449"/>
+        <location filename="../ui/mainwindow.ui" line="469"/>
         <source>Context &amp;Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="557"/>
-        <location filename="../ui/mainwindow.ui" line="570"/>
+        <location filename="../ui/mainwindow.ce.ui" line="540"/>
+        <location filename="../ui/mainwindow.ui" line="556"/>
         <source>&amp;Save</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="287"/>
-        <location filename="../ui/mainwindow.ui" line="268"/>
+        <location filename="../ui/mainwindow.ce.ui" line="267"/>
+        <location filename="../ui/mainwindow.ui" line="255"/>
         <source>&amp;Settings</source>
         <translation type="unfinished"></translation>
@@ -325,309 +407,300 @@
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="297"/>
-        <location filename="../ui/mainwindow.ui" line="278"/>
-        <source>&amp;Language</source>
-        <extracomment>Please, append &quot; / Language&quot; when translating this string.
-----------
-Please, append &quot; / Language&quot; when translating this string.</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="313"/>
-        <location filename="../ui/mainwindow.ui" line="294"/>
+        <location filename="../ui/mainwindow.ce.ui" line="293"/>
+        <location filename="../ui/mainwindow.ui" line="281"/>
         <source>&amp;Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="351"/>
-        <location filename="../ui/mainwindow.ui" line="364"/>
+        <location filename="../ui/mainwindow.ce.ui" line="331"/>
+        <location filename="../ui/mainwindow.ui" line="354"/>
         <source>Save solution steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="354"/>
-        <location filename="../ui/mainwindow.ui" line="367"/>
+        <location filename="../ui/mainwindow.ce.ui" line="334"/>
+        <location filename="../ui/mainwindow.ui" line="357"/>
         <source>Save solution steps only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/mainwindow.ce.ui" line="345"/>
+        <location filename="../ui/mainwindow.ui" line="368"/>
+        <source>Save solution graph</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="348"/>
+        <location filename="../ui/mainwindow.ui" line="371"/>
+        <source>Save solution graph only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="362"/>
+        <location filename="../ui/mainwindow.ui" line="382"/>
+        <source>Save solution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/mainwindow.ce.ui" line="365"/>
-        <location filename="../ui/mainwindow.ui" line="378"/>
-        <source>Save solution graph</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="368"/>
-        <location filename="../ui/mainwindow.ui" line="381"/>
-        <source>Save solution graph only</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="376"/>
-        <location filename="../ui/mainwindow.ui" line="389"/>
-        <source>&amp;Solution</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="379"/>
-        <location filename="../ui/mainwindow.ui" line="392"/>
-        <source>Save solution</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="382"/>
-        <location filename="../ui/mainwindow.ui" line="395"/>
+        <location filename="../ui/mainwindow.ui" line="385"/>
         <source>Save solution steps and graph</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="391"/>
-        <location filename="../ui/mainwindow.ui" line="404"/>
+        <location filename="../ui/mainwindow.ce.ui" line="374"/>
+        <location filename="../ui/mainwindow.ui" line="394"/>
         <source>&amp;New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="394"/>
-        <location filename="../ui/mainwindow.ui" line="407"/>
+        <location filename="../ui/mainwindow.ce.ui" line="377"/>
+        <location filename="../ui/mainwindow.ui" line="397"/>
         <source>New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="397"/>
-        <location filename="../ui/mainwindow.ui" line="410"/>
+        <location filename="../ui/mainwindow.ce.ui" line="380"/>
+        <location filename="../ui/mainwindow.ui" line="400"/>
         <source>New task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="400"/>
-        <location filename="../ui/mainwindow.ui" line="413"/>
+        <location filename="../ui/mainwindow.ce.ui" line="383"/>
+        <location filename="../ui/mainwindow.ui" line="403"/>
         <source>Create new task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="403"/>
-        <location filename="../ui/mainwindow.ui" line="416"/>
+        <location filename="../ui/mainwindow.ce.ui" line="386"/>
+        <location filename="../ui/mainwindow.ui" line="406"/>
         <source>Ctrl+N</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="412"/>
-        <location filename="../ui/mainwindow.ui" line="425"/>
+        <location filename="../ui/mainwindow.ce.ui" line="395"/>
+        <location filename="../ui/mainwindow.ui" line="415"/>
         <source>&amp;Open...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="415"/>
-        <location filename="../ui/mainwindow.ui" line="428"/>
+        <location filename="../ui/mainwindow.ce.ui" line="398"/>
+        <location filename="../ui/mainwindow.ui" line="418"/>
         <source>Open...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="418"/>
-        <location filename="../ui/mainwindow.ui" line="431"/>
+        <location filename="../ui/mainwindow.ce.ui" line="401"/>
+        <location filename="../ui/mainwindow.ui" line="421"/>
         <source>Open task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="421"/>
-        <location filename="../ui/mainwindow.ui" line="434"/>
+        <location filename="../ui/mainwindow.ce.ui" line="404"/>
+        <location filename="../ui/mainwindow.ui" line="424"/>
         <source>Open saved task</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="424"/>
-        <location filename="../ui/mainwindow.ui" line="437"/>
+        <location filename="../ui/mainwindow.ce.ui" line="407"/>
+        <location filename="../ui/mainwindow.ui" line="427"/>
         <source>Ctrl+O</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="433"/>
-        <location filename="../ui/mainwindow.ui" line="446"/>
+        <location filename="../ui/mainwindow.ce.ui" line="416"/>
+        <location filename="../ui/mainwindow.ui" line="436"/>
         <source>&amp;Preferences...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="436"/>
-        <location filename="../ui/mainwindow.ui" line="449"/>
+        <location filename="../ui/mainwindow.ce.ui" line="419"/>
+        <location filename="../ui/mainwindow.ui" line="439"/>
         <source>Preferences...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="439"/>
-        <location filename="../ui/mainwindow.ui" line="452"/>
+        <location filename="../ui/mainwindow.ce.ui" line="422"/>
+        <location filename="../ui/mainwindow.ui" line="442"/>
         <source>Application preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="451"/>
-        <location filename="../ui/mainwindow.ui" line="464"/>
+        <location filename="../ui/mainwindow.ce.ui" line="434"/>
+        <location filename="../ui/mainwindow.ui" line="454"/>
         <source>&amp;Contents</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="454"/>
-        <location filename="../ui/mainwindow.ui" line="467"/>
+        <location filename="../ui/mainwindow.ce.ui" line="437"/>
+        <location filename="../ui/mainwindow.ui" line="457"/>
         <source>Open help contents</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="469"/>
-        <location filename="../ui/mainwindow.ui" line="482"/>
+        <location filename="../ui/mainwindow.ce.ui" line="452"/>
+        <location filename="../ui/mainwindow.ui" line="472"/>
         <source>Open context help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="478"/>
-        <location filename="../ui/mainwindow.ui" line="491"/>
+        <location filename="../ui/mainwindow.ce.ui" line="461"/>
+        <location filename="../ui/mainwindow.ui" line="481"/>
         <source>&amp;About...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="481"/>
-        <location filename="../ui/mainwindow.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="464"/>
+        <location filename="../ui/mainwindow.ui" line="484"/>
         <source>About...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="484"/>
-        <location filename="../ui/mainwindow.ui" line="497"/>
+        <location filename="../ui/mainwindow.ce.ui" line="467"/>
+        <location filename="../ui/mainwindow.ui" line="487"/>
         <source>About application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="493"/>
-        <location filename="../ui/mainwindow.ui" line="506"/>
+        <location filename="../ui/mainwindow.ce.ui" line="476"/>
+        <location filename="../ui/mainwindow.ui" line="496"/>
         <source>E&amp;xit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="496"/>
-        <location filename="../ui/mainwindow.ui" line="509"/>
+        <location filename="../ui/mainwindow.ce.ui" line="479"/>
+        <location filename="../ui/mainwindow.ui" line="499"/>
         <source>Exit application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="505"/>
-        <location filename="../ui/mainwindow.ui" line="518"/>
+        <location filename="../ui/mainwindow.ce.ui" line="488"/>
+        <location filename="../ui/mainwindow.ui" line="504"/>
         <source>&amp;Task...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="508"/>
-        <location filename="../ui/mainwindow.ui" line="521"/>
+        <location filename="../ui/mainwindow.ce.ui" line="491"/>
+        <location filename="../ui/mainwindow.ui" line="507"/>
         <source>Task...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../ui/mainwindow.ce.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="543"/>
+        <location filename="../ui/mainwindow.ui" line="510"/>
+        <location filename="../ui/mainwindow.ui" line="562"/>
+        <source>Save task</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="497"/>
+        <location filename="../ui/mainwindow.ui" line="513"/>
+        <source>Save task to file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="500"/>
+        <location filename="../ui/mainwindow.ui" line="516"/>
+        <source>Ctrl+S</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../ui/mainwindow.ce.ui" line="511"/>
-        <location filename="../ui/mainwindow.ce.ui" line="560"/>
-        <location filename="../ui/mainwindow.ui" line="524"/>
-        <location filename="../ui/mainwindow.ui" line="576"/>
-        <source>Save task</source>
+        <location filename="../ui/mainwindow.ui" line="527"/>
+        <source>&amp;Autodetect</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="528"/>
+        <source>English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="546"/>
+        <location filename="../ui/mainwindow.ui" line="565"/>
+        <source>Save current task</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="555"/>
+        <location filename="../ui/mainwindow.ui" line="574"/>
+        <source>About &amp;Qt...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="558"/>
+        <location filename="../ui/mainwindow.ui" line="577"/>
+        <source>About Qt...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="561"/>
+        <source>About Qt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="564"/>
+        <location filename="../ui/mainwindow.ui" line="580"/>
+        <source>About Qt library</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="271"/>
+        <location filename="../ui/mainwindow.ui" line="259"/>
+        <source>Select language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="274"/>
+        <location filename="../ui/mainwindow.ui" line="262"/>
+        <source>Select application language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="322"/>
+        <source>P&amp;rint Setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="325"/>
+        <source>Setup printing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="337"/>
+        <source>&amp;Print...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="340"/>
+        <source>Print solution results</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="343"/>
+        <source>Ctrl+P</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="356"/>
+        <location filename="../ui/mainwindow.ui" line="379"/>
+        <source>&amp;Solution...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="559"/>
+        <source>Save</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../ui/mainwindow.ce.ui" line="514"/>
-        <location filename="../ui/mainwindow.ui" line="527"/>
-        <source>Save task to file</source>
+        <location filename="../ui/mainwindow.ui" line="530"/>
+        <source>Detect language automatically</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../ui/mainwindow.ce.ui" line="517"/>
-        <location filename="../ui/mainwindow.ui" line="530"/>
-        <source>Ctrl+S</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="528"/>
-        <location filename="../ui/mainwindow.ui" line="541"/>
-        <source>&amp;Autodetect</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="545"/>
-        <source>English</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="563"/>
-        <location filename="../ui/mainwindow.ui" line="579"/>
-        <source>Save current task</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="572"/>
-        <location filename="../ui/mainwindow.ui" line="588"/>
-        <source>About &amp;Qt...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="575"/>
-        <location filename="../ui/mainwindow.ui" line="591"/>
-        <source>About Qt...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="578"/>
-        <source>About Qt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="581"/>
-        <location filename="../ui/mainwindow.ui" line="594"/>
-        <source>About Qt library</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="291"/>
-        <location filename="../ui/mainwindow.ui" line="272"/>
-        <source>Select language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="294"/>
-        <location filename="../ui/mainwindow.ui" line="275"/>
-        <source>Select application language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="332"/>
-        <source>P&amp;rint Setup...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="335"/>
-        <source>Setup printing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="347"/>
-        <source>&amp;Print...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="350"/>
-        <source>Print solution results</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="353"/>
-        <source>Ctrl+P</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ui" line="573"/>
-        <source>Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="531"/>
-        <location filename="../ui/mainwindow.ui" line="544"/>
-        <source>Detect language automatically</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="534"/>
-        <location filename="../ui/mainwindow.ui" line="547"/>
+        <location filename="../ui/mainwindow.ui" line="533"/>
         <source>Detect language automatically based on regional settings</source>
         <translation type="unfinished"></translation>
@@ -673,62 +746,68 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="202"/>
-        <location filename="../ui/settingsdialog.ui" line="288"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="184"/>
+        <location filename="../ui/settingsdialog.ui" line="235"/>
+        <source>Output settings:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../ui/settingsdialog.ce.ui" line="210"/>
+        <location filename="../ui/settingsdialog.ui" line="261"/>
         <source>Font color for printing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="205"/>
-        <location filename="../ui/settingsdialog.ui" line="291"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="213"/>
+        <location filename="../ui/settingsdialog.ui" line="264"/>
         <source>&amp;Color...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="219"/>
-        <location filename="../ui/settingsdialog.ui" line="305"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="193"/>
+        <location filename="../ui/settingsdialog.ui" line="244"/>
         <source>Font face for printing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="222"/>
-        <location filename="../ui/settingsdialog.ui" line="308"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="196"/>
+        <location filename="../ui/settingsdialog.ui" line="247"/>
         <source>&amp;Font...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="287"/>
-        <location filename="../ui/settingsdialog.ce.ui" line="293"/>
-        <location filename="../ui/settingsdialog.ui" line="377"/>
-        <location filename="../ui/settingsdialog.ui" line="383"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="279"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="285"/>
+        <location filename="../ui/settingsdialog.ui" line="331"/>
+        <location filename="../ui/settingsdialog.ui" line="337"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="290"/>
-        <location filename="../ui/settingsdialog.ui" line="380"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="282"/>
+        <location filename="../ui/settingsdialog.ui" line="334"/>
         <source>Get preferences help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="323"/>
-        <location filename="../ui/settingsdialog.ui" line="425"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="315"/>
+        <location filename="../ui/settingsdialog.ui" line="391"/>
         <source>Save new preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="326"/>
-        <location filename="../ui/settingsdialog.ui" line="428"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="318"/>
+        <location filename="../ui/settingsdialog.ui" line="394"/>
         <source>&amp;OK</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="343"/>
-        <location filename="../ui/settingsdialog.ui" line="445"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="335"/>
+        <location filename="../ui/settingsdialog.ui" line="411"/>
         <source>Close without saving preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="346"/>
-        <location filename="../ui/settingsdialog.ui" line="448"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="338"/>
+        <location filename="../ui/settingsdialog.ui" line="414"/>
         <source>&amp;Cancel</source>
         <translation type="unfinished"></translation>
@@ -740,30 +819,15 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="235"/>
-        <source>Print settings:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="249"/>
-        <source>&amp;Left margin:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="262"/>
-        <source>Left border margin for page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="329"/>
+        <location filename="../ui/settingsdialog.ui" line="283"/>
         <source>Restore main window state and position on application restart</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="332"/>
+        <location filename="../ui/settingsdialog.ui" line="286"/>
         <source>Save main window state and position</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="403"/>
+        <location filename="../ui/settingsdialog.ui" line="369"/>
         <source>Hover mouse pointer over dialog elements to get additional help</source>
         <translation type="unfinished"></translation>
Index: i18n/ru.ts
===================================================================
--- i18n/ru.ts	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ i18n/ru.ts	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -16,54 +16,55 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="156"/>
+        <location filename="../src/tspmodel.cpp" line="147"/>
         <source>Unexpected end of file.</source>
         <translation>Неожиданный конец файла.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="158"/>
+        <location filename="../src/tspmodel.cpp" line="149"/>
         <source>Corrupt data read. File possibly corrupted.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="160"/>
+        <translation>Прочитаны испорченные данные.
+Возможно, файл поврежден.</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="151"/>
         <source>Unknown error.</source>
         <translation>Неизвестная ошибка.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="169"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <location filename="../src/tspmodel.cpp" line="152"/>
+        <location filename="../src/tspmodel.cpp" line="160"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Task Load</source>
-        <translation>Загрузка задания</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <translation>Загрузка условия</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="152"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Unable to load task:</source>
-        <translation>Невозможно загрузить задание:</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="169"/>
+        <translation>Невозможно загрузить условие:</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="160"/>
         <source>Unable to open task file.
 Error: %1</source>
-        <translation>Невозможно открыть файл задания.
+        <translation>Невозможно открыть файл с условием.
 Ошибка: %1</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="184"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
         <source>Unknown file format or file is corrupted.</source>
         <translation>Неизвестный формат файла или файл поврежден.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="243"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <source>File version is newer than application supports.
 Please, try to update application.</source>
@@ -72,41 +73,72 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="213"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="243"/>
         <source>Unexpected data read.
 File is possibly corrupted.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <translation>Прочитано неожиданные данные.
+Возможно, файл поврежден.</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="273"/>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Task Save</source>
-        <translation>Сохранение задачи</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
+        <translation>Сохранение условия</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="273"/>
         <source>Unable to create task file.
 Error: %1
 Maybe, file is read-only?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <translation>Невозможно создать файл с условием.
+Ошибка: %1
+Возможно, файл только для чтения?</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Unable to save task.
 Error: %1</source>
-        <translation>Невозможно сохранить задание.
+        <translation>Невозможно сохранить условие.
 Ошибка: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTSPSolver</name>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="137"/>
+        <source>%v of %m parts found</source>
+        <translation>Найдено %v з %m переходов</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="141"/>
+        <source>Calculating optimal route...</source>
+        <translation>Расчет оптимального пути...</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="142"/>
+        <source>Solution Progress</source>
+        <translation>Состояние решения</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>Solution Result</source>
+        <translation>Результат решения</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>This task has no solution.</source>
+        <translation>У данной задачи нет решения.</translation>
     </message>
 </context>
@@ -114,81 +146,130 @@
     <name>MainWindow</name>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
-        <location filename="../src/mainwindow.cpp" line="323"/>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
+        <location filename="../src/mainwindow.cpp" line="439"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>Language change</source>
         <translation>Смена языка</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
         <source>Unable to load translation language.</source>
         <translation>Невозможно загрузить перевод.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="180"/>
+        <location filename="../src/mainwindow.cpp" line="202"/>
         <source>All Supported Formats</source>
         <translation>Все поддерживаемые форматы</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="183"/>
-        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="205"/>
+        <location filename="../src/mainwindow.cpp" line="232"/>
+        <location filename="../src/mainwindow.cpp" line="251"/>
         <source>All Files</source>
         <translation>Все файлы</translation>
     </message>
     <message>
+        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="204"/>
+        <source>%1 Task Files</source>
+        <translation>Файлы условий %1</translation>
+    </message>
+    <message>
         <location filename="../src/mainwindow.cpp" line="181"/>
-        <location filename="../src/mainwindow.cpp" line="182"/>
-        <source>%1 Task Files</source>
-        <translation>Файлы задач %1</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
         <source>New Task</source>
-        <translation>Новая задача</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
-        <location filename="../src/mainwindow.cpp" line="173"/>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <translation>Создать задачу</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="181"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Would you like to save changes in current task?</source>
         <translation>Желаете сохранить изменения в текущей задаче?</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="173"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
         <source>Task Open</source>
         <translation>Открытие задания</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="202"/>
+        <location filename="../src/mainwindow.cpp" line="230"/>
+        <source>HTML Files</source>
+        <translation>Файлы HTML</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="231"/>
+        <source>OpenDocument Files</source>
+        <translation>Файлы OpenDocument</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="250"/>
         <source>%1 Task File</source>
-        <translation>Файл задачи %1</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <translation>Файл условия %1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>Settings Changed</source>
+        <translation>Параметры изменены</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>You have changed color settings.
+Do you wish to apply them to current solution text?</source>
+        <translation>Вы изменили параметры цвета.
+Желаете применить их к текущему тексту решения?</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Data error</source>
         <translation>Ошибка в данных</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Error in cell [Row %1; Column %2]: Invalid data format.</source>
         <translation>Ошибка в ячейке [Строка %1; Колонка %2]: Неверный формат данных.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>Solution error</source>
-        <translation>Ошибка при решении</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>There was an error while solving the task.</source>
-        <translation>Во время решения задачи возникла ошибка.</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="323"/>
+        <location filename="../src/mainwindow.cpp" line="350"/>
+        <source>Variant #%1</source>
+        <translation>Вариант №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="351"/>
+        <source>Task:</source>
+        <translation>Условие:</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="354"/>
+        <location filename="../src/mainwindow.cpp" line="380"/>
+        <source>Solution of Variant #%1 task</source>
+        <translation>Решение варианта №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="361"/>
+        <source>Step #%1</source>
+        <translation>Шаг №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="364"/>
+        <source>This step has alternate candidates for branching.</source>
+        <translation>У этого шага есть альтернативные кандидаты на ветвление.</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="376"/>
+        <source>Optimal path:</source>
+        <translation>Оптимальный путь:</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="378"/>
+        <source>The price is &lt;b&gt;%1&lt;/b&gt; units.</source>
+        <translation>Стоимость - &lt;b&gt;%1&lt;/b&gt; единиц.</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="439"/>
         <source>Language will be autodetected on next application start.</source>
         <translation>Язык будет автоматически определен при следующем запуске приложения.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>You have language autodetection turned on.
 It needs to be off.
@@ -199,125 +280,131 @@
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Application Close</source>
         <translation>Закрытие приложения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="56"/>
-        <location filename="../ui/mainwindow.ui" line="35"/>
+        <location filename="../ui/mainwindow.ce.ui" line="53"/>
+        <location filename="../ui/mainwindow.ui" line="41"/>
         <source>Task</source>
-        <translation>Задача</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="77"/>
-        <location filename="../ui/mainwindow.ui" line="56"/>
+        <translation>Условие</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="74"/>
+        <location filename="../ui/mainwindow.ui" line="62"/>
         <source>&amp;Variant:</source>
         <translation>&amp;Вариант:</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="90"/>
-        <location filename="../ui/mainwindow.ui" line="69"/>
+        <location filename="../ui/mainwindow.ce.ui" line="87"/>
+        <location filename="../ui/mainwindow.ui" line="75"/>
         <source>Number of variant</source>
         <translation>Номер варианта</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="100"/>
-        <location filename="../ui/mainwindow.ui" line="79"/>
+        <location filename="../ui/mainwindow.ce.ui" line="97"/>
+        <location filename="../ui/mainwindow.ui" line="85"/>
         <source>&amp;Cities:</source>
         <translation>&amp;Городов:</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="113"/>
-        <location filename="../ui/mainwindow.ui" line="92"/>
+        <location filename="../ui/mainwindow.ce.ui" line="110"/>
+        <location filename="../ui/mainwindow.ui" line="98"/>
         <source>Number of cities</source>
         <translation>Количество городов, которые обходит коммивояжер</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="144"/>
-        <location filename="../ui/mainwindow.ui" line="123"/>
+        <location filename="../ui/mainwindow.ce.ui" line="141"/>
+        <location filename="../ui/mainwindow.ui" line="129"/>
         <source>Cost of travel from city to city</source>
         <translation>Стоимости переходов из города в город</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="172"/>
-        <location filename="../ui/mainwindow.ui" line="151"/>
+        <location filename="../ui/mainwindow.ce.ui" line="169"/>
+        <location filename="../ui/mainwindow.ui" line="157"/>
         <source>Fill table with random numbers</source>
         <translation>Заполнить таблицу случайными значениями</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="175"/>
-        <location filename="../ui/mainwindow.ui" line="154"/>
+        <location filename="../ui/mainwindow.ce.ui" line="172"/>
+        <location filename="../ui/mainwindow.ui" line="160"/>
         <source>Random</source>
         <translation>Случайно</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="189"/>
-        <location filename="../ui/mainwindow.ui" line="168"/>
+        <location filename="../ui/mainwindow.ce.ui" line="186"/>
+        <location filename="../ui/mainwindow.ui" line="174"/>
         <source>Solve current task</source>
         <translation>Решить текущую задачу</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="192"/>
-        <location filename="../ui/mainwindow.ui" line="171"/>
+        <location filename="../ui/mainwindow.ce.ui" line="189"/>
+        <location filename="../ui/mainwindow.ui" line="177"/>
         <source>Solve</source>
         <translation>Решить</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="206"/>
-        <location filename="../ui/mainwindow.ui" line="185"/>
+        <location filename="../ui/mainwindow.ce.ui" line="203"/>
+        <location filename="../ui/mainwindow.ui" line="191"/>
         <source>Solution</source>
         <translation>Решение</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="223"/>
-        <location filename="../ui/mainwindow.ui" line="202"/>
+        <location filename="../ui/mainwindow.ce.ui" line="212"/>
+        <location filename="../ui/mainwindow.ui" line="200"/>
         <source>Solution steps</source>
         <translation>Ход решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="233"/>
-        <location filename="../ui/mainwindow.ui" line="212"/>
-        <source>Solution graph</source>
-        <translation>Граф решения</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="259"/>
-        <location filename="../ui/mainwindow.ui" line="240"/>
+        <location filename="../ui/mainwindow.ce.ui" line="242"/>
+        <location filename="../ui/mainwindow.ui" line="230"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="266"/>
-        <location filename="../ui/mainwindow.ui" line="244"/>
+        <location filename="../ui/mainwindow.ce.ui" line="249"/>
+        <location filename="../ui/mainwindow.ui" line="234"/>
         <source>Save &amp;As...</source>
         <translation>Сохранить &amp;как...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="348"/>
-        <location filename="../ui/mainwindow.ui" line="361"/>
+        <location filename="../ui/mainwindow.ce.ui" line="277"/>
+        <location filename="../ui/mainwindow.ui" line="265"/>
+        <source>&amp;Language</source>
+        <comment>Please, append &quot; / Language&quot; when translating this string.</comment>
+        <translation>Язык / &amp;Language</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="328"/>
+        <location filename="../ui/mainwindow.ui" line="351"/>
         <source>Solution S&amp;teps</source>
         <translation>&amp;Ход решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="362"/>
-        <location filename="../ui/mainwindow.ui" line="375"/>
+        <location filename="../ui/mainwindow.ce.ui" line="342"/>
+        <location filename="../ui/mainwindow.ui" line="365"/>
         <source>Solution &amp;Graph</source>
         <translation>&amp;Граф решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="466"/>
-        <location filename="../ui/mainwindow.ui" line="479"/>
+        <location filename="../ui/mainwindow.ce.ui" line="359"/>
+        <source>Solution...</source>
+        <translation>Решение...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="449"/>
+        <location filename="../ui/mainwindow.ui" line="469"/>
         <source>Context &amp;Help</source>
         <translation>&amp;Контекстная справка</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="557"/>
-        <location filename="../ui/mainwindow.ui" line="570"/>
+        <location filename="../ui/mainwindow.ce.ui" line="540"/>
+        <location filename="../ui/mainwindow.ui" line="556"/>
         <source>&amp;Save</source>
         <translation>Со&amp;хранить</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="287"/>
-        <location filename="../ui/mainwindow.ui" line="268"/>
+        <location filename="../ui/mainwindow.ce.ui" line="267"/>
+        <location filename="../ui/mainwindow.ui" line="255"/>
         <source>&amp;Settings</source>
         <translation>&amp;Настройки</translation>
@@ -330,309 +417,300 @@
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="297"/>
-        <location filename="../ui/mainwindow.ui" line="278"/>
-        <source>&amp;Language</source>
-        <extracomment>Please, append &quot; / Language&quot; when translating this string.
-----------
-Please, append &quot; / Language&quot; when translating this string.</extracomment>
-        <translation>Язык / &amp;Language</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="313"/>
-        <location filename="../ui/mainwindow.ui" line="294"/>
+        <location filename="../ui/mainwindow.ce.ui" line="293"/>
+        <location filename="../ui/mainwindow.ui" line="281"/>
         <source>&amp;Help</source>
         <translation>&amp;Помощь</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="351"/>
-        <location filename="../ui/mainwindow.ui" line="364"/>
+        <location filename="../ui/mainwindow.ce.ui" line="331"/>
+        <location filename="../ui/mainwindow.ui" line="354"/>
         <source>Save solution steps</source>
         <translation>Сохранить ход решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="354"/>
-        <location filename="../ui/mainwindow.ui" line="367"/>
+        <location filename="../ui/mainwindow.ce.ui" line="334"/>
+        <location filename="../ui/mainwindow.ui" line="357"/>
         <source>Save solution steps only</source>
         <translation>Сохранить только ход решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="365"/>
-        <location filename="../ui/mainwindow.ui" line="378"/>
+        <location filename="../ui/mainwindow.ce.ui" line="345"/>
+        <location filename="../ui/mainwindow.ui" line="368"/>
         <source>Save solution graph</source>
         <translation>Сохранить граф решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="368"/>
-        <location filename="../ui/mainwindow.ui" line="381"/>
+        <location filename="../ui/mainwindow.ce.ui" line="348"/>
+        <location filename="../ui/mainwindow.ui" line="371"/>
         <source>Save solution graph only</source>
         <translation>Сохранить только граф решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="376"/>
-        <location filename="../ui/mainwindow.ui" line="389"/>
-        <source>&amp;Solution</source>
-        <translation>&amp;Решение</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="379"/>
-        <location filename="../ui/mainwindow.ui" line="392"/>
+        <location filename="../ui/mainwindow.ce.ui" line="362"/>
+        <location filename="../ui/mainwindow.ui" line="382"/>
         <source>Save solution</source>
         <translation>Сохранить решение</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="382"/>
-        <location filename="../ui/mainwindow.ui" line="395"/>
+        <location filename="../ui/mainwindow.ce.ui" line="365"/>
+        <location filename="../ui/mainwindow.ui" line="385"/>
         <source>Save solution steps and graph</source>
         <translation>Сохранить ход и граф решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="391"/>
-        <location filename="../ui/mainwindow.ui" line="404"/>
+        <location filename="../ui/mainwindow.ce.ui" line="374"/>
+        <location filename="../ui/mainwindow.ui" line="394"/>
         <source>&amp;New</source>
         <translation>&amp;Создать</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="394"/>
-        <location filename="../ui/mainwindow.ui" line="407"/>
+        <location filename="../ui/mainwindow.ce.ui" line="377"/>
+        <location filename="../ui/mainwindow.ui" line="397"/>
         <source>New</source>
         <translation>Создать</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="397"/>
-        <location filename="../ui/mainwindow.ui" line="410"/>
+        <location filename="../ui/mainwindow.ce.ui" line="380"/>
+        <location filename="../ui/mainwindow.ui" line="400"/>
         <source>New task</source>
         <translation>Создать задачу</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="400"/>
-        <location filename="../ui/mainwindow.ui" line="413"/>
+        <location filename="../ui/mainwindow.ce.ui" line="383"/>
+        <location filename="../ui/mainwindow.ui" line="403"/>
         <source>Create new task</source>
         <translation>Создать новую задачу</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="403"/>
-        <location filename="../ui/mainwindow.ui" line="416"/>
+        <location filename="../ui/mainwindow.ce.ui" line="386"/>
+        <location filename="../ui/mainwindow.ui" line="406"/>
         <source>Ctrl+N</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="412"/>
-        <location filename="../ui/mainwindow.ui" line="425"/>
+        <location filename="../ui/mainwindow.ce.ui" line="395"/>
+        <location filename="../ui/mainwindow.ui" line="415"/>
         <source>&amp;Open...</source>
         <translation>&amp;Открыть...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="415"/>
-        <location filename="../ui/mainwindow.ui" line="428"/>
+        <location filename="../ui/mainwindow.ce.ui" line="398"/>
+        <location filename="../ui/mainwindow.ui" line="418"/>
         <source>Open...</source>
         <translation>Открыть...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="418"/>
-        <location filename="../ui/mainwindow.ui" line="431"/>
+        <location filename="../ui/mainwindow.ce.ui" line="401"/>
+        <location filename="../ui/mainwindow.ui" line="421"/>
         <source>Open task</source>
-        <translation>Открыть задачу</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="421"/>
-        <location filename="../ui/mainwindow.ui" line="434"/>
+        <translation>Открыть условие</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="404"/>
+        <location filename="../ui/mainwindow.ui" line="424"/>
         <source>Open saved task</source>
         <translation>Открыть сохраненное условие задачи</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="424"/>
-        <location filename="../ui/mainwindow.ui" line="437"/>
+        <location filename="../ui/mainwindow.ce.ui" line="407"/>
+        <location filename="../ui/mainwindow.ui" line="427"/>
         <source>Ctrl+O</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="433"/>
-        <location filename="../ui/mainwindow.ui" line="446"/>
+        <location filename="../ui/mainwindow.ce.ui" line="416"/>
+        <location filename="../ui/mainwindow.ui" line="436"/>
         <source>&amp;Preferences...</source>
         <translation>&amp;Параметры...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="436"/>
-        <location filename="../ui/mainwindow.ui" line="449"/>
+        <location filename="../ui/mainwindow.ce.ui" line="419"/>
+        <location filename="../ui/mainwindow.ui" line="439"/>
         <source>Preferences...</source>
         <translation>Параметры...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="439"/>
-        <location filename="../ui/mainwindow.ui" line="452"/>
+        <location filename="../ui/mainwindow.ce.ui" line="422"/>
+        <location filename="../ui/mainwindow.ui" line="442"/>
         <source>Application preferences</source>
         <translation>Настройка параметров программмы</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="451"/>
-        <location filename="../ui/mainwindow.ui" line="464"/>
+        <location filename="../ui/mainwindow.ce.ui" line="434"/>
+        <location filename="../ui/mainwindow.ui" line="454"/>
         <source>&amp;Contents</source>
         <translation>&amp;Содежание</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="454"/>
-        <location filename="../ui/mainwindow.ui" line="467"/>
+        <location filename="../ui/mainwindow.ce.ui" line="437"/>
+        <location filename="../ui/mainwindow.ui" line="457"/>
         <source>Open help contents</source>
         <translation>Вызвать справку программы</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="469"/>
-        <location filename="../ui/mainwindow.ui" line="482"/>
+        <location filename="../ui/mainwindow.ce.ui" line="452"/>
+        <location filename="../ui/mainwindow.ui" line="472"/>
         <source>Open context help</source>
         <translation>Вызвать контекстную справку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="478"/>
-        <location filename="../ui/mainwindow.ui" line="491"/>
+        <location filename="../ui/mainwindow.ce.ui" line="461"/>
+        <location filename="../ui/mainwindow.ui" line="481"/>
         <source>&amp;About...</source>
         <translation>&amp;Про...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="481"/>
-        <location filename="../ui/mainwindow.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="464"/>
+        <location filename="../ui/mainwindow.ui" line="484"/>
         <source>About...</source>
         <translation>Про...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="484"/>
-        <location filename="../ui/mainwindow.ui" line="497"/>
+        <location filename="../ui/mainwindow.ce.ui" line="467"/>
+        <location filename="../ui/mainwindow.ui" line="487"/>
         <source>About application</source>
         <translation>О программе</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="493"/>
-        <location filename="../ui/mainwindow.ui" line="506"/>
+        <location filename="../ui/mainwindow.ce.ui" line="476"/>
+        <location filename="../ui/mainwindow.ui" line="496"/>
         <source>E&amp;xit</source>
         <translation>В&amp;ыход</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="496"/>
-        <location filename="../ui/mainwindow.ui" line="509"/>
+        <location filename="../ui/mainwindow.ce.ui" line="479"/>
+        <location filename="../ui/mainwindow.ui" line="499"/>
         <source>Exit application</source>
         <translation>Выйти из приложения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="505"/>
-        <location filename="../ui/mainwindow.ui" line="518"/>
+        <location filename="../ui/mainwindow.ce.ui" line="488"/>
+        <location filename="../ui/mainwindow.ui" line="504"/>
         <source>&amp;Task...</source>
-        <translation>&amp;Задачу...</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="508"/>
-        <location filename="../ui/mainwindow.ui" line="521"/>
+        <translation>&amp;Условие...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="491"/>
+        <location filename="../ui/mainwindow.ui" line="507"/>
         <source>Task...</source>
-        <translation>Задачу...</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="511"/>
-        <location filename="../ui/mainwindow.ce.ui" line="560"/>
-        <location filename="../ui/mainwindow.ui" line="524"/>
-        <location filename="../ui/mainwindow.ui" line="576"/>
+        <translation>Условие...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="543"/>
+        <location filename="../ui/mainwindow.ui" line="510"/>
+        <location filename="../ui/mainwindow.ui" line="562"/>
         <source>Save task</source>
-        <translation>Сохранить задачу</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="514"/>
-        <location filename="../ui/mainwindow.ui" line="527"/>
+        <translation>Сохранить условие</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="497"/>
+        <location filename="../ui/mainwindow.ui" line="513"/>
         <source>Save task to file</source>
         <translation>Сохранить условие задачи в файл</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="517"/>
-        <location filename="../ui/mainwindow.ui" line="530"/>
+        <location filename="../ui/mainwindow.ce.ui" line="500"/>
+        <location filename="../ui/mainwindow.ui" line="516"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="528"/>
-        <location filename="../ui/mainwindow.ui" line="541"/>
+        <location filename="../ui/mainwindow.ce.ui" line="511"/>
+        <location filename="../ui/mainwindow.ui" line="527"/>
         <source>&amp;Autodetect</source>
         <translation>&amp;Автоопределение</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="545"/>
+        <location filename="../ui/mainwindow.ce.ui" line="528"/>
         <source>English</source>
         <translation>Английский</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="563"/>
-        <location filename="../ui/mainwindow.ui" line="579"/>
+        <location filename="../ui/mainwindow.ce.ui" line="546"/>
+        <location filename="../ui/mainwindow.ui" line="565"/>
         <source>Save current task</source>
-        <translation>Сохранить текущую задачу</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="572"/>
-        <location filename="../ui/mainwindow.ui" line="588"/>
+        <translation>Сохранить текущее условие</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="555"/>
+        <location filename="../ui/mainwindow.ui" line="574"/>
         <source>About &amp;Qt...</source>
         <translation>Про &amp;Qt...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="575"/>
-        <location filename="../ui/mainwindow.ui" line="591"/>
+        <location filename="../ui/mainwindow.ce.ui" line="558"/>
+        <location filename="../ui/mainwindow.ui" line="577"/>
         <source>About Qt...</source>
         <translation>Про Qt...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="578"/>
+        <location filename="../ui/mainwindow.ce.ui" line="561"/>
         <source>About Qt</source>
         <translation>Про Qt</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="581"/>
-        <location filename="../ui/mainwindow.ui" line="594"/>
+        <location filename="../ui/mainwindow.ce.ui" line="564"/>
+        <location filename="../ui/mainwindow.ui" line="580"/>
         <source>About Qt library</source>
         <translation>Про библиотеку Qt</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="291"/>
-        <location filename="../ui/mainwindow.ui" line="272"/>
+        <location filename="../ui/mainwindow.ce.ui" line="271"/>
+        <location filename="../ui/mainwindow.ui" line="259"/>
         <source>Select language</source>
         <translation>Выбор языка</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="294"/>
-        <location filename="../ui/mainwindow.ui" line="275"/>
+        <location filename="../ui/mainwindow.ce.ui" line="274"/>
+        <location filename="../ui/mainwindow.ui" line="262"/>
         <source>Select application language</source>
         <translation>Выбрать язык приложения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="332"/>
+        <location filename="../ui/mainwindow.ui" line="322"/>
         <source>P&amp;rint Setup...</source>
         <translation>&amp;Настройка печати...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="335"/>
+        <location filename="../ui/mainwindow.ui" line="325"/>
         <source>Setup printing</source>
         <translation>Настроить печать</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="347"/>
+        <location filename="../ui/mainwindow.ui" line="337"/>
         <source>&amp;Print...</source>
         <translation>&amp;Печать...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="350"/>
+        <location filename="../ui/mainwindow.ui" line="340"/>
         <source>Print solution results</source>
         <translation>Распечатать результаты решения</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="353"/>
+        <location filename="../ui/mainwindow.ui" line="343"/>
         <source>Ctrl+P</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="573"/>
+        <location filename="../ui/mainwindow.ce.ui" line="356"/>
+        <location filename="../ui/mainwindow.ui" line="379"/>
+        <source>&amp;Solution...</source>
+        <translation>&amp;Решение...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="559"/>
         <source>Save</source>
         <translation>Сохранить</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="531"/>
-        <location filename="../ui/mainwindow.ui" line="544"/>
+        <location filename="../ui/mainwindow.ce.ui" line="514"/>
+        <location filename="../ui/mainwindow.ui" line="530"/>
         <source>Detect language automatically</source>
         <translation>Определять язык автоматически</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="534"/>
-        <location filename="../ui/mainwindow.ui" line="547"/>
+        <location filename="../ui/mainwindow.ce.ui" line="517"/>
+        <location filename="../ui/mainwindow.ui" line="533"/>
         <source>Detect language automatically based on regional settings</source>
         <translation>Определять язык автоматически, основываясь на региональных настройках</translation>
@@ -678,62 +756,68 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="202"/>
-        <location filename="../ui/settingsdialog.ui" line="288"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="184"/>
+        <location filename="../ui/settingsdialog.ui" line="235"/>
+        <source>Output settings:</source>
+        <translation>Параметры вывода:</translation>
+    </message>
+    <message>
+        <location filename="../ui/settingsdialog.ce.ui" line="210"/>
+        <location filename="../ui/settingsdialog.ui" line="261"/>
         <source>Font color for printing</source>
         <translation>Цвет шрифта, используемого при печати</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="205"/>
-        <location filename="../ui/settingsdialog.ui" line="291"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="213"/>
+        <location filename="../ui/settingsdialog.ui" line="264"/>
         <source>&amp;Color...</source>
         <translation>&amp;Цвет...</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="219"/>
-        <location filename="../ui/settingsdialog.ui" line="305"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="193"/>
+        <location filename="../ui/settingsdialog.ui" line="244"/>
         <source>Font face for printing</source>
         <translation>Вид шрифта, используемого при печати</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="222"/>
-        <location filename="../ui/settingsdialog.ui" line="308"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="196"/>
+        <location filename="../ui/settingsdialog.ui" line="247"/>
         <source>&amp;Font...</source>
         <translation>&amp;Шрифт...</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="287"/>
-        <location filename="../ui/settingsdialog.ce.ui" line="293"/>
-        <location filename="../ui/settingsdialog.ui" line="377"/>
-        <location filename="../ui/settingsdialog.ui" line="383"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="279"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="285"/>
+        <location filename="../ui/settingsdialog.ui" line="331"/>
+        <location filename="../ui/settingsdialog.ui" line="337"/>
         <source>Help</source>
         <translation>Помощь</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="290"/>
-        <location filename="../ui/settingsdialog.ui" line="380"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="282"/>
+        <location filename="../ui/settingsdialog.ui" line="334"/>
         <source>Get preferences help</source>
         <translation>Получить помощь по настройкам</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="323"/>
-        <location filename="../ui/settingsdialog.ui" line="425"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="315"/>
+        <location filename="../ui/settingsdialog.ui" line="391"/>
         <source>Save new preferences</source>
         <translation>Сохранить новые параметры</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="326"/>
-        <location filename="../ui/settingsdialog.ui" line="428"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="318"/>
+        <location filename="../ui/settingsdialog.ui" line="394"/>
         <source>&amp;OK</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="343"/>
-        <location filename="../ui/settingsdialog.ui" line="445"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="335"/>
+        <location filename="../ui/settingsdialog.ui" line="411"/>
         <source>Close without saving preferences</source>
         <translation>Закрыть окно без сохранения параметров</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="346"/>
-        <location filename="../ui/settingsdialog.ui" line="448"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="338"/>
+        <location filename="../ui/settingsdialog.ui" line="414"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Отмена</translation>
@@ -745,30 +829,15 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="235"/>
-        <source>Print settings:</source>
-        <translation>Настройки печати:</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="249"/>
-        <source>&amp;Left margin:</source>
-        <translation>&amp;Левый отступ:</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="262"/>
-        <source>Left border margin for page</source>
-        <translation>Левый отступ от края страницы во время печати</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="329"/>
+        <location filename="../ui/settingsdialog.ui" line="283"/>
         <source>Restore main window state and position on application restart</source>
         <translation>Восстанавливать состояние и размеры главного окна после перезапуска приложения</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="332"/>
+        <location filename="../ui/settingsdialog.ui" line="286"/>
         <source>Save main window state and position</source>
         <translation>Сохранять состояние и положение главного окна</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="403"/>
+        <location filename="../ui/settingsdialog.ui" line="369"/>
         <source>Hover mouse pointer over dialog elements to get additional help</source>
         <translation>Наведите указатель мыши на элемент диалога, чтоб получить подсказку</translation>
Index: i18n/uk.ts
===================================================================
--- i18n/uk.ts	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ i18n/uk.ts	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -16,54 +16,55 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="156"/>
+        <location filename="../src/tspmodel.cpp" line="147"/>
         <source>Unexpected end of file.</source>
         <translation>Неочікуваний кінець файлу.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="158"/>
+        <location filename="../src/tspmodel.cpp" line="149"/>
         <source>Corrupt data read. File possibly corrupted.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="160"/>
+        <translation>Прочитано ушкоджені дані.
+Можливо, файл пошкоджено.</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="151"/>
         <source>Unknown error.</source>
         <translation>Невідома помилка.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="169"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <location filename="../src/tspmodel.cpp" line="152"/>
+        <location filename="../src/tspmodel.cpp" line="160"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Task Load</source>
-        <translation>Завантаження завдання</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="161"/>
-        <location filename="../src/tspmodel.cpp" line="184"/>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="213"/>
+        <translation>Завантаження умови</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="152"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <location filename="../src/tspmodel.cpp" line="243"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
         <source>Unable to load task:</source>
-        <translation>Неможливо завантажити завдання:</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="169"/>
+        <translation>Неможливо завантажити умову:</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="160"/>
         <source>Unable to open task file.
 Error: %1</source>
-        <translation>Неможливо відкрити файл завдання.
+        <translation>Неможливо відкрити файл з умовою.
 Помилка: %1</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="184"/>
+        <location filename="../src/tspmodel.cpp" line="175"/>
         <source>Unknown file format or file is corrupted.</source>
         <translation>Невідомий формат файлу або файл пошкоджено.</translation>
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="200"/>
-        <location filename="../src/tspmodel.cpp" line="243"/>
+        <location filename="../src/tspmodel.cpp" line="191"/>
+        <location filename="../src/tspmodel.cpp" line="234"/>
         <source>File version is newer than application supports.
 Please, try to update application.</source>
@@ -72,41 +73,72 @@
     </message>
     <message>
-        <location filename="../src/tspmodel.cpp" line="213"/>
-        <location filename="../src/tspmodel.cpp" line="252"/>
+        <location filename="../src/tspmodel.cpp" line="204"/>
+        <location filename="../src/tspmodel.cpp" line="243"/>
         <source>Unexpected data read.
 File is possibly corrupted.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <translation>Прочитано неочікувані дані.
+Можливо, файл пошкоджено.</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="273"/>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Task Save</source>
-        <translation>Збереження завдання</translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="282"/>
+        <translation>Збереження умови</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="273"/>
         <source>Unable to create task file.
 Error: %1
 Maybe, file is read-only?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/tspmodel.cpp" line="288"/>
-        <location filename="../src/tspmodel.cpp" line="295"/>
-        <location filename="../src/tspmodel.cpp" line="302"/>
-        <location filename="../src/tspmodel.cpp" line="309"/>
-        <location filename="../src/tspmodel.cpp" line="316"/>
-        <location filename="../src/tspmodel.cpp" line="323"/>
-        <location filename="../src/tspmodel.cpp" line="333"/>
+        <translation>Неможливо створити файл з умовою.
+Помилка: %1
+Можливо, файл тільки для читання?</translation>
+    </message>
+    <message>
+        <location filename="../src/tspmodel.cpp" line="279"/>
+        <location filename="../src/tspmodel.cpp" line="286"/>
+        <location filename="../src/tspmodel.cpp" line="293"/>
+        <location filename="../src/tspmodel.cpp" line="300"/>
+        <location filename="../src/tspmodel.cpp" line="307"/>
+        <location filename="../src/tspmodel.cpp" line="314"/>
+        <location filename="../src/tspmodel.cpp" line="324"/>
         <source>Unable to save task.
 Error: %1</source>
-        <translation>Неможливо зберегти завдання.
+        <translation>Неможливо зберегти умову.
 Помилка: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTSPSolver</name>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="137"/>
+        <source>%v of %m parts found</source>
+        <translation>Знайдено %v з %m переходів</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="141"/>
+        <source>Calculating optimal route...</source>
+        <translation>Обчислення оптимального шляху...</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="142"/>
+        <source>Solution Progress</source>
+        <translation>Поступ розв&apos;зку</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>Solution Result</source>
+        <translation>Результат розв&apos;язку</translation>
+    </message>
+    <message>
+        <location filename="../src/tspsolver.cpp" line="210"/>
+        <source>This task has no solution.</source>
+        <translation>У цієї задачі немає розв&apos;язку.</translation>
     </message>
 </context>
@@ -114,186 +146,198 @@
     <name>MainWindow</name>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="90"/>
-        <location filename="../ui/mainwindow.ui" line="69"/>
+        <location filename="../ui/mainwindow.ce.ui" line="87"/>
+        <location filename="../ui/mainwindow.ui" line="75"/>
         <source>Number of variant</source>
         <translation>Номер варіанту</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="113"/>
-        <location filename="../ui/mainwindow.ui" line="92"/>
+        <location filename="../ui/mainwindow.ce.ui" line="110"/>
+        <location filename="../ui/mainwindow.ui" line="98"/>
         <source>Number of cities</source>
         <translation>Кількість міст, що проходить комівояжер</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="291"/>
-        <location filename="../ui/mainwindow.ui" line="272"/>
+        <location filename="../ui/mainwindow.ce.ui" line="271"/>
+        <location filename="../ui/mainwindow.ui" line="259"/>
         <source>Select language</source>
         <translation>Вибір мови</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="294"/>
-        <location filename="../ui/mainwindow.ui" line="275"/>
+        <location filename="../ui/mainwindow.ce.ui" line="274"/>
+        <location filename="../ui/mainwindow.ui" line="262"/>
         <source>Select application language</source>
         <translation>Обрати мову додатку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="332"/>
+        <location filename="../ui/mainwindow.ui" line="322"/>
         <source>P&amp;rint Setup...</source>
         <translation>&amp;Налагодження друку...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="335"/>
+        <location filename="../ui/mainwindow.ui" line="325"/>
         <source>Setup printing</source>
         <translation>Налагодити друк</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="347"/>
+        <location filename="../ui/mainwindow.ui" line="337"/>
         <source>&amp;Print...</source>
         <translation>&amp;Друк...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="350"/>
+        <location filename="../ui/mainwindow.ui" line="340"/>
         <source>Print solution results</source>
         <translation>Роздрукувати результат розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="353"/>
+        <location filename="../ui/mainwindow.ui" line="343"/>
         <source>Ctrl+P</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ui" line="573"/>
+        <location filename="../ui/mainwindow.ce.ui" line="356"/>
+        <location filename="../ui/mainwindow.ui" line="379"/>
+        <source>&amp;Solution...</source>
+        <translation>&amp;Розв&apos;язок...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ui" line="559"/>
         <source>Save</source>
         <translation>Зберегти</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="531"/>
-        <location filename="../ui/mainwindow.ui" line="544"/>
+        <location filename="../ui/mainwindow.ce.ui" line="514"/>
+        <location filename="../ui/mainwindow.ui" line="530"/>
         <source>Detect language automatically</source>
         <translation>Визначати мову автоматично</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="534"/>
-        <location filename="../ui/mainwindow.ui" line="547"/>
+        <location filename="../ui/mainwindow.ce.ui" line="517"/>
+        <location filename="../ui/mainwindow.ui" line="533"/>
         <source>Detect language automatically based on regional settings</source>
         <translation>Визначати мову автоматично, використовуючи регіональні стандарти</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="517"/>
-        <location filename="../ui/mainwindow.ui" line="530"/>
+        <location filename="../ui/mainwindow.ce.ui" line="500"/>
+        <location filename="../ui/mainwindow.ui" line="516"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="403"/>
-        <location filename="../ui/mainwindow.ui" line="416"/>
+        <location filename="../ui/mainwindow.ce.ui" line="386"/>
+        <location filename="../ui/mainwindow.ui" line="406"/>
         <source>Ctrl+N</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="56"/>
-        <location filename="../ui/mainwindow.ui" line="35"/>
+        <location filename="../ui/mainwindow.ce.ui" line="53"/>
+        <location filename="../ui/mainwindow.ui" line="41"/>
         <source>Task</source>
-        <translation>Завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="77"/>
-        <location filename="../ui/mainwindow.ui" line="56"/>
+        <translation>Умова</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="74"/>
+        <location filename="../ui/mainwindow.ui" line="62"/>
         <source>&amp;Variant:</source>
         <translation>&amp;Варіант:</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="100"/>
-        <location filename="../ui/mainwindow.ui" line="79"/>
+        <location filename="../ui/mainwindow.ce.ui" line="97"/>
+        <location filename="../ui/mainwindow.ui" line="85"/>
         <source>&amp;Cities:</source>
         <translation>&amp;Міст:</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="144"/>
-        <location filename="../ui/mainwindow.ui" line="123"/>
+        <location filename="../ui/mainwindow.ce.ui" line="141"/>
+        <location filename="../ui/mainwindow.ui" line="129"/>
         <source>Cost of travel from city to city</source>
         <translation>Вартість переїзду з міста у місто</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="172"/>
-        <location filename="../ui/mainwindow.ui" line="151"/>
+        <location filename="../ui/mainwindow.ce.ui" line="169"/>
+        <location filename="../ui/mainwindow.ui" line="157"/>
         <source>Fill table with random numbers</source>
         <translation>Заповнити таблицю випадковими значеннями</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="175"/>
-        <location filename="../ui/mainwindow.ui" line="154"/>
+        <location filename="../ui/mainwindow.ce.ui" line="172"/>
+        <location filename="../ui/mainwindow.ui" line="160"/>
         <source>Random</source>
         <translation>Випадково</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="189"/>
-        <location filename="../ui/mainwindow.ui" line="168"/>
+        <location filename="../ui/mainwindow.ce.ui" line="186"/>
+        <location filename="../ui/mainwindow.ui" line="174"/>
         <source>Solve current task</source>
         <translation>Розв&apos;язати поточну задачу</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="192"/>
-        <location filename="../ui/mainwindow.ui" line="171"/>
+        <location filename="../ui/mainwindow.ce.ui" line="189"/>
+        <location filename="../ui/mainwindow.ui" line="177"/>
         <source>Solve</source>
         <translation>Розв&apos;язати</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="206"/>
-        <location filename="../ui/mainwindow.ui" line="185"/>
+        <location filename="../ui/mainwindow.ce.ui" line="203"/>
+        <location filename="../ui/mainwindow.ui" line="191"/>
         <source>Solution</source>
         <translation>Розв&apos;язок</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="223"/>
-        <location filename="../ui/mainwindow.ui" line="202"/>
+        <location filename="../ui/mainwindow.ce.ui" line="212"/>
+        <location filename="../ui/mainwindow.ui" line="200"/>
         <source>Solution steps</source>
         <translation>Хід розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="233"/>
-        <location filename="../ui/mainwindow.ui" line="212"/>
-        <source>Solution graph</source>
-        <translation>Граф розв&apos;язку</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="259"/>
-        <location filename="../ui/mainwindow.ui" line="240"/>
+        <location filename="../ui/mainwindow.ce.ui" line="242"/>
+        <location filename="../ui/mainwindow.ui" line="230"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="266"/>
-        <location filename="../ui/mainwindow.ui" line="244"/>
+        <location filename="../ui/mainwindow.ce.ui" line="249"/>
+        <location filename="../ui/mainwindow.ui" line="234"/>
         <source>Save &amp;As...</source>
         <translation>Зберегти &amp;як...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="348"/>
-        <location filename="../ui/mainwindow.ui" line="361"/>
+        <location filename="../ui/mainwindow.ce.ui" line="277"/>
+        <location filename="../ui/mainwindow.ui" line="265"/>
+        <source>&amp;Language</source>
+        <comment>Please, append &quot; / Language&quot; when translating this string.</comment>
+        <translation>Мова / &amp;Language</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="328"/>
+        <location filename="../ui/mainwindow.ui" line="351"/>
         <source>Solution S&amp;teps</source>
         <translation>&amp;Хід розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="362"/>
-        <location filename="../ui/mainwindow.ui" line="375"/>
+        <location filename="../ui/mainwindow.ce.ui" line="342"/>
+        <location filename="../ui/mainwindow.ui" line="365"/>
         <source>Solution &amp;Graph</source>
         <translation>&amp;Граф розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="466"/>
-        <location filename="../ui/mainwindow.ui" line="479"/>
+        <location filename="../ui/mainwindow.ce.ui" line="359"/>
+        <source>Solution...</source>
+        <translation>Розв&apos;язок...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="449"/>
+        <location filename="../ui/mainwindow.ui" line="469"/>
         <source>Context &amp;Help</source>
         <translation>&amp;Контекстна допомога</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="557"/>
-        <location filename="../ui/mainwindow.ui" line="570"/>
+        <location filename="../ui/mainwindow.ce.ui" line="540"/>
+        <location filename="../ui/mainwindow.ui" line="556"/>
         <source>&amp;Save</source>
         <translation>&amp;Зберегти</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="287"/>
-        <location filename="../ui/mainwindow.ui" line="268"/>
+        <location filename="../ui/mainwindow.ce.ui" line="267"/>
+        <location filename="../ui/mainwindow.ui" line="255"/>
         <source>&amp;Settings</source>
         <translation>&amp;Налагодження</translation>
@@ -306,324 +350,358 @@
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="297"/>
-        <location filename="../ui/mainwindow.ui" line="278"/>
-        <source>&amp;Language</source>
-        <extracomment>Please, append &quot; / Language&quot; when translating this string.
-----------
-Please, append &quot; / Language&quot; when translating this string.</extracomment>
-        <translation>Мова / &amp;Language</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="313"/>
-        <location filename="../ui/mainwindow.ui" line="294"/>
+        <location filename="../ui/mainwindow.ce.ui" line="293"/>
+        <location filename="../ui/mainwindow.ui" line="281"/>
         <source>&amp;Help</source>
         <translation>&amp;Допомога</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="351"/>
-        <location filename="../ui/mainwindow.ui" line="364"/>
+        <location filename="../ui/mainwindow.ce.ui" line="331"/>
+        <location filename="../ui/mainwindow.ui" line="354"/>
         <source>Save solution steps</source>
         <translation>Зберегти хід розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="354"/>
-        <location filename="../ui/mainwindow.ui" line="367"/>
+        <location filename="../ui/mainwindow.ce.ui" line="334"/>
+        <location filename="../ui/mainwindow.ui" line="357"/>
         <source>Save solution steps only</source>
         <translation>Зберегти тільки хід розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="365"/>
-        <location filename="../ui/mainwindow.ui" line="378"/>
+        <location filename="../ui/mainwindow.ce.ui" line="345"/>
+        <location filename="../ui/mainwindow.ui" line="368"/>
         <source>Save solution graph</source>
         <translation>Зберегти граф розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="368"/>
-        <location filename="../ui/mainwindow.ui" line="381"/>
+        <location filename="../ui/mainwindow.ce.ui" line="348"/>
+        <location filename="../ui/mainwindow.ui" line="371"/>
         <source>Save solution graph only</source>
         <translation>Зберегти тільки граф розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="376"/>
-        <location filename="../ui/mainwindow.ui" line="389"/>
-        <source>&amp;Solution</source>
-        <translation>&amp;Розв&apos;язок</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="379"/>
-        <location filename="../ui/mainwindow.ui" line="392"/>
+        <location filename="../ui/mainwindow.ce.ui" line="362"/>
+        <location filename="../ui/mainwindow.ui" line="382"/>
         <source>Save solution</source>
         <translation>Зберегти розв&apos;язок</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="382"/>
-        <location filename="../ui/mainwindow.ui" line="395"/>
+        <location filename="../ui/mainwindow.ce.ui" line="365"/>
+        <location filename="../ui/mainwindow.ui" line="385"/>
         <source>Save solution steps and graph</source>
         <translation>Зберегти хід та граф розв&apos;язку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="391"/>
-        <location filename="../ui/mainwindow.ui" line="404"/>
+        <location filename="../ui/mainwindow.ce.ui" line="374"/>
+        <location filename="../ui/mainwindow.ui" line="394"/>
         <source>&amp;New</source>
         <translation>&amp;Створити</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="394"/>
-        <location filename="../ui/mainwindow.ui" line="407"/>
+        <location filename="../ui/mainwindow.ce.ui" line="377"/>
+        <location filename="../ui/mainwindow.ui" line="397"/>
         <source>New</source>
         <translation>Створити</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="397"/>
-        <location filename="../ui/mainwindow.ui" line="410"/>
+        <location filename="../ui/mainwindow.ce.ui" line="380"/>
+        <location filename="../ui/mainwindow.ui" line="400"/>
         <source>New task</source>
-        <translation>Нове завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="400"/>
-        <location filename="../ui/mainwindow.ui" line="413"/>
+        <translation>Нова задача</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="383"/>
+        <location filename="../ui/mainwindow.ui" line="403"/>
         <source>Create new task</source>
-        <translation>Створити нове завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="412"/>
-        <location filename="../ui/mainwindow.ui" line="425"/>
+        <translation>Створити нову задачу</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="395"/>
+        <location filename="../ui/mainwindow.ui" line="415"/>
         <source>&amp;Open...</source>
         <translation>&amp;Відкрити...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="415"/>
-        <location filename="../ui/mainwindow.ui" line="428"/>
+        <location filename="../ui/mainwindow.ce.ui" line="398"/>
+        <location filename="../ui/mainwindow.ui" line="418"/>
         <source>Open...</source>
         <translation>Відкрити...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="418"/>
-        <location filename="../ui/mainwindow.ui" line="431"/>
+        <location filename="../ui/mainwindow.ce.ui" line="401"/>
+        <location filename="../ui/mainwindow.ui" line="421"/>
         <source>Open task</source>
-        <translation>Відкрити завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="421"/>
-        <location filename="../ui/mainwindow.ui" line="434"/>
+        <translation>Відкрити умову</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="404"/>
+        <location filename="../ui/mainwindow.ui" line="424"/>
         <source>Open saved task</source>
-        <translation>Відкрити збережене завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="424"/>
-        <location filename="../ui/mainwindow.ui" line="437"/>
+        <translation>Відкрити збережену умову</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="407"/>
+        <location filename="../ui/mainwindow.ui" line="427"/>
         <source>Ctrl+O</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="433"/>
-        <location filename="../ui/mainwindow.ui" line="446"/>
+        <location filename="../ui/mainwindow.ce.ui" line="416"/>
+        <location filename="../ui/mainwindow.ui" line="436"/>
         <source>&amp;Preferences...</source>
         <translation>&amp;Параметри...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="436"/>
-        <location filename="../ui/mainwindow.ui" line="449"/>
+        <location filename="../ui/mainwindow.ce.ui" line="419"/>
+        <location filename="../ui/mainwindow.ui" line="439"/>
         <source>Preferences...</source>
         <translation>Параметри...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="439"/>
-        <location filename="../ui/mainwindow.ui" line="452"/>
+        <location filename="../ui/mainwindow.ce.ui" line="422"/>
+        <location filename="../ui/mainwindow.ui" line="442"/>
         <source>Application preferences</source>
         <translation>Параметри додатку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="451"/>
-        <location filename="../ui/mainwindow.ui" line="464"/>
+        <location filename="../ui/mainwindow.ce.ui" line="434"/>
+        <location filename="../ui/mainwindow.ui" line="454"/>
         <source>&amp;Contents</source>
         <translation>&amp;Зміст</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="454"/>
-        <location filename="../ui/mainwindow.ui" line="467"/>
+        <location filename="../ui/mainwindow.ce.ui" line="437"/>
+        <location filename="../ui/mainwindow.ui" line="457"/>
         <source>Open help contents</source>
         <translation>Відкрити зміст допомоги</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="469"/>
-        <location filename="../ui/mainwindow.ui" line="482"/>
+        <location filename="../ui/mainwindow.ce.ui" line="452"/>
+        <location filename="../ui/mainwindow.ui" line="472"/>
         <source>Open context help</source>
         <translation>Відкрити контекстну допомогу</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="478"/>
-        <location filename="../ui/mainwindow.ui" line="491"/>
+        <location filename="../ui/mainwindow.ce.ui" line="461"/>
+        <location filename="../ui/mainwindow.ui" line="481"/>
         <source>&amp;About...</source>
         <translation>&amp;Про...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="481"/>
-        <location filename="../ui/mainwindow.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="464"/>
+        <location filename="../ui/mainwindow.ui" line="484"/>
         <source>About...</source>
         <translation>Про...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="484"/>
-        <location filename="../ui/mainwindow.ui" line="497"/>
+        <location filename="../ui/mainwindow.ce.ui" line="467"/>
+        <location filename="../ui/mainwindow.ui" line="487"/>
         <source>About application</source>
         <translation>Про додаток</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="493"/>
-        <location filename="../ui/mainwindow.ui" line="506"/>
+        <location filename="../ui/mainwindow.ce.ui" line="476"/>
+        <location filename="../ui/mainwindow.ui" line="496"/>
         <source>E&amp;xit</source>
         <translation>В&amp;ихід</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="496"/>
-        <location filename="../ui/mainwindow.ui" line="509"/>
+        <location filename="../ui/mainwindow.ce.ui" line="479"/>
+        <location filename="../ui/mainwindow.ui" line="499"/>
         <source>Exit application</source>
         <translation>Вийти з додатку</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="505"/>
-        <location filename="../ui/mainwindow.ui" line="518"/>
+        <location filename="../ui/mainwindow.ce.ui" line="488"/>
+        <location filename="../ui/mainwindow.ui" line="504"/>
         <source>&amp;Task...</source>
-        <translation>&amp;Завдання...</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="508"/>
-        <location filename="../ui/mainwindow.ui" line="521"/>
+        <translation>&amp;Умову...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="491"/>
+        <location filename="../ui/mainwindow.ui" line="507"/>
         <source>Task...</source>
-        <translation>Завдання...</translation>
+        <translation>Умову...</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="494"/>
+        <location filename="../ui/mainwindow.ce.ui" line="543"/>
+        <location filename="../ui/mainwindow.ui" line="510"/>
+        <location filename="../ui/mainwindow.ui" line="562"/>
+        <source>Save task</source>
+        <translation>Зберегти умову</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="497"/>
+        <location filename="../ui/mainwindow.ui" line="513"/>
+        <source>Save task to file</source>
+        <translation>Зберегти умову задачі у файл</translation>
     </message>
     <message>
         <location filename="../ui/mainwindow.ce.ui" line="511"/>
-        <location filename="../ui/mainwindow.ce.ui" line="560"/>
-        <location filename="../ui/mainwindow.ui" line="524"/>
-        <location filename="../ui/mainwindow.ui" line="576"/>
-        <source>Save task</source>
-        <translation>Зберегти завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="514"/>
         <location filename="../ui/mainwindow.ui" line="527"/>
-        <source>Save task to file</source>
-        <translation>Зберегти завдання до файлу</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="528"/>
-        <location filename="../ui/mainwindow.ui" line="541"/>
         <source>&amp;Autodetect</source>
         <translation>&amp;Автовизначення</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="545"/>
+        <location filename="../ui/mainwindow.ce.ui" line="528"/>
         <source>English</source>
         <translation>Англійська</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="563"/>
-        <location filename="../ui/mainwindow.ui" line="579"/>
+        <location filename="../ui/mainwindow.ce.ui" line="546"/>
+        <location filename="../ui/mainwindow.ui" line="565"/>
         <source>Save current task</source>
-        <translation>Зберегти поточне завдання</translation>
-    </message>
-    <message>
-        <location filename="../ui/mainwindow.ce.ui" line="572"/>
-        <location filename="../ui/mainwindow.ui" line="588"/>
+        <translation>Зберегти поточну умову</translation>
+    </message>
+    <message>
+        <location filename="../ui/mainwindow.ce.ui" line="555"/>
+        <location filename="../ui/mainwindow.ui" line="574"/>
         <source>About &amp;Qt...</source>
         <translation>Про &amp;Qt...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="575"/>
-        <location filename="../ui/mainwindow.ui" line="591"/>
+        <location filename="../ui/mainwindow.ce.ui" line="558"/>
+        <location filename="../ui/mainwindow.ui" line="577"/>
         <source>About Qt...</source>
         <translation>Про Qt...</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="578"/>
+        <location filename="../ui/mainwindow.ce.ui" line="561"/>
         <source>About Qt</source>
         <translation>Про Qt</translation>
     </message>
     <message>
-        <location filename="../ui/mainwindow.ce.ui" line="581"/>
-        <location filename="../ui/mainwindow.ui" line="594"/>
+        <location filename="../ui/mainwindow.ce.ui" line="564"/>
+        <location filename="../ui/mainwindow.ui" line="580"/>
         <source>About Qt library</source>
         <translation>Про бібліотеку Qt</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
-        <location filename="../src/mainwindow.cpp" line="323"/>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
+        <location filename="../src/mainwindow.cpp" line="439"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>Language change</source>
         <translation>Зміна мови</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="134"/>
+        <location filename="../src/mainwindow.cpp" line="141"/>
         <source>Unable to load translation language.</source>
         <translation>Неможливо завантажити переклад.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="180"/>
+        <location filename="../src/mainwindow.cpp" line="202"/>
         <source>All Supported Formats</source>
         <translation>Усі підтримувані формати</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="183"/>
-        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="205"/>
+        <location filename="../src/mainwindow.cpp" line="232"/>
+        <location filename="../src/mainwindow.cpp" line="251"/>
         <source>All Files</source>
         <translation>Усі файли</translation>
     </message>
     <message>
+        <location filename="../src/mainwindow.cpp" line="203"/>
+        <location filename="../src/mainwindow.cpp" line="204"/>
+        <source>%1 Task Files</source>
+        <translation>Файли умов %1</translation>
+    </message>
+    <message>
         <location filename="../src/mainwindow.cpp" line="181"/>
-        <location filename="../src/mainwindow.cpp" line="182"/>
-        <source>%1 Task Files</source>
-        <translation>Файли завдань %1</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
         <source>New Task</source>
         <translation>Нова задача</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="162"/>
-        <location filename="../src/mainwindow.cpp" line="173"/>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <location filename="../src/mainwindow.cpp" line="181"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Would you like to save changes in current task?</source>
         <translation>Бажаете зберегти зміни у поточній задачі?</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="173"/>
+        <location filename="../src/mainwindow.cpp" line="195"/>
         <source>Task Open</source>
         <translation>Відкриття завдання</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="202"/>
+        <location filename="../src/mainwindow.cpp" line="230"/>
+        <source>HTML Files</source>
+        <translation>Файли HTML</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="231"/>
+        <source>OpenDocument Files</source>
+        <translation>Файли OpenDocument</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="250"/>
         <source>%1 Task File</source>
-        <translation>Файл завдання %1</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <translation>Файл умови %1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>Settings Changed</source>
+        <translation>Параметри змінено</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="273"/>
+        <source>You have changed color settings.
+Do you wish to apply them to current solution text?</source>
+        <translation>Ви змінили параметри кольору.
+Бажаєте застосувати їх до поточного тексту розв&apos;зку?</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Data error</source>
-        <translation>Помилка даних</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="259"/>
+        <translation>Помилка у даних</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="337"/>
         <source>Error in cell [Row %1; Column %2]: Invalid data format.</source>
         <translation>Помилка у комірці  [Рядок %1; Колонка %2]: Невірний формат даних.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>Solution error</source>
-        <translation>Помилка розв&apos;язку</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="268"/>
-        <source>There was an error while solving the task.</source>
-        <translation>Під час розв&apos;язання задачі виникла помилка.</translation>
-    </message>
-    <message>
-        <location filename="../src/mainwindow.cpp" line="323"/>
+        <location filename="../src/mainwindow.cpp" line="350"/>
+        <source>Variant #%1</source>
+        <translation>Варіант №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="351"/>
+        <source>Task:</source>
+        <translation>Умова:</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="354"/>
+        <location filename="../src/mainwindow.cpp" line="380"/>
+        <source>Solution of Variant #%1 task</source>
+        <translation>Розв&apos;язок варіанту №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="361"/>
+        <source>Step #%1</source>
+        <translation>Крок №%1</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="364"/>
+        <source>This step has alternate candidates for branching.</source>
+        <translation>У цьому кроці є альтернативні кандидати на розгалудження.</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="376"/>
+        <source>Optimal path:</source>
+        <translation>Оптимальний шлях:</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="378"/>
+        <source>The price is &lt;b&gt;%1&lt;/b&gt; units.</source>
+        <translation>Вартість - &lt;b&gt;%1&lt;/b&gt; одиниць.</translation>
+    </message>
+    <message>
+        <location filename="../src/mainwindow.cpp" line="439"/>
         <source>Language will be autodetected on next application start.</source>
         <translation>Мову буде автоматично визначено при наступному запуску додатку.</translation>
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="332"/>
+        <location filename="../src/mainwindow.cpp" line="448"/>
         <source>You have language autodetection turned on.
 It needs to be off.
@@ -634,5 +712,5 @@
     </message>
     <message>
-        <location filename="../src/mainwindow.cpp" line="346"/>
+        <location filename="../src/mainwindow.cpp" line="462"/>
         <source>Application Close</source>
         <translation>Закриття додатку</translation>
@@ -647,30 +725,15 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="235"/>
-        <source>Print settings:</source>
-        <translation>Налагодження друку:</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="249"/>
-        <source>&amp;Left margin:</source>
-        <translation>&amp;Лівий відступ:</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="262"/>
-        <source>Left border margin for page</source>
-        <translation>Лівий відступ від межі сторінки під час друку</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="329"/>
+        <location filename="../ui/settingsdialog.ui" line="283"/>
         <source>Restore main window state and position on application restart</source>
-        <translation>Відновлювати стан та розмір головного вікна пысля перезапуску додатку</translation>
-    </message>
-    <message>
-        <location filename="../ui/settingsdialog.ui" line="332"/>
+        <translation>Відновлювати стан та розмір головного вікна після перезапуску додатку</translation>
+    </message>
+    <message>
+        <location filename="../ui/settingsdialog.ui" line="286"/>
         <source>Save main window state and position</source>
         <translation>Зберегти стан та розміщення головного вікна</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ui" line="403"/>
+        <location filename="../ui/settingsdialog.ui" line="369"/>
         <source>Hover mouse pointer over dialog elements to get additional help</source>
         <translation>Наведіть покажчик миші на елемент ділогу, щоб отримати підказку</translation>
@@ -713,62 +776,68 @@
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="202"/>
-        <location filename="../ui/settingsdialog.ui" line="288"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="184"/>
+        <location filename="../ui/settingsdialog.ui" line="235"/>
+        <source>Output settings:</source>
+        <translation>Параметри виводу:</translation>
+    </message>
+    <message>
+        <location filename="../ui/settingsdialog.ce.ui" line="210"/>
+        <location filename="../ui/settingsdialog.ui" line="261"/>
         <source>Font color for printing</source>
         <translation>Колір шрифта для друку</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="205"/>
-        <location filename="../ui/settingsdialog.ui" line="291"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="213"/>
+        <location filename="../ui/settingsdialog.ui" line="264"/>
         <source>&amp;Color...</source>
         <translation>&amp;Колір...</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="219"/>
-        <location filename="../ui/settingsdialog.ui" line="305"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="193"/>
+        <location filename="../ui/settingsdialog.ui" line="244"/>
         <source>Font face for printing</source>
         <translation>Вигляд шрифта для друку</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="222"/>
-        <location filename="../ui/settingsdialog.ui" line="308"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="196"/>
+        <location filename="../ui/settingsdialog.ui" line="247"/>
         <source>&amp;Font...</source>
         <translation>&amp;Шрифт...</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="287"/>
-        <location filename="../ui/settingsdialog.ce.ui" line="293"/>
-        <location filename="../ui/settingsdialog.ui" line="377"/>
-        <location filename="../ui/settingsdialog.ui" line="383"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="279"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="285"/>
+        <location filename="../ui/settingsdialog.ui" line="331"/>
+        <location filename="../ui/settingsdialog.ui" line="337"/>
         <source>Help</source>
         <translation>Допомога</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="290"/>
-        <location filename="../ui/settingsdialog.ui" line="380"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="282"/>
+        <location filename="../ui/settingsdialog.ui" line="334"/>
         <source>Get preferences help</source>
         <translation>Отримати допомогу по налагодженням</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="323"/>
-        <location filename="../ui/settingsdialog.ui" line="425"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="315"/>
+        <location filename="../ui/settingsdialog.ui" line="391"/>
         <source>Save new preferences</source>
         <translation>Зберегти нові параметри</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="326"/>
-        <location filename="../ui/settingsdialog.ui" line="428"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="318"/>
+        <location filename="../ui/settingsdialog.ui" line="394"/>
         <source>&amp;OK</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="343"/>
-        <location filename="../ui/settingsdialog.ui" line="445"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="335"/>
+        <location filename="../ui/settingsdialog.ui" line="411"/>
         <source>Close without saving preferences</source>
         <translation>Закрити вікно без збереження параметрів</translation>
     </message>
     <message>
-        <location filename="../ui/settingsdialog.ce.ui" line="346"/>
-        <location filename="../ui/settingsdialog.ui" line="448"/>
+        <location filename="../ui/settingsdialog.ce.ui" line="338"/>
+        <location filename="../ui/settingsdialog.ui" line="414"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Скасувати</translation>
Index: resources/tspsg.qrc
===================================================================
--- resources/tspsg.qrc	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ resources/tspsg.qrc	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,5 +1,4 @@
 <RCC>
     <qresource prefix="/images" >
-        <file>qtlogo-64.png</file>
         <file>About.bmp</file>
         <file>Icon.png</file>
@@ -23,4 +22,5 @@
         <file>icons/locale.png</file>
         <file>icons/preferences_system.png</file>
+        <file>icons/qtlogo-64.png</file>
         <file>icons/roll.png</file>
     </qresource>
Index: resources/tspsg.rc
===================================================================
--- resources/tspsg.rc	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ resources/tspsg.rc	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -10,4 +10,47 @@
 
 #include "..\\src\\resource.h"
+#pragma code_page(65001)
 
+LANGUAGE	0x00, 0x00
+
+// Main Icon
 IDI_APPICON	ICON	"Icon.ico"
+
+// Version Info
+VS_VERSION_INFO VERSIONINFO
+	FILEVERSION BUILD_VERSION_MAJOR,BUILD_VERSION_MINOR,BUILD_RELEASE,BUILD_NUMBER
+	PRODUCTVERSION BUILD_VERSION_MAJOR,BUILD_VERSION_MINOR,BUILD_RELEASE,BUILD_NUMBER
+	FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+	FILEFLAGS 0x1L
+#else
+	FILEFLAGS 0x0L
+#endif
+#ifdef Q_OS_WINCE
+	FILEOS 0x50000L
+#else
+	FILEOS 0x4L
+#endif
+	FILETYPE 0x1L
+	FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "000004b0"
+        BEGIN
+            VALUE "Comments", BUILD_STATUS
+            VALUE "CompanyName", "..::Lёppsville::.. Homes"
+            VALUE "FileDescription", "TSPSG: TSP Solver and Generator"
+            VALUE "FileVersion", BUILD_VERSION
+            VALUE "InternalName", "TSPSG"
+            VALUE "LegalCopyright", "Copyright © 2007 - 2009 Lёppa"
+            VALUE "OriginalFilename", "tspsg.exe"
+            VALUE "ProductName", "TSPSG"
+            VALUE "ProductVersion", BUILD_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0, 1200
+    END
+END
Index: src/globals.h
===================================================================
--- src/globals.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/globals.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -29,4 +29,6 @@
 #include <QtGui>
 
+// Version info
+#include "version.h"
 // OS detection
 #include "os.h"
@@ -38,5 +40,5 @@
 #define DEF_OFFSET 100
 #define DEF_FONT_FAMILY "Courier New"
-#define DEF_FONT_SIZE 12
+#define DEF_FONT_SIZE 10
 #define DEF_FONT_COLOR Qt::black
 
@@ -54,9 +56,4 @@
 #define ZKT_VERSION quint8(1)
 
-// Decided, that static array with 100 of cities maximum hard limit
-// will be enough for most cases, but the code will be simplier than
-// when using dynamic lists. If you need more, just change this value
-// and recompile the program ;-)
-#define MAX_CITIES 100
 // This value means infinity :-)
 #ifndef INFINITY
@@ -64,5 +61,5 @@
 #endif
 // This is string, which represents infinite value in table
-#define INFSTR "-----"
+#define INFSTR "---"
 
 #endif // GLOBALS_H
Index: src/main.cpp
===================================================================
--- src/main.cpp	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/main.cpp	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
Index: src/mainwindow.cpp
===================================================================
--- src/mainwindow.cpp	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/mainwindow.cpp	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
-/*
- *  TSPSG - TSP Solver and Generator
+	/*
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -30,4 +30,8 @@
 	loadLanguage();
 	setupUi(this);
+	initDocStyleSheet();
+	solutionText->document()->setDefaultFont(settings->value("Output/Font",QFont(DEF_FONT_FAMILY,DEF_FONT_SIZE)).value<QFont>());
+	solutionText->setTextColor(settings->value("Output/Color",DEF_FONT_COLOR).value<QColor>());
+	solutionText->setWordWrapMode(QTextOption::WordWrap);
 #ifdef Q_OS_WINCE
 	// A little hack for toolbar icons to have sane size.
@@ -46,5 +50,6 @@
 	connect(actionFileNew,SIGNAL(triggered()),this,SLOT(actionFileNewTriggered()));
 	connect(actionFileOpen,SIGNAL(triggered()),this,SLOT(actionFileOpenTriggered()));
-	connect(actionFileSaveTask,SIGNAL(triggered()),this,SLOT(actionFileSaveTaskTriggered()));
+	connect(actionFileSaveAsTask,SIGNAL(triggered()),this,SLOT(actionFileSaveAsTaskTriggered()));
+	connect(actionFileSaveAsSolution,SIGNAL(triggered()),this,SLOT(actionFileSaveAsSolutionTriggered()));
 	connect(actionSettingsPreferences,SIGNAL(triggered()),this,SLOT(actionSettingsPreferencesTriggered()));
 	connect(actionSettingsLanguageAutodetect,SIGNAL(triggered(bool)),this,SLOT(actionSettingsLanguageAutodetectTriggered(bool)));
@@ -59,12 +64,6 @@
 	connect(spinCities,SIGNAL(valueChanged(int)),this,SLOT(spinCitiesValueChanged(int)));
 QRect rect = geometry();
-#ifdef Q_OS_WINCE
-	// HACK: Fix for all tabWidget elements becoming "unclickable" if making it central widget.
-/*	rect.setSize(QApplication::desktop()->availableGeometry().size());
-	rect.setHeight(rect.height() - (QApplication::desktop()->screenGeometry().height() - QApplication::desktop()->availableGeometry().height()));
-	tabWidget->resize(rect.width(),rect.height() - toolBar->iconSize().height());*/
-	// Somehow, this works now. No more "unclickable" elements :-\ 
 	setCentralWidget(tabWidget);
-#else
+#ifndef Q_OS_WINCE
 	if (settings->value("SavePos",false).toBool()) {
 		// Loading of saved window state
@@ -92,4 +91,12 @@
 	taskView->resizeRowsToContents();
 #endif // Q_OS_WINCE
+}
+
+void MainWindow::enableSolutionActions(bool enable)
+{
+	actionFileSaveAsSolution->setEnabled(enable);
+	solutionText->setEnabled(enable);
+	if (!enable)
+		output.clear();
 }
 
@@ -141,4 +148,16 @@
 }
 
+void MainWindow::initDocStyleSheet()
+{
+QColor color = settings->value("Output/Color",DEF_FONT_COLOR).value<QColor>();
+QColor hilight;
+	if (color.value() < 192)
+		hilight.setHsv(color.hue(),color.saturation(),127 + qRound(color.value() / 2));
+	else
+		hilight.setHsv(color.hue(),color.saturation(),color.value() / 2);
+	solutionText->document()->setDefaultStyleSheet("* {color: " + color.name() +";} p {margin: 0px 10px;} table {margin: 5px;} td {padding: 1px 5px;} .hasalts {color: " + hilight.name() + ";} .selected {color: #A00000; font-weight: bold;} .alternate {color: #008000; font-weight: bold;}");
+	solutionText->document()->setDefaultFont(settings->value("Output/Font",QFont(DEF_FONT_FAMILY,DEF_FONT_SIZE)).value<QFont>());
+}
+
 void MainWindow::spinCitiesValueChanged(int n)
 {
@@ -166,4 +185,7 @@
 	tspmodel->clear();
 	setWindowModified(false);
+	tabWidget->setCurrentIndex(0);
+	solutionText->clear();
+	enableSolutionActions(false);
 }
 
@@ -190,9 +212,35 @@
 	tspmodel->loadTask(files.first());
 	setWindowModified(false);
-}
-
-void MainWindow::actionFileSaveTaskTriggered()
+	solutionText->clear();
+	enableSolutionActions(false);
+}
+
+void MainWindow::actionFileSaveAsTaskTriggered()
 {
 	saveTask();
+}
+
+void MainWindow::actionFileSaveAsSolutionTriggered()
+{
+static QString selectedFile;
+	if (selectedFile.isEmpty())
+		selectedFile = "solution.html";
+QFileDialog sd(this);
+	sd.setAcceptMode(QFileDialog::AcceptSave);
+QStringList filters(trUtf8("HTML Files") + " (*.html *.htm)");
+	filters.append(trUtf8("OpenDocument Files") + " (*.odt)");
+	filters.append(trUtf8("All Files") + " (*)");
+	sd.setNameFilters(filters);
+	sd.selectFile(selectedFile);
+	if (sd.exec() != QDialog::Accepted)
+		return;
+QStringList files = sd.selectedFiles();
+	if (files.empty())
+		return;
+	selectedFile = files.first();
+QTextDocumentWriter dw(selectedFile);
+	if (!(selectedFile.endsWith(".htm",Qt::CaseInsensitive) || selectedFile.endsWith(".html",Qt::CaseInsensitive) || selectedFile.endsWith(".odt",Qt::CaseInsensitive) || selectedFile.endsWith(".txt",Qt::CaseInsensitive)))
+		dw.setFormat("plaintext");
+	dw.write(solutionText->document());
 }
 
@@ -219,5 +267,15 @@
 {
 SettingsDialog sd(this);
-	sd.exec();
+	if (sd.exec() != QDialog::Accepted)
+		return;
+	if (sd.colorChanged() || sd.fontChanged()) {
+		initDocStyleSheet();
+		if (!output.isEmpty() && sd.colorChanged() && (QMessageBox(QMessageBox::Question,trUtf8("Settings Changed"),trUtf8("You have changed color settings.\nDo you wish to apply them to current solution text?"),QMessageBox::Yes | QMessageBox::No,this).exec() == QMessageBox::Yes)) {
+			QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+			solutionText->clear();
+			solutionText->setHtml(output.join(""));
+			QApplication::restoreOverrideCursor();
+		}
+	}
 }
 
@@ -245,15 +303,35 @@
 }
 
+void MainWindow::outputMatrix(tMatrix matrix, QStringList &output, int nRow, int nCol)
+{
+int n = spinCities->value();
+QString line="";
+	output.append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">");
+	for (int r = 0; r < n; r++) {
+		line = "<tr>";
+		for (int c = 0; c < n; c++) {
+			if (matrix[r][c] == INFINITY)
+				line += "<td align=\"center\">"INFSTR"</td>";
+			else if ((r == nRow) && (c == nCol))
+				line += "<td align=\"center\" class=\"selected\">" + QVariant(matrix[r][c]).toString() + "</td>";
+			else
+				line += "<td align=\"center\">" + QVariant(matrix[r][c]).toString() + "</td>";
+		}
+		line += "</tr>";
+		output.append(line);
+	}
+	output.append("</table>");
+}
+
 void MainWindow::buttonSolveClicked()
 {
-	// TODO: Task solving goes here :-)
 tMatrix matrix;
-double *row;
+QList<double> row;
 int n = spinCities->value();
 bool ok;
 	for (int r = 0; r < n; r++) {
-		row = new double[n];
+		row.clear();
 		for (int c = 0; c < n; c++) {
-			row[c] = tspmodel->index(r,c).data(Qt::UserRole).toDouble(&ok);
+			row.append(tspmodel->index(r,c).data(Qt::UserRole).toDouble(&ok));
 			if (!ok) {
 				QMessageBox(QMessageBox::Critical,trUtf8("Data error"),QString(trUtf8("Error in cell [Row %1; Column %2]: Invalid data format.")).arg(r + 1).arg(c + 1),QMessageBox::Ok,this).exec();
@@ -266,6 +344,42 @@
 sStep *root = solver.solve(spinCities->value(),matrix);
 	if (!root)
-		QMessageBox(QMessageBox::Critical,trUtf8("Solution error"),trUtf8("There was an error while solving the task."),QMessageBox::Ok,this).exec();
-	// tabWidget->setCurrentIndex(1);
+		return;
+	QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+QColor color = settings->value("Output/Color",DEF_FONT_COLOR).value<QColor>();
+	output.clear();
+	output.append("<p>" + trUtf8("Variant #%1").arg(spinVariant->value()) + "</p>");
+	output.append("<p>" + trUtf8("Task:") + "</p>");
+	outputMatrix(matrix,output);
+	output.append("<hr>");
+	output.append("<p>" + trUtf8("Solution of Variant #%1 task").arg(spinVariant->value()) + "</p>");
+sStep *step = root;
+	n = 1;
+QString path = "";
+	while (n <= spinCities->value()) {
+		if (step->prNode->prNode != NULL || (step->prNode->prNode == NULL && step->plNode->prNode == NULL)) {
+			if (n != spinCities->value()) {
+				output.append("<p>" + trUtf8("Step #%1").arg(n++) + "</p>");
+				outputMatrix(step->matrix,output,step->candidate.nRow,step->candidate.nCol);
+				if (step->alts)
+					output.append("<p class=\"hasalts\">" + trUtf8("This step has alternate candidates for branching.") + "</p>");
+				output.append("<p>&nbsp;</p>");
+			}
+			path += QString(" (%1,%2)").arg(step->candidate.nRow + 1).arg(step->candidate.nCol + 1);
+		}
+		if (step->prNode->prNode != NULL)
+			step = step->prNode;
+		else if (step->plNode->prNode != NULL)
+			step = step->plNode;
+		else
+			break;
+	}
+	output.append("<p>" + trUtf8("Optimal path:") + "</p>");
+	output.append("<p>&nbsp;&nbsp;" + path + "</p>");
+	output.append("<p>" + trUtf8("The price is <b>%1</b> units.").arg(step->price) + "</p>");
+	solutionText->setHtml(output.join(""));
+	solutionText->setDocumentTitle(trUtf8("Solution of Variant #%1 task").arg(spinVariant->value()));
+	enableSolutionActions();
+	tabWidget->setCurrentIndex(1);
+	QApplication::restoreOverrideCursor();
 }
 
@@ -274,5 +388,6 @@
 	// TODO: Normal about window :-)
 QString about = QString::fromUtf8("TSPSG - TSP Solver and Generator\n");
-about += QString::fromUtf8("    Copyright (C) 2007-%1 Lёppa <contacts[at]oleksii[dot]name>\n").arg(QDate::currentDate().toString("yyyy"));
+	about += QString::fromUtf8("    Version: "BUILD_VERSION" ("BUILD_STATUS")\n");
+	about += QString::fromUtf8("    Copyright (C) 2007-%1 Lёppa <contacts[at]oleksii[dot]name>\n").arg(QDate::currentDate().toString("yyyy"));
 	about += QString::fromUtf8("Target OS: %1\n").arg(OS);
 	about += "Qt library:\n";
Index: src/mainwindow.h
===================================================================
--- src/mainwindow.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/mainwindow.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -44,5 +44,6 @@
 	void actionFileNewTriggered();
 	void actionFileOpenTriggered();
-	void actionFileSaveTaskTriggered();
+	void actionFileSaveAsTaskTriggered();
+	void actionFileSaveAsSolutionTriggered();
 	void actionSettingsPreferencesTriggered();
 	void actionSettingsLanguageAutodetectTriggered(bool);
@@ -62,7 +63,11 @@
 	CTSPModel *tspmodel;
 	QActionGroup *groupSettingsLanguageList;
+	QStringList output;
 	bool loadLanguage(QString lang = "");
 	void loadLangList();
+	void initDocStyleSheet();
 	bool saveTask();
+	void outputMatrix(tMatrix, QStringList &, int nRow = -1, int nCol = -1);
+	void enableSolutionActions(bool enable = true);
 };
 
Index: src/os.h
===================================================================
--- src/os.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/os.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
Index: src/resource.h
===================================================================
--- src/resource.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/resource.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -9,3 +9,6 @@
  */
 
+#include "version.h"
+
+#define VS_VERSION_INFO 1
 #define IDI_APPICON 101
Index: src/settingsdialog.cpp
===================================================================
--- src/settingsdialog.cpp	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/settingsdialog.cpp	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -25,5 +25,5 @@
 
 SettingsDialog::SettingsDialog(QWidget *parent)
-	: QDialog(parent)
+	: QDialog(parent), newFont(false), newColor(false)
 {
 	setupUi(this);
@@ -35,13 +35,8 @@
 //	setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint);
 	setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
-	layout()->setSizeConstraint(layout()->SetFixedSize);
 #ifndef Q_OS_WINCE
 	// Setting initial text of dialog hint label to own status tip
 	// text.
 	labelHint->setText(labelHint->statusTip());
-	// HACK: Do not resize label hint (and dialog) when text changes
-	// from one-line to two-line and vice versa. Any better solution?
-	labelHint->setMaximumHeight(labelHint->height());
-	labelHint->setMinimumHeight(labelHint->height());
 #endif // Q_OS_WINCE
 	settings = new QSettings(QSettings::IniFormat,QSettings::UserScope,"TSPSG","tspsg");
@@ -51,11 +46,53 @@
 	cbSaveState->setChecked(settings->value("SavePos",false).toBool());
 #endif // Q_OS_WINCE
-	settings->beginGroup("Print");
+	settings->beginGroup("Output");
 	font = settings->value("Font",QFont(DEF_FONT_FAMILY,DEF_FONT_SIZE)).value<QFont>();
 	color = settings->value("Color",DEF_FONT_COLOR).value<QColor>();
+	settings->endGroup();
+}
+
+void SettingsDialog::accept()
+{
 #ifndef Q_OS_WINCE
-	spinLeftMargin->setValue(settings->value("Offset",DEF_OFFSET).toInt());
+	settings->setValue("SavePos",cbSaveState->isChecked());
 #endif // Q_OS_WINCE
+	settings->setValue("MinCost",spinRandMin->value());
+	settings->setValue("MaxCost",spinRandMax->value());
+	settings->beginGroup("Output");
+	if (newFont)
+		settings->setValue("Font",font);
+	if (newColor)
+		settings->setValue("Color",color);
 	settings->endGroup();
+	QDialog::accept();
+}
+
+void SettingsDialog::buttonFontClicked()
+{
+bool ok;
+QFont font = QFontDialog::getFont(&ok,this->font,this);
+	if (ok && (this->font != font)) {
+		this->font = font;
+		newFont = true;
+	}
+}
+
+void SettingsDialog::buttonColorClicked()
+{
+QColor color = QColorDialog::getColor(this->color,this);
+	if (color.isValid() && (this->color != color)) {
+		this->color = color;
+		newColor = true;
+	}
+}
+
+bool SettingsDialog::colorChanged() const
+{
+	return newColor;
+}
+
+bool SettingsDialog::fontChanged() const
+{
+	return newFont;
 }
 
@@ -77,34 +114,2 @@
 }
 #endif // Q_OS_WINCE
-
-void SettingsDialog::buttonFontClicked()
-{
-bool ok;
-QFont font = QFontDialog::getFont(&ok,this->font,this);
-	if (ok)
-		this->font = font;
-}
-
-void SettingsDialog::buttonColorClicked()
-{
-QColor color = QColorDialog::getColor(this->color,this);
-	if (color.isValid())
-		this->color = color;
-}
-
-void SettingsDialog::accept()
-{
-#ifndef Q_OS_WINCE
-	settings->setValue("SavePos",cbSaveState->isChecked());
-#endif // Q_OS_WINCE
-	settings->setValue("MinCost",spinRandMin->value());
-	settings->setValue("MaxCost",spinRandMax->value());
-	settings->beginGroup("Print");
-	settings->setValue("Font",font);
-	settings->setValue("Color",color);
-#ifndef Q_OS_WINCE
-	settings->setValue("Offset",spinLeftMargin->value());
-#endif // Q_OS_WINCE
-	settings->endGroup();
-	QDialog::accept();
-}
Index: src/settingsdialog.h
===================================================================
--- src/settingsdialog.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/settingsdialog.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -37,4 +37,6 @@
 public:
 	SettingsDialog(QWidget *parent = 0);
+	bool fontChanged() const;
+	bool colorChanged() const;
 
 private:
@@ -42,4 +44,6 @@
 	QFont font;
 	QColor color;
+	bool newFont;
+	bool newColor;
 #ifndef Q_OS_WINCE
 	bool event(QEvent *);
Index: src/tspmodel.cpp
===================================================================
--- src/tspmodel.cpp	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/tspmodel.cpp	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -119,20 +119,11 @@
 		return;
 	emit layoutAboutToBeChanged();
-	if (n > nCities) {
-		for (int r = 0; r < nCities; r++) {
-			for (int c = nCities; c < n; c++)
-				if (r == c)
-					table[r][c] = INFINITY;
-				else
-					table[r][c] = 0;
-		}
-		for (int r = nCities; r < n; r++) {
-			for (int c = 0; c < n; c++)
-				if (r == c)
-					table[r][c] = INFINITY;
-				else
-					table[r][c] = 0;
-		}
-	}
+	table.resize(n);
+	for (int k = 0; k < n; k++) {
+		table[k].resize(n);
+	}
+	if (n > nCities)
+		for (int k = nCities; k < n; k++)
+			table[k][k] = INFINITY;
 	nCities = n;
 	emit layoutChanged();
@@ -148,5 +139,5 @@
 }
 
-inline bool CTSPModel::loadError(QDataStream::Status status) const
+inline bool CTSPModel::loadError(QDataStream::Status status)
 {
 QString err;
@@ -257,7 +248,7 @@
 	// Costs
 double val;
-	for (int r = 0; r < size; r++)
-		for (int c = 0; c < size; c++)
-			if (r != c) {
+	for (int r = 0; r < 5; r++)
+		for (int c = 0; c < 5; c++)
+			if ((r != c) && (r < size)) {
 				ds->readRawData(reinterpret_cast<char *>(&val),8);
 				if (loadError(ds->status())) {
Index: src/tspmodel.h
===================================================================
--- src/tspmodel.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/tspmodel.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -48,8 +48,8 @@
 private:
 	QSettings *settings;
-	double table[MAX_CITIES][MAX_CITIES];
+	QVector<QVector<double>> table;
 	quint16 nCities;
 	int rand(int, int) const;
-	bool loadError(QDataStream::Status) const;
+	bool loadError(QDataStream::Status);
 	void loadZKT(QDataStream *);
 	void loadTSPT(QDataStream *);
Index: src/tspsolver.cpp
===================================================================
--- src/tspsolver.cpp	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/tspsolver.cpp	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -26,34 +26,189 @@
 
 CTSPSolver::CTSPSolver()
-{
-}
-
-double CTSPSolver::findMinInRow(int nRow, tMatrix matrix)
+	: nCities(0)
+{
+}
+
+void CTSPSolver::cleanup()
+{
+	route.clear();
+}
+
+double CTSPSolver::findMinInRow(int nRow, tMatrix matrix, int exc)
 {
 double min = INFINITY;
 	for (int k = 0; k < nCities; k++)
-		if (min > matrix[nRow][k])
+		if (((k != exc)) && (min > matrix[nRow][k]))
 			min = matrix[nRow][k];
 	return min == INFINITY ? 0 : min;
 }
 
-double CTSPSolver::findMinInCol(int nCol, tMatrix matrix)
+double CTSPSolver::findMinInCol(int nCol, tMatrix matrix, int exr)
 {
 double min = INFINITY;
 	for (int k = 0; k < nCities; k++)
-		if (min > matrix[k][nCol])
+		if ((k != exr) && (min > matrix[k][nCol]))
 			min = matrix[k][nCol];
 	return min == INFINITY ? 0 : min;
 }
 
-sStep *CTSPSolver::solve(int numCities, tMatrix task)
+void CTSPSolver::subRow(tMatrix &matrix, int nRow, double val)
+{
+	for (int k = 0; k < nCities; k++)
+		if (k != nRow)
+			matrix[nRow][k] -= val;
+}
+
+void CTSPSolver::subCol(tMatrix &matrix, int nCol, double val)
+{
+	for (int k = 0; k < nCities; k++)
+		if (k != nCol)
+			matrix[k][nCol] -= val;
+}
+
+double CTSPSolver::align(tMatrix &matrix)
+{
+double r = 0;
+double min;
+	for (int k = 0; k < nCities; k++) {
+		min = findMinInRow(k,matrix);
+		if (min > 0) {
+			r += min;
+			subRow(matrix,k,min);
+		}
+	}
+	for (int k = 0; k < nCities; k++) {
+		min = findMinInCol(k,matrix);
+		if (min > 0) {
+			r += min;
+			subCol(matrix,k,min);
+		}
+	}
+	return r;
+}
+
+bool CTSPSolver::findCandidate(tMatrix matrix, int &nRow, int &nCol, double &h)
+{
+	h = -1;
+	nRow = -1;
+	nCol = -1;
+bool alts = false;
+double sum;
+	for (int r = 0; r < nCities; r++)
+		for (int c = 0; c < nCities; c++)
+			if ((matrix[r][c] == 0) && !forbidden.values(r).contains(c)) {
+				sum = findMinInRow(r,matrix,c) + findMinInCol(c,matrix,r);
+				if (sum > h) {
+					h = sum;
+					nRow = r;
+					nCol = c;
+					alts = false;
+				} else if (sum == h)
+					alts = true;
+			}
+	return alts;
+}
+
+bool CTSPSolver::hasSubCycles(int nRow, int nCol)
+{
+	if ((nRow < 0) || (nCol < 0) || route.isEmpty() || !(route.size() < nCities - 1) || !route.contains(nCol))
+		return false;
+int i = nCol;
+	while (true) {
+		if ((i = route[i]) == nRow)
+			return true;
+		if (!route.contains(i))
+			return false;
+	}
+	return false;
+}
+
+// TODO: Comment the algorithm
+sStep *CTSPSolver::solve(int numCities, tMatrix task, QWidget *parent)
 {
 	if (numCities <= 1)
 		return NULL;
+	cleanup();
 	nCities = numCities;
+double s;
+QProgressDialog pd(parent);
+QProgressBar *pb = new QProgressBar(&pd);
+	pb->setAlignment(Qt::AlignCenter);
+	pb->setFormat(trUtf8("%v of %m parts found"));
+	pd.setBar(pb);
+	pd.setMaximum(nCities);
+	pd.setMinimumDuration(1000);
+	pd.setLabelText(trUtf8("Calculating optimal route..."));
+	pd.setWindowTitle(trUtf8("Solution Progress"));
+	pd.setWindowModality(Qt::ApplicationModal);
+	pd.setValue(0);
+
 sStep *step = new sStep();
 	step->matrix = task;
+
+	s = align(step->matrix);
+	step->price = s;
 	root = step;
 
-	return step;
-}
+sStep *left, *right;
+int nRow, nCol;
+	while (route.size() < nCities) {
+		forbidden.clear();
+		step->alts = findCandidate(step->matrix,nRow,nCol,s);
+		while (hasSubCycles(nRow,nCol)) {
+			forbidden[nRow] = nCol;
+			step->matrix[nRow][nCol] = INFINITY;
+			step->price += align(step->matrix);
+			step->alts = findCandidate(step->matrix,nRow,nCol,s);
+		}
+		if ((nRow == -1) || (nCol == -1) || pd.wasCanceled()) {
+			root = NULL;
+			break;
+		}
+
+		// Route with (nRow,nCol) path
+		right = new sStep();
+		right->matrix = step->matrix;
+		for (int k = 0; k < nCities; k++) {
+			if (k != nCol)
+				right->matrix[nRow][k] = INFINITY;
+			if (k != nRow)
+				right->matrix[k][nCol] = INFINITY;
+		}
+		right->price = step->price + align(right->matrix);
+		// Forbid selected route to exclude its reuse in next steps.
+		right->matrix[nCol][nRow] = INFINITY;
+		right->matrix[nRow][nCol] = INFINITY;
+
+		// Route without (nRow,nCol) path
+		left = new sStep();
+		left->matrix = step->matrix;
+		left->matrix[nRow][nCol] = INFINITY;
+ 		left->price = step->price + align(left->matrix);
+
+		step->candidate.nRow = nRow;
+		step->candidate.nCol = nCol;
+		step->plNode = left;
+		step->prNode = right;
+
+		if (right->price <= left->price) {
+			// Route with (nRow,nCol) path is cheaper
+			step = right;
+			route[nRow] = nCol;
+			pd.setValue(route.size());
+		} else {
+			// Route without (nRow,nCol) path is cheaper
+			step = left;
+			qApp->processEvents();
+		}
+	}
+
+	pd.reset();
+	qApp->processEvents();
+
+	if (!root && !pd.wasCanceled()) {
+		QMessageBox(QMessageBox::Warning,trUtf8("Solution Result"),trUtf8("This task has no solution."),QMessageBox::Ok,parent).exec();
+	}
+
+	return root;
+}
Index: src/tspsolver.h
===================================================================
--- src/tspsolver.h	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ src/tspsolver.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,4 +1,4 @@
 /*
- *  TSPSG - TSP Solver and Generator
+ *  TSPSG: TSP Solver and Generator
  *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
  *
@@ -27,14 +27,15 @@
 #include "globals.h"
 
-typedef QList<double *> tMatrix;
+typedef QList<QList<double>> tMatrix;
 
 // This structure represents one step of solving
 // The tree of such elements will represent the solving process
 struct sStep {
-	tMatrix matrix;
-	double price;
-	struct {unsigned int x; unsigned int y;} pos;
-	sStep *plNode, *prNode;
-	sStep() { price = pos.x = pos.y = 0; plNode = prNode = NULL; }
+	tMatrix matrix; // Steps's matrix
+	double price; // Price of travel to this step
+	struct {unsigned int nRow; unsigned int nCol;} candidate; // Candiadate for branching in current matrix
+	bool alts; // This matrix has alternative candidates
+	sStep *plNode, *prNode; // Pointers to left and right branch steps
+	sStep() { price = candidate.nRow = candidate.nCol = -1; alts = false; plNode = prNode = NULL; } // Default values
 };
 
@@ -42,12 +43,23 @@
 class CTSPSolver
 {
+	Q_DECLARE_TR_FUNCTIONS(CTSPSolver)
+
 public:
 	CTSPSolver();
-	sStep *solve(int, tMatrix);
+	sStep *solve(int, tMatrix, QWidget *parent = 0);
+
 private:
 	int nCities;
 	sStep *root;
-	double findMinInRow(int, tMatrix);
-	double findMinInCol(int, tMatrix);
+	QHash<int,int> route;
+	QHash<int,int> forbidden;
+	double align(tMatrix &);
+	void cleanup();
+	bool findCandidate(tMatrix, int &, int &, double &);
+	double findMinInRow(int, tMatrix, int exc = -1);
+	double findMinInCol(int, tMatrix, int exr = -1);
+	bool hasSubCycles(int, int);
+	void subCol(tMatrix &, int, double);
+	void subRow(tMatrix &, int, double);
 };
 
Index: src/version.h
===================================================================
--- src/version.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
+++ src/version.h	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -0,0 +1,40 @@
+/*
+ *  TSPSG: TSP Solver and Generator
+ *  Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
+ *
+ *  $Id$
+ *  $URL$
+ *
+ *  This file is part of TSPSG.
+ *
+ *  TSPSG is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  TSPSG is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with TSPSG.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef VERSION_H
+#define VERSION_H
+
+#define BUILD_VERSION_MAJOR 0
+#define BUILD_VERSION_MINOR 1
+#define BUILD_RELEASE 1
+// Will stick this to revision
+#define BUILD_NUMBER 42
+#define BUILD_STATUS "alpha 1"
+
+// "Converting" number to string
+#define QUOTE_X(x) #x
+#define QUOTE(x) QUOTE_X(x)
+
+#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE)
+
+#endif // VERSION_H
Index: tspsg.pri
===================================================================
--- tspsg.pri	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ tspsg.pri	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,5 +1,5 @@
 ######################################################################
 #
-# TSPSG - TSP Solver and Generator
+# TSPSG: TSP Solver and Generator
 # Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
 #
@@ -13,4 +13,5 @@
 #Header files
 HEADERS += src/globals.h \
+	src/version.h \
 	src/os.h \
 	src/mainwindow.h \
Index: tspsg.pro
===================================================================
--- tspsg.pro	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ tspsg.pro	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -1,5 +1,5 @@
 ######################################################################
 #
-# TSPSG - TSP Solver and Generator
+# TSPSG: TSP Solver and Generator
 # Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
 #
Index: ui/mainwindow.ce.ui
===================================================================
--- ui/mainwindow.ce.ui	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ ui/mainwindow.ce.ui	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -10,6 +10,6 @@
     <x>0</x>
     <y>0</y>
-    <width>234</width>
-    <height>292</height>
+    <width>225</width>
+    <height>322</height>
    </rect>
   </property>
@@ -22,7 +22,4 @@
   </property>
   <widget class="QWidget" name="centralwidget">
-   <property name="enabled">
-    <bool>true</bool>
-   </property>
    <widget class="QTabWidget" name="tabWidget">
     <property name="enabled">
@@ -31,8 +28,8 @@
     <property name="geometry">
      <rect>
-      <x>0</x>
-      <y>0</y>
-      <width>235</width>
-      <height>240</height>
+      <x>9</x>
+      <y>9</y>
+      <width>207</width>
+      <height>248</height>
      </rect>
     </property>
@@ -206,34 +203,20 @@
       <string>Solution</string>
      </attribute>
-     <layout class="QVBoxLayout" name="_4">
+     <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
-       <layout class="QHBoxLayout" name="_5">
-        <property name="spacing">
-         <number>0</number>
+       <widget class="QTextEdit" name="solutionText">
+        <property name="enabled">
+         <bool>false</bool>
         </property>
-        <item>
-         <widget class="QTextEdit" name="textEdit">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="statusTip">
-           <string>Solution steps</string>
-          </property>
-          <property name="readOnly">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QGraphicsView" name="graphicsView">
-          <property name="statusTip">
-           <string>Solution graph</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
+        <property name="statusTip">
+         <string>Solution steps</string>
+        </property>
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+        <property name="textInteractionFlags">
+         <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+        </property>
+       </widget>
       </item>
      </layout>
@@ -246,6 +229,6 @@
      <x>0</x>
      <y>0</y>
-     <width>234</width>
-     <height>24</height>
+     <width>225</width>
+     <height>22</height>
     </rect>
    </property>
@@ -270,9 +253,6 @@
        <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
      </property>
-     <addaction name="actionFileSaveTask"/>
-     <addaction name="separator"/>
-     <addaction name="actionFileSaveResultAll"/>
-     <addaction name="actionFileSaveResultMatrices"/>
-     <addaction name="actionFileSaveResultGraph"/>
+     <addaction name="actionFileSaveAsTask"/>
+     <addaction name="actionFileSaveAsSolution"/>
     </widget>
     <addaction name="actionFileNew"/>
@@ -295,5 +275,5 @@
      </property>
      <property name="title">
-      <string extracomment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
+      <string comment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
      </property>
      <property name="icon">
@@ -369,10 +349,13 @@
    </property>
   </action>
-  <action name="actionFileSaveResultAll">
+  <action name="actionFileSaveAsSolution">
    <property name="enabled">
     <bool>false</bool>
    </property>
    <property name="text">
-    <string>&amp;Solution</string>
+    <string>&amp;Solution...</string>
+   </property>
+   <property name="iconText">
+    <string>Solution...</string>
    </property>
    <property name="toolTip">
@@ -497,5 +480,5 @@
    </property>
   </action>
-  <action name="actionFileSaveTask">
+  <action name="actionFileSaveAsTask">
    <property name="icon">
     <iconset resource="../resources/tspsg.qrc">
@@ -567,5 +550,5 @@
    <property name="icon">
     <iconset resource="../resources/tspsg.qrc">
-     <normaloff>:/images/qtlogo-64.png</normaloff>:/images/qtlogo-64.png</iconset>
+     <normaloff>:/images/icons/qtlogo-64.png</normaloff>:/images/icons/qtlogo-64.png</iconset>
    </property>
    <property name="text">
Index: ui/mainwindow.ui
===================================================================
--- ui/mainwindow.ui	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ ui/mainwindow.ui	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -7,6 +7,6 @@
     <x>0</x>
     <y>0</y>
-    <width>640</width>
-    <height>480</height>
+    <width>491</width>
+    <height>400</height>
    </rect>
   </property>
@@ -19,206 +19,196 @@
   </property>
   <widget class="QWidget" name="centralwidget">
-   <layout class="QGridLayout">
-    <item row="0" column="0">
-     <widget class="QTabWidget" name="tabWidget">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="currentIndex">
-       <number>0</number>
-      </property>
-      <widget class="QWidget" name="tabTask">
-       <attribute name="title">
-        <string>Task</string>
-       </attribute>
-       <layout class="QVBoxLayout">
-        <item>
-         <layout class="QHBoxLayout">
-          <item>
-           <spacer>
-            <property name="orientation">
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>40</width>
-              <height>20</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-          <item>
-           <widget class="QLabel" name="labelVariant">
-            <property name="text">
-             <string>&amp;Variant:</string>
-            </property>
-            <property name="buddy">
-             <cstring>spinVariant</cstring>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QSpinBox" name="spinVariant">
-            <property name="cursor">
-             <cursorShape>PointingHandCursor</cursorShape>
-            </property>
-            <property name="statusTip">
-             <string>Number of variant</string>
-            </property>
-            <property name="minimum">
-             <number>1</number>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QLabel" name="labelCities">
-            <property name="text">
-             <string>&amp;Cities:</string>
-            </property>
-            <property name="buddy">
-             <cstring>spinCities</cstring>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QSpinBox" name="spinCities">
-            <property name="cursor">
-             <cursorShape>PointingHandCursor</cursorShape>
-            </property>
-            <property name="statusTip">
-             <string>Number of cities</string>
-            </property>
-            <property name="minimum">
-             <number>3</number>
-            </property>
-            <property name="maximum">
-             <number>5</number>
-            </property>
-            <property name="value">
-             <number>5</number>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <spacer>
-            <property name="orientation">
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>40</width>
-              <height>20</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-         </layout>
-        </item>
-        <item>
-         <widget class="QTableView" name="taskView">
+   <widget class="QTabWidget" name="tabWidget">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>0</y>
+      <width>481</width>
+      <height>311</height>
+     </rect>
+    </property>
+    <property name="sizePolicy">
+     <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+      <horstretch>0</horstretch>
+      <verstretch>0</verstretch>
+     </sizepolicy>
+    </property>
+    <property name="currentIndex">
+     <number>0</number>
+    </property>
+    <widget class="QWidget" name="tabTask">
+     <attribute name="title">
+      <string>Task</string>
+     </attribute>
+     <layout class="QVBoxLayout">
+      <item>
+       <layout class="QHBoxLayout">
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QLabel" name="labelVariant">
+          <property name="text">
+           <string>&amp;Variant:</string>
+          </property>
+          <property name="buddy">
+           <cstring>spinVariant</cstring>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="spinVariant">
+          <property name="cursor">
+           <cursorShape>PointingHandCursor</cursorShape>
+          </property>
           <property name="statusTip">
-           <string>Cost of travel from city to city</string>
-          </property>
-          <property name="selectionMode">
-           <enum>QAbstractItemView::NoSelection</enum>
+           <string>Number of variant</string>
+          </property>
+          <property name="minimum">
+           <number>1</number>
           </property>
          </widget>
         </item>
         <item>
-         <layout class="QHBoxLayout">
-          <item>
-           <spacer>
-            <property name="orientation">
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>40</width>
-              <height>20</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-          <item>
-           <widget class="QPushButton" name="buttonRandom">
-            <property name="cursor">
-             <cursorShape>PointingHandCursor</cursorShape>
-            </property>
-            <property name="statusTip">
-             <string>Fill table with random numbers</string>
-            </property>
-            <property name="text">
-             <string>Random</string>
-            </property>
-            <property name="icon">
-             <iconset resource="../resources/tspsg.qrc">
-              <normaloff>:/images/icons/roll.png</normaloff>:/images/icons/roll.png</iconset>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QPushButton" name="buttonSolve">
-            <property name="cursor">
-             <cursorShape>PointingHandCursor</cursorShape>
-            </property>
-            <property name="statusTip">
-             <string>Solve current task</string>
-            </property>
-            <property name="text">
-             <string>Solve</string>
-            </property>
-            <property name="icon">
-             <iconset resource="../resources/tspsg.qrc">
-              <normaloff>:/images/icons/button_ok.png</normaloff>:/images/icons/button_ok.png</iconset>
-            </property>
-           </widget>
-          </item>
-         </layout>
+         <widget class="QLabel" name="labelCities">
+          <property name="text">
+           <string>&amp;Cities:</string>
+          </property>
+          <property name="buddy">
+           <cstring>spinCities</cstring>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="spinCities">
+          <property name="cursor">
+           <cursorShape>PointingHandCursor</cursorShape>
+          </property>
+          <property name="statusTip">
+           <string>Number of cities</string>
+          </property>
+          <property name="minimum">
+           <number>3</number>
+          </property>
+          <property name="maximum">
+           <number>5</number>
+          </property>
+          <property name="value">
+           <number>5</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
         </item>
        </layout>
-      </widget>
-      <widget class="QWidget" name="tabSolution">
-       <attribute name="title">
-        <string>Solution</string>
-       </attribute>
-       <layout class="QVBoxLayout">
-        <item>
-         <layout class="QHBoxLayout">
-          <property name="spacing">
-           <number>0</number>
-          </property>
-          <item>
-           <widget class="QTextEdit" name="textEdit">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="statusTip">
-             <string>Solution steps</string>
-            </property>
-            <property name="readOnly">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QGraphicsView" name="graphicsView">
-            <property name="statusTip">
-             <string>Solution graph</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
+      </item>
+      <item>
+       <widget class="QTableView" name="taskView">
+        <property name="statusTip">
+         <string>Cost of travel from city to city</string>
+        </property>
+        <property name="selectionMode">
+         <enum>QAbstractItemView::NoSelection</enum>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout">
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="buttonRandom">
+          <property name="cursor">
+           <cursorShape>PointingHandCursor</cursorShape>
+          </property>
+          <property name="statusTip">
+           <string>Fill table with random numbers</string>
+          </property>
+          <property name="text">
+           <string>Random</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources/tspsg.qrc">
+            <normaloff>:/images/icons/roll.png</normaloff>:/images/icons/roll.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="buttonSolve">
+          <property name="cursor">
+           <cursorShape>PointingHandCursor</cursorShape>
+          </property>
+          <property name="statusTip">
+           <string>Solve current task</string>
+          </property>
+          <property name="text">
+           <string>Solve</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources/tspsg.qrc">
+            <normaloff>:/images/icons/button_ok.png</normaloff>:/images/icons/button_ok.png</iconset>
+          </property>
+         </widget>
         </item>
        </layout>
-      </widget>
-     </widget>
-    </item>
-   </layout>
+      </item>
+     </layout>
+    </widget>
+    <widget class="QWidget" name="tabSolution">
+     <attribute name="title">
+      <string>Solution</string>
+     </attribute>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QTextEdit" name="solutionText">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="statusTip">
+         <string>Solution steps</string>
+        </property>
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+        <property name="textInteractionFlags">
+         <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </widget>
   </widget>
   <widget class="QMenuBar" name="menubar">
@@ -227,6 +217,6 @@
      <x>0</x>
      <y>0</y>
-     <width>640</width>
-     <height>24</height>
+     <width>491</width>
+     <height>22</height>
     </rect>
    </property>
@@ -248,9 +238,6 @@
        <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
      </property>
-     <addaction name="actionFileSaveTask"/>
-     <addaction name="separator"/>
-     <addaction name="actionFileSaveSolutionAll"/>
-     <addaction name="actionFileSaveSolutionMatrices"/>
-     <addaction name="actionFileSaveSolutionGraph"/>
+     <addaction name="actionFileSaveAsTask"/>
+     <addaction name="actionFileSaveAsSolution"/>
     </widget>
     <addaction name="actionFileNew"/>
@@ -276,5 +263,5 @@
      </property>
      <property name="title">
-      <string extracomment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
+      <string comment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
      </property>
      <property name="icon">
@@ -325,4 +312,7 @@
   </widget>
   <action name="actionFilePrintSetup">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
    <property name="icon">
     <iconset resource="../resources/tspsg.qrc">
@@ -382,10 +372,10 @@
    </property>
   </action>
-  <action name="actionFileSaveSolutionAll">
-   <property name="enabled">
-    <bool>false</bool>
-   </property>
-   <property name="text">
-    <string>&amp;Solution</string>
+  <action name="actionFileSaveAsSolution">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;Solution...</string>
    </property>
    <property name="toolTip">
@@ -510,9 +500,5 @@
    </property>
   </action>
-  <action name="actionFileSaveTask">
-   <property name="icon">
-    <iconset resource="../resources/tspsg.qrc">
-     <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
-   </property>
+  <action name="actionFileSaveAsTask">
    <property name="text">
     <string>&amp;Task...</string>
@@ -583,5 +569,5 @@
    <property name="icon">
     <iconset resource="../resources/tspsg.qrc">
-     <normaloff>:/images/qtlogo-64.png</normaloff>:/images/qtlogo-64.png</iconset>
+     <normaloff>:/images/icons/qtlogo-64.png</normaloff>:/images/icons/qtlogo-64.png</iconset>
    </property>
    <property name="text">
Index: ui/settingsdialog.ce.ui
===================================================================
--- ui/settingsdialog.ce.ui	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ ui/settingsdialog.ce.ui	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -7,6 +7,6 @@
     <x>0</x>
     <y>0</y>
-    <width>235</width>
-    <height>180</height>
+    <width>205</width>
+    <height>212</height>
    </rect>
   </property>
@@ -180,53 +180,45 @@
       </item>
       <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="buttonColor">
-          <property name="cursor">
-           <cursorShape>PointingHandCursor</cursorShape>
-          </property>
-          <property name="statusTip">
-           <string>Font color for printing</string>
-          </property>
-          <property name="text">
-           <string>&amp;Color...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../resources/tspsg.qrc">
-            <normaloff>:/images/icons/color_line.png</normaloff>:/images/icons/color_line.png</iconset>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="buttonFont">
-          <property name="cursor">
-           <cursorShape>PointingHandCursor</cursorShape>
-          </property>
-          <property name="statusTip">
-           <string>Font face for printing</string>
-          </property>
-          <property name="text">
-           <string>&amp;Font...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../resources/tspsg.qrc">
-            <normaloff>:/images/icons/fonts.png</normaloff>:/images/icons/fonts.png</iconset>
-          </property>
-         </widget>
-        </item>
-       </layout>
+       <widget class="QGroupBox" name="groupOutputSettings">
+        <property name="title">
+         <string>Output settings:</string>
+        </property>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <widget class="QPushButton" name="buttonFont">
+           <property name="cursor">
+            <cursorShape>PointingHandCursor</cursorShape>
+           </property>
+           <property name="statusTip">
+            <string>Font face for printing</string>
+           </property>
+           <property name="text">
+            <string>&amp;Font...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../resources/tspsg.qrc">
+             <normaloff>:/images/icons/fonts.png</normaloff>:/images/icons/fonts.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="buttonColor">
+           <property name="cursor">
+            <cursorShape>PointingHandCursor</cursorShape>
+           </property>
+           <property name="statusTip">
+            <string>Font color for printing</string>
+           </property>
+           <property name="text">
+            <string>&amp;Color...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../resources/tspsg.qrc">
+             <normaloff>:/images/icons/color_line.png</normaloff>:/images/icons/color_line.png</iconset>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
       </item>
       <item>
Index: ui/settingsdialog.ui
===================================================================
--- ui/settingsdialog.ui	(revision b5c9bcb585676ba581afb851fefa70eca0341262)
+++ ui/settingsdialog.ui	(revision 430bd7f7e921daaebe01fd919c3125800872eceb)
@@ -7,6 +7,6 @@
     <x>0</x>
     <y>0</y>
-    <width>448</width>
-    <height>174</height>
+    <width>415</width>
+    <height>176</height>
    </rect>
   </property>
@@ -231,88 +231,42 @@
           </item>
           <item>
-           <widget class="QGroupBox" name="groupPrintSetup">
+           <widget class="QGroupBox" name="groupOutputSettings">
             <property name="title">
-             <string>Print settings:</string>
+             <string>Output settings:</string>
             </property>
             <layout class="QVBoxLayout" name="verticalLayout">
              <item>
-              <layout class="QHBoxLayout">
-               <item>
-                <widget class="QLabel" name="labelLeftMargin">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>&amp;Left margin:</string>
-                 </property>
-                 <property name="buddy">
-                  <cstring>spinLeftMargin</cstring>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QSpinBox" name="spinLeftMargin">
-                 <property name="cursor">
-                  <cursorShape>PointingHandCursor</cursorShape>
-                 </property>
-                 <property name="statusTip">
-                  <string>Left border margin for page</string>
-                 </property>
-                 <property name="maximum">
-                  <number>999</number>
-                 </property>
-                 <property name="singleStep">
-                  <number>10</number>
-                 </property>
-                 <property name="value">
-                  <number>100</number>
-                 </property>
-                </widget>
-               </item>
-              </layout>
+              <widget class="QPushButton" name="buttonFont">
+               <property name="cursor">
+                <cursorShape>PointingHandCursor</cursorShape>
+               </property>
+               <property name="statusTip">
+                <string>Font face for printing</string>
+               </property>
+               <property name="text">
+                <string>&amp;Font...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../resources/tspsg.qrc">
+                 <normaloff>:/images/icons/fonts.png</normaloff>:/images/icons/fonts.png</iconset>
+               </property>
+              </widget>
              </item>
              <item>
-              <layout class="QHBoxLayout" name="horizontalLayout">
-               <property name="spacing">
-                <number>0</number>
-               </property>
-               <item>
-                <widget class="QPushButton" name="buttonColor">
-                 <property name="cursor">
-                  <cursorShape>PointingHandCursor</cursorShape>
-                 </property>
-                 <property name="statusTip">
-                  <string>Font color for printing</string>
-                 </property>
-                 <property name="text">
-                  <string>&amp;Color...</string>
-                 </property>
-                 <property name="icon">
-                  <iconset resource="../resources/tspsg.qrc">
-                   <normaloff>:/images/icons/color_line.png</normaloff>:/images/icons/color_line.png</iconset>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <widget class="QPushButton" name="buttonFont">
-                 <property name="cursor">
-                  <cursorShape>PointingHandCursor</cursorShape>
-                 </property>
-                 <property name="statusTip">
-                  <string>Font face for printing</string>
-                 </property>
-                 <property name="text">
-                  <string>&amp;Font...</string>
-                 </property>
-                 <property name="icon">
-                  <iconset resource="../resources/tspsg.qrc">
-                   <normaloff>:/images/icons/fonts.png</normaloff>:/images/icons/fonts.png</iconset>
-                 </property>
-                </widget>
-               </item>
-              </layout>
+              <widget class="QPushButton" name="buttonColor">
+               <property name="cursor">
+                <cursorShape>PointingHandCursor</cursorShape>
+               </property>
+               <property name="statusTip">
+                <string>Font color for printing</string>
+               </property>
+               <property name="text">
+                <string>&amp;Color...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../resources/tspsg.qrc">
+                 <normaloff>:/images/icons/color_line.png</normaloff>:/images/icons/color_line.png</iconset>
+               </property>
+              </widget>
              </item>
             </layout>
@@ -400,4 +354,16 @@
         </sizepolicy>
        </property>
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>28</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>16777215</width>
+         <height>28</height>
+        </size>
+       </property>
        <property name="statusTip">
         <string>Hover mouse pointer over dialog elements to get additional help</string>
@@ -460,4 +426,12 @@
  <resources>
   <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
+  <include location="../resources/tspsg.qrc"/>
  </resources>
  <connections/>
