Index: trunk/install.pri
===================================================================
--- trunk/install.pri	(revision 109)
+++ trunk/install.pri	(revision 109)
@@ -0,0 +1,110 @@
+######################################################################
+#
+#  TSPSG: TSP Solver and Generator
+#  Copyright (C) 2007-2010 Lёppa <contacts[at]oleksii[dot]name>
+#
+#  $Id$
+#  $URL$
+#
+#  This file is part of TSPSG.
+#
+######################################################################
+
+# Common rules
+l10n.files = l10n/*.qm
+#share.files =
+docs.files = COPYING README.txt
+INSTALLS += target l10n share docs
+
+# For *nix:
+#   - executable goes to /usr/bin
+#   - COPYING and README go to /usr/share/TSPSG
+#   - translations go to /usr/share/TSPSG/l10n
+#   - docs go to /usr/share/doc/TSPSG-x.x.x
+unix:!symbian {
+	PREFIX = /usr
+	CONFIG(release, debug|release) {
+		DEFINES += PATH_L10N=\\\"$$PREFIX/share/TSPSG/l10n\\\"
+		DEFINES += PATH_DOCS=\\\"$$PREFIX/share/TSPSG/docs\\\"
+	}
+
+	target.path = $$PREFIX/bin
+	share.path = $$PREFIX/share/TSPSG
+	l10n.path = $$PREFIX/share/TSPSG/l10n
+	docs.path = $$PREFIX/share/doc/TSPSG-$$VERSION
+	apps.files = resources/tspsg.desktop
+	apps.path = $$PREFIX/share/applications/
+	icon.files = resources/tspsg.png
+	icon.path = $$PREFIX/share/pixmaps
+	INSTALLS += apps icon
+}
+
+# TODO: MacOSX
+
+# For win32: everything goes to "%PROGRAMFILES%\TSPSG" and subfolders.
+win32 {
+	PREFIX = "$$(PROGRAMFILES)"
+
+	share.files = $$[QT_INSTALL_BINS]/QtCore$${D}4.dll \
+		$$[QT_INSTALL_BINS]/QtGui$${D}4.dll
+	!nosvg {
+		share.files += $$[QT_INSTALL_BINS]/QtSvg$${D}4.dll
+	}
+	l10n.files += $$[QT_INSTALL_TRANSLATIONS]/*.qm
+	win32-g++ {
+		share.files += $$[QT_INSTALL_BINS]/mingwm10.dll \
+			$$[QT_INSTALL_BINS]/libgcc_s_dw2-1.dll
+	}
+	imageformats.files = $$[QT_INSTALL_PLUGINS]/imageformats/qjpeg$${D}4.dll \
+		$$[QT_INSTALL_PLUGINS]/imageformats/qtiff$${D}4.dll
+	imageformats.path = $$PREFIX/TSPSG/imageformats
+	INSTALLS += imageformats
+}
+
+# For wince: we are deploying to \Program Files\TSPSG.
+wince {
+	PREFIX = "\Program Files"
+	share.sources = $$share.files
+	l10n.sources = $$l10n.files \
+		$$[QT_INSTALL_TRANSLATIONS]/*.qm
+	docs.sources = $$docs.files
+
+	DEPLOYMENT += target share l10n docs
+#	DEPLOYMENT_PLUGIN += qjpeg qtiff
+}
+
+# win32 and wince common
+win* {
+	target.path = $$PREFIX/TSPSG
+	share.path = $$PREFIX/TSPSG
+	l10n.path = $$PREFIX/TSPSG/l10n
+	docs.path = $$PREFIX/TSPSG
+
+	RC_FILE = resources/tspsg.rc
+}
+
+# Symbian
+symbian {
+	# qmake for Symbian (as of Qt 4.6.2) has a bug: file masks doesn't work, so we need to specify all files manually
+	share.sources = $$share.files
+	l10n.sources = $$[QT_INSTALL_TRANSLATIONS]/qt_ru.qm \
+		$$[QT_INSTALL_TRANSLATIONS]/qt_uk.qm \
+		l10n/tspsg_en.qm l10n/tspsg_ru.qm l10n/tspsg_uk.qm
+	l10n.path = l10n
+	docs.sources = $$docs.files
+	docs.pkg_prerules = \
+		"\"README.txt\" - \"\", FILETEXT, TEXTCONTINUE" \
+		"\"COPYING\" - \"\", FILETEXT, TEXTEXIT"
+	DEPLOYMENT += share l10n docs
+#	DEPLOYMENT_PLUGIN += qjpeg qtiff
+
+	ICON = resources/tspsg.svg
+
+	appinfo = \
+		"$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e),$$BUILD_VERSION_MAJOR,$$BUILD_VERSION_MINOR,$$BUILD_RELEASE"
+	vendorinfo = \
+		"%{\"l-homes.org\"}" \
+		":\"l-homes.org\""
+	default_deployment.pkg_prerules = appinfo vendorinfo
+	DEPLOYMENT.installer_header = "$${LITERAL_HASH}{\"TSPSG Installer\"},(0xA000D7CE),1,0,0"
+}
Index: trunk/src/defaults.h
===================================================================
--- trunk/src/defaults.h	(revision 108)
+++ trunk/src/defaults.h	(revision 109)
@@ -67,4 +67,13 @@
 //! Default for "Show solution graph"
 #define DEF_SHOW_GRAPH true
+/*!
+ * \def DEF_GRAPH_IMAGE_FORMAT
+ * \brief Default for "Save solution graph as"
+ */
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+	#define DEF_GRAPH_IMAGE_FORMAT "svg"
+#else
+	#define DEF_GRAPH_IMAGE_FORMAT "png"
+#endif // NOSVG && QT_VERSION >= 0x040500
 //! Default for "Show solution steps' matrices for every solution step"
 #define DEF_SHOW_MATRIX true
