source: tspsg/src/main.cpp @ 31694c8b58

appveyorimgbotreadme
Last change on this file since 31694c8b58 was 31694c8b58, checked in by Oleksii Serdiuk, 12 years ago

Fixed wrong placement of tspsg.ini on Windows Mobile.

Also, Main Window stopped showing maximized on Windows Mobile. Made a
workaround for this.

Closes #15 - Try to fix wrong placement of tspsg.ini.

  • Property mode set to 100644
File size: 3.7 KB
RevLine 
[2bbe924ad8]1/*
2 *  TSPSG: TSP Solver and Generator
[c90b437dd8]3 *  Copyright (C) 2007-2012 Oleksii Serdiuk <contacts[at]oleksii[dot]name>
[2bbe924ad8]4 *
[7ba743d983]5 *  $Id: $Format:%h %ai %an$ $
6 *  $URL: http://tspsg.info/ $
[2bbe924ad8]7 *
8 *  This file is part of TSPSG.
9 *
10 *  TSPSG is free software: you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License as published by
12 *  the Free Software Foundation, either version 3 of the License, or
13 *  (at your option) any later version.
14 *
15 *  TSPSG is distributed in the hope that it will be useful,
16 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 *  GNU General Public License for more details.
19 *
20 *  You should have received a copy of the GNU General Public License
21 *  along with TSPSG.  If not, see <http://www.gnu.org/licenses/>.
22 */
23
24#include "mainwindow.h"
[356169a3d3]25#if QT_VERSION < QT_VERSION_CHECK(4,6,0)
[9eb63a1598]26#   ifdef Q_CC_MSVC
27#       pragma message("WARNING: You are using Qt version < 4.6. Application will not support some non-critical features.")
28#   elif defined(Q_CC_GNU)
29#       warning WARNING: You are using Qt version < 4.6. Application will not support some non-critical features.
30#   else
31#       error You are using Qt version < 4.6. Application will not support some non-critical features. To continue, please, comment line 31 at main.cpp.
32#   endif
[2bbe924ad8]33#endif
34
35//#ifdef STATIC_BUILD
[cac8759dba]36//      #ifndef NOSVG
37//              Q_IMPORT_PLUGIN(qsvgicon)
38//      #endif
[2bbe924ad8]39//#endif
40
41int main(int argc, char *argv[])
42{
[89e5214692]43#ifdef Q_OS_SYMBIAN
[1299ea5b49]44    // Not enough memory for solution graph generation with tasks
[5cbcd091ed]45    // of 20 and more cities if we use non-raster graphics system.
46    QApplication::setGraphicsSystem("raster");
47#endif
[2bbe924ad8]48QApplication app(argc, argv);
[9eb63a1598]49    app.setOverrideCursor(QCursor(Qt::WaitCursor));
50    QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
[356169a3d3]51#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
[9eb63a1598]52    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
53    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
[356169a3d3]54#endif
[c90b437dd8]55    app.setOrganizationName("Oleksii Serdiuk");
[9eb63a1598]56    app.setOrganizationDomain("oleksii.name");
57    app.setApplicationName("TSP Solver and Generator");
58    app.setApplicationVersion(BUILD_VERSION);
[2bbe924ad8]59
[9eb63a1598]60    // Seeding random number generator
61    qsrand(QDateTime::currentDateTime().toTime_t() ^ QCursor::pos().x() ^ QCursor::pos().y());
[2bbe924ad8]62
[89e5214692]63#ifdef Q_OS_WINCE_WM
[9eb63a1598]64    // Qt "leaves" unpacked .ttf files after running - let's try to delete them.
[b2e8e7ec71]65QStringList files = QDir(app.applicationDirPath(), "*.ttf").entryList();
[9eb63a1598]66    foreach (QString file, files) {
67        QFile::remove(file);
68    }
[b2e8e7ec71]69#endif
[9eb63a1598]70    // Don't load the font if it is already available
[7e8e1b444d]71    if (!QFontDatabase().families().contains(DEF_FONT_FACE)) {
72        QFontDatabase::addApplicationFont(":/files/fonts/DejaVuLGCSansMono.ttf");
73        QFontDatabase::addApplicationFont(":/files/fonts/DejaVuLGCSansMono-Bold.ttf");
74    }
[7cd6da5021]75
[2bbe924ad8]76QTranslator en;
[9eb63a1598]77    if (en.load("tspsg_en", PATH_L10N))
78        app.installTranslator(&en);
79    else if (en.load("tspsg_en", ":/l10n"))
80        app.installTranslator(&en);
[2bbe924ad8]81
82MainWindow mainwindow;
[89e5214692]83#ifdef Q_OS_SYMBIAN
[23ad8db4a5]84    //! \hack HACK: A workaround to hide Actions menu item in Symbian.
85QWidgetList widgets = QApplication::allWidgets();
86QWidget *w = 0;
87    foreach(w, widgets) {
88        w->setContextMenuPolicy(Qt::NoContextMenu);
89    }
90#endif
91
[2bbe924ad8]92#ifdef HANDHELD
[9eb63a1598]93    mainwindow.showMaximized();
[31694c8b58]94#ifdef Q_OS_WINCE_WM
95    /*!
96     * \hack HACK: For some reason showMaximized() stopped working on
97     *  Windows Mobile. This workaround works all the time.
98     */
99    mainwindow.setWindowState(Qt::WindowMaximized);
100#endif // Q_OS_WINCE_WM
[2bbe924ad8]101#else // HANDHELD
[9eb63a1598]102    mainwindow.show();
[2bbe924ad8]103#endif // HANDHELD
[9eb63a1598]104    app.restoreOverrideCursor();
105    return app.exec();
[2bbe924ad8]106}
Note: See TracBrowser for help on using the repository browser.