Index: trunk/src/globals.h
===================================================================
--- trunk/src/globals.h	(revision 97)
+++ trunk/src/globals.h	(revision 98)
@@ -32,4 +32,5 @@
 #include <QtCore>
 #include <QtGui>
+#include <limits>
 
 // Version info
@@ -89,5 +90,5 @@
 	#undef INFINITY
 #endif
-#define INFINITY 1.7E+308
+#define INFINITY std::numeric_limits<double>::infinity()
 //! This string represents infinite value in the table
 #define INFSTR "---"
@@ -104,4 +105,15 @@
 	return (modf(x, &i) == 0.0);
 }
+
+#ifdef Q_OS_WIN32
+/*!
+ * \brief Enables or disables a mask for the \a widget.
+ * \param widget A widget to toggle mask on.
+ * \param enable Set to \c true to enable mask or \c false to disable it.
+ *
+ *  This function is used to enable an outlined font effect for \c QLabel with a static text.
+ */
+void toggleStyle(QWidget *widget, bool enable);
+#endif // Q_OS_WIN32
 
 // Sanity checks
Index: trunk/src/main.cpp
===================================================================
--- trunk/src/main.cpp	(revision 97)
+++ trunk/src/main.cpp	(revision 98)
@@ -34,6 +34,6 @@
 
 #ifdef STATIC_BUILD
-	Q_IMPORT_PLUGIN(qjpeg)
-	Q_IMPORT_PLUGIN(qsvg)
+//	Q_IMPORT_PLUGIN(qjpeg)
+//	Q_IMPORT_PLUGIN(qsvg)
 #endif
 
Index: trunk/src/mainwindow.cpp
===================================================================
--- trunk/src/mainwindow.cpp	(revision 97)
+++ trunk/src/mainwindow.cpp	(revision 98)
@@ -295,4 +295,10 @@
 		if (untitled)
 			setFileName();
+#ifdef Q_OS_WIN32
+		if (QtWin::isCompositionEnabled() && settings->value("UseTranslucency", DEF_USE_TRANSLUCENCY).toBool())  {
+			toggleStyle(labelVariant, true);
+			toggleStyle(labelCities, true);
+		}
+#endif
 		QApplication::restoreOverrideCursor();
 	}
@@ -304,26 +310,29 @@
 QString title;
 #if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
-	title += QString::fromUtf8("<b>TSPSG<br>TSP Solver and Generator</b><br>");
+	title += QString("<b>TSPSG<br>TSP Solver and Generator</b><br>");
 #else
-	title += QString::fromUtf8("<b>TSPSG: TSP Solver and Generator</b><br>");
-#endif // Q_OS_WINCE
-	title += QString::fromUtf8("Version: <b>"BUILD_VERSION"</b><br>");
-	title += QString::fromUtf8("<b>&copy; 2007-%1 Lёppa</b><br>").arg(QDate::currentDate().toString("yyyy"));
-	title += QString::fromUtf8("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sf.net/</a></b><br>");
+	title += QString("<b>TSPSG: TSP Solver and Generator</b><br>");
+#endif // Q_OS_WINCE || Q_OS_SYMBIAN
+	title += QString("%1: <b>%2</b><br>").arg(tr("Version"), BUILD_VERSION);
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
+	title += QString("<b>&copy; 2007-%1 Oleksii \"Lёppa\" Serdiuk</b><br>").arg(QDate::currentDate().toString("yyyy"));
+	title += QString("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sourceforge.net/</a></b>");
+#else
+	title += QString("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sf.net/</a></b>");
+#endif // Q_OS_WINCE && Q_OS_SYMBIAN
+
 QString about;
-	about += QString::fromUtf8("Target OS (ARCH): <b>%1</b><br>").arg(OS);
+	about += QString("%1: <b>%2</b><br>").arg(tr("Target OS (ARCH)"), OS);
 #ifndef STATIC_BUILD
-	about += "Qt library (shared):<br>";
-	about += QString::fromUtf8("&nbsp;&nbsp;&nbsp;&nbsp;Build time: <b>%1</b><br>").arg(QT_VERSION_STR);
-	about += QString::fromUtf8("&nbsp;&nbsp;&nbsp;&nbsp;Runtime: <b>%1</b><br>").arg(qVersion());
+	about += QString("%1 (%2):<br>").arg(tr("Qt library"), tr("shared"));
+	about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Build time"), QT_VERSION_STR);
+	about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Runtime"), qVersion());
 #else
-	about += QString::fromUtf8("Qt library: <b>%1</b> (static)<br>").arg(QT_VERSION_STR);
+	about += QString("%1: <b>%2</b> (%3)<br>").arg(tr("Qt library"), QT_VERSION_STR, tr("static"));
 #endif // STATIC_BUILD