Index: trunk/src/globals.h
===================================================================
--- trunk/src/globals.h	(revision 108)
+++ trunk/src/globals.h	(revision 109)
@@ -32,5 +32,7 @@
 #include <QtCore>
 #include <QtGui>
-#include <QtSvg>
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+	#include <QtSvg>
+#endif // NOSVG && QT_VERSION >= 0x040500
 
 // Version info
Index: trunk/src/main.cpp
===================================================================
--- trunk/src/main.cpp	(revision 108)
+++ trunk/src/main.cpp	(revision 109)
@@ -33,8 +33,8 @@
 #endif
 
-#ifdef STATIC_BUILD
-	Q_IMPORT_PLUGIN(qjpeg)
-	Q_IMPORT_PLUGIN(qsvg)
-#endif
+//#ifdef STATIC_BUILD
+//	Q_IMPORT_PLUGIN(qjpeg)
+//	Q_IMPORT_PLUGIN(qtiff)
+//#endif
 
 int main(int argc, char *argv[])
@@ -47,5 +47,5 @@
 	app.setOrganizationName("Oleksii \"Lёppa\" Serdiuk");
 	app.setOrganizationDomain("oleksii.name");
-	app.setApplicationName("TSPSG");
+	app.setApplicationName("TSPSG: TSP Solver and Generator");
 	app.setApplicationVersion(BUILD_VERSION);
 
Index: trunk/src/mainwindow.cpp
===================================================================
--- trunk/src/mainwindow.cpp	(revision 108)
+++ trunk/src/mainwindow.cpp	(revision 109)
@@ -226,7 +226,17 @@
 		}
 QFileInfo fi(selectedFile);
