Date: Wednesday, June 19, 2019 @ 11:39:52 Author: bgyorgy Revision: 482342
archrelease: copy trunk to community-x86_64 Added: gpsbabel/repos/community-x86_64/PKGBUILD (from rev 482341, gpsbabel/trunk/PKGBUILD) gpsbabel/repos/community-x86_64/drop-map.patch (from rev 482341, gpsbabel/trunk/drop-map.patch) gpsbabel/repos/community-x86_64/gpsbabel.appdata.xml (from rev 482341, gpsbabel/trunk/gpsbabel.appdata.xml) Deleted: gpsbabel/repos/community-x86_64/0008-Correctly-read-diff-and-terr-from-geo-format.patch gpsbabel/repos/community-x86_64/PKGBUILD gpsbabel/repos/community-x86_64/build-fix.patch gpsbabel/repos/community-x86_64/drop-map.patch gpsbabel/repos/community-x86_64/fix-map.patch gpsbabel/repos/community-x86_64/gpsbabel.appdata.xml ---------------------------------------------------------+ 0008-Correctly-read-diff-and-terr-from-geo-format.patch | 29 PKGBUILD | 135 build-fix.patch | 58 drop-map.patch | 275 - fix-map.patch | 2183 -------------- gpsbabel.appdata.xml | 38 6 files changed, 212 insertions(+), 2506 deletions(-) Deleted: 0008-Correctly-read-diff-and-terr-from-geo-format.patch =================================================================== --- 0008-Correctly-read-diff-and-terr-from-geo-format.patch 2019-06-19 11:39:48 UTC (rev 482341) +++ 0008-Correctly-read-diff-and-terr-from-geo-format.patch 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,29 +0,0 @@ -From 4cecea61aa5a33f4accfa109d0b73d7878462962 Mon Sep 17 00:00:00 2001 -From: Robert Lipe <robertl...@users.noreply.github.com> -Date: Sat, 14 Oct 2017 21:59:24 -0500 -Subject: [PATCH 8/8] Correctly read diff and terr from geo format. - -Thank you, Rick Richardson. ---- - geo.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/geo.cc b/geo.cc -index 5c785f38..e6f4560a 100644 ---- a/geo.cc -+++ b/geo.cc -@@ -74,9 +74,9 @@ void GeoReadLoc() - waypt_add_url(wpt, - reader.readElementText(), a.value("text").toString()); - } else if (current_tag == "/loc/waypoint/difficulty") { -- wpt->gc_data->diff = reader.readElementText().toInt() * 10; -+ wpt->gc_data->diff = reader.readElementText().toDouble() * 10; - } else if (current_tag == "/loc/waypoint/terrain") { -- wpt->gc_data->terr = reader.readElementText().toInt() * 10; -+ wpt->gc_data->terr = reader.readElementText().toDouble() * 10; - } else if (current_tag == "/loc/waypoint/container") { - wpt->gc_data->container = wpt_container(reader.readElementText()); - } --- -2.14.3 - Deleted: PKGBUILD =================================================================== --- PKGBUILD 2019-06-19 11:39:48 UTC (rev 482341) +++ PKGBUILD 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,75 +0,0 @@ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> -# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org -# Contributor: William Rea <sillywi...@gmail.com> - -pkgname=gpsbabel -pkgver=1.5.4 -_pkgver=1_5_4 -pkgrel=5 -pkgdesc="Read, write and manipulate GPS waypoints in a variety of formats" -arch=('x86_64') -url="https://www.gpsbabel.org/" -license=('GPL') -depends=('hicolor-icon-theme' 'libusb-compat' 'qt5-base') # 'qt5-webengine' -makedepends=('imagemagick' 'qt5-tools') -source=(https://github.com/gpsbabel/$pkgname/archive/${pkgname}_$_pkgver.tar.gz - gpsbabel.appdata.xml - build-fix.patch - drop-map.patch - fix-map.patch - 0008-Correctly-read-diff-and-terr-from-geo-format.patch) -sha256sums=('8cd740db0b92610abff71e942e8a987df58cd6ca5f25cca86e15f2b00e190704' - '5eb52ab0c4bdde61c747856e849f9bce9ca660e942c15f730a4330a38fd6a39a' - '537752bd5d097d836d4d5a77b4f7a5ea68d408d6a648511e4a98865d2742fb46' - '69b4fad0bc5b33e332dc79c1c65482f942bf5a596b2d82b3d6a565cdd444b6ee' - 'e00530f3b40a6c516cb45c59bbdfd5f4a801f7bb55e02205e7fc975c262db3a1' - '384e1603179be2d6cc0b2837da7eb11002e5aefd72c1dbc2ed2697ef4058289f') - -prepare() { - cd $pkgname-${pkgname}_$_pkgver - - # Fix build - patch -Np1 -i ../build-fix.patch - - # Drop map - patch -Np1 -i ../drop-map.patch - - # Fix map - # patch -Np1 -i ../fix-map.patch - - # Correctly read diff and terr from geo format - patch -Np1 -i ../0008-Correctly-read-diff-and-terr-from-geo-format.patch - - # Fix path - sed -i 's|langPath_ = QApplication::applicationDirPath();|langPath_ = "/usr/share/gpsbabel";|' gui/mainwindow.cc - # sed -i 's|baseFile = QApplication::applicationDirPath() + "/gmapbase.html";|baseFile = "/usr/share/gpsbabel/gmapbase.html";|' gui/map.cc - - convert gui/images/appicon.png +set date:create +set date:modify -background none -gravity center -extent 512x512 gui/images/appicon.png -} - -build() { - cd $pkgname-${pkgname}_$_pkgver - ./configure --prefix=/usr - make - - # GUI - cd gui - qmake-qt5 - lrelease-qt5 *.ts - make -} - -package() { - cd $pkgname-${pkgname}_$_pkgver - make DESTDIR="$pkgdir" install - - # GUI - install -Dm755 gui/objects/gpsbabelfe-bin "$pkgdir"/usr/bin/gpsbabelfe-bin - install -Dm644 gui/images/appicon.png "$pkgdir"/usr/share/icons/hicolor/512x512/apps/gpsbabel.png - install -Dm644 gui/gpsbabel.desktop "$pkgdir"/usr/share/applications/gpsbabel.desktop - install -Dm644 ../$pkgname.appdata.xml "$pkgdir/usr/share/metainfo/$pkgname.appdata.xml" - # install -Dm644 gui/gmapbase.html "$pkgdir"/usr/share/gpsbabel/gmapbase.html - install -dm755 "$pkgdir"/usr/share/gpsbabel/translations/ - install -Dm644 gui/*.qm "$pkgdir"/usr/share/gpsbabel/translations/ -} Copied: gpsbabel/repos/community-x86_64/PKGBUILD (from rev 482341, gpsbabel/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2019-06-19 11:39:52 UTC (rev 482342) @@ -0,0 +1,60 @@ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org +# Contributor: William Rea <sillywi...@gmail.com> + +pkgname=gpsbabel +pkgver=1.6.0 +_pkgver=1_6_0 +pkgrel=1 +pkgdesc="Read, write and manipulate GPS waypoints in a variety of formats" +arch=('x86_64') +url="https://www.gpsbabel.org/" +license=('GPL') +depends=('hicolor-icon-theme' 'libusb-compat' 'qt5-base') # 'qt5-webengine' +makedepends=('imagemagick' 'qt5-tools') +source=(https://github.com/gpsbabel/$pkgname/archive/${pkgname}_$_pkgver.tar.gz + gpsbabel.appdata.xml + drop-map.patch) +sha256sums=('ad56796f725dcdb7f52d9a9509d4922f11198c382fe10fc2d6c9efa8159f2090' + '5eb52ab0c4bdde61c747856e849f9bce9ca660e942c15f730a4330a38fd6a39a' + '5377f1a6f0d52d93f7d604c171ce1f6b18bb389c9e4c67ff4910c4079a2696fd') + +prepare() { + cd $pkgname-${pkgname}_$_pkgver + + # Remove map due to heavy WebEngine dependency + patch -Np1 -i ../drop-map.patch + + # Fix path + sed -i 's|langPath_ = QApplication::applicationDirPath();|langPath_ = "/usr/share/gpsbabel";|' gui/mainwindow.cc + sed -i 's|baseFile = QApplication::applicationDirPath() + "/gmapbase.html";|baseFile = "/usr/share/gpsbabel/gmapbase.html";|' gui/map.cc + + convert gui/images/appicon.png +set date:create +set date:modify -background none -gravity center -extent 512x512 gui/images/appicon.png +} + +build() { + cd $pkgname-${pkgname}_$_pkgver + ./configure --prefix=/usr + make + + # GUI + cd gui + qmake-qt5 + lrelease-qt5 *.ts + make +} + +package() { + cd $pkgname-${pkgname}_$_pkgver + make DESTDIR="$pkgdir" install + + # GUI + install -Dm755 gui/objects/gpsbabelfe "$pkgdir"/usr/bin/gpsbabelfe + install -Dm644 gui/images/appicon.png "$pkgdir"/usr/share/icons/hicolor/512x512/apps/gpsbabel.png + install -Dm644 gui/gpsbabel.desktop "$pkgdir"/usr/share/applications/gpsbabel.desktop + install -Dm644 ../$pkgname.appdata.xml "$pkgdir/usr/share/metainfo/$pkgname.appdata.xml" + install -Dm644 gui/gmapbase.html "$pkgdir"/usr/share/gpsbabel/gmapbase.html + install -dm755 "$pkgdir"/usr/share/gpsbabel/translations/ + install -Dm644 gui/*.qm "$pkgdir"/usr/share/gpsbabel/translations/ +} Deleted: build-fix.patch =================================================================== --- build-fix.patch 2019-06-19 11:39:48 UTC (rev 482341) +++ build-fix.patch 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,58 +0,0 @@ -diff -wbBur gpsbabel-1.5.4/tef_xml.cc gpsbabel-1.5.4.my/tef_xml.cc ---- gpsbabel-1.5.4/tef_xml.cc 2017-01-02 08:05:19.000000000 +0300 -+++ gpsbabel-1.5.4.my/tef_xml.cc 2017-02-16 16:20:22.788961096 +0300 -@@ -72,11 +72,11 @@ - bool valid = false; - - foreach(QXmlStreamAttribute attr, *attrv) { -- if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) { -- if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) { -+ if (attr.name().compare((QString&)"Comment", Qt::CaseInsensitive) == 0) { -+ if (attr.value().compare((QString&)"TourExchangeFormat", Qt::CaseInsensitive) == 0) { - valid = true; - } -- } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"Version", Qt::CaseInsensitive) == 0) { - version = attr.value().toString().toDouble(); - } - } -@@ -95,9 +95,9 @@ - { - route = route_head_alloc(); - foreach(QXmlStreamAttribute attr, *attrv) { -- if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) { -+ if (attr.name().compare((QString&)"Name", Qt::CaseInsensitive) == 0) { - route->rte_name = attr.value().toString().trimmed(); -- } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"Software", Qt::CaseInsensitive) == 0) { - route->rte_desc = attr.value().toString().trimmed(); - } - } -@@ -248,20 +248,20 @@ - QString attrstr = attr.value().toString(); - QByteArray attrtext = attrstr.toUtf8(); - -- if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) { -+ if (attr.name().compare((QString&)"SegDescription", Qt::CaseInsensitive) == 0) { - wpt_tmp->shortname = attrstr.trimmed(); -- } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"PointDescription", Qt::CaseInsensitive) == 0) { - wpt_tmp->description = attrstr.trimmed(); -- } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 && -- attr.value().compare("true", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"ViaStation", Qt::CaseInsensitive) == 0 && -+ attr.value().compare((QString&)"true", Qt::CaseInsensitive) == 0) { - wpt_tmp->wpt_flags.fmt_use = 1; /* only a flag */ - - /* new in TEF V2 */ -- } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"Instruction", Qt::CaseInsensitive) == 0) { - wpt_tmp->description = attrstr.trimmed(); -- } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"Altitude", Qt::CaseInsensitive) == 0) { - wpt_tmp->altitude = attrstr.toDouble(); -- } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) { -+ } else if (attr.name().compare((QString&)"TimeStamp", Qt::CaseInsensitive) == 0) { - /* nothing for the moment */ - } - } Deleted: drop-map.patch =================================================================== --- drop-map.patch 2019-06-19 11:39:48 UTC (rev 482341) +++ drop-map.patch 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,142 +0,0 @@ -diff -Naur gpsbabel-gpsbabel_1_5_4.orig/gui/advdlg.cc gpsbabel-gpsbabel_1_5_4/gui/advdlg.cc ---- gpsbabel-gpsbabel_1_5_4.orig/gui/advdlg.cc 2017-01-02 06:05:19.000000000 +0100 -+++ gpsbabel-gpsbabel_1_5_4/gui/advdlg.cc 2018-01-12 12:14:50.428923572 +0100 -@@ -37,7 +37,6 @@ - { - ui_.setupUi(this); - ui_.synthShortNames->setChecked(synthShortNames); -- ui_.previewGmap->setChecked(previewGmap); - ui_.debugCombo->setCurrentIndex(debugLevel+1); - ui_.buttonBox->button(QDialogButtonBox::Ok)->setIcon(QIcon(":images/ok")); - ui_.buttonBox->button(QDialogButtonBox::Cancel)->setIcon(QIcon(":images/cancel")); -@@ -48,7 +47,6 @@ - void AdvDlg::acceptClicked() - { - synthShortNames_ = ui_.synthShortNames->isChecked(); -- previewGmap_ = ui_.previewGmap->isChecked(); - debugLevel_ = ui_.debugCombo->currentIndex()-1; - accept(); - } -diff -Naur gpsbabel-gpsbabel_1_5_4.orig/gui/advui.ui gpsbabel-gpsbabel_1_5_4/gui/advui.ui ---- gpsbabel-gpsbabel_1_5_4.orig/gui/advui.ui 2017-01-02 06:05:19.000000000 +0100 -+++ gpsbabel-gpsbabel_1_5_4/gui/advui.ui 2018-01-12 12:13:29.919780546 +0100 -@@ -38,13 +38,6 @@ - </widget> - </item> - <item> -- <widget class="QCheckBox" name="previewGmap"> -- <property name="text"> -- <string>Preview in Google Maps</string> -- </property> -- </widget> -- </item> -- <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QComboBox" name="debugCombo"> -diff -Naur gpsbabel-gpsbabel_1_5_4.orig/gui/app.pro gpsbabel-gpsbabel_1_5_4/gui/app.pro ---- gpsbabel-gpsbabel_1_5_4.orig/gui/app.pro 2017-01-02 06:05:19.000000000 +0100 -+++ gpsbabel-gpsbabel_1_5_4/gui/app.pro 2018-01-12 12:05:45.541885058 +0100 -@@ -15,13 +15,7 @@ - gui \ - network \ - xml \ -- --greaterThan(QT_MINOR_VERSION, 5) { -- QT += webenginewidgets -- DEFINES += HAVE_WEBENGINE --} else { -- QT += webkit webkitwidgets --} -+ widgets \ - - unix:DESTDIR = objects - unix:MOC_DIR = objects -@@ -72,13 +66,11 @@ - SOURCES += filterwidgets.cc - SOURCES += format.cc - SOURCES += formatload.cc --SOURCES += gmapdlg.cc - SOURCES += gpx.cc - SOURCES += help.cc - SOURCES += latlng.cc - SOURCES += main.cc - SOURCES += mainwindow.cc --SOURCES += map.cc - SOURCES += optionsdlg.cc - SOURCES += preferences.cc - SOURCES += processwait.cc -@@ -98,11 +90,9 @@ - HEADERS += filterwidgets.h - HEADERS += format.h - HEADERS += formatload.h --HEADERS += gmapdlg.h - HEADERS += gpx.h - HEADERS += help.h - HEADERS += mainwindow.h --HEADERS += map.h - HEADERS += optionsdlg.h - HEADERS += preferences.h - HEADERS += processwait.h -diff -Naur gpsbabel-gpsbabel_1_5_4.orig/gui/main.cc gpsbabel-gpsbabel_1_5_4/gui/main.cc ---- gpsbabel-gpsbabel_1_5_4.orig/gui/main.cc 2017-01-02 06:05:19.000000000 +0100 -+++ gpsbabel-gpsbabel_1_5_4/gui/main.cc 2018-01-12 12:05:45.541885058 +0100 -@@ -29,7 +29,6 @@ - #include <QTextCodec> - - #include "mainwindow.h" --#include "gmapdlg.h" - - #ifdef _WIN32 - const char *pathSeparator = ";"; -diff -Naur gpsbabel-gpsbabel_1_5_4.orig/gui/mainwindow.cc gpsbabel-gpsbabel_1_5_4/gui/mainwindow.cc ---- gpsbabel-gpsbabel_1_5_4.orig/gui/mainwindow.cc 2017-01-02 06:05:19.000000000 +0100 -+++ gpsbabel-gpsbabel_1_5_4/gui/mainwindow.cc 2018-01-12 12:05:45.601886984 +0100 -@@ -38,7 +38,6 @@ - #include "donate.h" - #include "filterdlg.h" - #include "formatload.h" --#include "gmapdlg.h" - #include "help.h" - #include "optionsdlg.h" - #include "preferences.h" -@@ -976,24 +975,6 @@ - formatList_[fidx].bumpWriteUseCount(1); - } - -- // Now output for preview in google maps -- QString tempName; -- if (babelData_.previewGmap_) { -- QTemporaryFile ftemp; -- ftemp.open(); -- tempName = ftemp.fileName(); -- ftemp.close(); -- -- // Ideally, expost this in the UI. For now, just split the track -- // if we've no recorded fixes for > 5 mins and we've moved > 300 meters. -- //args << "-x"; -- //args << "track,pack,sdistance=0.3k,split=5m"; -- -- args << "-o"; -- args << "gpx"; -- args << "-F" << tempName; -- } -- - ui_.outputWindow->clear(); - ui_.outputWindow->appendPlainText("gpsbabel " + args.join(" ")); - -@@ -1005,14 +986,6 @@ - ui_.outputWindow->appendPlainText(outputString); - if (x) { - ui_.outputWindow->appendPlainText(tr("Translation successful")); -- if (babelData_.previewGmap_) { -- this->hide(); -- GMapDialog dlg(0, tempName, babelData_.debugLevel_ >=1 ? ui_.outputWindow : 0); -- dlg.show(); -- dlg.exec(); -- QFile(tempName).remove(); -- this->show(); -- } - } - else - ui_.outputWindow->appendPlainText(tr("Error running gpsbabel: %1\n").arg(errorString)); Copied: gpsbabel/repos/community-x86_64/drop-map.patch (from rev 482341, gpsbabel/trunk/drop-map.patch) =================================================================== --- drop-map.patch (rev 0) +++ drop-map.patch 2019-06-19 11:39:52 UTC (rev 482342) @@ -0,0 +1,133 @@ +diff -Naur gpsbabel-gpsbabel_1_6_0.orig/gui/advdlg.cc gpsbabel-gpsbabel_1_6_0/gui/advdlg.cc +--- gpsbabel-gpsbabel_1_6_0.orig/gui/advdlg.cc 2019-05-02 10:26:47.000000000 +0200 ++++ gpsbabel-gpsbabel_1_6_0/gui/advdlg.cc 2019-06-19 13:08:12.030299296 +0200 +@@ -37,7 +37,6 @@ + { + ui_.setupUi(this); + ui_.synthShortNames->setChecked(synthShortNames); +- ui_.previewGmap->setChecked(previewGmap); + ui_.debugCombo->setCurrentIndex(debugLevel+1); + #if defined (Q_OS_WIN) + ui_.buttonBox->button(QDialogButtonBox::Ok)->setIcon(QIcon(":images/ok")); +@@ -50,7 +49,6 @@ + void AdvDlg::acceptClicked() + { + synthShortNames_ = ui_.synthShortNames->isChecked(); +- previewGmap_ = ui_.previewGmap->isChecked(); + debugLevel_ = ui_.debugCombo->currentIndex()-1; + accept(); + } +diff -Naur gpsbabel-gpsbabel_1_6_0.orig/gui/advui.ui gpsbabel-gpsbabel_1_6_0/gui/advui.ui +--- gpsbabel-gpsbabel_1_6_0.orig/gui/advui.ui 2019-05-02 10:26:47.000000000 +0200 ++++ gpsbabel-gpsbabel_1_6_0/gui/advui.ui 2019-06-19 13:08:12.030299296 +0200 +@@ -38,13 +38,6 @@ + </widget> + </item> + <item> +- <widget class="QCheckBox" name="previewGmap"> +- <property name="text"> +- <string>Preview in Google Maps</string> +- </property> +- </widget> +- </item> +- <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QComboBox" name="debugCombo"> +diff -Naur gpsbabel-gpsbabel_1_6_0.orig/gui/app.pro gpsbabel-gpsbabel_1_6_0/gui/app.pro +--- gpsbabel-gpsbabel_1_6_0.orig/gui/app.pro 2019-05-02 10:26:47.000000000 +0200 ++++ gpsbabel-gpsbabel_1_6_0/gui/app.pro 2019-06-19 13:10:54.800233673 +0200 +@@ -11,14 +11,8 @@ + QT += core \ + gui \ + network \ +- xml +- +-qtHaveModule(webenginewidgets) { +- QT += webenginewidgets webchannel +- DEFINES += HAVE_WEBENGINE +-} else { +- QT += webkit webkitwidgets +-} ++ xml \ ++ widgets + + unix:DESTDIR = objects + unix:MOC_DIR = objects +@@ -72,13 +66,11 @@ + SOURCES += filterwidgets.cc + SOURCES += format.cc + SOURCES += formatload.cc +-SOURCES += gmapdlg.cc + SOURCES += gpx.cc + SOURCES += help.cc + SOURCES += latlng.cc + SOURCES += main.cc + SOURCES += mainwindow.cc +-SOURCES += map.cc + SOURCES += optionsdlg.cc + SOURCES += preferences.cc + SOURCES += processwait.cc +@@ -98,11 +90,9 @@ + HEADERS += filterwidgets.h + HEADERS += format.h + HEADERS += formatload.h +-HEADERS += gmapdlg.h + HEADERS += gpx.h + HEADERS += help.h + HEADERS += mainwindow.h +-HEADERS += map.h + HEADERS += optionsdlg.h + HEADERS += preferences.h + HEADERS += processwait.h +diff -Naur gpsbabel-gpsbabel_1_6_0.orig/gui/mainwindow.cc gpsbabel-gpsbabel_1_6_0/gui/mainwindow.cc +--- gpsbabel-gpsbabel_1_6_0.orig/gui/mainwindow.cc 2019-05-02 10:26:47.000000000 +0200 ++++ gpsbabel-gpsbabel_1_6_0/gui/mainwindow.cc 2019-06-19 13:12:30.790606265 +0200 +@@ -62,7 +62,6 @@ + #include "donate.h" // for Donate + #include "filterdlg.h" // for FilterDialog + #include "formatload.h" // for FormatLoad +-#include "gmapdlg.h" // for GMapDialog + #include "help.h" // for ShowHelp + #include "optionsdlg.h" // for OptionsDlg + #include "preferences.h" // for Preferences +@@ -1027,24 +1026,6 @@ + formatList_[fidx].bumpWriteUseCount(1); + } + +- // Now output for preview in google maps +- QString tempName; +- if (babelData_.previewGmap_) { +- QTemporaryFile ftemp; +- ftemp.open(); +- tempName = ftemp.fileName(); +- ftemp.close(); +- +- // Ideally, expost this in the UI. For now, just split the track +- // if we've no recorded fixes for > 5 mins and we've moved > 300 meters. +- //args << "-x"; +- //args << "track,pack,sdistance=0.3k,split=5m"; +- +- args << "-o"; +- args << "gpx"; +- args << "-F" << tempName; +- } +- + ui_.outputWindow->clear(); + ui_.outputWindow->appendPlainText("gpsbabel " + args.join(" ")); + +@@ -1056,14 +1037,6 @@ + ui_.outputWindow->appendPlainText(outputString); + if (x) { + ui_.outputWindow->appendPlainText(tr("Translation successful")); +- if (babelData_.previewGmap_) { +- this->hide(); +- GMapDialog dlg(nullptr, tempName, babelData_.debugLevel_ >=1 ? ui_.outputWindow : nullptr); +- dlg.show(); +- dlg.exec(); +- QFile(tempName).remove(); +- this->show(); +- } + } else { + ui_.outputWindow->appendPlainText(tr("Error running gpsbabel: %1\n").arg(errorString)); + } Deleted: fix-map.patch =================================================================== --- fix-map.patch 2019-06-19 11:39:48 UTC (rev 482341) +++ fix-map.patch 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,2183 +0,0 @@ -From e1e9151eab24f4addb79f3128866ad49ae5ef639 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Sat, 2 Dec 2017 20:25:58 -0700 -Subject: [PATCH 1/7] get gui map preview working with webengine. - ---- - gui/.gitignore | 2 ++ - gui/app.pro | 6 ++++-- - gui/gmapbase.html | 12 ++++++------ - gui/map.cc | 47 ++++++++++++++++++++++++++--------------------- - gui/map.h | 5 ++++- - 5 files changed, 42 insertions(+), 30 deletions(-) - -diff --git a/gui/.gitignore b/gui/.gitignore -index 0b02c28d..bb724360 100644 ---- a/gui/.gitignore -+++ b/gui/.gitignore -@@ -4,3 +4,5 @@ - /makelinuxdist.sh - /objects/ - /tmp/ -+/release/ -+/debug/ -diff --git a/gui/app.pro b/gui/app.pro -index 78761a06..335fc802 100755 ---- a/gui/app.pro -+++ b/gui/app.pro -@@ -1,8 +1,10 @@ - # $Id: app.pro,v 1.19 2010-11-01 03:30:42 robertl Exp $ - # - --CONFIG += qt release --#CONFIG += qt debug console -+CONFIG += qt -+CONFIG(debug, debug|release) { -+ CONFIG += console -+} - - # For Mac, x86 and x64, but not PPC binary. Ignored on other OSes. - # macx:CONFIG -= x86_64 -diff --git a/gui/gmapbase.html b/gui/gmapbase.html -index a85faa10..39d008eb 100644 ---- a/gui/gmapbase.html -+++ b/gui/gmapbase.html -@@ -7,7 +7,7 @@ - <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAN6d3-kz3XqyJq-W9n7IYzhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxT_28W9HdpKXQF8sGkCU0sQpcudOQ" - type="text/javascript"></script> - <script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"> -- </script>" -+ </script> - <script type="text/javascript"> - var greenDotIcon = new GIcon(); - -@@ -398,12 +398,12 @@ - - - function load() { -- if (GBrowserIsCompatible()) { -- //var map = new GMap2(document.getElementById("map")); -- //map.setCenter( new GLatLng(0,0), 2 ); -- //var mgr = new MarkerManager(map); -+ if (GBrowserIsCompatible()) { -+ if (typeof qt != 'undefined') { -+ new QWebChannel(qt.webChannelTransport, function(channel) { mclicker = channel.objects.mclicker; }); -+ } -+ } - } -- } - - - </script> -diff --git a/gui/map.cc b/gui/map.cc -index 23cee4d7..9ea04d66 100644 ---- a/gui/map.cc -+++ b/gui/map.cc -@@ -69,7 +69,17 @@ Map::Map(QWidget *parent, - manager_ = new QNetworkAccessManager(this); - connect(this,SIGNAL(loadFinished(bool)), - this,SLOT(loadFinishedX(bool))); -- this->logTimeX("Start map constuctor"); -+ this->logTime("Start map constuctor"); -+ -+#if HAVE_WEBENGINE -+ MarkerClicker *mclicker = new MarkerClicker(this); -+ QWebChannel* channel = new QWebChannel(this); -+ this->page()->setWebChannel(channel); -+ channel->registerObject(QStringLiteral("mclicker"), mclicker); -+ connect(mclicker, SIGNAL(markerClicked(int, int )), this, SLOT(markerClicked(int, int))); -+ connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTime(const QString &))); -+#endif -+ - QString baseFile = QApplication::applicationDirPath() + "/gmapbase.html"; - if (!QFile(baseFile).exists()) { - QMessageBox::critical(0, appName, -@@ -90,7 +100,7 @@ Map::~Map() - //------------------------------------------------------------------------ - void Map::loadFinishedX(bool f) - { -- this->logTimeX("Done initial page load"); -+ this->logTime("Done initial page load"); - if (!f) - QMessageBox::critical(0, appName, - tr("Failed to load Google maps base page")); -@@ -134,28 +144,23 @@ static QString fmtLatLng(const LatLng &l) { - //------------------------------------------------------------------------ - void Map::showGpxData() - { -+ -+#if !defined(HAVE_WEBENGINE) - MarkerClicker *mclicker = new MarkerClicker(this); --#if HAVE_WEBENGINE -- QWebChannel* channel = new QWebChannel(this); -- this->page()->setWebChannel(channel); -- channel->registerObject(QStringLiteral("mclicker"), mclicker); --// this->addToJavaScriptWindowObject("mclicker", mclicker); --#else - this->page()->mainFrame()->addToJavaScriptWindowObject("mclicker", mclicker); --#endif - connect(mclicker, SIGNAL(markerClicked(int, int )), this, SLOT(markerClicked(int, int))); -- connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTimeX(const QString &))); -- -+ connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTime(const QString &))); -+#endif - // It is appreciably faster to do the encoding on the C++ side. - int numLevels = 18; - double zoomFactor = 2; - PolylineEncoder encoder(numLevels, zoomFactor, 0.00001); - - -- this->logTimeX("Start defining JS string"); -+ this->logTime("Start defining JS string"); - QStringList scriptStr; - scriptStr -- << "mclicker.logTime(\"Start JS execution\");" -+ << "mclicker.logTimeX(\"Start JS execution\");" - << "var map = new GMap2(document.getElementById(\"map\"));" - << "var bounds = new GLatLngBounds;" - << "var waypts = [];" -@@ -169,7 +174,7 @@ void Map::showGpxData() - << "var pn = map.getPane(G_MAP_MARKER_PANE);" - << "pn.style.KhtmlUserSelect='none';" - << "pn.style.KhtmlUserDrag='none';" -- << "mclicker.logTime(\"Done prelim JS definition\");" -+ << "mclicker.logTimeX(\"Done prelim JS definition\");" - << QString("var zoomFactor = %1;").arg(zoomFactor) - << QString("var numLevels = %1;").arg(numLevels) - ; -@@ -195,7 +200,7 @@ void Map::showGpxData() - << " GEvent.bind(waypts[i], \"click\", ftemp, ftemp.clicked);" - << " map.addOverlay(waypts[i]);" - << "}" -- << "mclicker.logTime(\"Done waypoints definition\");" -+ << "mclicker.logTimeX(\"Done waypoints definition\");" - ; - - // Tracks -@@ -231,7 +236,7 @@ void Map::showGpxData() - << " bounds.extend(trkbound.getSouthWest());" - << " bounds.extend(trkbound.getNorthEast());" - << "}" -- << "mclicker.logTime(\"Done track definition\");" -+ << "mclicker.logTimeX(\"Done track definition\");" - ; - - // Routes -@@ -263,17 +268,17 @@ void Map::showGpxData() - << " bounds.extend(rtebound.getSouthWest());" - << " bounds.extend(rtebound.getNorthEast());" - << "}" -- << "mclicker.logTime(\"Done route definition\");" -+ << "mclicker.logTimeX(\"Done route definition\");" - ; - - scriptStr - << "map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));" -- << "mclicker.logTime(\"done setCenter\");" -+ << "mclicker.logTimeX(\"Done setCenter\");" - ; - -- this->logTimeX("Done defining JS string"); -+ this->logTime("Done defining JS string"); - evaluateJS(scriptStr); -- this->logTimeX("Done JS evaluation"); -+ this->logTime("Done JS evaluation"); - } - - //------------------------------------------------------------------------ -@@ -288,7 +293,7 @@ void Map::markerClicked(int t, int i){ - } - - //------------------------------------------------------------------------ --void Map::logTimeX(const QString &s) -+void Map::logTime(const QString &s) - { - // fprintf(stderr, "Log: %s: %d ms\n", s.toStdString().c_str(), stopWatch.elapsed()); - if (textEdit_) { -diff --git a/gui/map.h b/gui/map.h -index baa57e91..20dd949a 100644 ---- a/gui/map.h -+++ b/gui/map.h -@@ -44,6 +44,9 @@ public slots: - void clickedX(int t, int i) { - emit markerClicked(t, i); - } -+ void logTimeX(const QString &s) { -+ emit logTime(s); -+ } - - signals: - void markerClicked(int t, int i); -@@ -87,7 +90,7 @@ class Map : public QWebView - void frameTrack(int i); - void frameRoute(int i); - -- void logTimeX(const QString &); -+ void logTime(const QString &); - - signals: - void waypointClicked(int i); - -From 5583695da76991e34ebe93aca619c7aee94386de Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Thu, 7 Dec 2017 10:39:24 -0700 -Subject: [PATCH 2/7] update to google maps api v3. - ---- - gui/gmapbase.html | 553 +++++++++++++++--------------------------------------- - gui/map.cc | 164 ++++++++-------- - 2 files changed, 243 insertions(+), 474 deletions(-) - -diff --git a/gui/gmapbase.html b/gui/gmapbase.html -index 39d008eb..73a14f53 100644 ---- a/gui/gmapbase.html -+++ b/gui/gmapbase.html -@@ -4,412 +4,167 @@ - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8"/> - <title>Google Maps JavaScript</title> -- <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAN6d3-kz3XqyJq-W9n7IYzhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxT_28W9HdpKXQF8sGkCU0sQpcudOQ" -- type="text/javascript"></script> -+ <script src="https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBx9CSaJaOdcC5SV2LmaZZB6EOxFm1hLH4" -+ type="text/javascript"></script> - <script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"> - </script> - <script type="text/javascript"> -- var greenDotIcon = new GIcon(); -- -- greenDotIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAuF1F01CYAAABhSURBVAjX" + -- "Vc07EYNgFAXh7/41WhCAjLigjgBKTDA4SIeDJD4igjqXgvc2p9jZOQE+aqlDgx96YYpNfFEJV9rw" + -- "9sLjEIlAmguaWxHHVmX7WIsr6V/Q34qTsQgTWsx7IQ14LpGFGBx6omuVAAAAAElFTkSuQmCC" + -- ""; -- -- greenDotIcon.shadow = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAuO2OsuMUAAABSSURBVBjT" + -- "tc2xCYNgGAbh5wt/YZUiA4g4QiZwcifJDCIu8FoKPxZJkSuPg6skvuXhB/4Xt15UFYwYMGHDjk/r" + -- "wheW7vjEluSKq2rG++Z+JFnhBAGmEETSZHQ5AAAAAElFTkSuQmCC" + -- ""; -- -- greenDotIcon.transparent = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAvJ2621csAAAA5SURBVAjX" + -- "ZY3BDQAgDAKPxv2n0rnwZ1vLh4QLINvoKDBdArFJoM4ncHqMhtLjhf+nK/z+ANYIy8IFAWkMmzto" + -- "LrsAAAAASUVORK5CYII=" + -- ""; -- -- greenDotIcon.mozPrintImage -- "data:image/gif;base64,"+ -- "R0lGODdhBwAHAOMAAATCBITWhDTKNLzavBTGFNTe1AzGDEzOTOTi5ATGBJzWnNzi3FzOXAAAAAAA" + -- "AAAAACwAAAAABwAHAAAEGhCNQ4RaI4GdwuFAYhChtglaogJKyB1LYMIRADs=" + -- ""; -- -- greenDotIcon.printImage = -- "data:image/gif;base64,"+ -- "R0lGODlhBwAHAKEAAATCBATGBP///wAAACH5BAEAAAIALAAAAAAHAAcAAAINVIAQp8ePlot0WpVA" + -- "AQA7" + -- ""; -- -- greenDotIcon.printShadow = -- "data:image/gif;base64,"+ -- "R0lGODlhCwAHAIAAAISChP///yH5BAEAAAEALAAAAAALAAcAAAIMjI+py+0JQoxoSlMAADs=" + -- ""; -- -- greenDotIcon.iconSize = new GSize(7,7); -- greenDotIcon.shadowSize = new GSize(11,7); -- greenDotIcon.iconAnchor = new GPoint(4,4); -- greenDotIcon.infoWindowAnchor = new GPoint(4,0); -- greenDotIcon.imageMap = [6,0,6,1,6,2,6,3,6,4,6,5,6,6,0,6,0,5,0,4,0,3,0,2,0,1,1,0]; -- -- var redDotIcon = new GIcon(); -- -- redDotIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQEfHu83AQcAAABjSURBVAjX" + -- "Vc0xEYNQFETR836NFgQgAxfUCEiJiUwc0GGBOpGACOo8isDks80Wd+5uwIc2eaDDhilY4gQrmnDL" + -- "EG9m9BdIxK/3gq424t9NOT/kfVLyLZhqo8qrBAsG7JeRPDEes/UYQBcqkmIAAAAASUVORK5CYII=" + -- ""; -- -- redDotIcon.shadow = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAuO2OsuMUAAABSSURBVBjT" + -- "tc2xCYNgGAbh5wt/YZUiA4g4QiZwcifJDCIu8FoKPxZJkSuPg6skvuXhB/4Xt15UFYwYMGHDjk/r" + -- "wheW7vjEluSKq2rG++Z+JFnhBAGmEETSZHQ5AAAAAElFTkSuQmCC" + -- ""; -- -- redDotIcon.transparent = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAvJ2621csAAAA5SURBVAjX" + -- "ZY3BDQAgDAKPxv2n0rnwZ1vLh4QLINvoKDBdArFJoM4ncHqMhtLjhf+nK/z+ANYIy8IFAWkMmzto" + -- "LrsAAAAASUVORK5CYII=" + -- ""; -- redDotIcon.mozPrintImage -- "data:image/png;base64,"+ -- "R0lGODdhBwAHAOMAAMwCBNyGhNQyNNy6vNQWFMwKDOTW1NRKTOTe3NQCBNyanNQKDNRaXOTi5AAA" + -- "AAAAACwAAAAABwAHAAAEGrCNQ4RCAyTAw9lgQWhkInAgoKQJgwTFxhgRADs=" + -- ""; -- redDotIcon.printImage = -- "data:image/png;base64,"+ -- "R0lGODlhBwAHAKEAAMwCBNQCBP///wAAACH5BAEAAAIALAAAAAAHAAcAAAIMVAB3yaGMnmtQ0lUA" + -- "ADs=" + -- ""; -- redDotIcon.printShadow = -- "data:image/png;base64,"+ -- "R0lGODlhCwAHAIAAAISChP///yH5BAEAAAEALAAAAAALAAcAAAIMjI+py+0JQoxoSlMAADs=" + -- ""; -- -- redDotIcon.iconSize = new GSize(7,7); -- redDotIcon.shadowSize = new GSize(11,7); -- redDotIcon.iconAnchor = new GPoint(4,4); -- redDotIcon.infoWindowAnchor = new GPoint(4,0); -- redDotIcon.imageMap = [6,0,6,1,6,2,6,3,6,4,6,5,6,6,0,6,0,5,0,4,0,3,0,2,0,1,1,0]; -- var blueIcon = new GIcon(); -- blueIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcMBidsiEMAAASrSURBVFjD" + -- "xZZbbBRlGIafPe/szLa7hdKWbqAVExppjBUrWEu5MYoolKiQbIAbORgTjTTBGGOi8cKYaLxSE7nR" + -- "EGONqBTkoiCKirWRpDFCKTRtw0K32wPd7ml2d2Z2Zme9aDG0QeSwtF/yZ5Lv/5P3+fO+/5eBW6je" + -- "3t4a7lFZ/+/AsWPH6kOh0AsLBpBIJD7t6OgwFgxAVdWWwcHB2L0CsN9sc/XqR5ZoqorS1fUdUAIP" + -- "1oHNCZFhuDp8zwFWPVDXnMpq+Pd8kXyz/j57SamPrGFhbEpmKDLBQCR6fPT7t1+D8YE7BbDdbHP7" + -- "9uCLZ/omm4LbglZBcKEaBVQd8g43wqKlVK2sv9+5fterUcUrmcO/nSx6Bqqrq5vCkxpTiSzDExki" + -- "UZWRmEYkYTCSMgnJFhSpgupn9u2317+8t+gAZt5oUk2J4YkUY1MZRmMKowmdSKrASNbGqCEwnsyT" + -- "TWhUrlh3oNgZ8GhqBtNdRXgiTSJrkMpbkU2YAmTJieZy4dQUSrMZSnSdkWIC7NyxvWkqpYKzmpFo" + -- "lrhaIJyCjNUCixzgkLAVTNw5FX86gaLEzxfVgoaGh5ouXLqKgchgJE3/lQwZwwoeEUQvuAWceg5R" + -- "yeDNxhgY6nypqACBQPXj5wZTDF9NE00a4HKBSwBBBMmLjQJuTcEnp8jKfd2ET3QXNQN5Q28aSbrw" + -- "VzmxFFJYHHkD0bTbfD6SlWVmdiJp9WQzVFmmONnX91fRB1EqlZZyavTw5OmP3iPx5/UCdf61719s" + -- "3PAkquHmQugi+Btecdif69CHDp8qigXBYHCtnFFJ9rY/P0cc66rXP4yrZXR/8yMBSw+RSQdIPvTl" + -- "rT87nOWBogA0NjY2yXLKnNsXqiSfaa94FosJbj8//HIFSrzTwSyrRW89GHYsbn70rgECgcD6cDj8" + -- "69y+5t97AKsXzDTkk1C6HEQPeCQQPFCxEn3nwTO2pz/+8q4Acrlc8+TkZNes21c4PAWbbxtmBiwS" + -- "uBaDZ0Zc9E4vjwfKqnA9tmuHb3d3wb/hs6MEnnritkMYj8fLBEH4YxZU2e59BXsVFHSw2UAUQZwR" + -- "98zYIEq4DR23kkEQKxBrWzbXVD68WZ8IoiiJHkWTu+XM1FjOiFUbRv5AfuCr85a54lu3bq1fs2ZN" + -- "r81mE9va2rLX+l4r9syqd3XTsXRa3FsC3lLw+qa/JaU4rFZEJYOgZhFnlqDI2M0CFKwsrbQgZy/1" + -- "dB75ehOxn8ZvaEFLS0uTLMtcLw4gmxhm7zsWpzl4WvI7QfKDpxTEEhC9WK023EoWp6ri1jSciopT" + -- "UaitECgtjVFePnDo0CfBFZ2f72q8Jn5DCwKBwLqzZ8/2/Jdnub8/WJ87V15Tu+mNt3Rh+RbsyxY7" + -- "fSKiBUSnjtMSxZobx+ORh0p8qVPfnujsMPqPHL/lDGia1hyLxY7cNLrm5OXQ0f17gD3TDVcdLPEB" + -- "BoQvA9E7noTRaLRGkqTfb2+caP0Qvvu/4tbW1mWqqtLQ0NDNPNUsgI0bNzan02na2trGFwQgEAis" + -- "Gxsb62ceaxaAoijNyWSya8EA4vF4vWEYg/MJ8O8rkCRpS3t7O6FQKMECVSWgzLfoP0Pf/kzVF9v7" + -- "AAAAAElFTkSuQmCC" + -- ""; -- -- blueIcon.shadow = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcMJYUL+TEAAAEmSURBVFjD" + -- "7ZetbgJBFEbPEBTpE6DQqyrQpJKgEPuY1U1ln6CqIQh0gyAEQRAV3JptA9v5Hyhscr/kus3knNlv" + -- "JrtGROhyenQ8KqACKqACKqACKqACKqACt0u/dAFjTHffQAT8+JrwIoLJ/SOLgK+BD8cmrYCvUngg" + -- "TyAA/wBMI5ZZNJMNn3UGAvB1wlJVjkB7w/s3gn8DNqXwSQIe+KqZnxxPen9snYFXYF9amzOumDPg" + -- "ga+BZ8f1PL9U732MQQEHfA94BN4zqpQkEeTz2tnhZ8BL4RkAWDYVA/gEdqnwXgEHvKsyFTAARhn1" + -- "XtgkYq93q4AFfggcbLtkyaiRsWULrEtr8+fh07lANYo/D1ImBP90z/BnAq1M/vurMgf+V6CVeVfg" + -- "RYRveXcZHbtZkpsAAAAASUVORK5CYII=" + -- ""; -- -- blueIcon.printImage = -- "data:image/gif;base64,"+ -- "R0lGODlhIAAgAOcAAAQCBARu3AQ+fHx+fDw+PARWtERurAQeRASG9DRGZJSu3ARKlDRuvAR67AQi" + -- "ZHyWzFRWVCRWtDyG5DxWvDQCBBRKnAQubAwWBBxyzAQ6pJSWlARi1FxunBR65CxizERmnAQujHSS" + -- "zCSO7FyKzAQCLCQiJCRClNTS1ASC9ARCpJSm3ExinISKjKyqpARKtGRiZBxSnKSinAwODAR25Bxe" + -- "rAQqVAx67Bx2zFR6vARSvAQCFARezDx6zByK7DRWxBxOnBQ2bAQSPBRmxDRizAQ2nFyW3CROjJSS" + -- "lLSytAxOrARy3BQ6hExOTARWxAQqhHye1FRedFSa5AQuhBRy5Aw+pJyWlDxmtAQynCSa/ARGtExq" + -- "pIyKhDRKjAQmVAyS/CxGfCR+3AR+7AQqbFxeXCxetFSGzAwudAQ+pARq3FRuvCRq1AQylDSO5GyO" + -- "zARGrKyurAROtFxqdKSmpAwuXAx+7GSCxAQGFDyCzBxOrAQWPCxKpBxClARaxBxu3JyalERqtDQy" + -- "NKS25DR6zGyW1CxezBR25DRq1CxWpCxqxISChERCRFxaXFRSVERivAyK9ExmrISi1ESG3HySxGSK" + -- "xER6xCxOlFRqnFxuxAwCBERuvBRKrCyO7AyC9Ax25Bw6hDRKbHya1AQydAwaDFR+xBRqzIyOjDxa" + -- "vARm1GRmZLS2tBxy3ARu5BR67AQulAQCNARCrKyqrBxSpKSipAQqXAQCHByK9BxOpAQSRAxOtARy" + -- "5IyKjAQmXAR+9AQqdAQ+rAROvAx+9ARazJyanP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMMALAAAAAAgACAA" + -- "AAj+AIcJHDjwBMGDCBMqRIJEocOHA2W9gEgxoTACFTMKBHSEAgASrnRofDiGxYcQkEBNMgBD5MiD" + -- "W6AEUpByUJEobAS8JCjnk4oHbUaUicQGSw8xOwXG+NKmDg5KgsD0cFTIVlIAVSrhMMAAkZBOKID1" + -- "0ZO05CErZHDl2NAARachJpKWihOhgi8XwZSg4NXH1IGkLRJQyZAlx6m2HTxwSTpMDhA8FWLRwOCF" + -- "byMHjKvMCTIQwBJBhvas6bJzka6Dva440dIqQwo7L0sNICgKxBrVGdw0KZBnJKyJA1ODkELETY4d" + -- "aJQs0CiHycALUmwTefUrGJoZKDgJqfAX4hEIA8WPXGl1xRccPqdy7e3UR80QPSY8mZm16yCEUqUG" + -- "YpJy5YyLJunxgoIN7RHiwwQTpLHCLQgdkQhCFiTRxAartNXJFGoYeMkKlriE0BuoJKTDDzTc0MMm" + -- "EvBghRaW1AARLIxABAAttACg0RFjMOYQE/jpqJAwD/qYUCohCokQLIsYiZAw4Ck5kAyKlOBkZzZO" + -- "GRAAOw==" + -- ""; -- -- blueIcon.mozPrintImage = -- "data:image/gif;base64,"+ -- "R0lGODdhIAAgAOcAAAQGBAR25Hx6fAQ+pERCRKy2vER6xARaxJSWlFRedCR+3CxGfFyKzBxerMzO" + -- "zJyWlDxmtASG9AROtLy6tBx2zGR2lARq3KympAQqhFxqdExmrAR+7ISKjBxOnCxqrAQujARGrFSC" + -- "rJSm3CSO7GyKrMTGxDRizDxalHyWzERenNza3ARWtBRqzKSutHyOrCxOlKS25FR2rARi1JyenDRu" + -- "vLzCzAx+7Bxu3AQ2nAw+pLSytDR6zByK7AxOrGyGrARy3BxWpGyOzERmpFR+xAx25ARCpFSa5Cxe" + -- "tNTW1Ly+xBR25BQ2bExqpJSSlAQynBRKrCSa/DRWxHye1KyurFx6rERqtBxyzLS2tDyCzISChDRG" + -- "ZARezIyatBxClNTS1JyalARSvLy+vARu3KyqtFxuxASC9IyKjBxOrAQylARKtESG3DSO5MzKzExi" + -- "pOTi5HySxFR6vBRmxKSinAyC9BSS/HSCrGyW1CxezBR65FxupDxWvERuvAR67Hx+fAQ+rARazFRm" + -- "hCxKpGx+rFSGzBRy5FRuvGSCxCxWpBQ6hDyG5DRq1CxqxJSu3CRWtExmlERivISStCRq1FyW3AyK" + -- "9HSSzISi1GSKxHSKpMTCxCyO7ARWxDx6zBxy3KyqrHya1ERilAQ6pAx67ERurDRKbFxynAQuhNze" + -- "3FR6rARm1IyetIyOjCxizDxavMzO1AROvLy6vAR+9BxOpAQulARGtMTGzKSuvAx+9LSyvByK9AxO" + -- "tARy5ARCrKyutLS2vJyanARu5KSipBR67AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAIAAgAAAI/gDduDEl" + -- "kODAgwgNKizIcODCgyrYJGz48OHEgVeAHSRYkaJHjgJnaBTIEORFkwYLemmCBAkvXiVSekQ4U+AV" + -- "DkLeVJJiaU+IMCk7WuR4JQEMRpU82ZFkJBMJUzJJSjVZUMcoESiCMBikZg0UHlwmggxKc8YCrXAM" + -- "7NgxaQ6eWDSlkkTpBsmXF3BEQVjEgkgEG5ECzd1IVWYYDocgHMkFRgafMsFWpRBb0uOVDI2eDJBw" + -- "QFcZWDdYFaA5lPQELUVAgWjMJ4KSVXnGfmwo8MKSJx2ANKBAhw+hR6QGXxROEAGgXhzDINqhqMuH" + -- "WnEXWizBYfAnJxiYyBpQpMTGmgrD7vRBiOSDE+w4Zq1YgXymRfFzHTkp9QHH6i2/foToSLwTgo30" + -- "oYHDLq5sYUEAZZQRxyktUKYQAlcUdAkaaDjhB2eoeAaLEoREskogQvjgQgU1NFSCKkGV4sQAaWgi" + -- "gy6wlEEEJ5HcoceNhQjiwEMl9DGWKSf04OIvG8jY4R1RFNIGJEBNNRB8cplSAgkeWMFDJolsAgEV" + -- "qUAnHUJTICDbd2HwcksrTkYnEIRq0vXdSW44oAoSg8nkJpwElZAFacQ5SFuePvIpV2VxJXSFKnV+" + -- "RxWfD80wQ5uD2hnlQDMQ0ISiiX5JqEBsAFCobIu6GRAAOw==" + -- ""; -- -- blueIcon.printShadow = -- "data:image/gif;base64,"+ -- "R0lGODlhMAAgAIAAAISChP///yH5BAEAAAEALAAAAAAwACAAAAI6jI+py+0Po5y02ouz3rz7D4bi" + -- "SJbmiabqyrYd4CLwHNApjddobu96foIpeisey0g0IXWxkLD5bEqbBQA7" + -- ""; -- -- blueIcon.transparent = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcMOggD9MQAAARUSURBVFjD" + -- "xZdbaBxVGIC/c3Z3dmdnJ91Nazdr1sZ6oUJT7dauGGz7IkiNSotCH6q1D2oFn/IifdO8iaBvweJj" + -- "oSIiJSCFegEFKRZUkLaktxRDs9mkaTZ7md3ZmdmdnfFhQ2lI29h2k/zwP8w5B/7v/Lf5D77vs5xe" + -- "uHBB/p9zD6KSZeTUqVNyYmKClZJlAcrlMqOjo2sHYNs24+PjawOwc2dWOraNdeYMQggpxHNSiB1S" + -- "iKTsFIDwff+um4ffPSSf6d/Or9fWk+1/gq51cequYGa+yrX8LFfzBaZPfoLvz3gr4oH+/q38NXaD" + -- "w2++zKZ0EqSk5UFE76JvSz8v7X2d7V/8SWjPp3JFAHp7e8nNOcyX60zOmuQLNlNFh3zZZcrwmKgK" + -- "rFiS3teGCG376IEggvfa9FouthdjctagWLUxHDDcIAYBKqEA1YCKWWmhlB16ntzdWQ8IIaRjm3iR" + -- "FLnZGvmCTb7cYNpwuW5AzlGYbYRp1GzUukm82aSjHjj0ztvMGzYovUwV6pRsn5wBphSwPgShGAHf" + -- "I9KwSdTKWFapsx7IZLZz8d+buGiM52tcvm5iuhKiGmg6RFSUZgPNMtHrRa5eO91ZgHS6l/PjBpM3" + -- "axQqLoTDEFZB1SCmE8An4ljEqwb16hj+5I9eR0PQcptMVcIkUgrCNxChFmgegXicSk839dkK0bpJ" + -- "Sszzy9jYAzeiuwIYRo2GXWDu9y/xS2e925Mz8eJnZPe+gu1GuDhxCRIZlKffko3xk15HQnDw4EFZ" + -- "NW3K57/xbjcOILd+TMnu5o/vfiYt/iY/F4JYnGbfPpTwRtkRgGw2S7VqLFmPPqpLL5gE4UEkwQ+/" + -- "XYcuvZ2Y3Ztp7juO8shu+dAA6XSaXC63ZN1JHAGpg1eDVgXW9YEWhWgM1Cgkt9A8dJzg4Ih8KIBG" + -- "o8Hc3Nzi2/co0g/EwTNBxCC8AaILxjW9rdEodKcID7xH4oOzsvvVr6V4bK+87yQslUqoqroYqvt9" + -- "/GAK/CYEAqBpoC0Yjy6EQYsRcZtELBNVS6Jt3sPjPTvYNnhcWlYZy6lSNedpuEVct4V75YS3hO7A" + -- "gQPScRwGBgYWe+DKMaQ7DTLUvvUt1dsgMZ0QEHEswg0b1bFQrRphq0o8lia14Vl2Pb+LXTu34dyY" + -- "xr1ywrvjPDAyMiILhQLDw8N3LKlw5qhUNr1ALZJq375rHehdyFAIzTJRbQvNsVDrJppt8lQyhFGf" + -- "QgkVGT02vGR2CN4pAc+dO3fXmDn/fO6JwEa5+Y2jNNU+CG5CiWtoAjSliSIKyMYNotEqXXGD7386" + -- "TfPSaNvoVx8unwOO41AsFu+ZuX7rprf4zxmRsHHhK4fv+7f2v+XI/XXCQqFALBa7r2bi+3ZnRrL9" + -- "+/dL27bJZDKsliwCGBwcpFarMTQ05K0JQDqdZmZmhtWURQCWZVGpVNYOoFQq4bruqgLcqgJd12U2" + -- "m2UlH6L3fBkJIWS7pHxvNQH+A1CDKAII3hWoAAAAAElFTkSuQmCC" + -- ""; -- -- blueIcon.iconSize = new GSize(32,32); -- blueIcon.shadowSize = new GSize(48,32); -- blueIcon.iconAnchor = new GPoint(4,32); -- blueIcon.infoWindowAnchor = new GPoint(16,0); -- blueIcon.imageMap = [9,0,9,1,9,2,9,3,13,4,16,5,17,6,18,7,18,8,18,9,18,10,18,11,17, -- 12,17,13,18,14,19,15,20,16,21,17,24,18,30,19,29,20,27,21,24,22,20,23,5,24,5, -- 25,4,26,4,27,4,28,4,29,4,30,3,31,2,31,2,30,3,29,3,28,3,27,3,26,3,25,4,24,4, -- 23,4,22,4,21,4,20,5,19,5,18,5,17,5,16,5,15,6,14,6,13,6,12,6,11,6,10,6,9,7, -- 8,7,7,7,6,7,5,7,4,8,3,8,2,8,1,9,0]; -- -- var redIcon = new GIcon(); -- redIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcGFC46EYEAAASQSURBVFjD" + -- "xZdbbBRVGMf/57Lbod2dgXZrSzskaAg21GARXLek8YFYA2oIQcHUQKLGRI1oIPaNBy9vPhDjCyHx" + -- "gfhmmihpMSSiD2pIqRCpklIuttRiL7Dtbju7szvXc44PbElBUgGX9ktOMvl/k3y/+W6ZA9yD9ff3" + -- "r8ZDMvpfL3R3d68fHR19ackAcrncZz09PVgyANd1t46MjOQeFgBfyNne3m66rgvRaJ4E8EgCeIwC" + -- "PA9MOMDVhw6wcuXKlJ0v4OXhoZGP9+7VGigFtW1kslkMpdMYzmS+O3z9+sE0cP5BAdhCzt27d79x" + -- "deDC5s6mx3lNGKLCshDJ5aA7DlYDSBrG2u3V1e9K142d87wfyp4B0zSTl789BoQ+wnQacnYWolBA" + -- "GARQSoFTitpoFO/reudUEAx3O86RsgJIpTbHp2fgBD6cXA6FIEBRKYSl1MUphR8EmBYCT2naobIC" + -- "NDc3L3d9n6+yZjEeOLCUQlEpBFIiABCjFBKAV9IVUFnWEmzcuDE1M2vDQIihkMGSEpNhCBCCesZg" + -- "UAqhFFylYEuJWSHOlRWgubk5OXrxAioJxR+eh4yUWEEpaimFQSmqKEUgJVyl4CiF0657oKyLqLGx" + -- "sXV8YBCXwxCTQqCCEGiEIE4pVlAKKAUPQEFKjAvR+6vv/1LWDAilkvSvIdRyjhVKQSOkGI9EtERV" + -- "Fa3jHDO5HDwAJBrFScs6X+5FxO2CXS3sQtdR3/v8byH65hwGsOnFmpqzr65ahXByEqc8D3Wcv9NG" + -- "yLFTnneyLCXYs2dPyrEL6C4WOuYHB4BNmnaw4Dg4fPEipurqMGHbMCjFumj0+ycikTVlAWhpaUnm" + -- "8/kcIUTO19dHIvUaITsUAI0x9Fy5Ar00EQ2c45VY7M9nKiqe/d8Apmm2jo2N9d6p1zJ2iBMCASBU" + -- "CtWcwygBGJTiUc6x3zB+3q/rR3GPe+GuAEEQpKanp0/P157kvJoT8poAwJVCJSHQCYFBCHRKb516" + -- "xrCjqur1LxOJwoeG8c3T0ejW+25Cy7LMeDx+Zr62nLE3lxECqRQ4ITe/mjEYc8+lo5SCA6CaMSQp" + -- "3bk+Gt05HASwpOzLK3VmynXH84zV+Ep91et5g//KQEdHR4vrumhra7ut+aaFOOIqVWSEQGcMOqU3" + -- "g88rAQHgAfCVQljakp5SqGcMTYyltpnmB8+vXbvNc90vej1v8K4ZSKVSyWw2Kzs7O2fn6xfC0M5K" + -- "WbNJ047XUfpcJaWIz0FQiggAVyn4paCOEAiEQKKhAVNKwYvFvn7v7NlP0sClBUtgmmbrwMBA791K" + -- "Mymle7xYbP+Nsaa3DOOAqKh4gWiaaSxbhgjn0JRCGkBBCIScXwp0/afD/f3Hf7TtE/fcA77vJ2dm" + -- "Zk4s1DgTQlz6NJt9e66RKdAUA5aHQFgExgBMPPAmzGQy6wzD+Og+RllKYPBB/1pva8Jdu3atcV0X" + -- "GzZs6MMi2W0AW7ZsSebzeezbt29sSQBM02y9cePG71hEo3dcQpKWZfUtGUAmk0lKKUcWE+DWFOi6" + -- "vr2rqwvXrl3LYonMBDCVSCT4Ygb9B9fYD7KPxTs8AAAAAElFTkSuQmCC" + -- ""; -- -- redIcon.shadow = "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcBFGF7h0YAAAEpSURBVFjD" + -- "7Zc/S8RAEEffSiqLqyyvEhGr48orrC1ShnxMsRbxU1jIcZXFVWIhcoiIMDZRkpj9n1MDM7BFIAzv" + -- "ZX+zbIyIMOU6YOKlAiqgAiqgAiqgAiqgAirwd1XkNjDGTHcHAuCX+4QXEUzqH1kAfA3cWXZ5A3zk" + -- "wgNpAh74Q6AMaHPfrGT4pBnwwFcRsTxJEeh/8GJE+Dqi1S3wnAsfJeCAPwUWref3pu/QTlwDu9zY" + -- "dLhCZsABXwOXltOtGiv3LkavgAP+DFgnRClKwsvntBuGvwBuMmeAnsQWeImFdwpY4CvgynKizIDj" + -- "hHh/iTwArzHwVoEB+CPgLXAA543MUD0Bj7mx+fFye40QjezrQczywZ//Z/iOQK9Wv32rTIH/FuhV" + -- "ORV4EeETEmkXA+M0hOsAAAAASUVORK5CYII=" + -- ""; -- -- redIcon.printImage = "data:image/gif;base64,"+ -- "R0lGODlhIAAgAMYAAAQCBISGhHwODHx+fLQWFERCREQGBJQqLLQyNMzOzJwSFEw2PJyipNQaHGQO" + -- "DCQmJDxeXCwGBJSSlIwSFLQuLFQWFJQ2NLxeXFQKDKQiJFxaXOQyNOxydGRmZAwODMQaHKQqLKwW" + -- "FKyurOQmJGweJIwaHNxSVIyOjEQODKQaHHQODJSalJQSDGxiZOQ+PNxeXBQCBIyKjIQaHLwWFExO" + -- "TEwGBJwqLKQSFKyqrNwiJDwCBMQqLGRiZISKjIQSFKSipNweHGQWFJQ+PFwKDGRaXOQ6POxWVJya" + -- "nJQWFMwuLAwCBISGjHwSFLQaHERGREQKDJQuLMRCRPz+/JwWFFwyNNQeHGwODCwqLDQGBJSWlIwW" + -- "FFwSFJQ6PKwiJFxeXOQ2NGxqbBQWFMwaHKwqLLSytOQuLORSVHQSFJSanJQSFORGROxiZBwCBLwa" + -- "HFRWVEwKDJwuLKQWFDwGBMwmJKSmpFwODP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5" + -- "BAEAAHYALAAAAAAgACAAAAf+gHaCg4MJhIeIiYpkIoqOj4M/PJCUiUcFlZmCThIQADAwSpqPXjEW" + -- "Fy8mUSAyMKOIAUQca2ZqRRsbSQ6vhD9URi5lOUBAOSMNb7yCRyTCDR/QDWJtTMpXaBPTIdtNH20h" + -- "PspePSxxaT5Mad0EcSrKMS1pKg4qE3EfMyFTWMp0C1ZDrKTr1iSOAGV2flRgIsCHli5z8qWQowxA" + -- "ljdsBsHYQiFEEAwUX5WSQujJGwNQatRxEOHViQGEIrx5g+FJQHQhM+GYNMjAzDcBBdhrByDTDxqD" + -- "ZM7E4EDolBDeFKjgBymLhkFyMNCkN+FpmxlNtsVhYsVBjSc5BWmIgSbpE6ZnKnywCNHmKwF9CtIo" + -- "GHOAKiEJMAmxeRO3HIEPBAre2GvDgqtEIjokYsOkRJcdSZJQsAFHCApIdNw8AgBAiZKimbLwRJjI" + -- "TYwsrBUdCRwbERnJtRHhuJr70ArevQV5KPAg+CDSYYwHAgA7"; -- -- redIcon.mozPrintImage = "data:image/gif;base64,"+ -- "R0lGODdhIAAgAOcAABQSFHx+fIQSFJRSVLwWFLSytEw2PIQ2NJSWlKQSFEwKDORGRMwuLFwyNMzO" + -- "zGwODKSmpJx6fIxubNQaHJwqLKQiJJQSDHROTFwKDISKjLQuLNza3MTCxNxeXOQuLLxeXMQqLIw+" + -- "PLSipLQWFGweJLSmpGRaXJR+fJxWVKSipNzW1HwODKRmZNwiJJwSFFwSFOQ6PISGhIQaHMwaHLy6" + -- "vJyanKQaHEwSFNxSVNTW1KQqLEQGBIwSFMQaHHRCRJQuLJSalKwWFNTOzHQODKyurKSKjJxqbNwe" + -- "HJQWFHxWVGQODJSSlOTi5MzKzOxydOQ2NJQ+PLSurHxeXJxeXOxWVISChKRKTLwaHLS2tERCRKQW" + -- "FFQKDMRCRKyqrLSChNQeHKwiJJQSFHxSVFwODIyOjLQyNNze3MTGxOxiZOQyNMwmJLQaHLSqrGxi" + -- "ZKRaXHwSFKxydOQmJJwWFGQWFOQ+PISGjMS+vFQWFORSVKwqLEQKDIwWFJwuLJSanNTS1HQSFJxu" + -- "bJRCRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAIAAgAAAI/gCZMDEj" + -- "kOBAgwgLKhy4kGBChhscPJzYUOFELF0YaqS4USBDhwJrQPjYsSTHgg4QOHBQIAqHiiY1ymSCpU6g" + -- "Dx1wcNGBggZHgwWBOiRiwgkaPAtgpHnCAJDHpx6BzmRCpAEVOh7iHDnSIs6XIiBBWiRJEAKJNHFm" + -- "9Fg7YcYaGVOlLhSYA4iAGQRGBNEyoseVEW/IjhVLkEYGC1rCvBEQZk2PEVoOPCU8OSqWNjxWKBnC" + -- "Q4vfIHLYHBwrUyoWAw8wPHjT+LEWKCVhJoRw480bGUjAqCEQxIaUimGjRgWSpADDAi/KBJmzpURC" + -- "uRPPZCB5QcGOHwowKHkpVWxDGjEQ4ApRoGCLHgxDBLyJQpI0UPAak5DPvrpzkCk5hJcuSASIQz96" + -- "kLfFZjzIEcQVPcgxAATPNYQADQydsEV5BLpwYF5B7PVGCBJEIMEZYp1BhhkG5XDDgOlZcOBja4Am" + -- "BxIW5OFGEw9xEIBYKviQohaOjbCGFgm4kAcFcNghnEM2HsmEHSz8AAYIDDCgAQVWeCFCcAv1B91H" + -- "NERBRBNxlYQAFoLF9NFDDDlARn6xUSRURWcEsB9lDdLJRJxzvalfR29isUSdbbaXZw0pyBXTm8ER" + -- "lEIWCJSppKDRAUBiZd6ZiVBAADs="; -- -- redIcon.printShadow = "data:image/gif;base64,"+ -- "R0lGODlhMAAgAIAAAISChP///yH5BAEAAAEALAAAAAAwACAAAAI5jI+py+0Po5y02ouz3rz7D4bi" + -- "SJbmiabqyrYd4CLwHNApjddobu96foIpeisey0g0IXWxkLAJjUYLADs="; -- -- redIcon.transparent = "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -- "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcBLT5+D04AAAQkSURBVFjD" + -- "xZdNbFVFFIC/Off29VL63m2htaW9LNwQI1VBGtIFblg0MW5INJgQ2LmykmhwrysW7kUSFm5c+/OW" + -- "ulSiCYvGpEIgkNKmpZS+1/b99c199945LmgbahEKPtuTnGQyM8n55vzNDKrK83RyclJ2su9lVHiO" + -- "FItFmZmZ4f+S5wJUq1WKxeLeAVhrmZ6e3huA8fFxsdaSDUcYY6TfGBkwRrqMkXYB+M9aPHToEPVa" + -- "g/fv3eXLCxcYEkHqdcrLy3w3MiL3ymWuPHzIoqp7WQCjqv+6ePnyZZmeuslXg6+QVKu4lRVctYo2" + -- "Gmgc44swby1XZ2e5Vqm4tnsgiiJuf/8DpC3SR49wq6tkjQZpkqCq+CL053JcLBQ409UlP66tubYC" + -- "OFXypRWaSYtmtUojSVhTJQU8IC9CK0koZRlvB0F7k3BkZERsq8XhyirzpRLTccz9LGM+TZlLU8rO" + -- "UXGOVedYU0XbnYQnTpxgZbVOSMrd1KPiHAtpCsYw6HmEImSqWFXqzrGaZe0FOHr0KDO3/qLLCH/G" + -- "MWXn6BWhX4RQhP0iJM5hVWmq8ru17Q3B8PAw81M3uZ2mLGQZncYQGENehF4RUCUGGs4xn2X8Eceu" + -- "rQCZKnL/Lv2+T+T7DHgeB3I5+vJ5BvJ5EueIVTG5HD83Gu1tRMYY+frqN2T1Bt+2YmbTdPN0PcbI" + -- "ewcP8uHhw6QLC/wWxwz4Pu8EgfxqrWuLB86fP0+z3uCntcYW4wCjQUCj2eTKrVssDQzwoF4nFOH1" + -- "XI43cjlpC8CxY8eo1WoAW4y/lctJYAwKBJ5H8c4dCusVMeT7fNDdzVgQyH8GiKKIubm5bfP9nodv" + -- "DBmQqnLA9wnXAUIRXvV9Pg1DPgtDMTu8sJ66KUkSSqXSVq90dMiGcV+VLmMoGENoDAWRTR30PM7s" + -- "38+1vj4+7+mRk52d8sJJWKlUyOfzW+Z6PI99xuBU8Y15fGrPI9wYr6uq0gQOeB4nRXgzl+OL3l6p" + -- "OEdNlSVrqXkeLVWuW+u20Z07d06stZw6dWrLfCnLsKp4xlDwPAoij40/EQIDxEBLlXS9S8aqDHoe" + -- "r3ke70YR40eOEFvL9fWK2eaBsbExlpeXuXTp0pYEnEoSN+R5MhoEDIjQJUJ+A0KEDsCq0lo32swy" + -- "kiyjb2iIJVXi7m4mbtxgUdV98qwQRFHE1NTUU+P1IMscwLDvy0dhSNbZiQkCwn376PB9AlUeAY0s" + -- "I/V9kkKBK5OT/FKrOYCLO8mBVqvFysrKMzN3/oneYIwRAbqBFFgD9IkX0scv2gnL5TJhGO64jvU/" + -- "PMe2leHZs2fFWsvx48fZLdkCcPr0aWq1GhMTE25PAKIoYnFxkd0U+ecnpFKp7B1AuVzGOberAJtV" + -- "EIahjI6OMjs7u6sAmx+Tjdurr6+PpaWlXXPD3/FDQDWrWIGPAAAAAElFTkSuQmCC"; -- -- redIcon.iconSize = new GSize(32,32); -- redIcon.shadowSize = new GSize(48,32); -- redIcon.iconAnchor = new GPoint(4,32); -- redIcon.infoWindowAnchor = new GPoint(16,0); -- redIcon.imageMap = [9,0,9,1,9,2,9,3,13,4,16,5,17,6,18,7,18,8,18,9,18,10,18,11,17, -- 12,17,13,18,14,19,15,20,16,21,17,24,18,30,19,29,20,27,21,24,22,20,23,5,24,5,25, -- 4,26,4,27,4,28,4,29,4,30,3,31,2,31,2,30,3,29,3,28,3,27,3,26,3,25,4,24,4,23,4, -- 22,4,21,4,20,5,19,5,18,5,17,5,16,5,15,6,14,6,13,6,12,6,11,6,10,6,9,7,8,7,7,7, -- 6,7,5,7,4,8,3,8,2,8,1,9,0]; -- -- -- function MarkerHandler(t, i) { -- this.type = t; -- this.number = i; -- } -- -- MarkerHandler.prototype.clicked = function () { -- mclicker.clickedX(this.type, this.number); -- } -- -- function RTPolyline(l, stp, enp, ckobj) { -- var s = new GMarker(stp, {title:nm,icon:greenDotIcon}); -- var e = new GMarker(enp, {title:nm,icon:redDotIcon}); -- -- this.line = l; -- this.start = s; -- this.end = e; -- GEvent.bind(this.line, "click", ckobj, ckobj.clicked); -- GEvent.bind(this.start, "click", ckobj, ckobj.clicked); -- GEvent.bind(this.end, "click", ckobj, ckobj.clicked); -- map.addOverlay(l); -- map.addOverlay(s); -- map.addOverlay(e); -- } -- -- RTPolyline.prototype.hide = function () { -- this.line.hide(); -- this.start.hide(); -- this.end.hide(); -- } -- -- RTPolyline.prototype.show = function () { -- this.line.show(); -- this.start.show(); -- this.end.show(); -- } -- RTPolyline.prototype.getBounds = function () { -- return this.line.getBounds(); -- } -- -- -- function load() { -- if (GBrowserIsCompatible()) { -- if (typeof qt != 'undefined') { -- new QWebChannel(qt.webChannelTransport, function(channel) { mclicker = channel.objects.mclicker; }); -- } -- } -- } -- -+/*jslint -+ this, for -+*/ -+var greenDotIcon = {}; -+var redDotIcon = {}; -+var blueIcon = {}; -+var redIcon = {}; -+function initialize() { -+ greenDotIcon.url = -+ "data:image/png;base64," + -+ "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -+ "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQAuF1F01CYAAABhSURBVAjX" + -+ "Vc07EYNgFAXh7/41WhCAjLigjgBKTDA4SIeDJD4igjqXgvc2p9jZOQE+aqlDgx96YYpNfFEJV9rw" + -+ "9sLjEIlAmguaWxHHVmX7WIsr6V/Q34qTsQgTWsx7IQ14LpGFGBx6omuVAAAAAElFTkSuQmCC" + -+ ""; -+ greenDotIcon.size = new google.maps.Size(7, 7); -+ greenDotIcon.anchor = new google.maps.Point(4, 4); -+ -+ redDotIcon.url = -+ "data:image/png;base64," + -+ "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -+ "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFEQEfHu83AQcAAABjSURBVAjX" + -+ "Vc0xEYNQFETR836NFgQgAxfUCEiJiUwc0GGBOpGACOo8isDks80Wd+5uwIc2eaDDhilY4gQrmnDL" + -+ "EG9m9BdIxK/3gq424t9NOT/kfVLyLZhqo8qrBAsG7JeRPDEes/UYQBcqkmIAAAAASUVORK5CYII=" + -+ ""; -+ redDotIcon.size = new google.maps.Size(7, 7); -+ redDotIcon.anchor = new google.maps.Point(4, 4); -+ -+ blueIcon.url = -+ "data:image/png;base64," + -+ "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -+ "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcMBidsiEMAAASrSURBVFjD" + -+ "xZZbbBRlGIafPe/szLa7hdKWbqAVExppjBUrWEu5MYoolKiQbIAbORgTjTTBGGOi8cKYaLxSE7nR" + -+ "EGONqBTkoiCKirWRpDFCKTRtw0K32wPd7ml2d2Z2Zme9aDG0QeSwtF/yZ5Lv/5P3+fO+/5eBW6je" + -+ "3t4a7lFZ/+/AsWPH6kOh0AsLBpBIJD7t6OgwFgxAVdWWwcHB2L0CsN9sc/XqR5ZoqorS1fUdUAIP" + -+ "1oHNCZFhuDp8zwFWPVDXnMpq+Pd8kXyz/j57SamPrGFhbEpmKDLBQCR6fPT7t1+D8YE7BbDdbHP7" + -+ "9uCLZ/omm4LbglZBcKEaBVQd8g43wqKlVK2sv9+5fterUcUrmcO/nSx6Bqqrq5vCkxpTiSzDExki" + -+ "UZWRmEYkYTCSMgnJFhSpgupn9u2317+8t+gAZt5oUk2J4YkUY1MZRmMKowmdSKrASNbGqCEwnsyT" + -+ "TWhUrlh3oNgZ8GhqBtNdRXgiTSJrkMpbkU2YAmTJieZy4dQUSrMZSnSdkWIC7NyxvWkqpYKzmpFo" + -+ "lrhaIJyCjNUCixzgkLAVTNw5FX86gaLEzxfVgoaGh5ouXLqKgchgJE3/lQwZwwoeEUQvuAWceg5R" + -+ "yeDNxhgY6nypqACBQPXj5wZTDF9NE00a4HKBSwBBBMmLjQJuTcEnp8jKfd2ET3QXNQN5Q28aSbrw" + -+ "VzmxFFJYHHkD0bTbfD6SlWVmdiJp9WQzVFmmONnX91fRB1EqlZZyavTw5OmP3iPx5/UCdf61719s" + -+ "3PAkquHmQugi+Btecdif69CHDp8qigXBYHCtnFFJ9rY/P0cc66rXP4yrZXR/8yMBSw+RSQdIPvTl" + -+ "rT87nOWBogA0NjY2yXLKnNsXqiSfaa94FosJbj8//HIFSrzTwSyrRW89GHYsbn70rgECgcD6cDj8" + -+ "69y+5t97AKsXzDTkk1C6HEQPeCQQPFCxEn3nwTO2pz/+8q4Acrlc8+TkZNes21c4PAWbbxtmBiwS" + -+ "uBaDZ0Zc9E4vjwfKqnA9tmuHb3d3wb/hs6MEnnritkMYj8fLBEH4YxZU2e59BXsVFHSw2UAUQZwR" + -+ "98zYIEq4DR23kkEQKxBrWzbXVD68WZ8IoiiJHkWTu+XM1FjOiFUbRv5AfuCr85a54lu3bq1fs2ZN" + -+ "r81mE9va2rLX+l4r9syqd3XTsXRa3FsC3lLw+qa/JaU4rFZEJYOgZhFnlqDI2M0CFKwsrbQgZy/1" + -+ "dB75ehOxn8ZvaEFLS0uTLMtcLw4gmxhm7zsWpzl4WvI7QfKDpxTEEhC9WK023EoWp6ri1jSciopT" + -+ "UaitECgtjVFePnDo0CfBFZ2f72q8Jn5DCwKBwLqzZ8/2/Jdnub8/WJ87V15Tu+mNt3Rh+RbsyxY7" + -+ "fSKiBUSnjtMSxZobx+ORh0p8qVPfnujsMPqPHL/lDGia1hyLxY7cNLrm5OXQ0f17gD3TDVcdLPEB" + -+ "BoQvA9E7noTRaLRGkqTfb2+caP0Qvvu/4tbW1mWqqtLQ0NDNPNUsgI0bNzan02na2trGFwQgEAis" + -+ "Gxsb62ceaxaAoijNyWSya8EA4vF4vWEYg/MJ8O8rkCRpS3t7O6FQKMECVSWgzLfoP0Pf/kzVF9v7" + -+ "AAAAAElFTkSuQmCC" + -+ ""; -+ blueIcon.size = new google.maps.Size(32, 32); -+ blueIcon.anchor = new google.maps.Point(4, 32); -+ -+ redIcon.url = -+ "data:image/png;base64," + -+ "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A" + -+ "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFDBcGFC46EYEAAASQSURBVFjD" + -+ "xZdbbBRVGMf/57Lbod2dgXZrSzskaAg21GARXLek8YFYA2oIQcHUQKLGRI1oIPaNBy9vPhDjCyHx" + -+ "gfhmmihpMSSiD2pIqRCpklIuttRiL7Dtbju7szvXc44PbElBUgGX9ktOMvl/k3y/+W6ZA9yD9ff3" + -+ "r8ZDMvpfL3R3d68fHR19ackAcrncZz09PVgyANd1t46MjOQeFgBfyNne3m66rgvRaJ4E8EgCeIwC" + -+ "PA9MOMDVhw6wcuXKlJ0v4OXhoZGP9+7VGigFtW1kslkMpdMYzmS+O3z9+sE0cP5BAdhCzt27d79x" + -+ "deDC5s6mx3lNGKLCshDJ5aA7DlYDSBrG2u3V1e9K142d87wfyp4B0zSTl789BoQ+wnQacnYWolBA" + -+ "GARQSoFTitpoFO/reudUEAx3O86RsgJIpTbHp2fgBD6cXA6FIEBRKYSl1MUphR8EmBYCT2naobIC" + -+ "NDc3L3d9n6+yZjEeOLCUQlEpBFIiABCjFBKAV9IVUFnWEmzcuDE1M2vDQIihkMGSEpNhCBCCesZg" + -+ "UAqhFFylYEuJWSHOlRWgubk5OXrxAioJxR+eh4yUWEEpaimFQSmqKEUgJVyl4CiF0657oKyLqLGx" + -+ "sXV8YBCXwxCTQqCCEGiEIE4pVlAKKAUPQEFKjAvR+6vv/1LWDAilkvSvIdRyjhVKQSOkGI9EtERV" + -+ "Fa3jHDO5HDwAJBrFScs6X+5FxO2CXS3sQtdR3/v8byH65hwGsOnFmpqzr65ahXByEqc8D3Wcv9NG" + -+ "yLFTnneyLCXYs2dPyrEL6C4WOuYHB4BNmnaw4Dg4fPEipurqMGHbMCjFumj0+ycikTVlAWhpaUnm" + -+ "8/kcIUTO19dHIvUaITsUAI0x9Fy5Ar00EQ2c45VY7M9nKiqe/d8Apmm2jo2N9d6p1zJ2iBMCASBU" + -+ "CtWcwygBGJTiUc6x3zB+3q/rR3GPe+GuAEEQpKanp0/P157kvJoT8poAwJVCJSHQCYFBCHRKb516" + -+ "xrCjqur1LxOJwoeG8c3T0ejW+25Cy7LMeDx+Zr62nLE3lxECqRQ4ITe/mjEYc8+lo5SCA6CaMSQp" + -+ "3bk+Gt05HASwpOzLK3VmynXH84zV+Ep91et5g//KQEdHR4vrumhra7ut+aaFOOIqVWSEQGcMOqU3" + -+ "g88rAQHgAfCVQljakp5SqGcMTYyltpnmB8+vXbvNc90vej1v8K4ZSKVSyWw2Kzs7O2fn6xfC0M5K" + -+ "WbNJ047XUfpcJaWIz0FQiggAVyn4paCOEAiEQKKhAVNKwYvFvn7v7NlP0sClBUtgmmbrwMBA791K" + -+ "Mymle7xYbP+Nsaa3DOOAqKh4gWiaaSxbhgjn0JRCGkBBCIScXwp0/afD/f3Hf7TtE/fcA77vJ2dm" + -+ "Zk4s1DgTQlz6NJt9e66RKdAUA5aHQFgExgBMPPAmzGQy6wzD+Og+RllKYPBB/1pva8Jdu3atcV0X" + -+ "GzZs6MMi2W0AW7ZsSebzeezbt29sSQBM02y9cePG71hEo3dcQpKWZfUtGUAmk0lKKUcWE+DWFOi6" + -+ "vr2rqwvXrl3LYonMBDCVSCT4Ygb9B9fYD7KPxTs8AAAAAElFTkSuQmCC" + -+ ""; -+ redIcon.size = new google.maps.Size(32, 32); -+ redIcon.anchor = new google.maps.Point(4, 32); -+ -+ setupWebChannel(); -+} -+ -+ -+function MarkerHandler(t, i) { -+ this.type = t; -+ this.number = i; -+} -+ -+MarkerHandler.prototype.clicked = function () { -+ mclicker.clickedX(this.type, this.number); -+}; -+ -+function RTPolyline(map, l, stp, enp, nm, ckobj) { -+ var s = new google.maps.Marker({map: map, position: stp, title: nm, icon: greenDotIcon}); -+ var e = new google.maps.Marker({map: map, position: enp, title: nm, icon: redDotIcon}); -+ -+ this.line = l; -+ this.start = s; -+ this.end = e; -+ this.bounds = calcBounds(l.getPath()); -+ attachHandler(l, ckobj); -+ attachHandler(s, ckobj); -+ attachHandler(e, ckobj); -+} -+ -+RTPolyline.prototype.hide = function () { -+ this.line.setVisible(false); -+ this.start.setVisible(false); -+ this.end.setVisible(false); -+}; -+ -+RTPolyline.prototype.show = function () { -+ this.line.setVisible(true); -+ this.start.setVisible(true); -+ this.end.setVisible(true); -+}; -+ -+RTPolyline.prototype.getBounds = function () { -+ return this.bounds; -+}; -+ -+function calcBounds(path) { -+ var bounds = new google.maps.LatLngBounds(); -+ path.forEach(function (e,n) { -+ bounds.extend(e); -+ }); -+ return bounds; -+} -+ -+function attachHandler(object, handler) { -+ object.addListener("click", function () { -+ handler.clicked(); -+ }); -+} -+ -+function setupWebChannel() { -+ if (typeof qt != "undefined") { -+ new QWebChannel(qt.webChannelTransport, function (channel) {mclicker = channel.objects.mclicker;}); -+ } -+} -+ -+google.maps.event.addDomListener(window, "load", initialize); - - </script> -+ - </head> - -- <body style="height:100%; -khtml-user-select:none;" onload="load()" onunload="GUnload()" topmargin="0" leftmargin="0"> -+ <body style="height:100%; -khtml-user-select:none;" topmargin="0" leftmargin="0"> - <div id="map" style="width:100% ; height:100%"></div> - </body> - </html> -diff --git a/gui/map.cc b/gui/map.cc -index 9ea04d66..d384a1f6 100644 ---- a/gui/map.cc -+++ b/gui/map.cc -@@ -27,8 +27,10 @@ - #include <QNetworkAccessManager> - #if HAVE_WEBENGINE - #include <QWebEngineView> -+#include <QWebEnginePage> - #include <QWebChannel> - #else -+#include <QWebView> - #include <QWebFrame> - #include <QWebPage> - #endif -@@ -73,21 +75,22 @@ Map::Map(QWidget *parent, - - #if HAVE_WEBENGINE - MarkerClicker *mclicker = new MarkerClicker(this); -- QWebChannel* channel = new QWebChannel(this); -+ QWebChannel* channel = new QWebChannel(this->page()); - this->page()->setWebChannel(channel); -+ // Note: A current limitation is that objects must be registered before any client is initialized. - channel->registerObject(QStringLiteral("mclicker"), mclicker); - connect(mclicker, SIGNAL(markerClicked(int, int )), this, SLOT(markerClicked(int, int))); - connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTime(const QString &))); - #endif - -- QString baseFile = QApplication::applicationDirPath() + "/gmapbase.html"; -+ QString baseFile = QApplication::applicationDirPath() + "/gmapbasev3.html"; - if (!QFile(baseFile).exists()) { - QMessageBox::critical(0, appName, - tr("Missing \"gmapbase.html\" file. Check installation")); - } - else { - QString urlStr = "file:///" + baseFile; -- load(QUrl(urlStr)); -+ this->load(QUrl(urlStr)); - } - } - -@@ -138,7 +141,7 @@ static QStringList makeLiteralVar(const QString &name, const string &s) - - //------------------------------------------------------------------------ - static QString fmtLatLng(const LatLng &l) { -- return QString("%1, %3").arg(l.lat(), 0, 'f', 5) .arg(l.lng(), 0, 'f', 5); -+ return QString("{lat: %1, lng: %3}").arg(l.lat(), 0, 'f', 5) .arg(l.lng(), 0, 'f', 5); - } - - //------------------------------------------------------------------------ -@@ -146,6 +149,7 @@ void Map::showGpxData() - { - - #if !defined(HAVE_WEBENGINE) -+ // Historically this was done here in showGpxData. - MarkerClicker *mclicker = new MarkerClicker(this); - this->page()->mainFrame()->addToJavaScriptWindowObject("mclicker", mclicker); - connect(mclicker, SIGNAL(markerClicked(int, int )), this, SLOT(markerClicked(int, int))); -@@ -160,21 +164,22 @@ void Map::showGpxData() - this->logTime("Start defining JS string"); - QStringList scriptStr; - scriptStr -- << "mclicker.logTimeX(\"Start JS execution\");" -- << "var map = new GMap2(document.getElementById(\"map\"));" -- << "var bounds = new GLatLngBounds;" -+ << "//mclicker.logTimeX(\"Start JS execution\");" -+ << "var map = new google.maps.Map(document.getElementById(\"map\"));" -+ << "var bounds = new google.maps.LatLngBounds();" - << "var waypts = [];" - << "var rtes = [];" - << "var trks = [];" -- << "map.enableScrollWheelZoom();" -- << "map.enableContinuousZoom();" -- << "map.addControl(new GLargeMapControl());" -- << "map.addControl(new GScaleControl());" -- << "map.addControl(new GMapTypeControl());" -- << "var pn = map.getPane(G_MAP_MARKER_PANE);" -- << "pn.style.KhtmlUserSelect='none';" -- << "pn.style.KhtmlUserDrag='none';" -- << "mclicker.logTimeX(\"Done prelim JS definition\");" -+ << "var idx;" -+ << "//map.enableScrollWheelZoom();" -+ << "//map.enableContinuousZoom();" -+ << "//map.addControl(new GLargeMapControl());" -+ << "//map.addControl(new GScaleControl());" -+ << "//map.addControl(new GMapTypeControl());" -+ << "//var pn = map.getPane(G_MAP_MARKER_PANE);" -+ << "//pn.style.KhtmlUserSelect='none';" -+ << "//pn.style.KhtmlUserDrag='none';" -+ << "//mclicker.logTimeX(\"Done prelim JS definition\");" - << QString("var zoomFactor = %1;").arg(zoomFactor) - << QString("var numLevels = %1;").arg(numLevels) - ; -@@ -185,8 +190,8 @@ void Map::showGpxData() - int num=0; - foreach (const GpxWaypoint &pt, gpx_.getWaypoints() ) { - scriptStr -- << QString("waypts[%1] = new GMarker(new GLatLng(%2), " -- "{title:\"%3\",icon:blueIcon});") -+ << QString("waypts[%1] = new google.maps.Marker({map: map, position: %2, " -+ "title: \"%3\", icon: blueIcon});") - .arg(num) - .arg(fmtLatLng(pt.getLocation())) - .arg(stripDoubleQuotes(pt.getName())); -@@ -194,86 +199,85 @@ void Map::showGpxData() - } - - scriptStr -- << "for( var i=0; i<waypts.length; ++i ) {" -- << " bounds.extend(waypts[i].getPoint());" -- << " var ftemp = new MarkerHandler(0, i);" -- << " GEvent.bind(waypts[i], \"click\", ftemp, ftemp.clicked);" -- << " map.addOverlay(waypts[i]);" -+ << "for (idx = 0; idx < waypts.length; idx += 1) {" -+ << " bounds.extend(waypts[idx].getPosition());" -+ << " attachHandler(waypts[idx], new MarkerHandler(0, idx));" - << "}" -- << "mclicker.logTimeX(\"Done waypoints definition\");" -+ << "//mclicker.logTimeX(\"Done waypoints definition\");" - ; - - // Tracks - num = 0; - foreach (const GpxTrack &trk, gpx_.getTracks()) { -- vector <LatLng> epts; -+ vector <LatLng> pts; -+ QString path; - foreach (const GpxTrackSegment seg, trk.getTrackSegments()) { - foreach (const GpxTrackPoint pt, seg.getTrackPoints()) { -- epts.push_back(pt.getLocation()); -+ pts.push_back(pt.getLocation()); - } - } -- string encPts, encLevels; -- encoder.dpEncode(encPts, encLevels, epts); -+ // maps v3 Polylines do not use encoded paths. -+ foreach (const LatLng ll, pts) { -+ path.append(fmtLatLng(ll)); -+ path.append(QLatin1String(", ")); -+ } -+ path.chop(2); - - scriptStr -- << QString("var startPt = new GLatLng(%1);").arg(fmtLatLng(epts[0])) -- << QString("var endPt = new GLatLng(%1);").arg(fmtLatLng(epts[epts.size()-1])) -- << QString("var idx = %1;").arg(num) -- << QString("var nm = \"%1\";").arg(stripDoubleQuotes(trk.getName())) -- << makeLiteralVar("encpts", encPts) -- << makeLiteralVar("enclvs", encLevels) -- -- << "var trk = GPolyline.fromEncoded({color:\"#0000E0\", weight:2, opacity:0.6," -- << "points:encpts, zoomFactor:zoomFactor, levels:enclvs, numLevels:numLevels});" -- << "trks[idx] = new RTPolyline(trk, startPt, endPt, new MarkerHandler(1, idx));" -+ << QString("trks[%1] = new RTPolyline(\n" -+ " map,\n" -+ " new google.maps.Polyline({map: map, strokeColor: \"#0000E0\", strokeWeight: 2, strokeOpacity: 0.6, path: [%2]}),\n" -+ " new google.maps.LatLng(%3),\n" -+ " new google.maps.LatLng(%4),\n" -+ " \"%5\",\n" -+ " new MarkerHandler(1, %1)\n);" -+ ).arg(num).arg(path).arg(fmtLatLng(pts.front())).arg(fmtLatLng(pts.back())).arg(stripDoubleQuotes(trk.getName())) -+ << QString("bounds.union(trks[%1].getBounds());").arg(num) - ; - num++; - } - - scriptStr -- << "for( var i=0; i<trks.length; ++i ) {" -- << " var trkbound = trks[i].getBounds();" -- << " bounds.extend(trkbound.getSouthWest());" -- << " bounds.extend(trkbound.getNorthEast());" -- << "}" -- << "mclicker.logTimeX(\"Done track definition\");" -+ << "//mclicker.logTimeX(\"Done track definition\");" - ; - - // Routes - num = 0; - foreach (const GpxRoute &rte, gpx_.getRoutes()) { -- vector <LatLng> epts; -+ vector <LatLng> pts; -+ QString path; - foreach (const GpxRoutePoint &pt, rte.getRoutePoints()) { -- epts.push_back(pt.getLocation()); -+ pts.push_back(pt.getLocation()); -+ } -+ // maps v3 Polylines do not use encoded paths. -+ foreach (const LatLng ll, pts) { -+ path.append(fmtLatLng(ll)); -+ path.append(QLatin1String(", ")); - } -- string encPts, encLevels; -- encoder.dpEncode(encPts, encLevels, epts); -+ path.chop(2); -+ - scriptStr -- << QString("var startPt = new GLatLng(%1);").arg(fmtLatLng(epts[0])) -- << QString("var endPt = new GLatLng(%1);").arg(fmtLatLng(epts[epts.size()-1])) -- << QString("var idx = %1;").arg(num) -- << QString("var nm = \"%1\";").arg(stripDoubleQuotes(rte.getName())) -- << makeLiteralVar("encpts", encPts) -- << makeLiteralVar("enclvs", encLevels) -- << "var rte = GPolyline.fromEncoded({color:\"#8000B0\", weight:2, opacity:0.6," -- << " points:encpts, zoomFactor:zoomFactor, levels:enclvs, numLevels:numLevels});" -- << "rtes[idx] = new RTPolyline(rte, startPt, endPt, new MarkerHandler(2, idx));" -+ << QString("rtes[%1] = new RTPolyline(\n" -+ " map,\n" -+ " new google.maps.Polyline({map: map, strokeColor: \"#0000E0\", strokeWeight: 2, strokeOpacity: 0.6, path: [%2]}),\n" -+ " new google.maps.LatLng(%3),\n" -+ " new google.maps.LatLng(%4),\n" -+ " \"%5\",\n" -+ " new MarkerHandler(2, %1)\n);" -+ ).arg(num).arg(path).arg(fmtLatLng(pts.front())).arg(fmtLatLng(pts.back())).arg(stripDoubleQuotes(rte.getName())) -+ << QString("bounds.union(rtes[%1].getBounds());").arg(num) - ; - num++; - } - - scriptStr -- << "for( var i=0; i<rtes.length; ++i ) {" -- << " var rtebound = rtes[i].getBounds();" -- << " bounds.extend(rtebound.getSouthWest());" -- << " bounds.extend(rtebound.getNorthEast());" -- << "}" - << "mclicker.logTimeX(\"Done route definition\");" - ; - - scriptStr -- << "map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));" -- << "mclicker.logTimeX(\"Done setCenter\");" -+ << "map.setCenter(bounds.getCenter());" -+ << "map.fitBounds(bounds);" -+ << "//mclicker.logTimeX(\"Done setCenter\");" - ; - - this->logTime("Done defining JS string"); -@@ -326,12 +330,13 @@ void Map::hideAllTracks() - } - - //------------------------------------------------------------------------ -+// TACKY: we assume the waypoints list and JS waypts[] are parallel. - void Map::showWaypoints(const QList<GpxWaypoint> &waypoints) - { - QStringList scriptStr; - int i=0; - foreach(const GpxWaypoint &pt, waypoints) { -- scriptStr << QString("waypts[%1].%2();").arg(i++).arg(pt.getVisible()?"show":"hide"); -+ scriptStr << QString("waypts[%1].setVisible(%2);").arg(i++).arg(pt.getVisible()?"true":"false"); - } - evaluateJS(scriptStr); - } -@@ -341,7 +346,7 @@ void Map::hideAllWaypoints() - QStringList scriptStr; - scriptStr - << "for( var i=0; i<waypts.length; ++i ) {" -- << " waypts[i].hide();" -+ << " waypts[i].setVisible(false);" - << "}" - ; - evaluateJS(scriptStr); -@@ -372,8 +377,8 @@ void Map::hideAllRoutes() - //------------------------------------------------------------------------ - void Map::setWaypointVisibility(int i, bool show) - { -- evaluateJS(QString("waypts[%1].%2();\n") -- .arg(i).arg(show?"show": "hide")); -+ evaluateJS(QString("waypts[%1].setVisible(%2);\n") -+ .arg(i).arg(show?"true": "false")); - } - - //------------------------------------------------------------------------ -@@ -401,7 +406,7 @@ void Map::setRouteVisibility(int i, bool show) - //------------------------------------------------------------------------ - void Map::panTo(const LatLng &loc) - { -- evaluateJS(QString("map.panTo(new GLatLng(%1));").arg(fmtLatLng(loc))); -+ evaluateJS(QString("map.panTo(new google.maps.LatLng(%1));").arg(fmtLatLng(loc))); - } - - //------------------------------------------------------------------------ -@@ -419,22 +424,24 @@ void Map::resizeEvent ( QResizeEvent * ev) - //------------------------------------------------------------------------ - void Map::setWaypointColorRed(int i) - { -- evaluateJS(QString("waypts[%1].setImage(redIcon.image)").arg(i)); -+ evaluateJS(QString("waypts[%1].setIcon(redIcon)").arg(i)); - } - - //------------------------------------------------------------------------ - void Map::setWaypointColorBlue(int i) - { -- evaluateJS(QString("waypts[%1].setImage(blueIcon.image)").arg(i)); -+ evaluateJS(QString("waypts[%1].setIcon(blueIcon)").arg(i)); - } - - //------------------------------------------------------------------------ - void Map::frameTrack(int i) - { - QStringList scriptStr; -+ - scriptStr -- << QString("var trkbound = trks[%1].getBounds();").arg(i) -- << "map.setCenter(trkbound.getCenter(), map.getBoundsZoomLevel(trkbound));" -+ << QString("map.setCenter(trks[%1].getBounds().getCenter());").arg(i) -+ << QString("map.fitBounds(trks[%1].getBounds());").arg(i) -+ - ; - evaluateJS(scriptStr); - } -@@ -445,8 +452,8 @@ void Map::frameRoute(int i) - { - QStringList scriptStr; - scriptStr -- << QString("var rtebound = rtes[%1].getBounds();").arg(i) -- << "map.setCenter(rtebound.getCenter(), map.getBoundsZoomLevel(rtebound));" -+ << QString("map.setCenter(rtes[%1].getBounds().getCenter());").arg(i) -+ << QString("map.fitBounds(rtes[%1].getBounds());").arg(i) - ; - evaluateJS(scriptStr); - } -@@ -455,6 +462,13 @@ void Map::frameRoute(int i) - //------------------------------------------------------------------------ - void Map::evaluateJS(const QString &s, bool upd) - { -+QFile data("output.txt"); -+if (data.open(QFile::WriteOnly | QIODevice::Append)) { -+ QTextStream out(&data); -+ out << s; -+ out << '\n'; -+} -+data.close(); - #if HAVE_WEBENGINE - this->page()->runJavaScript(s); - #else - -From 99ae1f4e7e73e094be3cac98fca89314ee3d7810 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Thu, 7 Dec 2017 10:49:24 -0700 -Subject: [PATCH 3/7] add debug clicker logging back, restore page name. - ---- - gui/map.cc | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gui/map.cc b/gui/map.cc -index d384a1f6..e4d3c1e7 100644 ---- a/gui/map.cc -+++ b/gui/map.cc -@@ -83,7 +83,7 @@ Map::Map(QWidget *parent, - connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTime(const QString &))); - #endif - -- QString baseFile = QApplication::applicationDirPath() + "/gmapbasev3.html"; -+ QString baseFile = QApplication::applicationDirPath() + "/gmapbase.html"; - if (!QFile(baseFile).exists()) { - QMessageBox::critical(0, appName, - tr("Missing \"gmapbase.html\" file. Check installation")); -@@ -164,7 +164,7 @@ void Map::showGpxData() - this->logTime("Start defining JS string"); - QStringList scriptStr; - scriptStr -- << "//mclicker.logTimeX(\"Start JS execution\");" -+ << "mclicker.logTimeX(\"Start JS execution\");" - << "var map = new google.maps.Map(document.getElementById(\"map\"));" - << "var bounds = new google.maps.LatLngBounds();" - << "var waypts = [];" -@@ -179,7 +179,7 @@ void Map::showGpxData() - << "//var pn = map.getPane(G_MAP_MARKER_PANE);" - << "//pn.style.KhtmlUserSelect='none';" - << "//pn.style.KhtmlUserDrag='none';" -- << "//mclicker.logTimeX(\"Done prelim JS definition\");" -+ << "mclicker.logTimeX(\"Done prelim JS definition\");" - << QString("var zoomFactor = %1;").arg(zoomFactor) - << QString("var numLevels = %1;").arg(numLevels) - ; -@@ -203,7 +203,7 @@ void Map::showGpxData() - << " bounds.extend(waypts[idx].getPosition());" - << " attachHandler(waypts[idx], new MarkerHandler(0, idx));" - << "}" -- << "//mclicker.logTimeX(\"Done waypoints definition\");" -+ << "mclicker.logTimeX(\"Done waypoints definition\");" - ; - - // Tracks -@@ -238,7 +238,7 @@ void Map::showGpxData() - } - - scriptStr -- << "//mclicker.logTimeX(\"Done track definition\");" -+ << "mclicker.logTimeX(\"Done track definition\");" - ; - - // Routes -@@ -277,7 +277,7 @@ void Map::showGpxData() - scriptStr - << "map.setCenter(bounds.getCenter());" - << "map.fitBounds(bounds);" -- << "//mclicker.logTimeX(\"Done setCenter\");" -+ << "mclicker.logTimeX(\"Done setCenter\");" - ; - - this->logTime("Done defining JS string"); - -From 3aff1296e36d47ca493d2d0b16d38871beaa37d2 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Thu, 7 Dec 2017 12:29:25 -0700 -Subject: [PATCH 4/7] improve js debug & cleanup unused map stuff. - ---- - gui/map.cc | 76 ++++++++++++++++++++++++-------------------------------------- - gui/map.h | 8 +++++++ - 2 files changed, 37 insertions(+), 47 deletions(-) - -diff --git a/gui/map.cc b/gui/map.cc -index e4d3c1e7..9bed4a32 100644 ---- a/gui/map.cc -+++ b/gui/map.cc -@@ -37,10 +37,15 @@ - #include <QApplication> - #include <QCursor> - #include <QFile> -+#include <QTextStream> - - #include <math.h> -+#include <string> -+#include <vector> - #include "appname.h" --#include "dpencode.h" -+ -+using std::string; -+using std::vector; - - //------------------------------------------------------------------------ - static QString stripDoubleQuotes(const QString s) { -@@ -92,6 +97,14 @@ Map::Map(QWidget *parent, - QString urlStr = "file:///" + baseFile; - this->load(QUrl(urlStr)); - } -+ -+#ifdef DEBUG_JS_GENERATION -+ dbgdata_ = new QFile("mapdebug.js"); -+ if (dbgdata_->open(QFile::WriteOnly | QIODevice::Truncate)) { -+ dbgout_ = new QTextStream(dbgdata_); -+ } -+#endif -+ - } - - //------------------------------------------------------------------------ -@@ -99,6 +112,16 @@ Map::~Map() - { - if (busyCursor_) - QApplication::restoreOverrideCursor(); -+#ifdef DEBUG_JS_GENERATION -+ if (dbgout_) { -+ delete dbgout_; -+ dbgout_ = NULL; -+ } -+ if (dbgdata_) { -+ delete dbgdata_; -+ dbgdata_ = NULL; -+ } -+#endif - } - //------------------------------------------------------------------------ - void Map::loadFinishedX(bool f) -@@ -115,30 +138,6 @@ void Map::loadFinishedX(bool f) - busyCursor_ = false; - } - --//------------------------------------------------------------------------ -- --static QStringList makeLiteralVar(const QString &name, const string &s) --{ -- QStringList out; -- out << QString("var %1 = ").arg(name); -- -- QString ws = "\""; -- for (unsigned int i=0; i<s.length(); i++) { -- if (s[i] =='\\') { -- ws += s[i]; -- } -- ws += s[i]; -- if (ws.length() > 5120) { -- ws += "\" + "; -- out << ws; -- ws = "\""; -- } -- } -- ws += "\";"; -- out << ws; -- return out; --} -- - //------------------------------------------------------------------------ - static QString fmtLatLng(const LatLng &l) { - return QString("{lat: %1, lng: %3}").arg(l.lat(), 0, 'f', 5) .arg(l.lng(), 0, 'f', 5); -@@ -155,11 +154,6 @@ void Map::showGpxData() - connect(mclicker, SIGNAL(markerClicked(int, int )), this, SLOT(markerClicked(int, int))); - connect(mclicker, SIGNAL(logTime(const QString &)), this, SLOT(logTime(const QString &))); - #endif -- // It is appreciably faster to do the encoding on the C++ side. -- int numLevels = 18; -- double zoomFactor = 2; -- PolylineEncoder encoder(numLevels, zoomFactor, 0.00001); -- - - this->logTime("Start defining JS string"); - QStringList scriptStr; -@@ -171,17 +165,7 @@ void Map::showGpxData() - << "var rtes = [];" - << "var trks = [];" - << "var idx;" -- << "//map.enableScrollWheelZoom();" -- << "//map.enableContinuousZoom();" -- << "//map.addControl(new GLargeMapControl());" -- << "//map.addControl(new GScaleControl());" -- << "//map.addControl(new GMapTypeControl());" -- << "//var pn = map.getPane(G_MAP_MARKER_PANE);" -- << "//pn.style.KhtmlUserSelect='none';" -- << "//pn.style.KhtmlUserDrag='none';" - << "mclicker.logTimeX(\"Done prelim JS definition\");" -- << QString("var zoomFactor = %1;").arg(zoomFactor) -- << QString("var numLevels = %1;").arg(numLevels) - ; - - mapPresent_ = true; -@@ -462,13 +446,11 @@ void Map::frameRoute(int i) - //------------------------------------------------------------------------ - void Map::evaluateJS(const QString &s, bool upd) - { --QFile data("output.txt"); --if (data.open(QFile::WriteOnly | QIODevice::Append)) { -- QTextStream out(&data); -- out << s; -- out << '\n'; --} --data.close(); -+#ifdef DEBUG_JS_GENERATION -+ *dbgout_ << s; -+ *dbgout_ << '\n'; -+ dbgout_->flush(); -+#endif - #if HAVE_WEBENGINE - this->page()->runJavaScript(s); - #else -diff --git a/gui/map.h b/gui/map.h -index 20dd949a..c25653f4 100644 ---- a/gui/map.h -+++ b/gui/map.h -@@ -29,8 +29,12 @@ - #endif - #include <QPlainTextEdit> - #include <QTime> -+#include <QFile> -+#include <QTextStream> - #include "gpx.h" - -+//#define DEBUG_JS_GENERATION -+ - class QNetworkAccessManager; - - -@@ -98,6 +102,10 @@ class Map : public QWebView - void routeClicked(int i); - - private: -+#ifdef DEBUG_JS_GENERATION -+ QFile *dbgdata_; -+ QTextStream *dbgout_; -+#endif - QNetworkAccessManager *manager_; - const Gpx &gpx_; - bool mapPresent_; - -From dd5931ab1e8d77d89e79b49d1176947b5443e3a3 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Thu, 7 Dec 2017 16:08:50 -0700 -Subject: [PATCH 5/7] update gmapbase.html for modern stds compliance. - ---- - gui/gmapbase.html | 17 +++++++---------- - 1 file changed, 7 insertions(+), 10 deletions(-) - -diff --git a/gui/gmapbase.html b/gui/gmapbase.html -index 73a14f53..d0be535b 100644 ---- a/gui/gmapbase.html -+++ b/gui/gmapbase.html -@@ -1,14 +1,11 @@ --<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> --<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%"> -+<!DOCTYPE html> -+<html style="height: 100%"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8"/> - <title>Google Maps JavaScript</title> -- <script src="https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBx9CSaJaOdcC5SV2LmaZZB6EOxFm1hLH4" -- type="text/javascript"></script> -- <script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"> -- </script> -- <script type="text/javascript"> -+ <script src="https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBx9CSaJaOdcC5SV2LmaZZB6EOxFm1hLH4"></script> -+ <script src="qrc:///qtwebchannel/qwebchannel.js"></script> -+ <script> - /*jslint - this, for - */ -@@ -164,7 +161,7 @@ - - </head> - -- <body style="height:100%; -khtml-user-select:none;" topmargin="0" leftmargin="0"> -- <div id="map" style="width:100% ; height:100%"></div> -+ <body style="height: 100%; margin: 0"> -+ <div id="map" style="width: 100%; height: 100%"></div> - </body> - </html> - -From 716989222715498c502a40e1e270b47fd2d16d66 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Thu, 7 Dec 2017 16:30:13 -0700 -Subject: [PATCH 6/7] delete obsolete & unused html files. - ---- - gui/basepage.html | 29 ---- - gui/testx.html | 121 --------------- - gui/testy.html | 449 ------------------------------------------------------ - 3 files changed, 599 deletions(-) - delete mode 100644 gui/basepage.html - delete mode 100644 gui/testx.html - delete mode 100644 gui/testy.html - -diff --git a/gui/basepage.html b/gui/basepage.html -deleted file mode 100644 -index 70ef378d..00000000 ---- a/gui/basepage.html -+++ /dev/null -@@ -1,29 +0,0 @@ --<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> --<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%"> -- <head> -- <meta http-equiv="content-type" content="text/html; charset=utf-8"/> -- <title>Google Maps JavaScript</title> -- <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAN6d3-kz3XqyJq-W9n7IYzhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxT_28W9HdpKXQF8sGkCU0sQpcudOQ" -- type="text/javascript"></script> -- <script type="text/javascript"> -- -- //<![CDATA[ -- -- function load() { -- if (GBrowserIsCompatible()) { -- var map = new GMap2(document.getElementById("map")); -- map.setCenter( new GLatLng(0,0),2 ); -- map.enableContinuousZoom(); -- map.disableDragging(); -- } -- } -- -- //]]> -- </script> -- </head> -- -- <body style="height:100%" onload="load()" onunload="GUnload()" topmargin="0" leftmargin="0"> -- <div id="map" style="width:100% ; height:100%"></div> -- </body> --</html> -diff --git a/gui/testx.html b/gui/testx.html -deleted file mode 100644 -index aeae96e2..00000000 ---- a/gui/testx.html -+++ /dev/null -@@ -1,121 +0,0 @@ --<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> --<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%"> -- <head> -- <meta http-equiv="content-type" content="text/html; charset=utf-8"/> -- <title>Google Maps JavaScript</title> -- <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAN6d3-kz3XqyJq-W9n7IYzhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxT_28W9HdpKXQF8sGkCU0sQpcudOQ" -- type="text/javascript"></script> -- <script type="text/javascript"> -- --myuri="data:image/png;base64,"+ --"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAQK0lEQVR4AQEgEN/vAP///wDg4OAA" + --"4ODgAODg4ADg4OAA4ODgAODg4ADg4OAA4ODgBNXV1RbPz88A0NDQAN3a1QCBj6MAAB9WAAQnXAAE" + --"J1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQn" + --"XAD///8AAP///wCWlpYAlpaWAJaWlgCWlpYAlpaWAJaWlgCUlJQAoqKiPJWVlWR6enoAg4F9AGZv" + --"fAAMLWAAAiVbAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdc" + --"AAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBkZGQAZGRkAGRkZABkZGQAZGRkAGRkZABgYGAAh4eH" + --"p2VlZYNHREAANz9KAAQkWAACJVsABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wA" + --"BCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cA" + --"Z2dnAGdnZwBkZGQGj4+P62xqZ3BFTl0AByhaAAElWwAEJ1sABCdcAAQnXAAEJ1wABCdcAAQnXAAE" + --"J1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBn" + --"Z2cAZ2dnAGdnZwBnZ2cAZ2dnAGdnZwBpaWkmlJOQ/T5JWUIBIFgSACJbMgImXTYAI1ooACBWCgEi" + --"VgAEJlsABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdc" + --"AAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAZ2dnAGZmZgB0c3JOfIGJ/z1ajdtvibr1eZPD" + --"/3KPxP9fgrz9Pmqp4xlIh6MDJ142AyNWAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wA" + --"BCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAZ2dnAGRkZACAf3x8" + --"ZXGF/4mgz/+lueH/kanZ/4Oh1v92nNj/aJzf/1Wc6f8vhtn/CT19gwMjVgAEJ1wABCdcAAQnXAAE" + --"J1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBn" + --"Z2cAZ2dnAGNjYwCKiISrV2iH/32Yz/99mc//b5DL/2GKzP9Th8//RYfX/ziQ5/8unv//H4bq/wcy" + --"cGwDJVgABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP//" + --"/wBnZ2cAZ2dnAGdnZwBnZ2cAZ2dnAGRkZAKOjYrVSGCL/26OzP9hhMT/VH3D/0d5xv85ec3/Kn7a" + --"/xyK7/8Rivf/GH/w/xtQp9sDI1UIBCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wA" + --"BCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAZ2dnAGpqaRyJior1OlmS/1d8w/9Hcbv/" + --"O228/yppwf8Za83/DXbh/wWF9f8Jf/H/IHHg/yxPqe8DJVgYBCdcAAQnXAAEJ1wABCdcAAQnXAAE" + --"J1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAZmZmAHRzckJ8" + --"gYf/LFKZ/z5puP8oXLP/EFGz/wNUvf8AYtH/AHns/wKE9v8QeOj/MGbT/yM/jMUBJFYABCdcAAQn" + --"XAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdn" + --"ZwBnZ2cAZGRkAIB+e2xpc4P/Hkuf/xtQrP8DQqr/AEiz/wBYxf8Abd3/AIL1/wiA8v8ccN//OFu+" + --"/w4taGICJlkABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8A" + --"AP///wBnZ2cAZ2dnAGdnZwBnZ2cAY2NjAIyKhZ1NX37/Azqg/wA7pv8ARrL/AFLA/wBi0/8AeOv/" + --"AoT3/w956v8vaNX/K0aOxQAkVgIEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAE" + --"J1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAZGRkAJOQi8kxTX//C0Kl/xRLofkW" + --"UKTtF1qw7xdvzf0QivP/B4T3/xpw4P88YL//DS9rmwIlWAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQn" + --"XAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBnZ2cAaGhoEpKR" + --"j/EgO2bDCC5oVgosXiQGKFoQByhaDgwuYUwWSZb/KnbM/zdy1/8nSZ7/AC6O/wQoYFAEJlkABCdc" + --"AAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dn" + --"AGdnZwBmZmYAcHBwNo6Ojf9iZ20uHThiAAAjWgAEJ1wABCZZAAIoaIEAK5T/DTeP/z9gov8FM5T/" + --"ADyo/wFAm+8EJ1s0BCVZAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD/" + --"//8AAP///wBnZ2cAZ2dnAGdnZwBkZGQAe3t7ZoSEhfF7encMenp8ABk2YgAAJFsABCdZGAEuhekA" + --"Mpz/AC+S/wMthf8AOaH/AEev/wBWxP8CT63rBClgRAQiUwAEJ1sABCdcAAQnXAAEJ1wABCdcAAQn" + --"XAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBjY2MAhYWFnX19fc1+fX0Ae3x9ABMy" + --"YAABJFkABCllfAAwk/8AMJH/AS+N/wA2nf8ARKz/AFG7/wBezP8Ab+H/AW3V/QNFjaEEJVggAyNV" + --"AAMmWgAEJ1wABCdcAAQnXAAEJ1wABCdcAAQnXAD///8AAP///wBnZ2cAZ2dnAGdnZwBkZGQAjY2N" + --"z3h4eJuIhoQAW2Z2AAAjWgAEJ1skAi1+8QEwk/8AMJL/ADWc/wBCqv8AT7j/AFzJ/wBp2P8Aduf/" + --"AYX5/wmD9/8QZMb1DkGKqQcsZU4CJVgSASRWAAElWAACJVkABCdcAAQnXAD///8AAP///wBnZ2cA" + --"Z2dnAGdnZwBoaGgMj4+P8XZ2dmSLiYYAOk1sAAAhWAAEKWZqADKa/wAxmP8AM5r/AD+n/wBNtv8A" + --"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"; -- --var myIcon = new GIcon(); --//myIcon.image = 'icons/image.png'; --myIcon.image = myuri; --myIcon.shadow = 'icons/shadow.png'; --myIcon.iconSize = new GSize(32,32); --myIcon.shadowSize = new GSize(48,32); --myIcon.iconAnchor = new GPoint(0,32); --myIcon.infoWindowAnchor = new GPoint(16,0); --myIcon.printImage = 'icons/printImage.gif'; --myIcon.mozPrintImage = 'icons/mozPrintImage.gif'; --myIcon.printShadow = 'icons/printShadow.gif'; --myIcon.transparent = 'icons/transparent.png'; --myIcon.imageMap = [9,0,9,1,9,2,9,3,14,4,16,5,17,6,18,7,19,8,19,9,18,10,18,11,18,12,17,13,18,14,19,15,20,16,22,17,25,18,30,19,29,20,27,21,25,22,22,23,19,24,21,25,25,26,26,27,23,28,6,29,6,30,6,31,1,31,1,30,1,29,3,28,3,27,3,26,3,25,3,24,4,23,4,22,4,21,4,20,4,19,5,18,5,17,5,16,5,15,5,14,6,13,6,12,6,11,6,10,6,9,6,8,7,7,7,6,7,5,7,4,7,3,8,2,8,1,8,0]; -- //<![CDATA[ -- function load() { -- if (GBrowserIsCompatible()) { -- var map = new GMap2(document.getElementById("map")); -- map.setCenter( new GLatLng(0,0),2 ); -- map.enableContinuousZoom(); -- map.disableDragging(); -- var marker = new GMarker(new GLatLng(45, -90)); -- map.addOverlay(marker); -- var marker2 = new GMarker(new GLatLng(0, 0), {icon:myIcon}); -- map.addOverlay(marker2); -- } -- } -- -- //]]> -- </script> -- </head> -- -- <body style="height:100%" onload="load()" onunload="GUnload()" topmargin="0" leftmargin="0"> -- <div id="map" style="width:100% ; height:100%"></div> -- </body> --</html> -diff --git a/gui/testy.html b/gui/testy.html -deleted file mode 100644 -index 3341b113..00000000 ---- a/gui/testy.html -+++ /dev/null -@@ -1,449 +0,0 @@ --<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> --<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%"> -- <head> -- <meta http-equiv="content-type" content="text/html; charset=utf-8"/> -- <title>Google Maps JavaScript</title> -- <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAN6d3-kz3XqyJq-W9n7IYzhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxT_28W9HdpKXQF8sGkCU0sQpcudOQ" -- type="text/javascript"></script> -- <script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js"> </script> -- <script type="text/javascript"> -- -- var blueIcon = new GIcon(); -- blueIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAQK0lEQVR4AQEgEN/vAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT0yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs7OzLLKysnQAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo6Oj" + -- "wWFhYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAm5ub/zw8PF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzQWlJOT/zMAAAoAAAAOAAAuNgAAMTwAABYeAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeXVxShomM/0Rln/t5kcH/h6DR" + -- "/32c0v9kicX/QG6u/xpTmrcAABgmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiYeL" + -- "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" + -- "gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAALW1tZdnZ2fXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrNNYWFibAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJubm/9UVFR2AAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMUEFB" + -- "Qf8gICBmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAGAAAAPcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAz867BuDoBEAAAAASUVORK5CYII=" + -- ""; -- -- blueIcon.shadow = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAAYK0lEQVR4AQEgGN/nAP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wAA////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AAD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAA////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AAD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAA////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAAKAAAACoAAAAqAAAAKgAAACoAAAAqAAAABgAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAD///8A////AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABUAAAAVAAAAFQAAABUAAAA" + -- "VAAAAFQAAABUAAAAVAAAAFQAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wAA////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQA" + -- "AABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8AAP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABU" + -- "AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/" + -- "//8A////AP///wD///8A////AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAFQAAABUAAAAVAAAAFIAAABUAAAAVAAA" + -- "AFIAAABUAAAAVAAAAFQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wAA////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAABAAAAFQAAABUAAAAVAAAAFQAAABUAAAAKgAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP//" + -- "/wD///8AAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAACAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAA" + -- "VAAAAFQAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A" + -- "////AP///wD///8A////AP///wD///8A////AAD///8A////AP///wD///8A////AP///wD///8A" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAAVAAAAFQA" + -- "AABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAAAsAAAAKgAAACoAAAAQAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wAA////AP//" + -- "/wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAqAAAANAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABU" + -- "AAAAVAAAAFQAAAAqAAAAKgAAABAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8AAP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAABoA" + -- "AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACoAAAAqAAAAKgAA" + -- "ACoAAAAqAAAAKgAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AAD///8A////AP///wD///8AAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wAA////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8AAP///wD///8AAAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAD///8AAAAAAAAA" + -- "AAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wBJdBZJOfZP2gAAAABJRU5ErkJggg==" + -- ""; -- blueIcon.iconSize = new GSize(32,32); -- blueIcon.shadowSize = new GSize(48,32); -- blueIcon.iconAnchor = new GPoint(4,32); -- blueIcon.infoWindowAnchor = new GPoint(16,0); -- blueIcon.printImage = -- "data:image/png;base64,"+ -- "R0lGODlhIAAgAOcAAAQCBARu3AQ+fHx+fDw+PARWtERurAQeRASG9DRGZJSu3ARKlDRuvAR67AQi" + -- "ZHyWzFRWVCRWtDyG5DxWvDQCBBRKnAQubAwWBBxyzAQ6pJSWlARi1FxunBR65CxizERmnAQujHSS" + -- "zCSO7FyKzAQCLCQiJCRClNTS1ASC9ARCpJSm3ExinISKjKyqpARKtGRiZBxSnKSinAwODAR25Bxe" + -- "rAQqVAx67Bx2zFR6vARSvAQCFARezDx6zByK7DRWxBxOnBQ2bAQSPBRmxDRizAQ2nFyW3CROjJSS" + -- "lLSytAxOrARy3BQ6hExOTARWxAQqhHye1FRedFSa5AQuhBRy5Aw+pJyWlDxmtAQynCSa/ARGtExq" + -- "pIyKhDRKjAQmVAyS/CxGfCR+3AR+7AQqbFxeXCxetFSGzAwudAQ+pARq3FRuvCRq1AQylDSO5GyO" + -- "zARGrKyurAROtFxqdKSmpAwuXAx+7GSCxAQGFDyCzBxOrAQWPCxKpBxClARaxBxu3JyalERqtDQy" + -- "NKS25DR6zGyW1CxezBR25DRq1CxWpCxqxISChERCRFxaXFRSVERivAyK9ExmrISi1ESG3HySxGSK" + -- "xER6xCxOlFRqnFxuxAwCBERuvBRKrCyO7AyC9Ax25Bw6hDRKbHya1AQydAwaDFR+xBRqzIyOjDxa" + -- "vARm1GRmZLS2tBxy3ARu5BR67AQulAQCNARCrKyqrBxSpKSipAQqXAQCHByK9BxOpAQSRAxOtARy" + -- "5IyKjAQmXAR+9AQqdAQ+rAROvAx+9ARazJyanP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMMALAAAAAAgACAA" + -- "AAj+AIcJHDjwBMGDCBMqRIJEocOHA2W9gEgxoTACFTMKBHSEAgASrnRofDiGxYcQkEBNMgBD5MiD" + -- "W6AEUpByUJEobAS8JCjnk4oHbUaUicQGSw8xOwXG+NKmDg5KgsD0cFTIVlIAVSrhMMAAkZBOKID1" + -- "0ZO05CErZHDl2NAARachJpKWihOhgi8XwZSg4NXH1IGkLRJQyZAlx6m2HTxwSTpMDhA8FWLRwOCF" + -- "byMHjKvMCTIQwBJBhvas6bJzka6Dva440dIqQwo7L0sNICgKxBrVGdw0KZBnJKyJA1ODkELETY4d" + -- "aJQs0CiHycALUmwTefUrGJoZKDgJqfAX4hEIA8WPXGl1xRccPqdy7e3UR80QPSY8mZm16yCEUqUG" + -- "YpJy5YyLJunxgoIN7RHiwwQTpLHCLQgdkQhCFiTRxAartNXJFGoYeMkKlriE0BuoJKTDDzTc0MMm" + -- "EvBghRaW1AARLIxABAAttACg0RFjMOYQE/jpqJAwD/qYUCohCokQLIsYiZAw4Ck5kAyKlOBkZzZO" + -- "GRAAOw==" + -- ""; -- -- blueIcon.mozPrintImage = -- "data:image/png;base64,"+ -- "R0lGODdhIAAgAOcAAAQGBAR25Hx6fAQ+pERCRKy2vER6xARaxJSWlFRedCR+3CxGfFyKzBxerMzO" + -- "zJyWlDxmtASG9AROtLy6tBx2zGR2lARq3KympAQqhFxqdExmrAR+7ISKjBxOnCxqrAQujARGrFSC" + -- "rJSm3CSO7GyKrMTGxDRizDxalHyWzERenNza3ARWtBRqzKSutHyOrCxOlKS25FR2rARi1JyenDRu" + -- "vLzCzAx+7Bxu3AQ2nAw+pLSytDR6zByK7AxOrGyGrARy3BxWpGyOzERmpFR+xAx25ARCpFSa5Cxe" + -- "tNTW1Ly+xBR25BQ2bExqpJSSlAQynBRKrCSa/DRWxHye1KyurFx6rERqtBxyzLS2tDyCzISChDRG" + -- "ZARezIyatBxClNTS1JyalARSvLy+vARu3KyqtFxuxASC9IyKjBxOrAQylARKtESG3DSO5MzKzExi" + -- "pOTi5HySxFR6vBRmxKSinAyC9BSS/HSCrGyW1CxezBR65FxupDxWvERuvAR67Hx+fAQ+rARazFRm" + -- "hCxKpGx+rFSGzBRy5FRuvGSCxCxWpBQ6hDyG5DRq1CxqxJSu3CRWtExmlERivISStCRq1FyW3AyK" + -- "9HSSzISi1GSKxHSKpMTCxCyO7ARWxDx6zBxy3KyqrHya1ERilAQ6pAx67ERurDRKbFxynAQuhNze" + -- "3FR6rARm1IyetIyOjCxizDxavMzO1AROvLy6vAR+9BxOpAQulARGtMTGzKSuvAx+9LSyvByK9AxO" + -- "tARy5ARCrKyutLS2vJyanARu5KSipBR67AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAIAAgAAAI/gDduDEl" + -- "kODAgwgNKizIcODCgyrYJGz48OHEgVeAHSRYkaJHjgJnaBTIEORFkwYLemmCBAkvXiVSekQ4U+AV" + -- "DkLeVJJiaU+IMCk7WuR4JQEMRpU82ZFkJBMJUzJJSjVZUMcoESiCMBikZg0UHlwmggxKc8YCrXAM" + -- "7NgxaQ6eWDSlkkTpBsmXF3BEQVjEgkgEG5ECzd1IVWYYDocgHMkFRgafMsFWpRBb0uOVDI2eDJBw" + -- "QFcZWDdYFaA5lPQELUVAgWjMJ4KSVXnGfmwo8MKSJx2ANKBAhw+hR6QGXxROEAGgXhzDINqhqMuH" + -- "WnEXWizBYfAnJxiYyBpQpMTGmgrD7vRBiOSDE+w4Zq1YgXymRfFzHTkp9QHH6i2/foToSLwTgo30" + -- "oYHDLq5sYUEAZZQRxyktUKYQAlcUdAkaaDjhB2eoeAaLEoREskogQvjgQgU1NFSCKkGV4sQAaWgi" + -- "gy6wlEEEJ5HcoceNhQjiwEMl9DGWKSf04OIvG8jY4R1RFNIGJEBNNRB8cplSAgkeWMFDJolsAgEV" + -- "qUAnHUJTICDbd2HwcksrTkYnEIRq0vXdSW44oAoSg8nkJpwElZAFacQ5SFuePvIpV2VxJXSFKnV+" + -- "RxWfD80wQ5uD2hnlQDMQ0ISiiX5JqEBsAFCobIu6GRAAOw==" + -- ""; -- blueIcon.printShadow = -- "data:image/png;base64,"+ -- "R0lGODlhMAAgAIAAAISChP///yH5BAEAAAEALAAAAAAwACAAAAI6jI+py+0Po5y02ouz3rz7D4bi" + -- "SJbmiabqyrYd4CLwHNApjddobu96foIpeisey0g0IXWxkLD5bEqbBQA7" + -- ""; -- blueIcon.transparent = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAQK0lEQVR4AQEgEN/vAP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////ANPT0wL///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8AAP///wD///8A////AP///wD///8A////AP///wD///8As7OzArKysgL///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wD///8Ao6Oj" + -- "AmFhYQL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A" + -- "////AP///wD///8Am5ubAjw8PAL///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD/" + -- "//8A////AP///wD///8A////AP///wAzMzQClJOTAjMAAAIAAAACAAAuAgAAMQIAABYC////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wBeXVwChomMAkRlnwJ5kcECh6DR" + -- "An2c0gJkicUCQG6uAhpTmgIAABgC////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AP///wCKiYcC" + -- "UV50AqO34gKXrdgCh6LTAnqa0gJsltMCX5XaAlWb5gIwjOICBD1+Av///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD/" + -- "//8A////AP///wClpKICNEltApCn2AJ5ls0CbI7LAl6IywJRhs8CQ4fYAjSO5wInmPkCH4juAgQs" + -- "aQL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP//" + -- "/wD///8A////AP///wD///8A////AP///wCjoZ4CLEd5AnKQygJgg8ICUnzCAkR4xgI2eM4CJ33b" + -- "AhqK8AIPifYCFXjnAhxPpgL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8AAP///wD///8A////AP///wD///8A////AAAAAAKcmZMCKk+SAlV5vgJFb7oC" + -- "N2y8AipqwgIXas4CCnbhAgOE9wIJfe4CHm7cAixKoQL///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AF1cWwKJ" + -- "i4sCKlWmAjlltAIoXbMCC0+zAgBRvQIAZNMCAHvtAgOD9QIRd+YCL2LMAiZBkAL///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP//" + -- "/wD///8A////AI6NiwJfaXUCJlWxAhRKqAIAPqgCAEu1AgBbyAIAb+ACAIP2Agl+7wIcbtsCPFi6" + -- "AgAdRwL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "AP///wD///8A////AP///wD///8A////AKqppgIxRGcCCD+lAgA7pAIARa8CAFK+AgBk0wIAe+0C" + -- "A4P1AhF35gIsYc0CMkuPAv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AKeloQIVNW4CGU6rAhpNnQIb" + -- "UqECG12tAh50zgIPk/8CBXzwAhtt2wJFYroCACBkAv///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8A////AJmX" + -- "lQIPLVoCABA4Av///wD///8A////AAAAAAIROIcCOoDNAjJp1QIbQZECADGVAgUkUgL///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////" + -- "AP///wD///8AWVlZAoyMjQL///8A////AP///wD///8A////AAIrdQIAMJkCACmHAk5qoQIALJYC" + -- "AD2lAgBDoQIFBhUC////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8AAP///wD///8A////AP///wD///8Ajo6OAn9/fwL///8A////AP///wD///8ACRkMAgAvjAIA" + -- "MZcCADGYAgApggIAOqMCAEewAgBVwgIAVbYCBRQ8Av///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8AqqqqAmJiYgL///8A////AP//" + -- "/wD///8AAipyAgAxmQIAL4sCAC6JAgA4oQIARa0CAFG8AgBezAIAbN0CAHHdAgNJkwL///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AP///wD///8ApKSk" + -- "Ak1NTQL///8A////AP///wAJFwUCAS2CAgAvjgIAMJcCADWdAgBCqwIAT7kCAFzJAgBp2QIAducC" + -- "AIP2AgqC9gIQZMYCEUiYAgAcRwL///8A////AP///wD///8A////AP///wD///8AAP///wD///8A" + -- "////AP///wD///8Ak5OTAlZWVgL///8A////AP///wADKWkCADGbAgAwlgIAM5oCAECoAgBNtwIA" + -- "WsYCAGbWAgBz5AIAgfMCCH/xAhJ25gIbb90CJmnWAjFgygIsSaACI0CQAho5gwINLnACBypeAgMm" + -- "WwL///8AAP///wD///8A////AP///wBVVVUCjIyMAo+PjwL///8A////AP///wANAgACAi2BAgAy" + -- "mwIAPaYCAEq0AgBXwwIAZNMCAHHiAgB/8QIFgfMCEHjoAhlw3gIkaNQCL2DKAjhXvQI8VbwCPFS+" + -- "AlZsvwJJYp0CABJEAv///wD///8AAP///wD///8A////AP///wCTk5MCf39/Av///wD///8A////" + -- "AP///wD///8A////AAYwdgIMTqwCAFbFAgBh0gIAb+ECAHzvAgKB9AINeOkCFnDgAiFp1wIqX8wC" + -- "NVfBAlluxgJLZKoCUWmYAgAAGAL///8A////AP///wD///8AAP///wD///8A////AP///wCvr68C" + -- "ZGRkAv///wD///8A////AP///wD///8A////AP///wAAAhUCIU+MAhxfqwIcc8kCIozsAi2N7wI4" + -- "h+QCPnnMAkBqtAJKaacCWG+ZAgQoUAL///8A////AP///wD///8A////AP///wD///8AAP///wD/" + -- "//8A////AP///wCoqKgCUlJSAv///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8AAAAHAgAAHQIAAB0CAAAAAv///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8AAP///wD///8A////AP///wCUlJQCXl5eAv///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8AAP///wD///8A////AE9PTwKMjIwCj4+PAv///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AJmZmQKA" + -- "gIAC////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP//" + -- "/wD///8A////ALW1tQJnZ2cC////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8AAP///wD///8A////AKysrAJYWFgC////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8AAP///wD///8A////AJubmwJUVFQC////AP///wD/" + -- "//8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//" + -- "/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAP///wD///8ADAwMAkFB" + -- "QQIgICAC////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////" + -- "AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "AP///wD///8AAAAAAgAAAAL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A" + -- "////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/" + -- "//8A////AP///wD///8AVS7w8bXTfrgAAAAASUVORK5CYII=" + -- ""; -- blueIcon.imageMap = [9,0,9,1,9,2,9,3,13,4,16,5,17,6,18,7,18,8,18,9,18,10,18,11,17,12,17,13,18,14,19,15,20,16,21,17,24,18,30,19,29,20,27,21,24,22,20,23,5,24,5,25,4,26,4,27,4,28,4,29,4,30,3,31,2,31,2,30,3,29,3,28,3,27,3,26,3,25,4,24,4,23,4,22,4,21,4,20,5,19,5,18,5,17,5,16,5,15,6,14,6,13,6,12,6,11,6,10,6,9,7,8,7,7,7,6,7,5,7,4,8,3,8,2,8,1,9,0]; -- -- var redIcon = new GIcon(blueIcon); -- redIcon.image = -- "data:image/png;base64,"+ -- "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAQK0lEQVR4AQEgEN/vAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/PzyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsbGxLrCwsGwAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo6Oj" + -- "t2JiYmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAm5ub/0FBQV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFRUUck5OT/z5cXRgAAAAWFAAAOBYAADwJAAAiAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeXl5Uh4aI/5E5Ofe+XV3/2F9f" + -- "/9pTU//HQUH/oysr/4AYGLMWAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYWL" + -- "ZFlb/+5xcf/pY2P/51JS/+VERP/kOTn/4zIy/+c0NP/MLCz/ZA4OiwAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAChoaHBXjM0/+5VVf/lPz//4y8v/+AkJP/cHx//2x4e/98gIP/hJib/0Rwc/08J" + -- "CWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfoKD7ax8j/+UuLv/cICD/0Rsb/8caGv/DGhr/xhoa" + -- "/9McHP/NGxv/uRgY/4EREfUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKxCXmpr/iBAT/8oaGv+7GRn/" + -- "sRgY/6wWFv+nFhb/sxgY/8QaGv+9GRn/rxcX/4AREf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eXkiG" + -- "io7/lRAP/6YWFv+XFBT/fhAQ/34REf+WFBT/thgY/8EZGf+1GBj/oxUV/3AODs0AAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAImJiX5qYWP/kBER/3cPD/9kDQ3/dQ8P/4oSEv+lFhb/wRoa/7wYGP+tFxf/mhQU" + -- "/zcGBj4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKSkpLdPNTn/aQ0N/14MDP9rDg7/fRAQ/5cUFP+2GBj/" + -- "wRkZ/7UYGP+iFRX/fxERxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGjo+1RFRX/fhER/3oQEP+C" + -- "ERH1jxYW/ashIf/NJSX/vBcX/64XF/+jGxv/OQYGlwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJWY" + -- "l/9OCQqpHQMDOAAAAAAAAAAAAAAAAA8AADRaExP/sTAw/6oXF/9nFBT/UAoK/zwHB0YAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAXFxcPIyMjP////8CAAAAAAAAAAAAAAAAAAAAAEMICK9PCgr/RwcH/5UuLv9NCAj/" + -- "XwwM/2YNDf8sBQUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyMcn9/f/EAAAAAAAAAAAAAAAAAAAAALgUFGEsJCf9O" + -- "Cgr/TwoK/0cICP9bCwv/bg4O/4AREf+AERH/NwcHPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioq2NjY7cAAAAAAAAAAAAA" + -- "AAAAAAAAQwgIpU8KCv9LCgr/SwkJ/1kMDP9qDg7/fRAQ/48TE/+hFRX/pxYW/3AODp8AAAAKAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo6Oj" + -- "409PT34AAAAAAAAAAAAAAAAvBAQSRwkJ/0wKCv9PCQn/VQoK/2cNDf95Dw//ixIS/50VFf+vFxf/" + -- "vxkZ/8AZGf+bFBT/cw8PrTUGBkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAlJSU/1xcXEgAAAAAAAAAAAAAAAA/Bwd0UAoK/04JCf9TCgr/ZAwM/3YQEP+I" + -- "ERH/mhQU/6wXF/++GRn/vhgY/7YYGP+tFxf/qRYW/6EVFf9+EBD/bw4Ox2INDZFNBQV2QAgIiToH" + -- "ByoAAAAAAAAAAAAAAAAAAAAAAAAAAABZWVkwjIyM/5iYmBAAAAAAAAAAAAAAAAArBAQMSAkJ9VEK" + -- "Cv9hDQ3/cg4O/4UREf+XFBT/qRYW/7sZGf+/GRn/txgY/7AXF/+pFhb/oRUV/5oUFP+WExP/lxER" + -- "/6spKf+TKyu/OQAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRkZFmf39//QAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAGQICCE0KCrt4Dw//ghER/5ITE/+mFRX/uBgY/8AZGf+4GBj/sRcX/6kWFv+gExP/" + -- "mxAQ/64qKv+ZKSn/kjU1pxYAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtra2f" + -- "ZWVlwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAwMofhISmY8aGuOnIiL/xysr/8wvL//I" + -- "Li7/si4u/54rK/+aLy/XlT09l0QMDEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAACnp6fVVFRUiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAACAgAAKg4AADoKAAA2AAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUlJT/Y2NjVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVSSMjIz/lJSUHAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeXl1p/" + -- "f3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAALOzs5NoaGjPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKurq8lZWVmXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiYmP9XV1d2AAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OTkJC" + -- "Qv8kJCRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAHAAAAOsUFBQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + -- "AAAAAAAAAAAAAAAAAAAAakHkz/3IBgAAAAAASUVORK5CYII=" + -- ""; -- -- -- function load() { -- if (GBrowserIsCompatible()) { -- var map = new GMap2(document.getElementById("map")); -- map.setCenter( new GLatLng(0,0),2 ); -- map.enableContinuousZoom(); -- map.disableDragging(); -- var marker = new GMarker(new GLatLng(45, -90)); -- map.addOverlay(marker); -- var mgr = new MarkerManager(map); -- var marker2 = new GMarker(new GLatLng(0, 0), {icon:redIcon}); -- map.addOverlay(marker2); -- var pn = map.getPane(G_MAP_MARKER_PANE); -- //var div = document.getElementById(pn); -- pn.style.KhtmlUserSelect='none'; -- pn.style.KhtmlUserDrag='none'; -- } -- } -- -- -- </script> -- </head> -- -- <body style="height:100%; -khtml-user-select:none;" onload="load()" onunload="GUnload()" topmargin="0" leftmargin="0"> -- <div id="map" style="width:100% ; height:100%"></div> -- </body> --</html> - -From 707f3f6f21b74e47e23fc6409a22018bcffe3ed0 Mon Sep 17 00:00:00 2001 -From: tsteven4 <tstev...@gmail.com> -Date: Fri, 8 Dec 2017 08:20:30 -0700 -Subject: [PATCH 7/7] gui map js beautification and corrections. - ---- - gui/map.cc | 56 ++++++++++++++++++++++++++++++++++---------------------- - 1 file changed, 34 insertions(+), 22 deletions(-) - -diff --git a/gui/map.cc b/gui/map.cc -index 9bed4a32..a4fe2a26 100644 ---- a/gui/map.cc -+++ b/gui/map.cc -@@ -143,6 +143,28 @@ static QString fmtLatLng(const LatLng &l) { - return QString("{lat: %1, lng: %3}").arg(l.lat(), 0, 'f', 5) .arg(l.lng(), 0, 'f', 5); - } - -+//------------------------------------------------------------------------ -+static QString makePath(const vector <LatLng> &pts) { -+ // maps v3 Polylines do not use encoded paths. -+ QString path; -+ int lncount = 0; -+ bool someoutput = false; -+ foreach (const LatLng ll, pts) { -+ if (lncount == 0) { -+ if (someoutput) { -+ path.append(QChar(',')); -+ } -+ path.append(QLatin1String("\n ")); -+ } else if (lncount == 1) { -+ path.append(QLatin1String(", ")); -+ } -+ path.append(fmtLatLng(ll)); -+ someoutput = true; -+ lncount = (lncount + 1) % 2; -+ } -+ return path; -+} -+ - //------------------------------------------------------------------------ - void Map::showGpxData() - { -@@ -200,17 +222,12 @@ void Map::showGpxData() - pts.push_back(pt.getLocation()); - } - } -- // maps v3 Polylines do not use encoded paths. -- foreach (const LatLng ll, pts) { -- path.append(fmtLatLng(ll)); -- path.append(QLatin1String(", ")); -- } -- path.chop(2); -+ path = makePath(pts); - - scriptStr - << QString("trks[%1] = new RTPolyline(\n" - " map,\n" -- " new google.maps.Polyline({map: map, strokeColor: \"#0000E0\", strokeWeight: 2, strokeOpacity: 0.6, path: [%2]}),\n" -+ " new google.maps.Polyline({\n map: map,\n strokeColor: \"#0000E0\",\n strokeWeight: 2,\n strokeOpacity: 0.6,\n path: [%2\n ]\n }),\n" - " new google.maps.LatLng(%3),\n" - " new google.maps.LatLng(%4),\n" - " \"%5\",\n" -@@ -233,17 +250,12 @@ void Map::showGpxData() - foreach (const GpxRoutePoint &pt, rte.getRoutePoints()) { - pts.push_back(pt.getLocation()); - } -- // maps v3 Polylines do not use encoded paths. -- foreach (const LatLng ll, pts) { -- path.append(fmtLatLng(ll)); -- path.append(QLatin1String(", ")); -- } -- path.chop(2); -+ path = makePath(pts); - - scriptStr - << QString("rtes[%1] = new RTPolyline(\n" - " map,\n" -- " new google.maps.Polyline({map: map, strokeColor: \"#0000E0\", strokeWeight: 2, strokeOpacity: 0.6, path: [%2]}),\n" -+ " new google.maps.Polyline({\n map: map,\n strokeColor: \"#8000B0\",\n strokeWeight: 2,\n strokeOpacity: 0.6,\n path: [%2\n ]\n }),\n" - " new google.maps.LatLng(%3),\n" - " new google.maps.LatLng(%4),\n" - " \"%5\",\n" -@@ -306,8 +318,8 @@ void Map::hideAllTracks() - { - QStringList scriptStr; - scriptStr -- << "for( var i=0; i<trks.length; ++i ) {" -- << " trks[i].hide();" -+ << "for (idx = 0; idx < trks.length; idx += 1) {" -+ << " trks[idx].hide();" - << "}" - ; - evaluateJS(scriptStr); -@@ -329,8 +341,8 @@ void Map::hideAllWaypoints() - { - QStringList scriptStr; - scriptStr -- << "for( var i=0; i<waypts.length; ++i ) {" -- << " waypts[i].setVisible(false);" -+ << "for (idx = 0; idx < waypts.length; idx += 1) {" -+ << " waypts[idx].setVisible(false);" - << "}" - ; - evaluateJS(scriptStr); -@@ -352,8 +364,8 @@ void Map::hideAllRoutes() - { - QStringList scriptStr; - scriptStr -- << "for( var i=0; i<rtes.length; ++i ) {" -- << " rtes[i].hide();" -+ << "for (idx = 0; idx < rtes.length; idx += 1) {" -+ << " rtes[idx].hide();" - << "}" - ; - evaluateJS(scriptStr); -@@ -408,13 +420,13 @@ void Map::resizeEvent ( QResizeEvent * ev) - //------------------------------------------------------------------------ - void Map::setWaypointColorRed(int i) - { -- evaluateJS(QString("waypts[%1].setIcon(redIcon)").arg(i)); -+ evaluateJS(QString("waypts[%1].setIcon(redIcon);").arg(i)); - } - - //------------------------------------------------------------------------ - void Map::setWaypointColorBlue(int i) - { -- evaluateJS(QString("waypts[%1].setIcon(blueIcon)").arg(i)); -+ evaluateJS(QString("waypts[%1].setIcon(blueIcon);").arg(i)); - } - - //------------------------------------------------------------------------ Deleted: gpsbabel.appdata.xml =================================================================== --- gpsbabel.appdata.xml 2019-06-19 11:39:48 UTC (rev 482341) +++ gpsbabel.appdata.xml 2019-06-19 11:39:52 UTC (rev 482342) @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component type="desktop-application"> - <id>org.gpsbabel.gpsbabel</id> - <launchable type="desktop-id">gpsbabel.desktop</launchable> - <name>GPSBabel</name> - <summary>Qt GUI interface for GPSBabel</summary> - <metadata_license>CC0-1.0</metadata_license> - <project_license>GPL-2.0</project_license> - <description> - <p>GPSBabel converts waypoints, tracks, and routes between popular GPS receivers such as Garmin or Magellan and mapping programs like Google Earth or Basecamp. Literally hundreds of GPS receivers and programs are supported. It also has powerful manipulation tools for such data. such as filtering duplicates points or simplifying tracks.</p> - </description> - <screenshots> - <screenshot type="default"> - <image>https://screenshots.debian.net/screenshots/000/015/197/large.png</image> - </screenshot> - </screenshots> - <url type="bugtracker">https://github.com/gpsbabel/gpsbabel/issues</url> - <url type="homepage">https://www.gpsbabel.org/</url> -</component> Copied: gpsbabel/repos/community-x86_64/gpsbabel.appdata.xml (from rev 482341, gpsbabel/trunk/gpsbabel.appdata.xml) =================================================================== --- gpsbabel.appdata.xml (rev 0) +++ gpsbabel.appdata.xml 2019-06-19 11:39:52 UTC (rev 482342) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="desktop-application"> + <id>org.gpsbabel.gpsbabel</id> + <launchable type="desktop-id">gpsbabel.desktop</launchable> + <name>GPSBabel</name> + <summary>Qt GUI interface for GPSBabel</summary> + <metadata_license>CC0-1.0</metadata_license> + <project_license>GPL-2.0</project_license> + <description> + <p>GPSBabel converts waypoints, tracks, and routes between popular GPS receivers such as Garmin or Magellan and mapping programs like Google Earth or Basecamp. Literally hundreds of GPS receivers and programs are supported. It also has powerful manipulation tools for such data. such as filtering duplicates points or simplifying tracks.</p> + </description> + <screenshots> + <screenshot type="default"> + <image>https://screenshots.debian.net/screenshots/000/015/197/large.png</image> + </screenshot> + </screenshots> + <url type="bugtracker">https://github.com/gpsbabel/gpsbabel/issues</url> + <url type="homepage">https://www.gpsbabel.org/</url> +</component>