-	about += QString::fromUtf8("Built on <b>%1</b> at <b>%2</b><br>").arg(__DATE__).arg(__TIME__);
-//	about += "<br>";
-//	about += QString::fromUtf8("Id: <b>"VERSIONID"</b><br>");
-	about += QString::fromUtf8("Algorithm: <b>%1</b><br>").arg(CTSPSolver::getVersionId());
+	about += tr("Buid <b>%1</b>, built on <b>%2</b> at <b>%3</b>").arg(BUILD_NUMBER).arg(__DATE__).arg(__TIME__) + "<br>";
+	about += QString("%1: <b>%2</b><br>").arg(tr("Algorithm"), CTSPSolver::getVersionId());
 	about += "<br>";
-	about += "TSPSG is free software: you can redistribute it and/or modify it<br>"
+	about += tr("TSPSG is free software: you can redistribute it and/or modify it<br>"
 		"under the terms of the GNU General Public License as published<br>"
 		"by the Free Software Foundation, either version 3 of the License,<br>"
@@ -336,36 +345,70 @@
 		"<br>"
 		"You should have received a copy of the GNU General Public License<br>"
-		"along with TSPSG.  If not, see <a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>.";
+		"along with TSPSG.  If not, see <a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>.");
 
 QDialog *dlg = new QDialog(this);
 QLabel *lblIcon = new QLabel(dlg),
-	*lblTitle = new QLabel(dlg);
+	*lblTitle = new QLabel(dlg),
+	*lblTranslated = new QLabel(dlg);
+#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
+QLabel *lblSubTitle = new QLabel(QString("<b>&copy; 2007-%1 Oleksii \"Lёppa\" Serdiuk</b>").arg(QDate::currentDate().toString("yyyy")), dlg);
+#endif // Q_OS_WINCE || Q_OS_SYMBIAN
 QTextBrowser *txtAbout = new QTextBrowser(dlg);
 QVBoxLayout *vb = new QVBoxLayout();
-QHBoxLayout *hb = new QHBoxLayout();
+QHBoxLayout *hb1 = new QHBoxLayout(),
+	*hb2 = new QHBoxLayout();
 QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, dlg);
 
 	lblIcon->setPixmap(QPixmap(":/images/tspsg.png").scaledToWidth(logicalDpiX() * 2 / 3, Qt::SmoothTransformation));
 	lblIcon->setAlignment(Qt::AlignTop);
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
+	lblIcon->setStyleSheet(QString("QLabel {background-color: %1; border-color: %2; border-width: 1px; border-style: solid; border-radius: 3px;}").arg(palette().window().color().name(), palette().windowText().color().name()));
+#endif
+
 	lblTitle->setOpenExternalLinks(true);
 	lblTitle->setText(title);
-
-	hb->addWidget(lblIcon);
-	hb->addWidget(lblTitle);
-	hb->addStretch();
-
-//	txtAbout->setTextInteractionFlags(txtAbout->textInteractionFlags() ^ Qt::TextEditable);
+	lblTitle->setAlignment(Qt::AlignTop);
+	lblTitle->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
+	lblTitle->setStyleSheet(QString("QLabel {background-color: %1; border-color: %2; border-width: 1px; border-style: solid; border-radius: 3px;}").arg(palette().window().color().name(), palette().shadow().color().name()));
+#endif
+
+	hb1->addWidget(lblIcon);
+	hb1->addWidget(lblTitle);
+
 	txtAbout->setWordWrapMode(QTextOption::NoWrap);
 	txtAbout->setOpenExternalLinks(true);
 	txtAbout->setHtml(about);
 	txtAbout->moveCursor(QTextCursor::Start);
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
+	txtAbout->setStyleSheet(QString("QTextBrowser {border-color: %1; border-width: 1px; border-style: solid; border-radius: 3px;}").arg(palette().shadow().color().name()));
+#endif
 
 	bb->button(QDialogButtonBox::Ok)->setCursor(QCursor(Qt::PointingHandCursor));
 
-	vb->addLayout(hb);
+	lblTranslated->setText(QApplication::translate("--------", "TRANSLATION", "Please, provide translator credits here."));
+	if (lblTranslated->text() == "TRANSLATION")
+		lblTranslated->hide();
+	else {
+		lblTranslated->setOpenExternalLinks(true);
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
+		lblTranslated->setStyleSheet(QString("QLabel {background-color: %1; border-color: %2; border-width: 1px; border-style: solid; border-radius: 3px;}").arg(palette().window().color().name(), palette().shadow().color().name()));
+#endif
+		hb2->addWidget(lblTranslated);
+	}
+
+	hb2->addWidget(bb);
+
+#if defined(Q_OS_WINCE)
+	vb->setMargin(3);
+#endif
+	vb->addLayout(hb1);
+#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
+	vb->addWidget(lblSubTitle);
+#endif // Q_OS_WINCE || Q_OS_SYMBIAN
 	vb->addWidget(txtAbout);
-	vb->addWidget(bb);
-
-	dlg->setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
+	vb->addLayout(hb2);
+
+	dlg->setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::MSWindowsFixedSizeDialogHint);
 	dlg->setWindowTitle(tr("About TSPSG"));
 	dlg->setLayout(vb);
@@ -380,5 +423,6 @@
 #endif // Q_OS_WIN32
 
-	dlg->resize(450, 400);
+	dlg->resize(450, 350);
+
 	dlg->exec();
 
