Index: src/defaults.h
===================================================================
--- src/defaults.h	(revision 672e522ba21ac1a72975df2f472efc6bb1c52bdd)
+++ src/defaults.h	(revision e26679937d3d586fff679280e3c2599c8aa9b75e)
@@ -69,4 +69,6 @@
 //! Default for "Save solution graph as"
 #define DEF_GRAPH_IMAGE_FORMAT "png"
+//! Default for "Draw solution graph in higher quality"
+#define DEF_HQ_GRAPH false
 //! Default for "Show solution steps' matrices for every solution step"
 #define DEF_SHOW_MATRIX true
Index: src/mainwindow.cpp
===================================================================
--- src/mainwindow.cpp	(revision 672e522ba21ac1a72975df2f472efc6bb1c52bdd)
+++ src/mainwindow.cpp	(revision e26679937d3d586fff679280e3c2599c8aa9b75e)
@@ -480,14 +480,16 @@
 
 QString credits;
-	credits += tr("This software was created using LGPL version of <b>Qt framework</b>,<br>\n"
+	credits += tr("%1 was created using <b>Qt&nbsp;framework</b> licensed "
+		"under the terms of the GNU Lesser General Public License,<br>\n"
 		"see <a href=\"http://qt.nokia.com/\">qt.nokia.com</a><br>\n"
 		"<br>\n"
-		"Most icons used in this software are part of <b>Oxygen Icons</b> project "
+		"Most icons used in %1 are part of <b>Oxygen&nbsp;Icons</b> project "
 		"licensed according to the GNU Lesser General Public License,<br>\n"
 		"see <a href=\"http://www.oxygen-icons.org/\">www.oxygen-icons.org</a><br>\n"
 		"<br>\n"
-		"Country flag icons used in this software are part of the free "
-		"<b>Flag Icons</b> collection created by <b>IconDrawer</b>,<br>\n"
-		"see <a href=\"http://www.icondrawer.com/\">www.icondrawer.com</a>");
+		"Country flag icons used in %1 are part of the free "
+		"<b>Flag&nbsp;Icons</b> collection created by <b>IconDrawer</b>,<br>\n"
+		"see <a href=\"http://www.icondrawer.com/\">www.icondrawer.com</a>")
+			.arg(QApplication::applicationName());
 
 QFile f(":/files/COPYING");
@@ -736,11 +738,15 @@
 		pic.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
 QFont font = settings->value("Output/Font", QFont(getDefaultFont(), 9)).value<QFont>();
-//		font.setBold(true);
-		font.setPointSizeF(font.pointSizeF() * 2);
+		if (settings->value("Output/HQGraph", DEF_HQ_GRAPH).toBool()) {
+			font.setWeight(QFont::DemiBold);
+			font.setPointSizeF(font.pointSizeF() * 2);
+		}
 		pic.setFont(font);
 		pic.setBrush(QBrush(QColor(Qt::white)));
+		if (settings->value("Output/HQGraph", DEF_HQ_GRAPH).toBool()) {
 QPen pen = pic.pen();
-		pen.setWidth(2);
-		pic.setPen(pen);
+			pen.setWidth(2);
+			pic.setPen(pen);
+		}
 		pic.setBackgroundMode(Qt::OpaqueMode);
 	}
@@ -874,6 +880,6 @@
 		pic.end();
 
-QImage i(graph.width() + 2, graph.height() + 2, QImage::Format_ARGB32);
-		i.fill(0);
+QImage i(graph.width() + 1, graph.height() + 1, QImage::Format_RGB32);
+		i.fill(0xFFFFFF);
 		pic.begin(&i);
 		pic.drawPicture(1, 1, graph);
@@ -883,6 +889,11 @@
 QTextImageFormat img;
 		img.setName("tspsg://graph.pic");
-		img.setWidth(i.width() / 2);
-		img.setHeight(i.height() / 2);
+		if (settings->value("Output/HQGraph", DEF_HQ_GRAPH).toBool()) {
+			img.setWidth(i.width() / 2);
+			img.setHeight(i.height() / 2);
+		} else {
+			img.setWidth(i.width());
+			img.setHeight(i.height());
+		}
 
 		cur.setPosition(imgpos);