+QString format = settings->value("Output/GraphImageFormat", DEF_GRAPH_IMAGE_FORMAT).toString();
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+	if (!QImageWriter::supportedImageFormats().contains(format.toAscii()) && (format != "svg")) {
+#else // NOSVG && QT_VERSION >= 0x040500
+	if (!QImageWriter::supportedImageFormats().contains(format.toAscii())) {
+#endif // NOSVG && QT_VERSION >= 0x040500
+		format = DEF_GRAPH_IMAGE_FORMAT;
+		settings->remove("Output/GraphImageFormat");
+	}
 QString html = solutionText->document()->toHtml("UTF-8"),
-		img = fi.completeBaseName() + ".svg";
-		html.replace(QRegExp("<img\\s+src=\"tspsg://graph.pic\""), QString("<img src=\"%1\" width=\"%2\" height=\"%3\" alt=\"%4\"").arg(img).arg(graph.width() + 1).arg(graph.height() + 1).arg(tr("Solution Graph")));
+		img =  fi.completeBaseName() + "." + format;
+		html.replace(QRegExp("<img\\s+src=\"tspsg://graph.pic\""), QString("<img src=\"%1\" width=\"%2\" height=\"%3\" alt=\"%4\"").arg(img).arg(graph.width() + 2).arg(graph.height() + 2).arg(tr("Solution Graph")));
+
 		// Saving solution text as HTML
 QTextStream ts(&file);
@@ -234,12 +244,43 @@
 		ts << html;
 		file.close();
-		// Saving solution graph as SVG
+
+		// Saving solution graph as SVG or PNG (depending on settings and SVG support)
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+		if (format == "svg") {
 QSvgGenerator svg;
-		svg.setFileName(fi.path() + "/" + img);
-		svg.setTitle(tr("Solution Graph"));
+			svg.setSize(QSize(graph.width(), graph.height()));
+			svg.setResolution(graph.logicalDpiX());
+			svg.setFileName(fi.path() + "/" + img);
+			svg.setTitle(tr("Solution Graph"));
+			svg.setDescription(tr("Generated with %1").arg(QApplication::applicationName()));
 QPainter p;
-		p.begin(&svg);
-		graph.play(&p);
-		p.end();
+			p.begin(&svg);
+			p.drawPicture(1, 1, graph);
+			p.end();
+		} else {
+#endif // NOSVG && QT_VERSION >= 0x040500
+QImage i(graph.width() + 2, graph.height() + 2, QImage::Format_ARGB32);
+			i.fill(0x00FFFFFF);
+QPainter p;
+			p.begin(&i);
+			p.drawPicture(1, 1, graph);
+			p.end();
+QImageWriter pic(fi.path() + "/" + img);
+			if (pic.supportsOption(QImageIOHandler::Description)) {
+				pic.setText("Title", "Solution Graph");
+				pic.setText("Software", QApplication::applicationName());
+			}
+			if (format == "png")
+				pic.setQuality(5);
+			else if (format == "jpeg")
+				pic.setQuality(80);
+			if (!pic.write(i)) {
+				QApplication::restoreOverrideCursor();
+				QMessageBox::critical(this, tr("Solution Save"), tr("Unable to save the solution graph.\nError: %1").arg(pic.errorString()));
+				return;
+			}
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+		}
+#endif // NOSVG && QT_VERSION >= 0x040500
 
 // Qt < 4.5 has no QTextDocumentWriter class
@@ -351,5 +392,5 @@
 	title += QString("<b>TSPSG<br>TSP Solver and Generator</b><br>");
 #else
-	title += QString("<b>TSPSG: TSP Solver and Generator</b><br>");
+	title += QString("<b>%1</b><br>").arg(QApplication::applicationName());
 #endif // HANDHELD
 	title += QString("%1: <b>%2</b><br>").arg(tr("Version"), QApplication::applicationVersion());
@@ -536,4 +577,7 @@
 		pic.begin(&graph);
 		pic.setRenderHint(QPainter::Antialiasing);
+		pic.setFont(settings->value("Output/Font", QFont(DEF_FONT_FAMILY, 9)).value<QFont>());
+		pic.setBrush(QBrush(QColor(Qt::white)));
+		pic.setBackgroundMode(Qt::OpaqueMode);
 	}
 
@@ -805,5 +849,4 @@
 			pic.setFont(font);
 		}
