Changeset 98 in tspsg-svn


Ignore:
Timestamp:
Mar 12, 2010, 8:28:42 PM (15 years ago)
Author:
laleppa
Message:

+ Translatable About dialog.

  • Improved installation rules in .pro file.
  • Disabled SVG and JPEG support. They aren't needed at this point.
  • Fixed a bug when labels were hardly visible under Windows Vista/7 whith translucency on and a dark background behind the application.
  • Fixed a bug when Main Window area was blank if the application was compiled using Qt < 4.6.0.
Location:
trunk
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/README

    r87 r98  
    3333Third parties:
    3434* This software is created using opensource version of Qt toolkit,
    35   see http://www.qtsoftware.com/
     35  see http://qt.nokia.com/
    3636* The icons used in this software are part of Oxygen Icons project
    3737  licensed according to the GNU Lesser General Public License,
  • trunk/l10n/tspsg_ru.ts

    r96 r98  
    1010        <comment>Please, provide a native name of your translation language here.</comment>
    1111        <translation>Русский</translation>
     12    </message>
     13    <message>
     14        <source>TRANSLATION</source>
     15        <comment>Please, provide translator credits here.</comment>
     16        <translation>Русский перевод:&lt;br&gt;&lt;a href=&quot;http://oleksii.name/&quot;&gt;Алексей Lёppa Сердюк&lt;/a&gt;</translation>
    1217    </message>
    1318</context>
  • trunk/l10n/tspsg_uk.ts

    r96 r98  
    1010        <comment>Please, provide a native name of your translation language here.</comment>
    1111        <translation>Українська</translation>
     12    </message>
     13    <message>
     14        <source>TRANSLATION</source>
     15        <comment>Please, provide translator credits here.</comment>
     16        <translation>Український переклад:&lt;br&gt;&lt;a href=&quot;http://oleksii.name/&quot;&gt;Олексій Lёppa Сердюк&lt;/a&gt;</translation>
    1217    </message>
    1318</context>
  • trunk/resources/tspsg.rc

    r96 r98  
    4444        BEGIN
    4545//            VALUE "Comments", VERSIONID
    46             VALUE "CompanyName", "..::Lёppsville::.. Homes"
     46            VALUE "CompanyName", "Oleksii ""Lёppa"" Serdiuk"
    4747            VALUE "FileDescription", "TSPSG: TSP Solver and Generator"
    4848            VALUE "FileVersion", BUILD_VERSION
    4949            VALUE "InternalName", "TSPSG"
    50             VALUE "LegalCopyright", "Copyright © 2007-2010 Lёppa <contacts[at]oleksii[dot]name>"
     50            VALUE "LegalCopyright", "Copyright © 2007-2010 Oleksii ""Lёppa"" Serdiuk <contacts[at]oleksii[dot]name>"
    5151            VALUE "OriginalFilename", "tspsg.exe"
    52             VALUE "ProductName", "TSPSG"
     52            VALUE "ProductName", "TSPSG: TSP Solver and Generator"
    5353            VALUE "ProductVersion", BUILD_VERSION
    5454#if defined(_DEBUG) || defined(DEBUG)
  • trunk/src/globals.h

    r97 r98  
    3232#include <QtCore>
    3333#include <QtGui>
     34#include <limits>
    3435
    3536// Version info
     
    8990        #undef INFINITY
    9091#endif
    91 #define INFINITY 1.7E+308
     92#define INFINITY std::numeric_limits<double>::infinity()
    9293//! This string represents infinite value in the table
    9394#define INFSTR "---"
     
    104105        return (modf(x, &i) == 0.0);
    105106}
     107
     108#ifdef Q_OS_WIN32
     109/*!
     110 * \brief Enables or disables a mask for the \a widget.
     111 * \param widget A widget to toggle mask on.
     112 * \param enable Set to \c true to enable mask or \c false to disable it.
     113 *
     114 *  This function is used to enable an outlined font effect for \c QLabel with a static text.
     115 */
     116void toggleStyle(QWidget *widget, bool enable);
     117#endif // Q_OS_WIN32
    106118
    107119// Sanity checks
  • trunk/src/main.cpp

    r96 r98  
    3434
    3535#ifdef STATIC_BUILD
    36         Q_IMPORT_PLUGIN(qjpeg)
    37         Q_IMPORT_PLUGIN(qsvg)
     36//      Q_IMPORT_PLUGIN(qjpeg)
     37//      Q_IMPORT_PLUGIN(qsvg)
    3838#endif
    3939
  • trunk/src/mainwindow.cpp

    r97 r98  
    295295                if (untitled)
    296296                        setFileName();
     297#ifdef Q_OS_WIN32
     298                if (QtWin::isCompositionEnabled() && settings->value("UseTranslucency", DEF_USE_TRANSLUCENCY).toBool())  {
     299                        toggleStyle(labelVariant, true);
     300                        toggleStyle(labelCities, true);
     301                }
     302#endif
    297303                QApplication::restoreOverrideCursor();
    298304        }
     
    304310QString title;
    305311#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
    306         title += QString::fromUtf8("<b>TSPSG<br>TSP Solver and Generator</b><br>");
     312        title += QString("<b>TSPSG<br>TSP Solver and Generator</b><br>");
    307313#else
    308         title += QString::fromUtf8("<b>TSPSG: TSP Solver and Generator</b><br>");
    309 #endif // Q_OS_WINCE
    310         title += QString::fromUtf8("Version: <b>"BUILD_VERSION"</b><br>");
    311         title += QString::fromUtf8("<b>&copy; 2007-%1 Lёppa</b><br>").arg(QDate::currentDate().toString("yyyy"));
    312         title += QString::fromUtf8("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sf.net/</a></b><br>");
     314        title += QString("<b>TSPSG: TSP Solver and Generator</b><br>");
     315#endif // Q_OS_WINCE || Q_OS_SYMBIAN
     316        title += QString("%1: <b>%2</b><br>").arg(tr("Version"), BUILD_VERSION);
     317#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     318        title += QString("<b>&copy; 2007-%1 Oleksii \"Lёppa\" Serdiuk</b><br>").arg(QDate::currentDate().toString("yyyy"));
     319        title += QString("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sourceforge.net/</a></b>");
     320#else
     321        title += QString("<b><a href=\"http://tspsg.sourceforge.net/\">http://tspsg.sf.net/</a></b>");
     322#endif // Q_OS_WINCE && Q_OS_SYMBIAN
     323
    313324QString about;
    314         about += QString::fromUtf8("Target OS (ARCH): <b>%1</b><br>").arg(OS);
     325        about += QString("%1: <b>%2</b><br>").arg(tr("Target OS (ARCH)"), OS);
    315326#ifndef STATIC_BUILD
    316         about += "Qt library (shared):<br>";
    317         about += QString::fromUtf8("&nbsp;&nbsp;&nbsp;&nbsp;Build time: <b>%1</b><br>").arg(QT_VERSION_STR);
    318         about += QString::fromUtf8("&nbsp;&nbsp;&nbsp;&nbsp;Runtime: <b>%1</b><br>").arg(qVersion());
     327        about += QString("%1 (%2):<br>").arg(tr("Qt library"), tr("shared"));
     328        about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Build time"), QT_VERSION_STR);
     329        about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Runtime"), qVersion());
    319330#else
    320         about += QString::fromUtf8("Qt library: <b>%1</b> (static)<br>").arg(QT_VERSION_STR);
     331        about += QString("%1: <b>%2</b> (%3)<br>").arg(tr("Qt library"), QT_VERSION_STR, tr("static"));
    321332#endif // STATIC_BUILD
    322         about += QString::fromUtf8("Built on <b>%1</b> at <b>%2</b><br>").arg(__DATE__).arg(__TIME__);
    323 //      about += "<br>";
    324 //      about += QString::fromUtf8("Id: <b>"VERSIONID"</b><br>");
    325         about += QString::fromUtf8("Algorithm: <b>%1</b><br>").arg(CTSPSolver::getVersionId());
     333        about += tr("Buid <b>%1</b>, built on <b>%2</b> at <b>%3</b>").arg(BUILD_NUMBER).arg(__DATE__).arg(__TIME__) + "<br>";
     334        about += QString("%1: <b>%2</b><br>").arg(tr("Algorithm"), CTSPSolver::getVersionId());
    326335        about += "<br>";
    327         about += "TSPSG is free software: you can redistribute it and/or modify it<br>"
     336        about += tr("TSPSG is free software: you can redistribute it and/or modify it<br>"
    328337                "under the terms of the GNU General Public License as published<br>"
    329338                "by the Free Software Foundation, either version 3 of the License,<br>"
     
    336345                "<br>"
    337346                "You should have received a copy of the GNU General Public License<br>"
    338                 "along with TSPSG.  If not, see <a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>.";
     347                "along with TSPSG.  If not, see <a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>.");
    339348
    340349QDialog *dlg = new QDialog(this);
    341350QLabel *lblIcon = new QLabel(dlg),
    342         *lblTitle = new QLabel(dlg);
     351        *lblTitle = new QLabel(dlg),
     352        *lblTranslated = new QLabel(dlg);
     353#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
     354QLabel *lblSubTitle = new QLabel(QString("<b>&copy; 2007-%1 Oleksii \"Lёppa\" Serdiuk</b>").arg(QDate::currentDate().toString("yyyy")), dlg);
     355#endif // Q_OS_WINCE || Q_OS_SYMBIAN
    343356QTextBrowser *txtAbout = new QTextBrowser(dlg);
    344357QVBoxLayout *vb = new QVBoxLayout();
    345 QHBoxLayout *hb = new QHBoxLayout();
     358QHBoxLayout *hb1 = new QHBoxLayout(),
     359        *hb2 = new QHBoxLayout();
    346360QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, dlg);
    347361
    348362        lblIcon->setPixmap(QPixmap(":/images/tspsg.png").scaledToWidth(logicalDpiX() * 2 / 3, Qt::SmoothTransformation));
    349363        lblIcon->setAlignment(Qt::AlignTop);
     364#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     365        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()));
     366#endif
     367
    350368        lblTitle->setOpenExternalLinks(true);
    351369        lblTitle->setText(title);
    352 
    353         hb->addWidget(lblIcon);
    354         hb->addWidget(lblTitle);
    355         hb->addStretch();
    356 
    357 //      txtAbout->setTextInteractionFlags(txtAbout->textInteractionFlags() ^ Qt::TextEditable);
     370        lblTitle->setAlignment(Qt::AlignTop);
     371        lblTitle->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
     372#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     373        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()));
     374#endif
     375
     376        hb1->addWidget(lblIcon);
     377        hb1->addWidget(lblTitle);
     378
    358379        txtAbout->setWordWrapMode(QTextOption::NoWrap);
    359380        txtAbout->setOpenExternalLinks(true);
    360381        txtAbout->setHtml(about);
    361382        txtAbout->moveCursor(QTextCursor::Start);
     383#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     384        txtAbout->setStyleSheet(QString("QTextBrowser {border-color: %1; border-width: 1px; border-style: solid; border-radius: 3px;}").arg(palette().shadow().color().name()));
     385#endif
    362386
    363387        bb->button(QDialogButtonBox::Ok)->setCursor(QCursor(Qt::PointingHandCursor));
    364388
    365         vb->addLayout(hb);
     389        lblTranslated->setText(QApplication::translate("--------", "TRANSLATION", "Please, provide translator credits here."));
     390        if (lblTranslated->text() == "TRANSLATION")
     391                lblTranslated->hide();
     392        else {
     393                lblTranslated->setOpenExternalLinks(true);
     394#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
     395                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()));
     396#endif
     397                hb2->addWidget(lblTranslated);
     398        }
     399
     400        hb2->addWidget(bb);
     401
     402#if defined(Q_OS_WINCE)
     403        vb->setMargin(3);
     404#endif
     405        vb->addLayout(hb1);
     406#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
     407        vb->addWidget(lblSubTitle);
     408#endif // Q_OS_WINCE || Q_OS_SYMBIAN
    366409        vb->addWidget(txtAbout);
    367         vb->addWidget(bb);
    368 
    369         dlg->setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
     410        vb->addLayout(hb2);
     411
     412        dlg->setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::MSWindowsFixedSizeDialogHint);
    370413        dlg->setWindowTitle(tr("About TSPSG"));
    371414        dlg->setLayout(vb);
     
    380423#endif // Q_OS_WIN32
    381424
    382         dlg->resize(450, 400);
     425        dlg->resize(450, 350);
     426
    383427        dlg->exec();
    384428
     
    825869        scrollArea->setWidget(tabWidget);
    826870        setCentralWidget(scrollArea);
     871#else
     872        setCentralWidget(tabWidget);
    827873#endif // Q_OS_WINCE
    828874
     
    890936{
    891937#ifdef Q_OS_WIN32
     938        toggleStyle(labelVariant, enable);
     939        toggleStyle(labelCities, enable);
     940        toggleStyle(statusBar(), enable);
    892941        tabWidget->setDocumentMode(enable);
    893942        QtWin::enableBlurBehindWindow(this, enable);
  • trunk/src/pch.h

    r97 r98  
    2727
    2828#ifdef __cplusplus
    29         // Qt Libraries
    30         #include <QtCore>
    31         #include <QtGui>
    32         #include <QtSvg>
    33 
    34         // Rarely modified parts
    35         #include "version.h"
    36         #include "os.h"
    37         #ifdef Q_OS_WIN32
    38                 #include "qtwin.h"
    39         #endif // Q_OS_WIN32
     29        #include "globals.h"
    4030#endif // __cplusplus
  • trunk/src/settingsdialog.cpp

    r96 r98  
    7171        vbox1->addWidget(bgGrey);
    7272        setLayout(vbox1);
    73 #else
     73#else // Q_OS_WINCE || Q_OS_SYMBIAN
    7474        // Layout helper elements
    7575QVBoxLayout *vbox1, *vbox2;
  • trunk/src/tspsolver.cpp

    r93 r98  
    326326                        matrix[nRow][k] -= val;
    327327}
     328
     329QDebug operator<<(QDebug dbg, const TMatrix &matrix)
     330{
     331        for (int r = 0; r < matrix.count(); r++) {
     332                for (int c = 0; c < matrix.at(r).count(); c++)
     333                        dbg.space() << matrix.at(r).at(c);
     334                dbg << endl;
     335        }
     336        return dbg;
     337}
  • trunk/src/tspsolver.h

    r90 r98  
    108108};
    109109
     110#ifdef DEBUG
     111QDebug operator<<(QDebug dbg, const TMatrix &matrix);
     112#endif
     113
    110114#endif // TSPSOLVER_H
  • trunk/src/version.h

    r97 r98  
    5858        #define BUILD_VERSION_MINOR 0
    5959#endif // BUILD_VERSION_MINOR
    60 /*!
    61  * \brief TSPSG release number
    62  *
    63  *  Release number meanings:
    64  *    - 1  --  3: <b>alpha</b> 1 to 3
    65  *    - 4  --  7: <b>beta</b> 1 to 4
    66  *    - 8  -- 10: <b>rc</b> 1 to 3
    67  *    - 11 --  x: <b>release</b> 1 to x-10
    68  */
    6960#ifndef BUILD_RELEASE
     61        //! TSPSG release number
    7062        #define BUILD_RELEASE 0
    7163#endif // BUILD_RELEASE
    7264
    73 /*!
    74  * \brief Current TSPSG build number
    75  *
    76  *  This will only change on releases and will be the same as revision number.
    77  */
    7865#ifndef BUILD_NUMBER
     66        //! Current TSPSG build number
    7967        #define BUILD_NUMBER 0
    8068#endif // BUILD_NUMBER
     
    8371 * \def BUILD_STATUS
    8472 * \brief TSPSG build status
    85  *
    86  * Determined based on BUILD_NUMBER and BUILD_RELEASE.
    8773 */
    88 #ifndef TSPSG_RELEASE_BUILD
     74#if !defined(TSPSG_RELEASE_BUILD)
    8975        #define BUILD_STATUS (dev build)
    90 #elif BUILD_RELEASE < 4
    91         #define BUILD_STATUS (alpha)
    92 #elif BUILD_RELEASE < 8
    93         #define BUILD_STATUS (beta)
    94 #elif BUILD_RELEASE < 11
    95         #define BUILD_STATUS (rc)
     76#elif !defined(BUILD_STATUS)
     77        #define BUILD_STATUS (build BUILD_NUMBER)
    9678#endif // TSPSG_RELEASE_BUILD
    9779
     
    10183#define QUOTE(x) QUOTE_X(x)
    10284
    103 /*!
    104  * \def BUILD_VERSION
    105  * \brief Full version of TSPSG in the form: \c major.minor.release.build [\c status].
    106  */
    107 #ifndef BUILD_STATUS
    108         #define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE.BUILD_NUMBER)
    109 #else
    110         #define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE.BUILD_NUMBER BUILD_STATUS)
    111 #endif
     85//! Full version of TSPSG in the form: \c major.minor.release.build \c status.
     86#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE BUILD_STATUS)
    11287
    11388#endif // VERSION_H
  • trunk/tspsg.pri

    r97 r98  
    2525#Source files
    2626SOURCES += src/main.cpp \
     27        src/globals.cpp \
    2728        src/mainwindow.cpp \
    2829        src/settingsdialog.cpp \
  • trunk/tspsg.pro

    r97 r98  
    1111######################################################################
    1212
    13 QT += svg
     13#QT += svg
    1414
    1515TEMPLATE = app
     
    2323BUILD_RELEASE = 2
    2424
    25 # This one is only defined on releases
     25# These are only defined on releases
    2626#DEFINES += TSPSG_RELEASE_BUILD
     27#DEFINES += BUILD_STATUS="\"(alpha 2)\""
    2728
    2829REVISION = $$system(svnversion)
     
    4647contains(QMAKE_PRL_CONFIG, static) {
    4748# We "embed" SVG and JPEG support on static build
    48         QTPLUGIN += qjpeg qsvg
     49#       QTPLUGIN += qjpeg qsvg
    4950        DEFINES += STATIC_BUILD
    5051}
     
    5354        OBJECTS_DIR = release
    5455        DESTDIR = release
     56        D = d
    5557} else {
    5658        OBJECTS_DIR = debug
    5759        DESTDIR = debug
    5860        DEFINES += DEBUG
     61        D =
    5962}
    6063
     
    9093        l10n.path = $$PREFIX/share/TSPSG/l10n
    9194        docs.path = $$PREFIX/share/doc/TSPSG-$$VERSION
     95        apps.files = resources/tspsg.desktop
    9296        apps.path = $$PREFIX/share/applications/
    93         apps.files = resources/tspsg.desktop
     97        icon.files = resources/tspsg.png
    9498        icon.path = $$PREFIX/share/pixmaps
    95         icon.files = resources/tspsg.png
    9699        INSTALLS += apps icon
    97100}
     
    99102# TODO: MacOSX
    100103
    101 # For win32: everything goes to "C:\Program Files\TSPSG" and subfolders.
     104# For win32: everything goes to "%PROGRAMFILES%\TSPSG" and subfolders.
    102105win32 {
    103         PREFIX = "C:\Program Files"
     106        PREFIX = "$$(PROGRAMFILES)"
    104107
    105         CONFIG(release, debug|release) {
    106                 imageformats.files = $$[QT_INSTALL_PLUGINS]/imageformats/qsvg4.dll \
    107                         $$[QT_INSTALL_PLUGINS]/imageformats/qjpeg4.dll
    108         } else {
    109                 imageformats.files = $$[QT_INSTALL_PLUGINS]/imageformats/qsvgd4.dll \
    110                         $$[QT_INSTALL_PLUGINS]/imageformats/qjpegd4.dll
    111         }
     108        share.files = $$[QT_INSTALL_LIBS]/QtCore$${D}4.dll \
     109                $$[QT_INSTALL_LIBS]/QtGui$${D}4.dll \
     110                $$[QT_INSTALL_LIBS]/QtSvg$${D}4.dll
     111        imageformats.files = $$[QT_INSTALL_PLUGINS]/imageformats/qsvg$${D}4.dll \
     112                $$[QT_INSTALL_PLUGINS]/imageformats/qjpeg$${D}4.dll
    112113        imageformats.path = $$PREFIX/TSPSG/imageformats
    113114        INSTALLS += imageformats
     
    117118wince {
    118119        PREFIX = "\Program Files"
     120        share.sources = $$share.files
     121        l10n.sources = $$l10n.files
     122        docs.sources = $$docs.files
     123
    119124        DEPLOYMENT += target share l10n docs
    120         DEPLOYMENT_PLUGIN += qjpeg qsvg
     125#       DEPLOYMENT_PLUGIN += qjpeg qsvg
    121126}
    122127
     
    133138# Symbian
    134139symbian {
     140        # 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
     141        share.sources = $$share.files
     142        l10n.sources = l10n/qt_ru.qm l10n/qt_uk.qm l10n/tspsg_en.qm l10n/tspsg_ru.qm l10n/tspsg_uk.qm
    135143        l10n.path = l10n
     144        docs.sources = $$docs.files
    136145        docs.pkg_prerules = \
    137146                "\"README\" - \"\", FILETEXT, TEXTCONTINUE" \
    138147                "\"COPYING\" - \"\", FILETEXT, TEXTEXIT"
    139148        DEPLOYMENT += share l10n docs
    140         DEPLOYMENT_PLUGIN += qjpeg qsvg
     149#       DEPLOYMENT_PLUGIN += qjpeg qsvg
    141150
    142151        ICON = resources/tspsg.svg
    143152
    144153        appinfo = \
    145                 "$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e),0,1,2"
     154                "$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e),$$BUILD_VERSION_MAJOR,$$BUILD_VERSION_MINOR,$$BUILD_RELEASE"
    146155        vendorinfo = \
    147156                "%{\"l-homes.org\"}" \
  • trunk/ui/mainwindow.ui

    r97 r98  
    66  <property name="geometry">
    77   <rect>
    8     <x>0</x>
    9     <y>0</y>
    10     <width>550</width>
    11     <height>500</height>
     8        <x>0</x>
     9        <y>0</y>
     10        <width>550</width>
     11        <height>450</height>
    1212   </rect>
    1313  </property>
     
    1717  <property name="windowIcon">
    1818   <iconset resource="../resources/tspsg.qrc">
    19     <normaloff>:/images/tspsg.png</normaloff>:/images/tspsg.png</iconset>
     19        <normaloff>:/images/tspsg.png</normaloff>:/images/tspsg.png</iconset>
    2020  </property>
    2121  <widget class="QTabWidget" name="tabWidget">
    2222   <property name="tabPosition">
    23     <enum>QTabWidget::North</enum>
     23        <enum>QTabWidget::North</enum>
    2424   </property>
    2525   <widget class="QWidget" name="tabTask">
    26     <attribute name="title">
    27     <string>Task</string>
    28     </attribute>
    29     <layout class="QVBoxLayout" name="_2">
    30     <item>
    31       <layout class="QHBoxLayout">
    32        <item>
    33         <spacer>
    34         <property name="orientation">
    35           <enum>Qt::Horizontal</enum>
    36         </property>
    37         <property name="sizeHint" stdset="0">
    38           <size>
    39            <width>40</width>
    40            <height>20</height>
    41           </size>
    42         </property>
    43         </spacer>
    44        </item>
    45        <item>
    46         <widget class="QLabel" name="labelVariant">
    47         <property name="text">
    48           <string>&amp;Variant:</string>
    49         </property>
    50         <property name="buddy">
    51           <cstring>spinVariant</cstring>
    52         </property>
    53         </widget>
    54        </item>
    55        <item>
    56         <widget class="QSpinBox" name="spinVariant">
    57         <property name="cursor">
    58           <cursorShape>PointingHandCursor</cursorShape>
    59         </property>
    60         <property name="statusTip">
    61           <string>Number of variant</string>
    62         </property>
    63         <property name="minimum">
    64           <number>1</number>
    65         </property>
    66         </widget>
    67        </item>
    68        <item>
    69         <widget class="QLabel" name="labelCities">
    70         <property name="text">
    71           <string>&amp;Cities:</string>
    72         </property>
    73         <property name="buddy">
    74           <cstring>spinCities</cstring>
    75         </property>
    76         </widget>
    77        </item>
    78        <item>
    79         <widget class="QSpinBox" name="spinCities">
    80         <property name="cursor">
    81           <cursorShape>PointingHandCursor</cursorShape>
    82         </property>
    83         <property name="statusTip">
    84           <string>Number of cities</string>
    85         </property>
    86         <property name="minimum">
    87           <number>3</number>
    88         </property>
    89         <property name="value">
    90           <number>5</number>
    91         </property>
    92         </widget>
    93        </item>
    94        <item>
    95         <spacer>
    96         <property name="orientation">
    97           <enum>Qt::Horizontal</enum>
    98         </property>
    99         <property name="sizeHint" stdset="0">
    100           <size>
    101            <width>40</width>
    102            <height>20</height>
    103           </size>
    104         </property>
    105         </spacer>
    106        </item>
    107       </layout>
    108     </item>
    109     <item>
    110       <widget class="QTableView" name="taskView">
    111        <property name="statusTip">
    112         <string>Cost of travel from city to city</string>
    113        </property>
    114        <property name="selectionMode">
    115         <enum>QAbstractItemView::NoSelection</enum>
    116        </property>
    117       </widget>
    118     </item>
    119     <item>
    120       <layout class="QHBoxLayout">
    121        <item>
    122         <spacer>
    123         <property name="orientation">
    124           <enum>Qt::Horizontal</enum>
    125         </property>
    126         <property name="sizeHint" stdset="0">
    127           <size>
    128            <width>40</width>
    129            <height>20</height>
    130           </size>
    131         </property>
    132         </spacer>
    133        </item>
    134        <item>
    135         <widget class="QPushButton" name="buttonRandom">
    136         <property name="cursor">
    137           <cursorShape>PointingHandCursor</cursorShape>
    138         </property>
    139         <property name="statusTip">
    140           <string>Fill table with random numbers</string>
    141         </property>
    142         <property name="text">
    143           <string>Random</string>
    144         </property>
    145         <property name="icon">
    146           <iconset resource="../resources/tspsg.qrc">
    147            <normaloff>:/images/icons/roll.png</normaloff>:/images/icons/roll.png</iconset>
    148         </property>
    149         </widget>
    150        </item>
    151        <item>
    152         <widget class="QPushButton" name="buttonSolve">
    153         <property name="cursor">
    154           <cursorShape>PointingHandCursor</cursorShape>
    155         </property>
    156         <property name="statusTip">
    157           <string>Solve current task</string>
    158         </property>
    159         <property name="text">
    160           <string>Solve</string>
    161         </property>
    162         <property name="icon">
    163           <iconset resource="../resources/tspsg.qrc">
    164            <normaloff>:/images/icons/button_ok.png</normaloff>:/images/icons/button_ok.png</iconset>
    165         </property>
    166         </widget>
    167        </item>
    168       </layout>
    169     </item>
    170     </layout>
     26        <attribute name="title">
     27        <string>Task</string>
     28        </attribute>
     29        <layout class="QVBoxLayout" name="_2">
     30        <item>
     31          <layout class="QHBoxLayout" name="_4">
     32           <item>
     33                <spacer name="spacer">
     34                <property name="orientation">
     35                  <enum>Qt::Horizontal</enum>
     36                </property>
     37                <property name="sizeHint" stdset="0">
     38                  <size>
     39                   <width>40</width>
     40                   <height>20</height>
     41                  </size>
     42                </property>
     43                </spacer>
     44           </item>
     45           <item>
     46                <widget class="QLabel" name="labelVariant">
     47                <property name="text">
     48                  <string>&amp;Variant:</string>
     49                </property>
     50                <property name="buddy">
     51                  <cstring>spinVariant</cstring>
     52                </property>
     53                </widget>
     54           </item>
     55           <item>
     56                <widget class="QSpinBox" name="spinVariant">
     57                <property name="cursor">
     58                  <cursorShape>PointingHandCursor</cursorShape>
     59                </property>
     60                <property name="statusTip">
     61                  <string>Number of variant</string>
     62                </property>
     63                <property name="minimum">
     64                  <number>1</number>
     65                </property>
     66                </widget>
     67           </item>
     68           <item>
     69                <widget class="QLabel" name="labelCities">
     70                <property name="text">
     71                  <string>&amp;Cities:</string>
     72                </property>
     73                <property name="buddy">
     74                  <cstring>spinCities</cstring>
     75                </property>
     76                </widget>
     77           </item>
     78           <item>
     79                <widget class="QSpinBox" name="spinCities">
     80                <property name="cursor">
     81                  <cursorShape>PointingHandCursor</cursorShape>
     82                </property>
     83                <property name="statusTip">
     84                  <string>Number of cities</string>
     85                </property>
     86                <property name="minimum">
     87                  <number>3</number>
     88                </property>
     89                <property name="value">
     90                  <number>5</number>
     91                </property>
     92                </widget>
     93           </item>
     94           <item>
     95                <spacer name="spacer_2">
     96                <property name="orientation">
     97                  <enum>Qt::Horizontal</enum>
     98                </property>
     99                <property name="sizeHint" stdset="0">
     100                  <size>
     101                   <width>40</width>
     102                   <height>20</height>
     103                  </size>
     104                </property>
     105                </spacer>
     106           </item>
     107          </layout>
     108        </item>
     109        <item>
     110          <widget class="QTableView" name="taskView">
     111           <property name="statusTip">
     112                <string>Cost of travel from city to city</string>
     113           </property>
     114           <property name="selectionMode">
     115                <enum>QAbstractItemView::NoSelection</enum>
     116           </property>
     117          </widget>
     118        </item>
     119        <item>
     120          <layout class="QHBoxLayout" name="_5">
     121           <item>
     122                <spacer name="spacer_3">
     123                <property name="orientation">
     124                  <enum>Qt::Horizontal</enum>
     125                </property>
     126                <property name="sizeHint" stdset="0">
     127                  <size>
     128                   <width>40</width>
     129                   <height>20</height>
     130                  </size>
     131                </property>
     132                </spacer>
     133           </item>
     134           <item>
     135                <widget class="QPushButton" name="buttonRandom">
     136                <property name="cursor">
     137                  <cursorShape>PointingHandCursor</cursorShape>
     138                </property>
     139                <property name="statusTip">
     140                  <string>Fill table with random numbers</string>
     141                </property>
     142                <property name="text">
     143                  <string>Random</string>
     144                </property>
     145                <property name="icon">
     146                  <iconset resource="../resources/tspsg.qrc">
     147                   <normaloff>:/images/icons/roll.png</normaloff>:/images/icons/roll.png</iconset>
     148                </property>
     149                </widget>
     150           </item>
     151           <item>
     152                <widget class="QPushButton" name="buttonSolve">
     153                <property name="cursor">
     154                  <cursorShape>PointingHandCursor</cursorShape>
     155                </property>
     156                <property name="statusTip">
     157                  <string>Solve current task</string>
     158                </property>
     159                <property name="text">
     160                  <string>Solve</string>
     161                </property>
     162                <property name="icon">
     163                  <iconset resource="../resources/tspsg.qrc">
     164                   <normaloff>:/images/icons/button_ok.png</normaloff>:/images/icons/button_ok.png</iconset>
     165                </property>
     166                </widget>
     167           </item>
     168          </layout>
     169        </item>
     170        </layout>
    171171   </widget>
    172172   <widget class="QWidget" name="tabSolution">
    173     <attribute name="title">
    174     <string>Solution</string>
    175     </attribute>
    176     <layout class="QVBoxLayout" name="_3">
    177     <item>
    178       <widget class="QTextEdit" name="solutionText">
    179        <property name="enabled">
    180         <bool>false</bool>
    181        </property>
    182        <property name="statusTip">
    183         <string>Solution steps</string>
    184        </property>
    185        <property name="readOnly">
    186         <bool>true</bool>
    187        </property>
    188        <property name="textInteractionFlags">
    189         <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
    190        </property>
    191       </widget>
    192     </item>
    193     <item>
    194       <layout class="QHBoxLayout" name="horizontalLayout">
    195        <item>
    196         <widget class="QPushButton" name="buttonSaveSolution">
    197         <property name="enabled">
    198           <bool>false</bool>
    199         </property>
    200         <property name="cursor">
    201           <cursorShape>PointingHandCursor</cursorShape>
    202         </property>
    203         <property name="statusTip">
    204           <string>Save solution to a file</string>
    205         </property>
    206         <property name="text">
    207           <string>Save Solution</string>
    208         </property>
    209         <property name="icon">
    210           <iconset resource="../resources/tspsg.qrc">
    211            <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
    212         </property>
    213         </widget>
    214        </item>
    215        <item>
    216         <spacer name="horizontalSpacer">
    217         <property name="orientation">
    218           <enum>Qt::Horizontal</enum>
    219         </property>
    220         <property name="sizeHint" stdset="0">
    221           <size>
    222            <width>40</width>
    223            <height>20</height>
    224           </size>
    225         </property>
    226         </spacer>
    227        </item>
    228        <item>
    229         <widget class="QPushButton" name="buttonBackToTask">
    230         <property name="cursor">
    231           <cursorShape>PointingHandCursor</cursorShape>
    232         </property>
    233         <property name="statusTip">
    234           <string>Go back to Task tab</string>
    235         </property>
    236         <property name="text">
    237           <string>Back to Task</string>
    238         </property>
    239         <property name="icon">
    240           <iconset resource="../resources/tspsg.qrc">
    241            <normaloff>:/images/icons/back.png</normaloff>:/images/icons/back.png</iconset>
    242         </property>
    243         </widget>
    244        </item>
    245       </layout>
    246     </item>
    247     </layout>
     173        <attribute name="title">
     174        <string>Solution</string>
     175        </attribute>
     176        <layout class="QVBoxLayout" name="_3">
     177        <item>
     178          <widget class="QTextEdit" name="solutionText">
     179           <property name="enabled">
     180                <bool>false</bool>
     181           </property>
     182           <property name="statusTip">
     183                <string>Solution steps</string>
     184           </property>
     185           <property name="readOnly">
     186                <bool>true</bool>
     187           </property>
     188           <property name="textInteractionFlags">
     189                <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
     190           </property>
     191          </widget>
     192        </item>
     193        <item>
     194          <layout class="QHBoxLayout" name="_6">
     195           <item>
     196                <widget class="QPushButton" name="buttonSaveSolution">
     197                <property name="enabled">
     198                  <bool>false</bool>
     199                </property>
     200                <property name="cursor">
     201                  <cursorShape>PointingHandCursor</cursorShape>
     202                </property>
     203                <property name="statusTip">
     204                  <string>Save solution to a file</string>
     205                </property>
     206                <property name="text">
     207                  <string>Save Solution</string>
     208                </property>
     209                <property name="icon">
     210                  <iconset resource="../resources/tspsg.qrc">
     211                   <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
     212                </property>
     213                </widget>
     214           </item>
     215           <item>
     216                <spacer name="spacer_4">
     217                <property name="orientation">
     218                  <enum>Qt::Horizontal</enum>
     219                </property>
     220                <property name="sizeHint" stdset="0">
     221                  <size>
     222                   <width>40</width>
     223                   <height>20</height>
     224                  </size>
     225                </property>
     226                </spacer>
     227           </item>
     228           <item>
     229                <widget class="QPushButton" name="buttonBackToTask">
     230                <property name="cursor">
     231                  <cursorShape>PointingHandCursor</cursorShape>
     232                </property>
     233                <property name="statusTip">
     234                  <string>Go back to Task tab</string>
     235                </property>
     236                <property name="text">
     237                  <string>Back to Task</string>
     238                </property>
     239                <property name="icon">
     240                  <iconset resource="../resources/tspsg.qrc">
     241                   <normaloff>:/images/icons/back.png</normaloff>:/images/icons/back.png</iconset>
     242                </property>
     243                </widget>
     244           </item>
     245          </layout>
     246        </item>
     247        </layout>
    248248   </widget>
    249249  </widget>
    250250  <widget class="QMenuBar" name="menubar">
    251251   <property name="geometry">
    252     <rect>
    253     <x>0</x>
    254     <y>0</y>
    255     <width>550</width>
    256     <height>21</height>
    257     </rect>
     252        <rect>
     253        <x>0</x>
     254        <y>0</y>
     255        <width>550</width>
     256        <height>21</height>
     257        </rect>
    258258   </property>
    259259   <widget class="QMenu" name="menuFile">
    260     <property name="windowIcon">
    261     <iconset>
    262       <normaloff/>
    263     </iconset>
    264     </property>
    265     <property name="title">
    266     <string>&amp;File</string>
    267     </property>
    268     <widget class="QMenu" name="menuFileSaveAs">
    269     <property name="title">
    270       <string>Save &amp;As</string>
    271     </property>
    272     <property name="icon">
    273       <iconset resource="../resources/tspsg.qrc">
    274        <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
    275     </property>
    276     <addaction name="actionFileSaveAsTask"/>
    277     <addaction name="actionFileSaveAsSolution"/>
    278     </widget>
    279     <addaction name="actionFileNew"/>
    280     <addaction name="actionFileOpen"/>
    281     <addaction name="actionFileSave"/>
    282     <addaction name="menuFileSaveAs"/>
    283     <addaction name="separator"/>
    284     <addaction name="actionFileExit"/>
     260        <property name="windowIcon">
     261        <iconset>
     262          <normaloff/>
     263        </iconset>
     264        </property>
     265        <property name="title">
     266        <string>&amp;File</string>
     267        </property>
     268        <widget class="QMenu" name="menuFileSaveAs">
     269        <property name="title">
     270          <string>Save &amp;As</string>
     271        </property>
     272        <property name="icon">
     273          <iconset resource="../resources/tspsg.qrc">
     274           <normaloff>:/images/icons/filesaveas.png</normaloff>:/images/icons/filesaveas.png</iconset>
     275        </property>
     276        <addaction name="actionFileSaveAsTask"/>
     277        <addaction name="actionFileSaveAsSolution"/>
     278        </widget>
     279        <addaction name="actionFileNew"/>
     280        <addaction name="actionFileOpen"/>
     281        <addaction name="actionFileSave"/>
     282        <addaction name="menuFileSaveAs"/>
     283        <addaction name="separator"/>
     284        <addaction name="actionFileExit"/>
    285285   </widget>
    286286   <widget class="QMenu" name="menuSettings">
    287     <property name="title">
    288     <string>&amp;Settings</string>
    289     </property>
    290     <widget class="QMenu" name="menuSettingsLanguage">
    291     <property name="toolTip">
    292       <string>Select language</string>
    293     </property>
    294     <property name="statusTip">
    295       <string>Select application language</string>
    296     </property>
    297     <property name="title">
    298       <string comment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
    299     </property>
    300     <property name="icon">
    301       <iconset resource="../resources/tspsg.qrc">
    302        <normaloff>:/images/icons/locale.png</normaloff>:/images/icons/locale.png</iconset>
    303     </property>
    304     <addaction name="actionSettingsLanguageAutodetect"/>
    305     <addaction name="separator"/>
    306     <addaction name="actionSettingsLanguageEnglish"/>
    307     </widget>
    308     <addaction name="menuSettingsLanguage"/>
    309     <addaction name="separator"/>
    310     <addaction name="actionSettingsPreferences"/>
     287        <property name="title">
     288        <string>&amp;Settings</string>
     289        </property>
     290        <widget class="QMenu" name="menuSettingsLanguage">
     291        <property name="toolTip">
     292          <string>Select language</string>
     293        </property>
     294        <property name="statusTip">
     295          <string>Select application language</string>
     296        </property>
     297        <property name="title">
     298          <string comment="Please, append &quot; / Language&quot; when translating this string.">&amp;Language</string>
     299        </property>
     300        <property name="icon">
     301          <iconset resource="../resources/tspsg.qrc">
     302           <normaloff>:/images/icons/locale.png</normaloff>:/images/icons/locale.png</iconset>
     303        </property>
     304        <addaction name="actionSettingsLanguageAutodetect"/>
     305        <addaction name="separator"/>
     306        <addaction name="actionSettingsLanguageEnglish"/>
     307        </widget>
     308        <addaction name="menuSettingsLanguage"/>
     309        <addaction name="separator"/>
     310        <addaction name="actionSettingsPreferences"/>
    311311   </widget>
    312312   <widget class="QMenu" name="menuHelp">
    313     <property name="title">
    314     <string>&amp;Help</string>
    315     </property>
    316     <addaction name="actionHelpContents"/>
    317     <addaction name="actionHelpContextual"/>
    318     <addaction name="separator"/>
    319     <addaction name="actionHelpAboutQt"/>
    320     <addaction name="actionHelpAbout"/>
     313        <property name="title">
     314        <string>&amp;Help</string>
     315        </property>
     316        <addaction name="actionHelpContents"/>
     317        <addaction name="actionHelpContextual"/>
     318        <addaction name="separator"/>
     319        <addaction name="actionHelpAboutQt"/>
     320        <addaction name="actionHelpAbout"/>
    321321   </widget>
    322322   <addaction name="menuFile"/>
     
    326326  <widget class="QToolBar" name="toolBar">
    327327   <property name="cursor">
    328     <cursorShape>ArrowCursor</cursorShape>
     328        <cursorShape>ArrowCursor</cursorShape>
    329329   </property>
    330330   <property name="windowTitle">
    331     <string>Toolbar</string>
     331        <string>Toolbar</string>
    332332   </property>
    333333   <attribute name="toolBarArea">
    334     <enum>TopToolBarArea</enum>
     334        <enum>TopToolBarArea</enum>
    335335   </attribute>
    336336   <attribute name="toolBarBreak">
    337     <bool>false</bool>
     337        <bool>false</bool>
    338338   </attribute>
    339339   <addaction name="actionFileNew"/>
     
    347347  <action name="actionFileSaveAsSolution">
    348348   <property name="enabled">
    349     <bool>false</bool>
    350    </property>
    351    <property name="text">
    352     <string>&amp;Solution...</string>
     349        <bool>false</bool>
     350   </property>
     351   <property name="text">
     352        <string>&amp;Solution...</string>
    353353   </property>
    354354   <property name="toolTip">
    355     <string>Save solution</string>
    356    </property>
    357    <property name="statusTip">
    358     <string>Save solution to a file</string>
     355        <string>Save solution</string>
     356   </property>
     357   <property name="statusTip">
     358        <string>Save solution to a file</string>
    359359   </property>
    360360  </action>
    361361  <action name="actionFileNew">
    362362   <property name="icon">
    363     <iconset resource="../resources/tspsg.qrc">
    364     <normaloff>:/images/icons/filenew.png</normaloff>:/images/icons/filenew.png</iconset>
    365    </property>
    366    <property name="text">
    367     <string>&amp;New</string>
     363        <iconset resource="../resources/tspsg.qrc">
     364        <normaloff>:/images/icons/filenew.png</normaloff>:/images/icons/filenew.png</iconset>
     365   </property>
     366   <property name="text">
     367        <string>&amp;New</string>
    368368   </property>
    369369   <property name="toolTip">
    370     <string>New task</string>
    371    </property>
    372    <property name="statusTip">
    373     <string>Create new task</string>
     370        <string>New task</string>
     371   </property>
     372   <property name="statusTip">
     373        <string>Create new task</string>
    374374   </property>
    375375   <property name="shortcut">
    376     <string>Ctrl+N</string>
     376        <string>Ctrl+N</string>
    377377   </property>
    378378  </action>
    379379  <action name="actionFileOpen">
    380380   <property name="icon">
    381     <iconset resource="../resources/tspsg.qrc">
    382     <normaloff>:/images/icons/fileopen.png</normaloff>:/images/icons/fileopen.png</iconset>
    383    </property>
    384    <property name="text">
    385     <string>&amp;Open...</string>
     381        <iconset resource="../resources/tspsg.qrc">
     382        <normaloff>:/images/icons/fileopen.png</normaloff>:/images/icons/fileopen.png</iconset>
     383   </property>
     384   <property name="text">
     385        <string>&amp;Open...</string>
    386386   </property>
    387387   <property name="toolTip">
    388     <string>Open task</string>
    389    </property>
    390    <property name="statusTip">
    391     <string>Open saved task</string>
     388        <string>Open task</string>
     389   </property>
     390   <property name="statusTip">
     391        <string>Open saved task</string>
    392392   </property>
    393393   <property name="shortcut">
    394     <string>Ctrl+O</string>
     394        <string>Ctrl+O</string>
    395395   </property>
    396396  </action>
    397397  <action name="actionSettingsPreferences">
    398398   <property name="icon">
    399     <iconset resource="../resources/tspsg.qrc">
    400     <normaloff>:/images/icons/preferences_system.png</normaloff>:/images/icons/preferences_system.png</iconset>
    401    </property>
    402    <property name="text">
    403     <string>&amp;Preferences...</string>
    404    </property>
    405    <property name="statusTip">
    406     <string>Application preferences</string>
     399        <iconset resource="../resources/tspsg.qrc">
     400        <normaloff>:/images/icons/preferences_system.png</normaloff>:/images/icons/preferences_system.png</iconset>
     401   </property>
     402   <property name="text">
     403        <string>&amp;Preferences...</string>
     404   </property>
     405   <property name="statusTip">
     406        <string>Application preferences</string>
    407407   </property>
    408408  </action>
    409409  <action name="actionHelpContents">
    410410   <property name="enabled">
    411     <bool>false</bool>
    412    </property>
    413    <property name="icon">
    414     <iconset resource="../resources/tspsg.qrc">
    415     <normaloff>:/images/icons/contents.png</normaloff>:/images/icons/contents.png</iconset>
    416    </property>
    417    <property name="text">
    418     <string>&amp;Contents</string>
    419    </property>
    420    <property name="statusTip">
    421     <string>Open help contents</string>
     411        <bool>false</bool>
     412   </property>
     413   <property name="icon">
     414        <iconset resource="../resources/tspsg.qrc">
     415        <normaloff>:/images/icons/contents.png</normaloff>:/images/icons/contents.png</iconset>
     416   </property>
     417   <property name="text">
     418        <string>&amp;Contents</string>
     419   </property>
     420   <property name="statusTip">
     421        <string>Open help contents</string>
    422422   </property>
    423423   <property name="shortcut">
    424     <string>Ctrl+F1</string>
     424        <string>Ctrl+F1</string>
    425425   </property>
    426426  </action>
    427427  <action name="actionHelpContextual">
    428428   <property name="enabled">
    429     <bool>false</bool>
    430    </property>
    431    <property name="icon">
    432     <iconset resource="../resources/tspsg.qrc">
    433     <normaloff>:/images/icons/help_browser.png</normaloff>:/images/icons/help_browser.png</iconset>
    434    </property>
    435    <property name="text">
    436     <string>Context &amp;Help</string>
    437    </property>
    438    <property name="statusTip">
    439     <string>Open context help</string>
     429        <bool>false</bool>
     430   </property>
     431   <property name="icon">
     432        <iconset resource="../resources/tspsg.qrc">
     433        <normaloff>:/images/icons/help_browser.png</normaloff>:/images/icons/help_browser.png</iconset>
     434   </property>
     435   <property name="text">
     436        <string>Context &amp;Help</string>
     437   </property>
     438   <property name="statusTip">
     439        <string>Open context help</string>
    440440   </property>
    441441   <property name="shortcut">
    442     <string>F1</string>
     442        <string>F1</string>
    443443   </property>
    444444  </action>
    445445  <action name="actionHelpAbout">
    446446   <property name="icon">
    447     <iconset resource="../resources/tspsg.qrc">
    448     <normaloff>:/images/icons/help_about.png</normaloff>:/images/icons/help_about.png</iconset>
    449    </property>
    450    <property name="text">
    451     <string>&amp;About TSPSG...</string>
    452    </property>
    453    <property name="statusTip">
    454     <string>About application</string>
     447        <iconset resource="../resources/tspsg.qrc">
     448        <normaloff>:/images/icons/help_about.png</normaloff>:/images/icons/help_about.png</iconset>
     449   </property>
     450   <property name="text">
     451        <string>&amp;About TSPSG...</string>
     452   </property>
     453   <property name="statusTip">
     454        <string>About application</string>
    455455   </property>
    456456  </action>
    457457  <action name="actionFileExit">
    458458   <property name="icon">
    459     <iconset resource="../resources/tspsg.qrc">
    460     <normaloff>:/images/icons/exit.png</normaloff>:/images/icons/exit.png</iconset>
    461    </property>
    462    <property name="text">
    463     <string>E&amp;xit</string>
    464    </property>
    465    <property name="statusTip">
    466     <string>Exit application</string>
     459        <iconset resource="../resources/tspsg.qrc">
     460        <normaloff>:/images/icons/exit.png</normaloff>:/images/icons/exit.png</iconset>
     461   </property>
     462   <property name="text">
     463        <string>E&amp;xit</string>
     464   </property>
     465   <property name="statusTip">
     466        <string>Exit application</string>
    467467   </property>
    468468  </action>
    469469  <action name="actionFileSaveAsTask">
    470470   <property name="text">
    471     <string>&amp;Task...</string>
     471        <string>&amp;Task...</string>
    472472   </property>
    473473   <property name="toolTip">
    474     <string>Save task</string>
    475    </property>
    476    <property name="statusTip">
    477     <string>Save task to file</string>
     474        <string>Save task</string>
     475   </property>
     476   <property name="statusTip">
     477        <string>Save task to file</string>
    478478   </property>
    479479  </action>
    480480  <action name="actionSettingsLanguageAutodetect">
    481481   <property name="checkable">
    482     <bool>true</bool>
     482        <bool>true</bool>
    483483   </property>
    484484   <property name="checked">
    485     <bool>true</bool>
    486    </property>
    487    <property name="text">
    488     <string>&amp;Autodetect</string>
     485        <bool>true</bool>
     486   </property>
     487   <property name="text">
     488        <string>&amp;Autodetect</string>
    489489   </property>
    490490   <property name="toolTip">
    491     <string>Detect language automatically</string>
    492    </property>
    493    <property name="statusTip">
    494     <string>Detect language automatically based on regional settings</string>
     491        <string>Detect language automatically</string>
     492   </property>
     493   <property name="statusTip">
     494        <string>Detect language automatically based on regional settings</string>
    495495   </property>
    496496  </action>
    497497  <action name="actionSettingsLanguageEnglish">
    498498   <property name="checkable">
    499     <bool>true</bool>
     499        <bool>true</bool>
    500500   </property>
    501501   <property name="checked">
    502     <bool>true</bool>
    503    </property>
    504    <property name="text">
    505     <string notr="true">&amp;English</string>
     502        <bool>true</bool>
     503   </property>
     504   <property name="text">
     505        <string notr="true">&amp;English</string>
    506506   </property>
    507507   <property name="iconText">
    508     <string notr="true">English</string>
     508        <string notr="true">English</string>
    509509   </property>
    510510  </action>
    511511  <action name="actionFileSave">
    512512   <property name="icon">
    513     <iconset resource="../resources/tspsg.qrc">
    514     <normaloff>:/images/icons/filesave.png</normaloff>:/images/icons/filesave.png</iconset>
    515    </property>
    516    <property name="text">
    517     <string>&amp;Save</string>
     513        <iconset resource="../resources/tspsg.qrc">
     514        <normaloff>:/images/icons/filesave.png</normaloff>:/images/icons/filesave.png</iconset>
     515   </property>
     516   <property name="text">
     517        <string>&amp;Save</string>
    518518   </property>
    519519   <property name="toolTip">
    520     <string>Save task</string>
    521    </property>
    522    <property name="statusTip">
    523     <string>Save current task</string>
     520        <string>Save task</string>
     521   </property>
     522   <property name="statusTip">
     523        <string>Save current task</string>
    524524   </property>
    525525   <property name="shortcut">
    526     <string>Ctrl+S</string>
     526        <string>Ctrl+S</string>
    527527   </property>
    528528  </action>
    529529  <action name="actionHelpAboutQt">
    530530   <property name="icon">
    531     <iconset resource="../resources/tspsg.qrc">
    532     <normaloff>:/images/icons/qtlogo-64.png</normaloff>:/images/icons/qtlogo-64.png</iconset>
    533    </property>
    534    <property name="text">
    535     <string>About &amp;Qt...</string>
    536    </property>
    537    <property name="statusTip">
    538     <string>About Qt library</string>
     531        <iconset resource="../resources/tspsg.qrc">
     532        <normaloff>:/images/icons/qtlogo-64.png</normaloff>:/images/icons/qtlogo-64.png</iconset>
     533   </property>
     534   <property name="text">
     535        <string>About &amp;Qt...</string>
     536   </property>
     537   <property name="statusTip">
     538        <string>About Qt library</string>
    539539   </property>
    540540  </action>
     
    550550   <slot>close()</slot>
    551551   <hints>
    552     <hint type="sourcelabel">
    553     <x>-1</x>
    554     <y>-1</y>
    555     </hint>
    556     <hint type="destinationlabel">
    557     <x>294</x>
    558     <y>229</y>
    559     </hint>
     552        <hint type="sourcelabel">
     553        <x>-1</x>
     554        <y>-1</y>
     555        </hint>
     556        <hint type="destinationlabel">
     557        <x>294</x>
     558        <y>229</y>
     559        </hint>
    560560   </hints>
    561561  </connection>
     
    566566   <slot>trigger()</slot>
    567567   <hints>
    568     <hint type="sourcelabel">
    569     <x>58</x>
    570     <y>327</y>
    571     </hint>
    572     <hint type="destinationlabel">
    573     <x>-1</x>
    574     <y>-1</y>
    575     </hint>
     568        <hint type="sourcelabel">
     569        <x>58</x>
     570        <y>327</y>
     571        </hint>
     572        <hint type="destinationlabel">
     573        <x>-1</x>
     574        <y>-1</y>
     575        </hint>
    576576   </hints>
    577577  </connection>
Note: See TracChangeset for help on using the changeset viewer.