Changeset e2abfd326f in tspsg
- Timestamp:
- Mar 12, 2010, 8:28:42 PM (15 years ago)
- Branches:
- 0.1.3.145-beta1-symbian, 0.1.4.170-beta2-bb10, appveyor, imgbot, master, readme
- Children:
- 394216e468
- Parents:
- f19df0a3e5
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
README
rf19df0a3e5 re2abfd326f 33 33 Third parties: 34 34 * This software is created using opensource version of Qt toolkit, 35 see http:// www.qtsoftware.com/35 see http://qt.nokia.com/ 36 36 * The icons used in this software are part of Oxygen Icons project 37 37 licensed according to the GNU Lesser General Public License, -
l10n/tspsg_ru.ts
rf19df0a3e5 re2abfd326f 10 10 <comment>Please, provide a native name of your translation language here.</comment> 11 11 <translation>Русский</translation> 12 </message> 13 <message> 14 <source>TRANSLATION</source> 15 <comment>Please, provide translator credits here.</comment> 16 <translation>Русский перевод:<br><a href="http://oleksii.name/">Алексей Lёppa Сердюк</a></translation> 12 17 </message> 13 18 </context> -
l10n/tspsg_uk.ts
rf19df0a3e5 re2abfd326f 10 10 <comment>Please, provide a native name of your translation language here.</comment> 11 11 <translation>Українська</translation> 12 </message> 13 <message> 14 <source>TRANSLATION</source> 15 <comment>Please, provide translator credits here.</comment> 16 <translation>Український переклад:<br><a href="http://oleksii.name/">Олексій Lёppa Сердюк</a></translation> 12 17 </message> 13 18 </context> -
resources/tspsg.rc
rf19df0a3e5 re2abfd326f 44 44 BEGIN 45 45 // VALUE "Comments", VERSIONID 46 VALUE "CompanyName", " ..::Lёppsville::.. Homes"46 VALUE "CompanyName", "Oleksii ""Lёppa"" Serdiuk" 47 47 VALUE "FileDescription", "TSPSG: TSP Solver and Generator" 48 48 VALUE "FileVersion", BUILD_VERSION 49 49 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>" 51 51 VALUE "OriginalFilename", "tspsg.exe" 52 VALUE "ProductName", "TSPSG "52 VALUE "ProductName", "TSPSG: TSP Solver and Generator" 53 53 VALUE "ProductVersion", BUILD_VERSION 54 54 #if defined(_DEBUG) || defined(DEBUG) -
src/globals.h
rf19df0a3e5 re2abfd326f 32 32 #include <QtCore> 33 33 #include <QtGui> 34 #include <limits> 34 35 35 36 // Version info … … 89 90 #undef INFINITY 90 91 #endif 91 #define INFINITY 1.7E+30892 #define INFINITY std::numeric_limits<double>::infinity() 92 93 //! This string represents infinite value in the table 93 94 #define INFSTR "---" … … 104 105 return (modf(x, &i) == 0.0); 105 106 } 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 */ 116 void toggleStyle(QWidget *widget, bool enable); 117 #endif // Q_OS_WIN32 106 118 107 119 // Sanity checks -
src/main.cpp
rf19df0a3e5 re2abfd326f 34 34 35 35 #ifdef STATIC_BUILD 36 Q_IMPORT_PLUGIN(qjpeg)37 Q_IMPORT_PLUGIN(qsvg)36 // Q_IMPORT_PLUGIN(qjpeg) 37 // Q_IMPORT_PLUGIN(qsvg) 38 38 #endif 39 39 -
src/mainwindow.cpp
rf19df0a3e5 re2abfd326f 295 295 if (untitled) 296 296 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 297 303 QApplication::restoreOverrideCursor(); 298 304 } … … 304 310 QString title; 305 311 #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>"); 307 313 #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>© 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>© 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 313 324 QString 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); 315 326 #ifndef STATIC_BUILD 316 about += "Qt library (shared):<br>";317 about += QString ::fromUtf8(" Build time: <b>%1</b><br>").arg(QT_VERSION_STR);318 about += QString ::fromUtf8(" Runtime: <b>%1</b><br>").arg(qVersion());327 about += QString("%1 (%2):<br>").arg(tr("Qt library"), tr("shared")); 328 about += QString(" %1: <b>%2</b><br>").arg(tr("Build time"), QT_VERSION_STR); 329 about += QString(" %1: <b>%2</b><br>").arg(tr("Runtime"), qVersion()); 319 330 #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")); 321 332 #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()); 326 335 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>" 328 337 "under the terms of the GNU General Public License as published<br>" 329 338 "by the Free Software Foundation, either version 3 of the License,<br>" … … 336 345 "<br>" 337 346 "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>."); 339 348 340 349 QDialog *dlg = new QDialog(this); 341 350 QLabel *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) 354 QLabel *lblSubTitle = new QLabel(QString("<b>© 2007-%1 Oleksii \"Lёppa\" Serdiuk</b>").arg(QDate::currentDate().toString("yyyy")), dlg); 355 #endif // Q_OS_WINCE || Q_OS_SYMBIAN 343 356 QTextBrowser *txtAbout = new QTextBrowser(dlg); 344 357 QVBoxLayout *vb = new QVBoxLayout(); 345 QHBoxLayout *hb = new QHBoxLayout(); 358 QHBoxLayout *hb1 = new QHBoxLayout(), 359 *hb2 = new QHBoxLayout(); 346 360 QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, dlg); 347 361 348 362 lblIcon->setPixmap(QPixmap(":/images/tspsg.png").scaledToWidth(logicalDpiX() * 2 / 3, Qt::SmoothTransformation)); 349 363 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 350 368 lblTitle->setOpenExternalLinks(true); 351 369 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 358 379 txtAbout->setWordWrapMode(QTextOption::NoWrap); 359 380 txtAbout->setOpenExternalLinks(true); 360 381 txtAbout->setHtml(about); 361 382 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 362 386 363 387 bb->button(QDialogButtonBox::Ok)->setCursor(QCursor(Qt::PointingHandCursor)); 364 388 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 366 409 vb->addWidget(txtAbout); 367 vb->add Widget(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); 370 413 dlg->setWindowTitle(tr("About TSPSG")); 371 414 dlg->setLayout(vb); … … 380 423 #endif // Q_OS_WIN32 381 424 382 dlg->resize(450, 400); 425 dlg->resize(450, 350); 426 383 427 dlg->exec(); 384 428 … … 825 869 scrollArea->setWidget(tabWidget); 826 870 setCentralWidget(scrollArea); 871 #else 872 setCentralWidget(tabWidget); 827 873 #endif // Q_OS_WINCE 828 874 … … 890 936 { 891 937 #ifdef Q_OS_WIN32 938 toggleStyle(labelVariant, enable); 939 toggleStyle(labelCities, enable); 940 toggleStyle(statusBar(), enable); 892 941 tabWidget->setDocumentMode(enable); 893 942 QtWin::enableBlurBehindWindow(this, enable); -
src/pch.h
rf19df0a3e5 re2abfd326f 27 27 28 28 #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" 40 30 #endif // __cplusplus -
src/settingsdialog.cpp
rf19df0a3e5 re2abfd326f 71 71 vbox1->addWidget(bgGrey); 72 72 setLayout(vbox1); 73 #else 73 #else // Q_OS_WINCE || Q_OS_SYMBIAN 74 74 // Layout helper elements 75 75 QVBoxLayout *vbox1, *vbox2; -
src/tspsolver.cpp
rf19df0a3e5 re2abfd326f 326 326 matrix[nRow][k] -= val; 327 327 } 328 329 QDebug 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 } -
src/tspsolver.h
rf19df0a3e5 re2abfd326f 108 108 }; 109 109 110 #ifdef DEBUG 111 QDebug operator<<(QDebug dbg, const TMatrix &matrix); 112 #endif 113 110 114 #endif // TSPSOLVER_H -
src/version.h
rf19df0a3e5 re2abfd326f 58 58 #define BUILD_VERSION_MINOR 0 59 59 #endif // BUILD_VERSION_MINOR 60 /*!61 * \brief TSPSG release number62 *63 * Release number meanings:64 * - 1 -- 3: <b>alpha</b> 1 to 365 * - 4 -- 7: <b>beta</b> 1 to 466 * - 8 -- 10: <b>rc</b> 1 to 367 * - 11 -- x: <b>release</b> 1 to x-1068 */69 60 #ifndef BUILD_RELEASE 61 //! TSPSG release number 70 62 #define BUILD_RELEASE 0 71 63 #endif // BUILD_RELEASE 72 64 73 /*!74 * \brief Current TSPSG build number75 *76 * This will only change on releases and will be the same as revision number.77 */78 65 #ifndef BUILD_NUMBER 66 //! Current TSPSG build number 79 67 #define BUILD_NUMBER 0 80 68 #endif // BUILD_NUMBER … … 83 71 * \def BUILD_STATUS 84 72 * \brief TSPSG build status 85 *86 * Determined based on BUILD_NUMBER and BUILD_RELEASE.87 73 */ 88 #if ndef TSPSG_RELEASE_BUILD74 #if !defined(TSPSG_RELEASE_BUILD) 89 75 #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) 96 78 #endif // TSPSG_RELEASE_BUILD 97 79 … … 101 83 #define QUOTE(x) QUOTE_X(x) 102 84 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) 112 87 113 88 #endif // VERSION_H -
tspsg.pri
rf19df0a3e5 re2abfd326f 25 25 #Source files 26 26 SOURCES += src/main.cpp \ 27 src/globals.cpp \ 27 28 src/mainwindow.cpp \ 28 29 src/settingsdialog.cpp \ -
tspsg.pro
rf19df0a3e5 re2abfd326f 11 11 ###################################################################### 12 12 13 QT += svg13 #QT += svg 14 14 15 15 TEMPLATE = app … … 23 23 BUILD_RELEASE = 2 24 24 25 # Th is one isonly defined on releases25 # These are only defined on releases 26 26 #DEFINES += TSPSG_RELEASE_BUILD 27 #DEFINES += BUILD_STATUS="\"(alpha 2)\"" 27 28 28 29 REVISION = $$system(svnversion) … … 46 47 contains(QMAKE_PRL_CONFIG, static) { 47 48 # We "embed" SVG and JPEG support on static build 48 QTPLUGIN += qjpeg qsvg49 # QTPLUGIN += qjpeg qsvg 49 50 DEFINES += STATIC_BUILD 50 51 } … … 53 54 OBJECTS_DIR = release 54 55 DESTDIR = release 56 D = d 55 57 } else { 56 58 OBJECTS_DIR = debug 57 59 DESTDIR = debug 58 60 DEFINES += DEBUG 61 D = 59 62 } 60 63 … … 90 93 l10n.path = $$PREFIX/share/TSPSG/l10n 91 94 docs.path = $$PREFIX/share/doc/TSPSG-$$VERSION 95 apps.files = resources/tspsg.desktop 92 96 apps.path = $$PREFIX/share/applications/ 93 apps.files = resources/tspsg.desktop97 icon.files = resources/tspsg.png 94 98 icon.path = $$PREFIX/share/pixmaps 95 icon.files = resources/tspsg.png96 99 INSTALLS += apps icon 97 100 } … … 99 102 # TODO: MacOSX 100 103 101 # For win32: everything goes to " C:\Program Files\TSPSG" and subfolders.104 # For win32: everything goes to "%PROGRAMFILES%\TSPSG" and subfolders. 102 105 win32 { 103 PREFIX = " C:\Program Files"106 PREFIX = "$$(PROGRAMFILES)" 104 107 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 112 113 imageformats.path = $$PREFIX/TSPSG/imageformats 113 114 INSTALLS += imageformats … … 117 118 wince { 118 119 PREFIX = "\Program Files" 120 share.sources = $$share.files 121 l10n.sources = $$l10n.files 122 docs.sources = $$docs.files 123 119 124 DEPLOYMENT += target share l10n docs 120 DEPLOYMENT_PLUGIN += qjpeg qsvg125 # DEPLOYMENT_PLUGIN += qjpeg qsvg 121 126 } 122 127 … … 133 138 # Symbian 134 139 symbian { 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 135 143 l10n.path = l10n 144 docs.sources = $$docs.files 136 145 docs.pkg_prerules = \ 137 146 "\"README\" - \"\", FILETEXT, TEXTCONTINUE" \ 138 147 "\"COPYING\" - \"\", FILETEXT, TEXTEXIT" 139 148 DEPLOYMENT += share l10n docs 140 DEPLOYMENT_PLUGIN += qjpeg qsvg149 # DEPLOYMENT_PLUGIN += qjpeg qsvg 141 150 142 151 ICON = resources/tspsg.svg 143 152 144 153 appinfo = \ 145 "$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e), 0,1,2"154 "$$LITERAL_HASH{\"TSPSG\"},(0xEb9dce0e),$$BUILD_VERSION_MAJOR,$$BUILD_VERSION_MINOR,$$BUILD_RELEASE" 146 155 vendorinfo = \ 147 156 "%{\"l-homes.org\"}" \ -
ui/mainwindow.ui
rf19df0a3e5 re2abfd326f 6 6 <property name="geometry"> 7 7 <rect> 8 9 10 11 <height>500</height>8 <x>0</x> 9 <y>0</y> 10 <width>550</width> 11 <height>450</height> 12 12 </rect> 13 13 </property> … … 17 17 <property name="windowIcon"> 18 18 <iconset resource="../resources/tspsg.qrc"> 19 19 <normaloff>:/images/tspsg.png</normaloff>:/images/tspsg.png</iconset> 20 20 </property> 21 21 <widget class="QTabWidget" name="tabWidget"> 22 22 <property name="tabPosition"> 23 23 <enum>QTabWidget::North</enum> 24 24 </property> 25 25 <widget class="QWidget" name="tabTask"> 26 27 28 29 30 31 <layout class="QHBoxLayout">32 33 <spacer>34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 <spacer>96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 <layout class="QHBoxLayout">121 122 <spacer>123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 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>&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>&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> 171 171 </widget> 172 172 <widget class="QWidget" name="tabSolution"> 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 <layout class="QHBoxLayout" name="horizontalLayout">195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 <spacer name="horizontalSpacer">217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 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> 248 248 </widget> 249 249 </widget> 250 250 <widget class="QMenuBar" name="menubar"> 251 251 <property name="geometry"> 252 253 254 255 256 257 252 <rect> 253 <x>0</x> 254 <y>0</y> 255 <width>550</width> 256 <height>21</height> 257 </rect> 258 258 </property> 259 259 <widget class="QMenu" name="menuFile"> 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 260 <property name="windowIcon"> 261 <iconset> 262 <normaloff/> 263 </iconset> 264 </property> 265 <property name="title"> 266 <string>&File</string> 267 </property> 268 <widget class="QMenu" name="menuFileSaveAs"> 269 <property name="title"> 270 <string>Save &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"/> 285 285 </widget> 286 286 <widget class="QMenu" name="menuSettings"> 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 287 <property name="title"> 288 <string>&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 " / Language" when translating this string.">&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"/> 311 311 </widget> 312 312 <widget class="QMenu" name="menuHelp"> 313 314 315 316 317 318 319 320 313 <property name="title"> 314 <string>&Help</string> 315 </property> 316 <addaction name="actionHelpContents"/> 317 <addaction name="actionHelpContextual"/> 318 <addaction name="separator"/> 319 <addaction name="actionHelpAboutQt"/> 320 <addaction name="actionHelpAbout"/> 321 321 </widget> 322 322 <addaction name="menuFile"/> … … 326 326 <widget class="QToolBar" name="toolBar"> 327 327 <property name="cursor"> 328 328 <cursorShape>ArrowCursor</cursorShape> 329 329 </property> 330 330 <property name="windowTitle"> 331 331 <string>Toolbar</string> 332 332 </property> 333 333 <attribute name="toolBarArea"> 334 334 <enum>TopToolBarArea</enum> 335 335 </attribute> 336 336 <attribute name="toolBarBreak"> 337 337 <bool>false</bool> 338 338 </attribute> 339 339 <addaction name="actionFileNew"/> … … 347 347 <action name="actionFileSaveAsSolution"> 348 348 <property name="enabled"> 349 350 </property> 351 <property name="text"> 352 349 <bool>false</bool> 350 </property> 351 <property name="text"> 352 <string>&Solution...</string> 353 353 </property> 354 354 <property name="toolTip"> 355 356 </property> 357 <property name="statusTip"> 358 355 <string>Save solution</string> 356 </property> 357 <property name="statusTip"> 358 <string>Save solution to a file</string> 359 359 </property> 360 360 </action> 361 361 <action name="actionFileNew"> 362 362 <property name="icon"> 363 364 365 </property> 366 <property name="text"> 367 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>&New</string> 368 368 </property> 369 369 <property name="toolTip"> 370 371 </property> 372 <property name="statusTip"> 373 370 <string>New task</string> 371 </property> 372 <property name="statusTip"> 373 <string>Create new task</string> 374 374 </property> 375 375 <property name="shortcut"> 376 376 <string>Ctrl+N</string> 377 377 </property> 378 378 </action> 379 379 <action name="actionFileOpen"> 380 380 <property name="icon"> 381 382 383 </property> 384 <property name="text"> 385 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>&Open...</string> 386 386 </property> 387 387 <property name="toolTip"> 388 389 </property> 390 <property name="statusTip"> 391 388 <string>Open task</string> 389 </property> 390 <property name="statusTip"> 391 <string>Open saved task</string> 392 392 </property> 393 393 <property name="shortcut"> 394 394 <string>Ctrl+O</string> 395 395 </property> 396 396 </action> 397 397 <action name="actionSettingsPreferences"> 398 398 <property name="icon"> 399 400 401 </property> 402 <property name="text"> 403 404 </property> 405 <property name="statusTip"> 406 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>&Preferences...</string> 404 </property> 405 <property name="statusTip"> 406 <string>Application preferences</string> 407 407 </property> 408 408 </action> 409 409 <action name="actionHelpContents"> 410 410 <property name="enabled"> 411 412 </property> 413 <property name="icon"> 414 415 416 </property> 417 <property name="text"> 418 419 </property> 420 <property name="statusTip"> 421 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>&Contents</string> 419 </property> 420 <property name="statusTip"> 421 <string>Open help contents</string> 422 422 </property> 423 423 <property name="shortcut"> 424 424 <string>Ctrl+F1</string> 425 425 </property> 426 426 </action> 427 427 <action name="actionHelpContextual"> 428 428 <property name="enabled"> 429 430 </property> 431 <property name="icon"> 432 433 434 </property> 435 <property name="text"> 436 437 </property> 438 <property name="statusTip"> 439 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 &Help</string> 437 </property> 438 <property name="statusTip"> 439 <string>Open context help</string> 440 440 </property> 441 441 <property name="shortcut"> 442 442 <string>F1</string> 443 443 </property> 444 444 </action> 445 445 <action name="actionHelpAbout"> 446 446 <property name="icon"> 447 448 449 </property> 450 <property name="text"> 451 452 </property> 453 <property name="statusTip"> 454 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>&About TSPSG...</string> 452 </property> 453 <property name="statusTip"> 454 <string>About application</string> 455 455 </property> 456 456 </action> 457 457 <action name="actionFileExit"> 458 458 <property name="icon"> 459 460 461 </property> 462 <property name="text"> 463 464 </property> 465 <property name="statusTip"> 466 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&xit</string> 464 </property> 465 <property name="statusTip"> 466 <string>Exit application</string> 467 467 </property> 468 468 </action> 469 469 <action name="actionFileSaveAsTask"> 470 470 <property name="text"> 471 471 <string>&Task...</string> 472 472 </property> 473 473 <property name="toolTip"> 474 475 </property> 476 <property name="statusTip"> 477 474 <string>Save task</string> 475 </property> 476 <property name="statusTip"> 477 <string>Save task to file</string> 478 478 </property> 479 479 </action> 480 480 <action name="actionSettingsLanguageAutodetect"> 481 481 <property name="checkable"> 482 482 <bool>true</bool> 483 483 </property> 484 484 <property name="checked"> 485 486 </property> 487 <property name="text"> 488 485 <bool>true</bool> 486 </property> 487 <property name="text"> 488 <string>&Autodetect</string> 489 489 </property> 490 490 <property name="toolTip"> 491 492 </property> 493 <property name="statusTip"> 494 491 <string>Detect language automatically</string> 492 </property> 493 <property name="statusTip"> 494 <string>Detect language automatically based on regional settings</string> 495 495 </property> 496 496 </action> 497 497 <action name="actionSettingsLanguageEnglish"> 498 498 <property name="checkable"> 499 499 <bool>true</bool> 500 500 </property> 501 501 <property name="checked"> 502 503 </property> 504 <property name="text"> 505 502 <bool>true</bool> 503 </property> 504 <property name="text"> 505 <string notr="true">&English</string> 506 506 </property> 507 507 <property name="iconText"> 508 508 <string notr="true">English</string> 509 509 </property> 510 510 </action> 511 511 <action name="actionFileSave"> 512 512 <property name="icon"> 513 514 515 </property> 516 <property name="text"> 517 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>&Save</string> 518 518 </property> 519 519 <property name="toolTip"> 520 521 </property> 522 <property name="statusTip"> 523 520 <string>Save task</string> 521 </property> 522 <property name="statusTip"> 523 <string>Save current task</string> 524 524 </property> 525 525 <property name="shortcut"> 526 526 <string>Ctrl+S</string> 527 527 </property> 528 528 </action> 529 529 <action name="actionHelpAboutQt"> 530 530 <property name="icon"> 531 532 533 </property> 534 <property name="text"> 535 536 </property> 537 <property name="statusTip"> 538 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 &Qt...</string> 536 </property> 537 <property name="statusTip"> 538 <string>About Qt library</string> 539 539 </property> 540 540 </action> … … 550 550 <slot>close()</slot> 551 551 <hints> 552 553 554 555 556 557 558 559 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> 560 560 </hints> 561 561 </connection> … … 566 566 <slot>trigger()</slot> 567 567 <hints> 568 569 570 571 572 573 574 575 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> 576 576 </hints> 577 577 </connection>
Note: See TracChangeset
for help on using the changeset viewer.