-		pic.setBackgroundMode(Qt::OpaqueMode);
 		if (step->price != INFINITY) {
 			pic.drawText(QRectF(x - r, y - r, r * 2, r * 2), Qt::AlignCenter, isInteger(step->price) ?  QString("\n%1").arg(step->price) : QString("\n%1").arg(step->price, 0, 'f', settings->value("Task/FractionalAccuracy", DEF_FRACTIONAL_ACCURACY).toInt()));
@@ -811,5 +854,4 @@
 			pic.drawText(QRectF(x - r, y - r, r * 2, r * 2), Qt::AlignCenter, "\n"INFSTR);
 		}
-		pic.setBackgroundMode(Qt::TransparentMode);
 	} else {
 		pic.drawText(QRectF(x - r, y - r, r * 2, r * 2), Qt::AlignCenter, tr("Root"));
Index: trunk/src/settingsdialog.cpp
===================================================================
--- trunk/src/settingsdialog.cpp	(revision 108)
+++ trunk/src/settingsdialog.cpp	(revision 109)
@@ -195,4 +195,24 @@
 	settings->beginGroup("Output");
 	cbShowGraph->setChecked(settings->value("ShowGraph", DEF_SHOW_GRAPH).toBool());
+
+#if !defined(NOSVG) && (QT_VERSION >= 0x040500)
+	comboGraphImageFormat->addItem("svg");
+#endif // NOSVG && QT_VERSION >= 0x040500
+// We create a whitelist of formats, supported by the most popular web browsers according to
+//  http://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support
+//  + TIFF format (there are plugins to support it).
+QStringList whitelist;
+	whitelist << "bmp" << "jpeg" << "png" << "tiff" << "xbm";
+	foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
+		if (whitelist.contains(format))
+			comboGraphImageFormat->addItem(format);
+	}
+	comboGraphImageFormat->model()->sort(0);
+	comboGraphImageFormat->setCurrentIndex(comboGraphImageFormat->findText(settings->value("GraphImageFormat", DEF_GRAPH_IMAGE_FORMAT).toString(), Qt::MatchFixedString));
+	if (comboGraphImageFormat->currentIndex() < 0)
+		comboGraphImageFormat->setCurrentIndex(comboGraphImageFormat->findText(DEF_GRAPH_IMAGE_FORMAT, Qt::MatchFixedString));
+	labelGraphImageFormat->setEnabled(cbShowGraph->isChecked());
+	comboGraphImageFormat->setEnabled(cbShowGraph->isChecked());
+
 	cbShowMatrix->setChecked(settings->value("ShowMatrix", DEF_SHOW_MATRIX).toBool());
 	cbCitiesLimit->setEnabled(cbShowMatrix->isChecked());
@@ -252,5 +272,5 @@
 			settings->setValue("SettingsReset", true);
 			QDialog::accept();
-			QMessageBox::information(this, tr("Settings Reset"), tr("All settings where successfully reset to their defaults.\nIt is recommended to restart the application now."));
+			QMessageBox::information(this->parentWidget(), tr("Settings Reset"), tr("All settings where successfully reset to their defaults.\nIt is recommended to restart the application now."));
 			return;
 		} else
@@ -282,4 +302,10 @@
 	settings->beginGroup("Output");
 	settings->setValue("ShowGraph", cbShowGraph->isChecked());
+	if (cbShowGraph->isChecked()) {
+		if (comboGraphImageFormat->currentIndex() >= 0)
+			settings->setValue("GraphImageFormat", comboGraphImageFormat->currentText());
+		else
+			settings->setValue("GraphImageFormat", DEF_GRAPH_IMAGE_FORMAT);
+	}
 	settings->setValue("ShowMatrix", cbShowMatrix->isChecked());
 	settings->setValue("UseShowMatrixLimit", cbShowMatrix->isChecked() && cbCitiesLimit->isChecked());