@@ -825,4 +869,6 @@
 	scrollArea->setWidget(tabWidget);
 	setCentralWidget(scrollArea);
+#else
+	setCentralWidget(tabWidget);
 #endif // Q_OS_WINCE
 
@@ -890,4 +936,7 @@
 {
 #ifdef Q_OS_WIN32
+	toggleStyle(labelVariant, enable);
+	toggleStyle(labelCities, enable);
+	toggleStyle(statusBar(), enable);
 	tabWidget->setDocumentMode(enable);
 	QtWin::enableBlurBehindWindow(this, enable);
Index: trunk/src/pch.h
===================================================================
--- trunk/src/pch.h	(revision 97)
+++ trunk/src/pch.h	(revision 98)
@@ -27,14 +27,4 @@
 
 #ifdef __cplusplus
-	// Qt Libraries
-	#include <QtCore>
-	#include <QtGui>
-	#include <QtSvg>
-
-	// Rarely modified parts
-	#include "version.h"
-	#include "os.h"
-	#ifdef Q_OS_WIN32
-		#include "qtwin.h"
-	#endif // Q_OS_WIN32
+	#include "globals.h"
 #endif // __cplusplus
Index: trunk/src/settingsdialog.cpp
===================================================================
--- trunk/src/settingsdialog.cpp	(revision 97)
+++ trunk/src/settingsdialog.cpp	(revision 98)
@@ -71,5 +71,5 @@
 	vbox1->addWidget(bgGrey);
 	setLayout(vbox1);
-#else
+#else // Q_OS_WINCE || Q_OS_SYMBIAN
 	// Layout helper elements
 QVBoxLayout *vbox1, *vbox2;
Index: trunk/src/tspsolver.cpp
===================================================================
--- trunk/src/tspsolver.cpp	(revision 97)
+++ trunk/src/tspsolver.cpp	(revision 98)
@@ -326,2 +326,12 @@
 			matrix[nRow][k] -= val;
 }
+
+QDebug operator<<(QDebug dbg, const TMatrix &matrix)
+{
+	for (int r = 0; r < matrix.count(); r++) {
+		for (int c = 0; c < matrix.at(r).count(); c++)
+			dbg.space() << matrix.at(r).at(c);
+		dbg << endl;
+	}
+	return dbg;
+}
Index: trunk/src/tspsolver.h
===================================================================
--- trunk/src/tspsolver.h	(revision 97)
+++ trunk/src/tspsolver.h	(revision 98)
@@ -108,3 +108,7 @@
 };
 
+#ifdef DEBUG
+QDebug operator<<(QDebug dbg, const TMatrix &matrix);
+#endif
+
 #endif // TSPSOLVER_H
Index: trunk/src/version.h
===================================================================
--- trunk/src/version.h	(revision 97)
+++ trunk/src/version.h	(revision 98)
@@ -58,23 +58,11 @@
 	#define BUILD_VERSION_MINOR 0
 #endif // BUILD_VERSION_MINOR
-/*!
- * \brief TSPSG release number
- *
- *  Release number meanings:
- *    - 1  --  3: <b>alpha</b> 1 to 3
- *    - 4  --  7: <b>beta</b> 1 to 4
- *    - 8  -- 10: <b>rc</b> 1 to 3
- *    - 11 --  x: <b>release</b> 1 to x-10
- */
 #ifndef BUILD_RELEASE
+	//! TSPSG release number
 	#define BUILD_RELEASE 0
 #endif // BUILD_RELEASE
 
-/*!
- * \brief Current TSPSG build number
- *
- *  This will only change on releases and will be the same as revision number.
- */
 #ifndef BUILD_NUMBER
+	//! Current TSPSG build number
 	#define BUILD_NUMBER 0
 #endif // BUILD_NUMBER
@@ -83,15 +71,9 @@
  * \def BUILD_STATUS
  * \brief TSPSG build status
- *
- * Determined based on BUILD_NUMBER and BUILD_RELEASE.
  */
-#ifndef TSPSG_RELEASE_BUILD
+#if !defined(TSPSG_RELEASE_BUILD)
 	#define BUILD_STATUS (dev build)
-#elif BUILD_RELEASE < 4
-	#define BUILD_STATUS (alpha)
-#elif BUILD_RELEASE < 8
-	#define BUILD_STATUS (beta)
-#elif BUILD_RELEASE < 11
-	#define BUILD_STATUS (rc)
+#elif !defined(BUILD_STATUS)
+	#define BUILD_STATUS (build BUILD_NUMBER)
 #endif // TSPSG_RELEASE_BUILD
 
@@ -101,13 +83,6 @@
 #define QUOTE(x) QUOTE_X(x)
 
-/*!
- * \def BUILD_VERSION
- * \brief Full version of TSPSG in the form: \c major.minor.release.build [\c status].
- */
-#ifndef BUILD_STATUS
-	#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE.BUILD_NUMBER)
-#else
-	#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE.BUILD_NUMBER BUILD_STATUS)
-#endif
+//! Full version of TSPSG in the form: \c major.minor.release.build \c status.
+#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE BUILD_STATUS)
 
 #endif // VERSION_H