@@ -1048,5 +1059,9 @@
 void MainWindow::drawNode(QPainter &pic, int nstep, bool left, SStep *step)
 {
-const int r = 70;
+int r;
+	if (settings->value("Output/HQGraph", DEF_HQ_GRAPH).toBool())
+		r = 70;
+	else
+		r = 35;
 qreal x, y;
 	if (step != NULL)
Index: src/settingsdialog.cpp
===================================================================
--- src/settingsdialog.cpp	(revision 672e522ba21ac1a72975df2f472efc6bb1c52bdd)
+++ src/settingsdialog.cpp	(revision e26679937d3d586fff679280e3c2599c8aa9b75e)
@@ -55,4 +55,21 @@
 	p.setColor(QPalette::Window, p.color(QPalette::Text));
 	lineHorizontal->setPalette(p);
+
+#ifndef QT_NO_PRINTER
+	cbHQGraph = new QCheckBox(bgWhite);
+	cbHQGraph->setObjectName("cbHQGraph");
+#ifndef QT_NO_STATUSTIP
+	cbHQGraph->setStatusTip(tr("Higher quality graph looks much better when printing but uglier on the screen"));
+#endif // QT_NO_STATUSTIP
+	cbHQGraph->setText(tr("Draw solution graph in higher quality"));
+	cbHQGraph->setCursor(QCursor(Qt::PointingHandCursor));
+
+QBoxLayout *box = static_cast<QBoxLayout *>(tabOutput->layout());
+QHBoxLayout *hbox1 = new QHBoxLayout();
+	hbox1->addSpacing(10);
+	hbox1->addWidget(cbHQGraph);
+	box->insertLayout(box->indexOf(cbShowGraph) + 1, hbox1);
+	connect(cbShowGraph, SIGNAL(toggled(bool)), cbHQGraph, SLOT(setEnabled(bool)));
+#endif
 
 #ifdef HANDHELD
@@ -87,6 +104,6 @@
 #else // HANDHELD
 	// Layout helper elements
-QVBoxLayout *vbox1, *vbox2;
-QHBoxLayout *hbox1;
+QVBoxLayout *vbox;
+QHBoxLayout *hbox;
 
 #ifdef Q_OS_WIN32
@@ -139,14 +156,17 @@
 
 	// Top line
-	hbox1 = new QHBoxLayout();
-	hbox1->addWidget(imgIcon);
-	hbox1->addWidget(lineVertical);
-	hbox1->addWidget(bgWhite);
-
-	vbox1 = static_cast<QVBoxLayout *>(tabGeneral->layout());
-	vbox1->insertWidget(vbox1->indexOf(cbUseNativeDialogs) + 1, cbSaveState);
+	hbox = new QHBoxLayout();
+	hbox->addWidget(imgIcon);
+	hbox->addWidget(lineVertical);
+	hbox->addWidget(bgWhite);
+
+#ifdef QT_NO_PRINTER
+QBoxLayout *box;
+#endif
+	box = static_cast<QBoxLayout *>(tabGeneral->layout());
+	box->insertWidget(box->indexOf(cbUseNativeDialogs) + 1, cbSaveState);
 #ifdef Q_OS_WIN32
 	if (QtWin::isCompositionEnabled())
-		vbox1->insertWidget(vbox1->indexOf(cbUseNativeDialogs) + 1, cbUseTranslucency);
+		box->insertWidget(box->indexOf(cbUseNativeDialogs) + 1, cbUseTranslucency);
 #endif // Q_OS_WIN32
 
@@ -155,10 +175,10 @@
 
 	// Central layout
-	vbox2 = new QVBoxLayout(this);
-	vbox2->setMargin(0);
-	vbox2->setSpacing(0);
-	vbox2->addLayout(hbox1);
-	vbox2->addWidget(bgGrey);
-	setLayout(vbox2);
+	vbox = new QVBoxLayout(this);
+	vbox->setMargin(0);
+	vbox->setSpacing(0);
+	vbox->addLayout(hbox);
+	vbox->addWidget(bgGrey);
+	setLayout(vbox);
 #endif // HANDHELD
 
@@ -167,7 +187,7 @@
 	connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), SLOT(desktopResized(int)));
 #endif // Q_OS_WINCE_WM
-	connect(spinRandMin,SIGNAL(valueChanged(int)),this,SLOT(spinRandMinValueChanged(int)));
-	connect(buttonFont,SIGNAL(clicked()),this,SLOT(buttonFontClicked()));
-	connect(buttonColor,SIGNAL(clicked()),this,SLOT(buttonColorClicked()));
+	connect(spinRandMin, SIGNAL(valueChanged(int)), SLOT(spinRandMinValueChanged(int)));
+	connect(buttonFont, SIGNAL(clicked()), SLOT(buttonFontClicked()));
+	connect(buttonColor, SIGNAL(clicked()), SLOT(buttonColorClicked()));
 	setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
 #ifndef HANDHELD
@@ -201,4 +221,9 @@
 	settings->beginGroup("Output");
 	cbShowGraph->setChecked(settings->value("ShowGraph", DEF_SHOW_GRAPH).toBool());
+
+#ifndef QT_NO_PRINTER
+	cbHQGraph->setEnabled(cbShowGraph->isChecked());
+	cbHQGraph->setChecked(settings->value("HQGraph", DEF_HQ_GRAPH && cbShowGraph->isChecked()).toBool());
+#endif
 
 #if !defined(NOSVG) && (QT_VERSION >= 0x040500)
@@ -311,4 +336,7 @@
 	settings->beginGroup("Output");
 	settings->setValue("ShowGraph", cbShowGraph->isChecked());
+#ifndef QT_NO_PRINTER
+	settings->setValue("HQGraph", cbShowGraph->isChecked() && cbHQGraph->isChecked());
+#endif
 	if (cbShowGraph->isChecked()) {
 		if (comboGraphImageFormat->currentIndex() >= 0)
Index: src/settingsdialog.h
===================================================================
--- src/settingsdialog.h	(revision 672e522ba21ac1a72975df2f472efc6bb1c52bdd)
+++ src/settingsdialog.h	(revision e26679937d3d586fff679280e3c2599c8aa9b75e)
@@ -59,4 +59,7 @@
 	QCheckBox *cbUseTranslucency;
 #endif // Q_OS_WIN32
+#ifndef QT_NO_PRINTER
+	QCheckBox *cbHQGraph;
+#endif
 #ifdef Q_OS_WINCE_WM
 	QRect currentGeometry;