Index: trunk/tspsg.pro
===================================================================
--- trunk/tspsg.pro	(revision 108)
+++ trunk/tspsg.pro	(revision 109)
@@ -11,5 +11,9 @@
 ######################################################################
 
-QT += svg
+!nosvg {
+	QT += svg
+} else {
+	DEFINES += NOSVG
+}
 
 TEMPLATE = app
@@ -49,7 +53,7 @@
 include($$join(PRL, "/"))
 contains(QMAKE_PRL_CONFIG, static) {
-# We "embed" SVG and JPEG support on static build
-	QTPLUGIN += qjpeg qsvg
+# We "embed" JPEG and TIFF support on static build
 	DEFINES += STATIC_BUILD
+#	QTPLUGIN += qjpeg qtiff
 }
 
@@ -76,98 +80,3 @@
 
 # Installation and deployment
-# Common rules
-l10n.files = l10n/*.qm
-#share.files =
-docs.files = COPYING README.txt
-INSTALLS += target l10n share docs
-
-# For *nix:
-#   - executable goes to /usr/bin
-#   - COPYING and README go to /usr/share/TSPSG
-#   - translations go to /usr/share/TSPSG/l10n
-#   - docs go to /usr/share/doc/TSPSG-x.x.x
-unix:!symbian {
-	PREFIX = /usr
-	CONFIG(release, debug|release) {
-		DEFINES += PATH_L10N=\\\"$$PREFIX/share/TSPSG/l10n\\\"
-		DEFINES += PATH_DOCS=\\\"$$PREFIX/share/TSPSG/docs\\\"
-	}
-
-	target.path = $$PREFIX/bin
-	share.path = $$PREFIX/share/TSPSG
-	l10n.path = $$PREFIX/share/TSPSG/l10n
-	docs.path = $$PREFIX/share/doc/TSPSG-$$VERSION
-	apps.files = resources/tspsg.desktop
-	apps.path = $$PREFIX/share/applications/
-	icon.files = resources/tspsg.png
-	icon.path = $$PREFIX/share/pixmaps
-	INSTALLS += apps icon
-}
-
-# TODO: MacOSX
-
-# For win32: everything goes to "%PROGRAMFILES%\TSPSG" and subfolders.
-win32 {
-	PREFIX = "$$(PROGRAMFILES)"
-
-	share.files = $$[QT_INSTALL_BINS]/QtCore$${D}4.dll \
-		$$[QT_INSTALL_BINS]/QtGui$${D}4.dll
-		$$[QT_INSTALL_BINS]/QtSvg$${D}4.dll
-	l10n.files += $$[QT_INSTALL_TRANSLATIONS]/*.qm
-	win32-g++ {
-		share.files += $$[QT_INSTALL_BINS]/mingwm10.dll \
-			$$[QT_INSTALL_BINS]/libgcc_s_dw2-1.dll
-	}
-	imageformats.files = $$[QT_INSTALL_PLUGINS]/imageformats/qsvg$${D}4.dll \
-		$$[QT_INSTALL_PLUGINS]/imageformats/qjpeg$${D}4.dll
-	imageformats.path = $$PREFIX/TSPSG/imageformats
-	INSTALLS += imageformats
-}
-
-# For wince: we are deploying to \Program Files\TSPSG.
-wince {
-	PREFIX = "\Program Files"
-	share.sources = $$share.files
-	l10n.sources = $$l10n.files \
-		$$[QT_INSTALL_TRANSLATIONS]/*.qm
-	docs.sources = $$docs.files
-
-	DEPLOYMENT += target share l10n docs
-	DEPLOYMENT_PLUGIN += qjpeg qsvg
-}
-
-# win32 and wince common
-win* {
-	target.path = $$PREFIX/TSPSG
-	share.path = $$PREFIX/TSPSG
-	l10n.path = $$PREFIX/TSPSG/l10n
-	docs.path = $$PREFIX/TSPSG
-
-	RC_FILE = resources/tspsg.rc
-}
-
-# Symbian
-symbian {
-	# qmake for Symbian (as of Qt 4.6.2) has a bug: file masks doesn't work, so we need to specify all files manually
-	share.sources = $$share.files
-	l10n.sources = $$[QT_INSTALL_TRANSLATIONS]/qt_ru.qm \
-		$$[QT_INSTALL_TRANSLATIONS]/qt_uk.qm \
-		l10n/tspsg_en.qm l10n/tspsg_ru.qm l10n/tspsg_uk.qm
-	l10n.path = l10n
-	docs.sources = $$docs.files
-	docs.pkg_prerules = \
-		"\"README.txt\" - \"\", FILETEXT, TEXTCONTINUE" \
-		"\"COPYING\" - \"\", FILETEXT, TEXTEXIT"
-	DEPLOYMENT += share l10n docs
-	DEPLOYMENT_PLUGIN += qjpeg qsvg
-
-	ICON = resources/tspsg.svg
-
-	appinfo = \
-		"$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e),$$BUILD_VERSION_MAJOR,$$BUILD_VERSION_MINOR,$$BUILD_RELEASE"
-	vendorinfo = \
-		"%{\"l-homes.org\"}" \
-		":\"l-homes.org\""
-	default_deployment.pkg_prerules = appinfo vendorinfo
-	DEPLOYMENT.installer_header = "$${LITERAL_HASH}{\"TSPSG Installer\"},(0xA000D7CE),1,0,0"
-}
+include(install.pri)
Index: trunk/ui/settingsdialog.ui
===================================================================
--- trunk/ui/settingsdialog.ui	(revision 108)
+++ trunk/ui/settingsdialog.ui	(revision 109)
@@ -12,4 +12,12 @@
   </property>
   <widget class="QWidget" name="bgGrey" native="true">
+   <property name="geometry">
+	<rect>
+	 <x>0</x>
+	 <y>0</y>
+	 <width>197</width>
+	 <height>37</height>
+	</rect>
+   </property>
    <property name="sizePolicy">
 	<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -93,4 +101,12 @@
   </widget>
   <widget class="QWidget" name="bgWhite" native="true">
+   <property name="geometry">
+	<rect>
+	 <x>0</x>
+	 <y>0</y>
+	 <width>226</width>
+	 <height>253</height>
+	</rect>
+   </property>
    <property name="autoFillBackground">
 	<bool>true</bool>
@@ -165,4 +181,7 @@
 			<property name="text">
 			 <string>Fractional accuracy:</string>
+			</property>
+			<property name="buddy">
+			 <cstring>spinFractionalAccuracy</cstring>
 			</property>
 		   </widget>
@@ -302,23 +321,10 @@
 		</item>
 		<item>
-		 <widget class="QCheckBox" name="cbShowMatrix">
-		  <property name="cursor">
-		   <cursorShape>PointingHandCursor</cursorShape>
-		  </property>
-		  <property name="statusTip">
-		   <string>Show solution steps' matrices for every solution step</string>
-		  </property>
-		  <property name="text">
-		   <string>Show solution steps' matrices</string>
-		  </property>
-		 </widget>
-		</item>
-		<item>
-		 <layout class="QHBoxLayout" name="layoutCititesLimit">
+		 <layout class="QHBoxLayout" name="_10">
 		  <property name="spacing">
-		   <number>0</number>
-		  </property>
-		  <item>
-		   <spacer name="spacer_3">
+		   <number>5</number>
+		  </property>
+		  <item>
+		   <spacer name="spacer_7">
 			<property name="orientation">
 			 <enum>Qt::Horizontal</enum>
@@ -336,4 +342,73 @@
 		  </item>
 		  <item>
+		   <widget class="QLabel" name="labelGraphImageFormat">
+			<property name="text">
+			 <string>Save solution graph as</string>
+			</property>
+			<property name="buddy">
+			 <cstring>comboGraphImageFormat</cstring>
+			</property>
+		   </widget>
+		  </item>
+		  <item>
+		   <widget class="QComboBox" name="comboGraphImageFormat">
+			<property name="cursor">
+			 <cursorShape>PointingHandCursor</cursorShape>
+			</property>
+			<property name="statusTip">
+			 <string>What image format to use for graph when saving solution as HTML</string>
+			</property>
+		   </widget>
+		  </item>
+		  <item>
+		   <spacer name="horizontalSpacer">
+			<property name="orientation">
+			 <enum>Qt::Horizontal</enum>
+			</property>
+			<property name="sizeHint" stdset="0">
+			 <size>
+			  <width>0</width>
+			  <height>0</height>
+			 </size>
+			</property>
+		   </spacer>
+		  </item>
+		 </layout>
+		</item>
+		<item>
+		 <widget class="QCheckBox" name="cbShowMatrix">
+		  <property name="cursor">
+		   <cursorShape>PointingHandCursor</cursorShape>
+		  </property>
+		  <property name="statusTip">
+		   <string>Show solution steps' matrices for every solution step</string>
+		  </property>
+		  <property name="text">
+		   <string>Show solution steps' matrices</string>
+		  </property>
+		 </widget>
+		</item>
+		<item>
+		 <layout class="QHBoxLayout" name="_12">
+		  <property name="spacing">
+		   <number>0</number>
+		  </property>
+		  <item>
+		   <spacer name="spacer_3">
+			<property name="orientation">
+			 <enum>Qt::Horizontal</enum>
+			</property>
+			<property name="sizeType">
+			 <enum>QSizePolicy::Fixed</enum>
+			</property>
+			<property name="sizeHint" stdset="0">
+			 <size>
+			  <width>10</width>
+			  <height>0</height>
+			 </size>
+			</property>
+		   </spacer>
+		  </item>
+		  <item>
 		   <widget class="QCheckBox" name="cbCitiesLimit">
 			<property name="cursor">
@@ -350,4 +425,7 @@
 		  <item>
 		   <widget class="QSpinBox" name="spinCitiesLimit">
+			<property name="cursor">
+			 <cursorShape>PointingHandCursor</cursorShape>
+			</property>
 			<property name="statusTip">
 			 <string>Maximum number of cities to show solution steps' matrices</string>
@@ -512,10 +590,10 @@
    <hints>
 	<hint type="sourcelabel">
-	 <x>80</x>
-	 <y>150</y>
+	 <x>91</x>
+	 <y>107</y>
 	</hint>
 	<hint type="destinationlabel">
-	 <x>91</x>
-	 <y>175</y>
+	 <x>113</x>
+	 <y>132</y>
 	</hint>
    </hints>
@@ -528,10 +606,10 @@
    <hints>
 	<hint type="sourcelabel">
-	 <x>80</x>
-	 <y>150</y>
+	 <x>91</x>
+	 <y>107</y>
 	</hint>
 	<hint type="destinationlabel">
-	 <x>91</x>
-	 <y>175</y>
+	 <x>113</x>
+	 <y>132</y>
 	</hint>
    </hints>
@@ -544,10 +622,42 @@
    <hints>
 	<hint type="sourcelabel">
-	 <x>91</x>
-	 <y>175</y>
+	 <x>113</x>
+	 <y>132</y>
 	</hint>
 	<hint type="destinationlabel">
-	 <x>184</x>
-	 <y>174</y>
+	 <x>183</x>
+	 <y>134</y>
+	</hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>cbShowGraph</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>labelGraphImageFormat</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+	<hint type="sourcelabel">
+	 <x>113</x>
+	 <y>48</y>
+	</hint>
+	<hint type="destinationlabel">
+	 <x>72</x>
+	 <y>73</y>
+	</hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>cbShowGraph</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>comboGraphImageFormat</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+	<hint type="sourcelabel">
+	 <x>113</x>
+	 <y>48</y>
+	</hint>
+	<hint type="destinationlabel">
+	 <x>149</x>
+	 <y>73</y>
 	</hint>
    </hints>
