From 9e7fe3d33fe86990d43d8f63378d6ee3332273f7 Mon Sep 17 00:00:00 2001
From: Jerome Benoit
Date: Sun, 29 Aug 2021 13:45:57 +0100
Subject: [PATCH] Import merkaartor_0.19.0+ds.orig.tar.xz
[dgit import orig merkaartor_0.19.0+ds.orig.tar.xz]
---
.../INSTALL.TXT | 254 +
.../LGPL_EXCEPTION.txt | 23 +
.../LICENSE.GPL3 | 674 ++
.../LICENSE.LGPL | 504 ++
.../README.TXT | 7 +
.../buildlib/buildlib.pro | 13 +
.../common.pri | 6 +
.../config.pri | 0
.../configure | 112 +
.../doc/html/classic.css | 139 +
.../doc/html/images/qt-logo.png | Bin 0 -> 4075 bytes
.../doc/html/index.html | 48 +
.../doc/html/qtlockedfile-members.html | 166 +
.../doc/html/qtlockedfile.html | 111 +
.../qtsingleapplication-example-loader.html | 184 +
.../qtsingleapplication-example-trivial.html | 110 +
.../doc/html/qtsingleapplication-members.html | 231 +
.../html/qtsingleapplication-obsolete.html | 31 +
.../doc/html/qtsingleapplication.dcf | 53 +
.../doc/html/qtsingleapplication.html | 160 +
.../doc/html/qtsingleapplication.index | 112 +
.../doc/html/qtsingleapplication.qch | Bin 0 -> 52224 bytes
.../doc/html/qtsingleapplication.qhp | 65 +
...singlecoreapplication-example-console.html | 127 +
.../html/qtsinglecoreapplication-members.html | 126 +
.../doc/html/qtsinglecoreapplication.html | 94 +
.../doc/images/qt-logo.png | Bin 0 -> 4075 bytes
.../doc/index.qdoc | 47 +
.../examples/console/console.pro | 5 +
.../examples/console/console.qdoc | 71 +
.../examples/console/main.cpp | 95 +
.../examples/examples.pro | 4 +
.../examples/loader/file1.qsl | 1 +
.../examples/loader/file2.qsl | 1 +
.../examples/loader/loader.pro | 5 +
.../examples/loader/loader.qdoc | 87 +
.../examples/loader/main.cpp | 158 +
.../examples/trivial/main.cpp | 84 +
.../examples/trivial/trivial.pro | 5 +
.../examples/trivial/trivial.qdoc | 82 +
.../qtsingleapplication.pro | 6 +
.../src/QtLockedFile | 1 +
.../src/QtSingleApplication | 1 +
.../src/qtlocalpeer.cpp | 209 +
.../src/qtlocalpeer.h | 81 +
.../src/qtlockedfile.cpp | 199 +
.../src/qtlockedfile.h | 101 +
.../src/qtlockedfile_unix.cpp | 121 +
.../src/qtlockedfile_win.cpp | 216 +
.../src/qtsingleapplication.cpp | 354 +
.../src/qtsingleapplication.h | 105 +
.../src/qtsingleapplication.pri | 16 +
.../src/qtsinglecoreapplication.cpp | 155 +
.../src/qtsinglecoreapplication.h | 73 +
.../src/qtsinglecoreapplication.pri | 10 +
AUTHORS | 30 +
CHANGELOG | 992 +++
CMakeLists.txt | 705 ++
COMPILE.md | 207 +
CREDITS | 5 +
HACKING.md | 92 +
Icons/128x128/merkaartor.png | Bin 0 -> 33958 bytes
Icons/16x16/merkaartor.png | Bin 0 -> 1030 bytes
Icons/192x192/merkaartor.png | Bin 0 -> 68817 bytes
Icons/22x22/merkaartor.png | Bin 0 -> 1624 bytes
Icons/24x24/merkaartor.png | Bin 0 -> 1849 bytes
Icons/256x256/merkaartor.png | Bin 0 -> 113391 bytes
Icons/32x32/merkaartor.png | Bin 0 -> 2972 bytes
Icons/36x36/merkaartor.png | Bin 0 -> 3640 bytes
Icons/40x40/merkaartor.png | Bin 0 -> 4364 bytes
Icons/42x42/merkaartor.png | Bin 0 -> 4746 bytes
Icons/48x48/merkaartor.png | Bin 0 -> 5671 bytes
Icons/512x512/merkaartor.png | Bin 0 -> 384401 bytes
Icons/64x64/merkaartor.png | Bin 0 -> 10057 bytes
Icons/72x72/merkaartor.png | Bin 0 -> 12385 bytes
Icons/80x80/merkaartor.png | Bin 0 -> 14910 bytes
Icons/8x8/merkaartor.png | Bin 0 -> 555 bytes
Icons/96x96/merkaartor.png | Bin 0 -> 20628 bytes
Icons/AllIcons.qrc | 398 +
Icons/Frisius.xpm | 503 ++
Icons/Frisius_100x100.png | Bin 0 -> 21845 bytes
Icons/Frisius_16x16.ico | Bin 0 -> 1406 bytes
Icons/Frisius_48x48.ico | Bin 0 -> 7358 bytes
Icons/Frisius_large.xcf | Bin 0 -> 886313 bytes
Icons/Frisius_splash.png | Bin 0 -> 185308 bytes
Icons/Frisius_splash.xcf | Bin 0 -> 277427 bytes
Icons/Gps_Marker.svg | 81 +
Icons/Grab.png | Bin 0 -> 3418 bytes
Icons/Mapnik/aerodrome.p.16.png | Bin 0 -> 377 bytes
Icons/Mapnik/aerodrome.png | Bin 0 -> 888 bytes
Icons/Mapnik/aiga_parking1.png | Bin 0 -> 1542 bytes
Icons/Mapnik/airport.p.16.png | Bin 0 -> 389 bytes
Icons/Mapnik/airport.png | Bin 0 -> 903 bytes
Icons/Mapnik/arrow.png | Bin 0 -> 320 bytes
Icons/Mapnik/arrow_back.png | Bin 0 -> 353 bytes
Icons/Mapnik/atm.png | Bin 0 -> 222 bytes
Icons/Mapnik/atm2.p.16.png | Bin 0 -> 437 bytes
Icons/Mapnik/bank2.p.16.png | Bin 0 -> 410 bytes
Icons/Mapnik/bar.p.20.png | Bin 0 -> 459 bytes
Icons/Mapnik/beach.png | Bin 0 -> 162 bytes
Icons/Mapnik/bus_stop.p.12.png | Bin 0 -> 353 bytes
Icons/Mapnik/bus_stop.png | Bin 0 -> 904 bytes
Icons/Mapnik/cable_car.png | Bin 0 -> 229 bytes
Icons/Mapnik/cafe.p.16.png | Bin 0 -> 361 bytes
Icons/Mapnik/camping.n.16.png | Bin 0 -> 517 bytes
Icons/Mapnik/chair_lift.png | Bin 0 -> 230 bytes
Icons/Mapnik/christian3.p.14.png | Bin 0 -> 252 bytes
Icons/Mapnik/cinema.p.24.png | Bin 0 -> 791 bytes
Icons/Mapnik/cliff.png | Bin 0 -> 26214 bytes
Icons/Mapnik/cliff2.png | Bin 0 -> 26214 bytes
Icons/Mapnik/communications.p.20.png | Bin 0 -> 445 bytes
Icons/Mapnik/danger.png | Bin 0 -> 146 bytes
Icons/Mapnik/food_bar.p.16.png | Bin 0 -> 376 bytes
Icons/Mapnik/forest.png | Bin 0 -> 124 bytes
Icons/Mapnik/fuel.p.16.png | Bin 0 -> 306 bytes
Icons/Mapnik/gate.png | Bin 0 -> 106 bytes
Icons/Mapnik/gate2.png | Bin 0 -> 111 bytes
Icons/Mapnik/glacier.png | Bin 0 -> 122 bytes
Icons/Mapnik/glacier2.png | Bin 0 -> 199 bytes
Icons/Mapnik/grave_yard.png | Bin 0 -> 291 bytes
Icons/Mapnik/halt.png | Bin 0 -> 94 bytes
Icons/Mapnik/hospital.p.16.png | Bin 0 -> 557 bytes
Icons/Mapnik/hospital.png | Bin 0 -> 491 bytes
Icons/Mapnik/hotel2.p.20.png | Bin 0 -> 368 bytes
Icons/Mapnik/islamic3.p.16.png | Bin 0 -> 387 bytes
Icons/Mapnik/jewish3.p.16.png | Bin 0 -> 397 bytes
Icons/Mapnik/landfill.png | Bin 0 -> 122 bytes
Icons/Mapnik/level_crossing.png | Bin 0 -> 124 bytes
Icons/Mapnik/level_crossing2.png | Bin 0 -> 154 bytes
Icons/Mapnik/library.p.20.png | Bin 0 -> 715 bytes
Icons/Mapnik/london-tube-24.png | Bin 0 -> 621 bytes
Icons/Mapnik/marsh.png | Bin 0 -> 621 bytes
Icons/Mapnik/mini_round.png | Bin 0 -> 26852 bytes
Icons/Mapnik/mosque.png | Bin 0 -> 1023 bytes
Icons/Mapnik/motorway_shield1.png | Bin 0 -> 176 bytes
Icons/Mapnik/motorway_shield2.png | Bin 0 -> 256 bytes
Icons/Mapnik/motorway_shield3.png | Bin 0 -> 251 bytes
Icons/Mapnik/motorway_shield4.png | Bin 0 -> 239 bytes
Icons/Mapnik/motorway_shield5.png | Bin 0 -> 205 bytes
Icons/Mapnik/motorway_shield6.png | Bin 0 -> 207 bytes
Icons/Mapnik/mud.png | Bin 0 -> 104 bytes
Icons/Mapnik/museum.p.16.png | Bin 0 -> 311 bytes
Icons/Mapnik/nature_reserve.png | Bin 0 -> 141 bytes
Icons/Mapnik/nature_reserve2.png | Bin 0 -> 170 bytes
Icons/Mapnik/parking.p.16.png | Bin 0 -> 312 bytes
Icons/Mapnik/parking.png | Bin 0 -> 409 bytes
Icons/Mapnik/peak.png | Bin 0 -> 119 bytes
Icons/Mapnik/pint.png | Bin 0 -> 486 bytes
Icons/Mapnik/place_of_worship.png | Bin 0 -> 209 bytes
Icons/Mapnik/place_of_worship3.p.16.png | Bin 0 -> 190 bytes
Icons/Mapnik/place_of_worship3.png | Bin 0 -> 103 bytes
Icons/Mapnik/post_box.p.16.png | Bin 0 -> 367 bytes
Icons/Mapnik/post_box.png | Bin 0 -> 337 bytes
Icons/Mapnik/post_office.p.16.png | Bin 0 -> 494 bytes
Icons/Mapnik/post_office.png | Bin 0 -> 413 bytes
Icons/Mapnik/postoffice.png | Bin 0 -> 297 bytes
Icons/Mapnik/power_line.png | Bin 0 -> 131 bytes
Icons/Mapnik/power_tower.png | Bin 0 -> 115 bytes
Icons/Mapnik/power_wind.png | Bin 0 -> 638 bytes
Icons/Mapnik/primary_shield1.png | Bin 0 -> 175 bytes
Icons/Mapnik/primary_shield2.png | Bin 0 -> 181 bytes
Icons/Mapnik/primary_shield3.png | Bin 0 -> 181 bytes
Icons/Mapnik/primary_shield4.png | Bin 0 -> 197 bytes
Icons/Mapnik/primary_shield5.png | Bin 0 -> 197 bytes
Icons/Mapnik/primary_shield6.png | Bin 0 -> 199 bytes
Icons/Mapnik/primary_shield7.png | Bin 0 -> 199 bytes
Icons/Mapnik/primary_shield8.png | Bin 0 -> 207 bytes
Icons/Mapnik/pub.p.16.png | Bin 0 -> 433 bytes
Icons/Mapnik/pub.png | Bin 0 -> 307 bytes
Icons/Mapnik/quarry.png | Bin 0 -> 131 bytes
Icons/Mapnik/quarry2.png | Bin 0 -> 139 bytes
Icons/Mapnik/recycle.png | Bin 0 -> 1118 bytes
Icons/Mapnik/recycling.p.16.png | Bin 0 -> 562 bytes
Icons/Mapnik/recycling.png | Bin 0 -> 645 bytes
Icons/Mapnik/restaurant.p.16.png | Bin 0 -> 502 bytes
Icons/Mapnik/scrub.png | Bin 0 -> 166 bytes
Icons/Mapnik/secondary_shield1.png | Bin 0 -> 168 bytes
Icons/Mapnik/secondary_shield2.png | Bin 0 -> 174 bytes
Icons/Mapnik/secondary_shield3.png | Bin 0 -> 176 bytes
Icons/Mapnik/secondary_shield4.png | Bin 0 -> 191 bytes
Icons/Mapnik/secondary_shield5.png | Bin 0 -> 194 bytes
Icons/Mapnik/secondary_shield6.png | Bin 0 -> 196 bytes
Icons/Mapnik/secondary_shield7.png | Bin 0 -> 195 bytes
Icons/Mapnik/secondary_shield8.png | Bin 0 -> 202 bytes
Icons/Mapnik/sikh.png | Bin 0 -> 1297 bytes
Icons/Mapnik/sikh3.p.16.png | Bin 0 -> 400 bytes
Icons/Mapnik/station.png | Bin 0 -> 95 bytes
Icons/Mapnik/station_small.png | Bin 0 -> 95 bytes
Icons/Mapnik/synagogue.png | Bin 0 -> 376 bytes
Icons/Mapnik/telephone.p.16.png | Bin 0 -> 444 bytes
Icons/Mapnik/tertiary_shield1.png | Bin 0 -> 176 bytes
Icons/Mapnik/tertiary_shield2.png | Bin 0 -> 182 bytes
Icons/Mapnik/tertiary_shield3.png | Bin 0 -> 184 bytes
Icons/Mapnik/tertiary_shield4.png | Bin 0 -> 204 bytes
Icons/Mapnik/tertiary_shield5.png | Bin 0 -> 204 bytes
Icons/Mapnik/tertiary_shield6.png | Bin 0 -> 206 bytes
Icons/Mapnik/tertiary_shield7.png | Bin 0 -> 206 bytes
Icons/Mapnik/tertiary_shield8.png | Bin 0 -> 214 bytes
Icons/Mapnik/toilets.p.20.png | Bin 0 -> 586 bytes
Icons/Mapnik/tower.png | Bin 0 -> 327 bytes
Icons/Mapnik/tree.png | Bin 0 -> 102 bytes
Icons/Mapnik/trunk_shield1.png | Bin 0 -> 175 bytes
Icons/Mapnik/trunk_shield2.png | Bin 0 -> 181 bytes
Icons/Mapnik/trunk_shield3.png | Bin 0 -> 184 bytes
Icons/Mapnik/trunk_shield4.png | Bin 0 -> 202 bytes
Icons/Mapnik/trunk_shield5.png | Bin 0 -> 202 bytes
Icons/Mapnik/trunk_shield6.png | Bin 0 -> 205 bytes
Icons/Mapnik/trunk_shield7.png | Bin 0 -> 204 bytes
Icons/Mapnik/trunk_shield8.png | Bin 0 -> 212 bytes
Icons/Mapnik/turning_circle.13.png | Bin 0 -> 280 bytes
Icons/Mapnik/turning_circle.15.png | Bin 0 -> 332 bytes
Icons/Mapnik/turning_circle.17.png | Bin 0 -> 379 bytes
Icons/Mapnik/turning_circle.19.png | Bin 0 -> 361 bytes
Icons/Mapnik/vineyard.png | Bin 0 -> 149 bytes
Icons/Mapnik/windmill.png | Bin 0 -> 186 bytes
Icons/Mapnik/zoo.png | Bin 0 -> 129 bytes
Icons/Merkaartor.xpm | 509 ++
Icons/Merkaartor_100x100.png | Bin 0 -> 21054 bytes
Icons/Merkaartor_16x16.ico | Bin 0 -> 1406 bytes
Icons/Merkaartor_48x48.ico | Bin 0 -> 7358 bytes
Icons/Merkaartor_installer.bmp | Bin 0 -> 154542 bytes
Icons/Merkaartor_large.xcf | Bin 0 -> 706744 bytes
Icons/Merkaartor_splash.png | Bin 0 -> 158856 bytes
Icons/Merkaartor_splash.xcf | Bin 0 -> 252900 bytes
Icons/Places/place_hamlet.png | Bin 0 -> 259 bytes
Icons/Places/place_town.png | Bin 0 -> 231 bytes
Icons/Places/place_village.png | Bin 0 -> 329 bytes
Icons/QToolBarDialog/back.png | Bin 0 -> 678 bytes
Icons/QToolBarDialog/down.png | Bin 0 -> 594 bytes
Icons/QToolBarDialog/forward.png | Bin 0 -> 655 bytes
Icons/QToolBarDialog/minus.png | Bin 0 -> 250 bytes
Icons/QToolBarDialog/plus.png | Bin 0 -> 462 bytes
Icons/QToolBarDialog/qttoolbardialog.qrc | 10 +
Icons/QToolBarDialog/up.png | Bin 0 -> 692 bytes
Icons/Tiles/000.png | Bin 0 -> 11397 bytes
Icons/Tiles/100.png | Bin 0 -> 10990 bytes
Icons/Tiles/101.png | Bin 0 -> 5420 bytes
Icons/Tiles/110.png | Bin 0 -> 11889 bytes
Icons/Tiles/111.png | Bin 0 -> 4851 bytes
Icons/actions/GPS.png | Bin 0 -> 695 bytes
Icons/actions/align_nodes.png | Bin 0 -> 912 bytes
Icons/actions/axisalign.png | Bin 0 -> 3701 bytes
Icons/actions/break_apart_roads.png | Bin 0 -> 1289 bytes
Icons/actions/build_bridge.png | Bin 0 -> 305 bytes
Icons/actions/camera.png | Bin 0 -> 580 bytes
Icons/actions/create_area.png | Bin 0 -> 932 bytes
Icons/actions/create_node.png | Bin 0 -> 618 bytes
Icons/actions/create_road.png | Bin 0 -> 916 bytes
Icons/actions/detach_node.png | Bin 0 -> 802 bytes
Icons/actions/document_import.png | Bin 0 -> 851 bytes
Icons/actions/document_new.png | Bin 0 -> 873 bytes
Icons/actions/document_open.png | Bin 0 -> 796 bytes
Icons/actions/download.png | Bin 0 -> 1146 bytes
Icons/actions/download_more.png | Bin 0 -> 997 bytes
Icons/actions/edit-cut.png | Bin 0 -> 1177 bytes
Icons/actions/edit_copy.png | Bin 0 -> 644 bytes
Icons/actions/edit_delete.png | Bin 0 -> 670 bytes
Icons/actions/edit_move.png | Bin 0 -> 1028 bytes
Icons/actions/edit_paste.png | Bin 0 -> 816 bytes
Icons/actions/edit_paste_tags.png | Bin 0 -> 1033 bytes
Icons/actions/edit_rotate.png | Bin 0 -> 869 bytes
Icons/actions/edit_rotate.svg | 565 ++
Icons/actions/emblem-important.png | Bin 0 -> 717 bytes
Icons/actions/emblem-unreadable.png | Bin 0 -> 669 bytes
Icons/actions/find.png | Bin 0 -> 1030 bytes
Icons/actions/goto.png | Bin 0 -> 591 bytes
Icons/actions/join_areas.png | Bin 0 -> 3649 bytes
Icons/actions/join_roads.png | Bin 0 -> 917 bytes
Icons/actions/list-add.png | Bin 0 -> 386 bytes
Icons/actions/list-remove.png | Bin 0 -> 252 bytes
Icons/actions/offline.png | Bin 0 -> 807 bytes
Icons/actions/preferences.png | Bin 0 -> 1255 bytes
Icons/actions/redo.png | Bin 0 -> 513 bytes
Icons/actions/reverse_road.png | Bin 0 -> 652 bytes
Icons/actions/save.png | Bin 0 -> 798 bytes
Icons/actions/select.png | Bin 0 -> 888 bytes
Icons/actions/software-update-available.png | Bin 0 -> 740 bytes
Icons/actions/split_area.png | Bin 0 -> 1126 bytes
Icons/actions/split_road.png | Bin 0 -> 823 bytes
Icons/actions/spread_nodes.png | Bin 0 -> 977 bytes
Icons/actions/subdivide_road.png | Bin 0 -> 977 bytes
Icons/actions/terrace_building.png | Bin 0 -> 1198 bytes
Icons/actions/transform-move.png | Bin 0 -> 638 bytes
Icons/actions/transform-rotate.png | Bin 0 -> 863 bytes
Icons/actions/transform-scale.png | Bin 0 -> 902 bytes
Icons/actions/undo.png | Bin 0 -> 512 bytes
Icons/actions/upload.png | Bin 0 -> 1038 bytes
Icons/actions/zoom_fit_best.png | Bin 0 -> 1203 bytes
Icons/actions/zoom_in.png | Bin 0 -> 1191 bytes
Icons/actions/zoom_out.png | Bin 0 -> 1173 bytes
Icons/add.xpm | 30 +
Icons/dialog-error.png | Bin 0 -> 1645 bytes
Icons/dialog-warning.png | Bin 0 -> 1391 bytes
Icons/edit-copy.png | Bin 0 -> 725 bytes
Icons/edit-cut.png | Bin 0 -> 1177 bytes
Icons/edit-paste.png | Bin 0 -> 773 bytes
Icons/edit-redo.xpm | 98 +
Icons/edit-undo.xpm | 109 +
Icons/emblem-readonly.png | Bin 0 -> 430 bytes
Icons/empty.xpm | 44 +
Icons/eye.xpm | 44 +
Icons/frisius-win32.rc | 1 +
Icons/geotagged.png | Bin 0 -> 213 bytes
Icons/grabbing.png | Bin 0 -> 3397 bytes
.../map-icons/classic.small/accommodation.png | Bin 0 -> 474 bytes
.../classic.small/accommodation/camping.png | Bin 0 -> 517 bytes
.../accommodation/camping/caravan.png | Bin 0 -> 529 bytes
.../accommodation/camping/dump-station.png | Bin 0 -> 654 bytes
.../accommodation/camping/gas-refill.png | Bin 0 -> 460 bytes
.../accommodation/camping/hookup.png | Bin 0 -> 436 bytes
.../accommodation/camping/trash.png | Bin 0 -> 439 bytes
.../accommodation/camping/wastewater.png | Bin 0 -> 548 bytes
.../accommodation/camping/water.png | Bin 0 -> 471 bytes
.../classic.small/accommodation/chalet.png | Bin 0 -> 582 bytes
.../accommodation/guest_house.png | Bin 0 -> 629 bytes
.../classic.small/accommodation/hostel.png | Bin 0 -> 520 bytes
.../classic.small/accommodation/hotel.png | Bin 0 -> 474 bytes
.../accommodation/hotel/five_star.png | Bin 0 -> 454 bytes
.../accommodation/hotel/four_star.png | Bin 0 -> 441 bytes
.../accommodation/hotel/one_star.png | Bin 0 -> 401 bytes
.../accommodation/hotel/three_star.png | Bin 0 -> 428 bytes
.../accommodation/hotel/two_star.png | Bin 0 -> 419 bytes
.../classic.small/accommodation/motel.png | Bin 0 -> 535 bytes
.../accommodation/shelter-bw.png | Bin 0 -> 643 bytes
.../classic.small/accommodation/shelter.png | Bin 0 -> 1032 bytes
Icons/map-icons/classic.small/education.png | Bin 0 -> 598 bytes
.../classic.small/education/college.png | Bin 0 -> 549 bytes
.../classic.small/education/kindergarten.png | Bin 0 -> 679 bytes
.../classic.small/education/school.png | Bin 0 -> 487 bytes
.../education/school/primary.png | Bin 0 -> 255 bytes
.../classic.small/education/university.png | Bin 0 -> 432 bytes
Icons/map-icons/classic.small/empty.png | Bin 0 -> 333 bytes
Icons/map-icons/classic.small/food.png | Bin 0 -> 817 bytes
.../classic.small/food/bacon_and_eggs.png | Bin 0 -> 957 bytes
Icons/map-icons/classic.small/food/bar.png | Bin 0 -> 381 bytes
.../classic.small/food/biergarten.png | Bin 0 -> 946 bytes
Icons/map-icons/classic.small/food/cafe.png | Bin 0 -> 859 bytes
.../classic.small/food/drinking_water.png | Bin 0 -> 656 bytes
.../map-icons/classic.small/food/fastfood.png | Bin 0 -> 912 bytes
.../food/fastfood/burger-king.png | Bin 0 -> 991 bytes
.../food/fastfood/mc-donalds.png | Bin 0 -> 952 bytes
.../map-icons/classic.small/food/icecream.png | Bin 0 -> 834 bytes
Icons/map-icons/classic.small/food/pub.png | Bin 0 -> 307 bytes
.../classic.small/food/restaurant.png | Bin 0 -> 201 bytes
.../food/restaurant/japanese.png | Bin 0 -> 933 bytes
Icons/map-icons/classic.small/food/snacks.png | Bin 0 -> 827 bytes
.../classic.small/food/snacks/pizza.png | Bin 0 -> 958 bytes
.../map-icons/classic.small/food/teashop.png | Bin 0 -> 200 bytes
.../classic.small/food/wine_tavern.png | Bin 0 -> 854 bytes
Icons/map-icons/classic.small/geocache.png | Bin 0 -> 590 bytes
Icons/map-icons/classic.small/health.png | Bin 0 -> 264 bytes
.../classic.small/health/dentist.png | Bin 0 -> 669 bytes
.../map-icons/classic.small/health/doctor.png | Bin 0 -> 439 bytes
.../classic.small/health/emergency.png | Bin 0 -> 507 bytes
.../classic.small/health/eye_specialist.png | Bin 0 -> 873 bytes
.../classic.small/health/hospital.png | Bin 0 -> 531 bytes
.../classic.small/health/optician.png | Bin 0 -> 831 bytes
.../classic.small/health/pharmacy.png | Bin 0 -> 441 bytes
.../classic.small/health/veterinary.png | Bin 0 -> 1019 bytes
.../classic.small/incomming/Broad.png | Bin 0 -> 78 bytes
.../classic.small/incomming/OLmarker.png | Bin 0 -> 542 bytes
.../classic.small/incomming/amenity.png | Bin 0 -> 106 bytes
.../classic.small/incomming/aroad.png | Bin 0 -> 78 bytes
.../classic.small/incomming/bridleway.png | Bin 0 -> 77 bytes
.../classic.small/incomming/byway.png | Bin 0 -> 77 bytes
.../classic.small/incomming/contours.png | Bin 0 -> 193 bytes
.../classic.small/incomming/footpath.png | Bin 0 -> 77 bytes
.../classic.small/incomming/fwpbr.png | Bin 0 -> 78 bytes
.../classic.small/incomming/industry.png | Bin 0 -> 162 bytes
.../classic.small/incomming/interest.png | Bin 0 -> 141 bytes
.../incomming/london-tube-24.png | Bin 0 -> 621 bytes
.../classic.small/incomming/minorroad.png | Bin 0 -> 77 bytes
.../incomming/motorway_shield2.png | Bin 0 -> 251 bytes
.../incomming/motorway_shield3.png | Bin 0 -> 239 bytes
.../map-icons/classic.small/incomming/one.png | Bin 0 -> 106 bytes
.../classic.small/incomming/pbridleway.png | Bin 0 -> 70 bytes
.../classic.small/incomming/place.png | Bin 0 -> 184 bytes
.../classic.small/incomming/railway.png | Bin 0 -> 77 bytes
.../classic.small/incomming/road.png | Bin 0 -> 78 bytes
.../classic.small/incomming/station.png | Bin 0 -> 381 bytes
.../classic.small/incomming/stationnew.png | Bin 0 -> 175 bytes
.../classic.small/incomming/three.png | Bin 0 -> 110 bytes
.../map-icons/classic.small/incomming/two.png | Bin 0 -> 101 bytes
Icons/map-icons/classic.small/misc.png | Bin 0 -> 831 bytes
Icons/map-icons/classic.small/misc/bunny.png | Bin 0 -> 760 bytes
.../classic.small/misc/butterfly.png | Bin 0 -> 829 bytes
.../classic.small/misc/construction.png | Bin 0 -> 456 bytes
Icons/map-icons/classic.small/misc/danger.png | Bin 0 -> 644 bytes
.../classic.small/misc/deprecated.png | Bin 0 -> 650 bytes
Icons/map-icons/classic.small/misc/door.png | Bin 0 -> 320 bytes
.../classic.small/misc/housenumber.png | Bin 0 -> 428 bytes
.../classic.small/misc/information.png | Bin 0 -> 495 bytes
.../map-icons/classic.small/misc/landmark.png | Bin 0 -> 302 bytes
.../classic.small/misc/landmark/barn.png | Bin 0 -> 495 bytes
.../classic.small/misc/landmark/beacon.png | Bin 0 -> 356 bytes
.../classic.small/misc/landmark/building.png | Bin 0 -> 434 bytes
.../classic.small/misc/landmark/bunker.png | Bin 0 -> 471 bytes
.../classic.small/misc/landmark/chimney.png | Bin 0 -> 331 bytes
.../classic.small/misc/landmark/crane.png | Bin 0 -> 527 bytes
.../classic.small/misc/landmark/farm.png | Bin 0 -> 651 bytes
.../classic.small/misc/landmark/gasometer.png | Bin 0 -> 543 bytes
.../classic.small/misc/landmark/glacier.png | Bin 0 -> 314 bytes
.../misc/landmark/glacier_small.png | Bin 0 -> 283 bytes
.../misc/landmark/lighthouse.png | Bin 0 -> 537 bytes
.../classic.small/misc/landmark/mine.png | Bin 0 -> 648 bytes
.../misc/landmark/mountain_pass.png | Bin 0 -> 507 bytes
.../classic.small/misc/landmark/peak.png | Bin 0 -> 366 bytes
.../misc/landmark/peak_small.png | Bin 0 -> 298 bytes
.../classic.small/misc/landmark/pier.png | Bin 0 -> 532 bytes
.../classic.small/misc/landmark/plant.png | Bin 0 -> 759 bytes
.../classic.small/misc/landmark/power.png | Bin 0 -> 391 bytes
.../misc/landmark/power/fossil.png | Bin 0 -> 525 bytes
.../misc/landmark/power/hydro.png | Bin 0 -> 462 bytes
.../misc/landmark/power/nuclear.png | Bin 0 -> 664 bytes
.../misc/landmark/power/tower.png | Bin 0 -> 572 bytes
.../misc/landmark/power/tower_small.png | Bin 0 -> 397 bytes
.../misc/landmark/power/wind.png | Bin 0 -> 591 bytes
.../classic.small/misc/landmark/range.png | Bin 0 -> 619 bytes
.../misc/landmark/reservoir_covered.png | Bin 0 -> 519 bytes
.../classic.small/misc/landmark/spring.png | Bin 0 -> 259 bytes
.../misc/landmark/survey_point.png | Bin 0 -> 430 bytes
.../classic.small/misc/landmark/tower.png | Bin 0 -> 309 bytes
.../classic.small/misc/landmark/trees.png | Bin 0 -> 819 bytes
.../classic.small/misc/landmark/volcano.png | Bin 0 -> 292 bytes
.../misc/landmark/volcano_small.png | Bin 0 -> 236 bytes
.../misc/landmark/wastewater_plant.png | Bin 0 -> 654 bytes
.../misc/landmark/water_tower.png | Bin 0 -> 346 bytes
.../classic.small/misc/landmark/windmill.png | Bin 0 -> 554 bytes
.../classic.small/misc/landmark/works.png | Bin 0 -> 488 bytes
.../classic.small/misc/landuse/commercial.png | Bin 0 -> 305 bytes
.../misc/landuse/residential.png | Bin 0 -> 408 bytes
.../classic.small/misc/lock_closed.png | Bin 0 -> 625 bytes
.../classic.small/misc/lock_open.png | Bin 0 -> 653 bytes
.../map-icons/classic.small/misc/no_icon.png | Bin 0 -> 335 bytes
.../classic.small/misc/no_smoking.png | Bin 0 -> 867 bytes
Icons/map-icons/classic.small/misc/note.png | Bin 0 -> 336 bytes
.../map-icons/classic.small/misc/proposed.png | Bin 0 -> 633 bytes
.../classic.small/misc/surveillance.png | Bin 0 -> 482 bytes
.../classic.small/misc/tap_drinking.png | Bin 0 -> 455 bytes
Icons/map-icons/classic.small/money.png | Bin 0 -> 494 bytes
Icons/map-icons/classic.small/money/atm.png | Bin 0 -> 606 bytes
Icons/map-icons/classic.small/money/bank.png | Bin 0 -> 672 bytes
.../classic.small/money/bank/vr-bank.png | Bin 0 -> 577 bytes
.../classic.small/money/exchange.png | Bin 0 -> 629 bytes
Icons/map-icons/classic.small/nautical.png | Bin 0 -> 212 bytes
.../classic.small/nautical/alpha_flag.png | Bin 0 -> 401 bytes
.../classic.small/nautical/anchor.png | Bin 0 -> 361 bytes
.../classic.small/nautical/aqueduct.png | Bin 0 -> 333 bytes
.../map-icons/classic.small/nautical/boat.png | Bin 0 -> 559 bytes
.../classic.small/nautical/boatyard.png | Bin 0 -> 709 bytes
.../classic.small/nautical/lock_gate.png | Bin 0 -> 308 bytes
.../classic.small/nautical/marina.png | Bin 0 -> 361 bytes
.../classic.small/nautical/slipway.png | Bin 0 -> 432 bytes
.../classic.small/nautical/turning.png | Bin 0 -> 323 bytes
.../classic.small/nautical/waterfall.png | Bin 0 -> 394 bytes
.../map-icons/classic.small/nautical/weir.png | Bin 0 -> 350 bytes
Icons/map-icons/classic.small/people.png | Bin 0 -> 304 bytes
.../classic.small/people/friends.png | Bin 0 -> 517 bytes
.../classic.small/people/friendsd.png | Bin 0 -> 693 bytes
Icons/map-icons/classic.small/people/work.png | Bin 0 -> 305 bytes
Icons/map-icons/classic.small/places.png | Bin 0 -> 513 bytes
.../map-icons/classic.small/places/island.png | Bin 0 -> 602 bytes
.../classic.small/places/locality.png | Bin 0 -> 397 bytes
.../classic.small/places/settlement.png | Bin 0 -> 353 bytes
.../places/settlement/capital.png | Bin 0 -> 314 bytes
.../classic.small/places/settlement/city.png | Bin 0 -> 278 bytes
.../classic.small/places/settlement/town.png | Bin 0 -> 278 bytes
Icons/map-icons/classic.small/public.png | Bin 0 -> 1166 bytes
.../public/administration/court_of_law.png | Bin 0 -> 535 bytes
.../public/administration/prison.png | Bin 0 -> 236 bytes
.../classic.small/public/arts_centre.png | Bin 0 -> 717 bytes
.../classic.small/public/firebrigade.png | Bin 0 -> 534 bytes
.../map-icons/classic.small/public/police.png | Bin 0 -> 761 bytes
.../classic.small/public/post_box.png | Bin 0 -> 373 bytes
.../classic.small/public/post_office.png | Bin 0 -> 561 bytes
.../classic.small/public/recycling.png | Bin 0 -> 671 bytes
.../public/recycling/trash-bin.png | Bin 0 -> 439 bytes
.../classic.small/public/telephone.png | Bin 0 -> 729 bytes
.../classic.small/public/toilets.png | Bin 0 -> 683 bytes
Icons/map-icons/classic.small/recreation.png | Bin 0 -> 773 bytes
.../classic.small/recreation/bench.png | Bin 0 -> 165 bytes
.../classic.small/recreation/bicycling.png | Bin 0 -> 439 bytes
.../classic.small/recreation/cinema.png | Bin 0 -> 721 bytes
.../classic.small/recreation/common.png | Bin 0 -> 374 bytes
.../classic.small/recreation/garden.png | Bin 0 -> 258 bytes
.../classic.small/recreation/music.png | Bin 0 -> 443 bytes
.../recreation/nature_reserve.png | Bin 0 -> 287 bytes
.../classic.small/recreation/nightclub.png | Bin 0 -> 673 bytes
.../classic.small/recreation/park.png | Bin 0 -> 113 bytes
.../classic.small/recreation/picnic.png | Bin 0 -> 565 bytes
.../classic.small/recreation/playground.png | Bin 0 -> 648 bytes
.../classic.small/recreation/shelter.png | Bin 0 -> 684 bytes
.../classic.small/recreation/theater.png | Bin 0 -> 922 bytes
.../classic.small/recreation/theme_park.png | Bin 0 -> 871 bytes
.../classic.small/recreation/water_park.png | Bin 0 -> 322 bytes
.../classic.small/recreation/zoo.png | Bin 0 -> 723 bytes
Icons/map-icons/classic.small/religion.png | Bin 0 -> 794 bytes
.../classic.small/religion/cemetery.png | Bin 0 -> 331 bytes
.../classic.small/religion/chapel.png | Bin 0 -> 505 bytes
.../classic.small/religion/church.png | Bin 0 -> 261 bytes
.../classic.small/religion/church/bahai.png | Bin 0 -> 705 bytes
.../religion/church/buddhism.png | Bin 0 -> 613 bytes
.../religion/church/catholic.png | Bin 0 -> 435 bytes
.../religion/church/hinduism.png | Bin 0 -> 610 bytes
.../classic.small/religion/church/jainism.png | Bin 0 -> 526 bytes
.../classic.small/religion/church/mormon.png | Bin 0 -> 741 bytes
.../classic.small/religion/church/mosque.png | Bin 0 -> 494 bytes
.../religion/church/orthodox.png | Bin 0 -> 493 bytes
.../religion/church/protestant.png | Bin 0 -> 448 bytes
.../classic.small/religion/church/shinto.png | Bin 0 -> 355 bytes
.../classic.small/religion/church/sikhism.png | Bin 0 -> 703 bytes
.../religion/church/synagogue.png | Bin 0 -> 465 bytes
.../classic.small/religion/church/taoism.png | Bin 0 -> 615 bytes
.../classic.small/religion/wayside_cross.png | Bin 0 -> 206 bytes
.../classic.small/religion/wayside_shrine.png | Bin 0 -> 469 bytes
Icons/map-icons/classic.small/rendering.png | Bin 0 -> 256 bytes
.../classic.small/rendering/beach.png | Bin 0 -> 162 bytes
.../classic.small/rendering/cliff.png | Bin 0 -> 26214 bytes
.../classic.small/rendering/cliff2.png | Bin 0 -> 26214 bytes
.../classic.small/rendering/quarry.png | Bin 0 -> 131 bytes
.../classic.small/rendering/quarry2.png | Bin 0 -> 139 bytes
.../rendering/rail_preserved.png | Bin 0 -> 26027 bytes
.../rendering/shield/motorway_shield.png | Bin 0 -> 256 bytes
.../rendering/shield/motorway_shield1.png | Bin 0 -> 176 bytes
.../rendering/shield/motorway_shield2.png | Bin 0 -> 256 bytes
.../rendering/shield/motorway_shield3.png | Bin 0 -> 251 bytes
.../rendering/shield/motorway_shield4.png | Bin 0 -> 239 bytes
.../rendering/shield/motorway_shield5.png | Bin 0 -> 205 bytes
.../rendering/shield/motorway_shield6.png | Bin 0 -> 207 bytes
.../rendering/shield/primary_shield1.png | Bin 0 -> 175 bytes
.../rendering/shield/primary_shield2.png | Bin 0 -> 181 bytes
.../rendering/shield/primary_shield3.png | Bin 0 -> 181 bytes
.../rendering/shield/primary_shield4.png | Bin 0 -> 197 bytes
.../rendering/shield/primary_shield5.png | Bin 0 -> 197 bytes
.../rendering/shield/primary_shield6.png | Bin 0 -> 199 bytes
.../rendering/shield/primary_shield7.png | Bin 0 -> 199 bytes
.../rendering/shield/primary_shield8.png | Bin 0 -> 207 bytes
.../rendering/shield/secondary_shield1.png | Bin 0 -> 168 bytes
.../rendering/shield/secondary_shield2.png | Bin 0 -> 174 bytes
.../rendering/shield/secondary_shield3.png | Bin 0 -> 176 bytes
.../rendering/shield/secondary_shield4.png | Bin 0 -> 191 bytes
.../rendering/shield/secondary_shield5.png | Bin 0 -> 194 bytes
.../rendering/shield/secondary_shield6.png | Bin 0 -> 196 bytes
.../rendering/shield/secondary_shield7.png | Bin 0 -> 195 bytes
.../rendering/shield/secondary_shield8.png | Bin 0 -> 202 bytes
.../rendering/shield/tertiary_shield1.png | Bin 0 -> 176 bytes
.../rendering/shield/tertiary_shield2.png | Bin 0 -> 182 bytes
.../rendering/shield/tertiary_shield3.png | Bin 0 -> 184 bytes
.../rendering/shield/tertiary_shield4.png | Bin 0 -> 204 bytes
.../rendering/shield/tertiary_shield5.png | Bin 0 -> 204 bytes
.../rendering/shield/tertiary_shield6.png | Bin 0 -> 206 bytes
.../rendering/shield/tertiary_shield7.png | Bin 0 -> 206 bytes
.../rendering/shield/tertiary_shield8.png | Bin 0 -> 214 bytes
.../rendering/shield/trunk_shield1.png | Bin 0 -> 175 bytes
.../rendering/shield/trunk_shield2.png | Bin 0 -> 181 bytes
.../rendering/shield/trunk_shield3.png | Bin 0 -> 184 bytes
.../rendering/shield/trunk_shield4.png | Bin 0 -> 202 bytes
.../rendering/shield/trunk_shield5.png | Bin 0 -> 202 bytes
.../rendering/shield/trunk_shield6.png | Bin 0 -> 205 bytes
.../rendering/shield/trunk_shield7.png | Bin 0 -> 204 bytes
.../rendering/shield/trunk_shield8.png | Bin 0 -> 212 bytes
.../classic.small/rendering/station_small.png | Bin 0 -> 231 bytes
.../classic.small/rendering/track/arrow.png | Bin 0 -> 320 bytes
.../rendering/track/arrow_back.png | Bin 0 -> 353 bytes
.../rendering/track/mini_round.png | Bin 0 -> 26852 bytes
.../classic.small/rendering/track/rail.png | Bin 0 -> 217 bytes
.../rendering/track/station_small.png | Bin 0 -> 231 bytes
Icons/map-icons/classic.small/shopping.png | Bin 0 -> 896 bytes
.../classic.small/shopping/beverages.png | Bin 0 -> 1020 bytes
.../classic.small/shopping/chemist.png | Bin 0 -> 555 bytes
.../classic.small/shopping/clothes.png | Bin 0 -> 653 bytes
.../classic.small/shopping/computer.png | Bin 0 -> 664 bytes
.../classic.small/shopping/diy_store.png | Bin 0 -> 944 bytes
.../classic.small/shopping/electronics.png | Bin 0 -> 694 bytes
.../classic.small/shopping/florist.png | Bin 0 -> 737 bytes
.../classic.small/shopping/furniture.png | Bin 0 -> 864 bytes
.../classic.small/shopping/garden_centre.png | Bin 0 -> 664 bytes
.../shopping/groceries/bakery.png | Bin 0 -> 460 bytes
.../shopping/groceries/butcher.png | Bin 0 -> 196 bytes
.../shopping/groceries/fruits.png | Bin 0 -> 621 bytes
.../classic.small/shopping/hairdresser.png | Bin 0 -> 651 bytes
.../map-icons/classic.small/shopping/hifi.png | Bin 0 -> 703 bytes
.../classic.small/shopping/jewelry.png | Bin 0 -> 897 bytes
.../classic.small/shopping/kiosk.png | Bin 0 -> 609 bytes
.../classic.small/shopping/laundry.png | Bin 0 -> 527 bytes
.../map-icons/classic.small/shopping/mall.png | Bin 0 -> 679 bytes
.../classic.small/shopping/optician.png | Bin 0 -> 483 bytes
.../classic.small/shopping/rental/library.png | Bin 0 -> 263 bytes
.../classic.small/shopping/shoes.png | Bin 0 -> 722 bytes
.../classic.small/shopping/sports/outdoor.png | Bin 0 -> 868 bytes
.../classic.small/shopping/supermarket.png | Bin 0 -> 896 bytes
.../shopping/supermarket/aldi.png | Bin 0 -> 658 bytes
.../shopping/supermarket/aldi_nord.png | Bin 0 -> 791 bytes
.../shopping/supermarket/kaufland.png | Bin 0 -> 628 bytes
.../shopping/supermarket/lidl.png | Bin 0 -> 781 bytes
.../classic.small/shopping/tailor.png | Bin 0 -> 869 bytes
.../map-icons/classic.small/shopping/toys.png | Bin 0 -> 929 bytes
.../classic.small/shopping/video.png | Bin 0 -> 490 bytes
Icons/map-icons/classic.small/sightseeing.png | Bin 0 -> 402 bytes
.../sightseeing/archaeological.png | Bin 0 -> 287 bytes
.../classic.small/sightseeing/battlefield.png | Bin 0 -> 757 bytes
.../classic.small/sightseeing/castle.png | Bin 0 -> 270 bytes
.../classic.small/sightseeing/memorial.png | Bin 0 -> 425 bytes
.../classic.small/sightseeing/monument.png | Bin 0 -> 248 bytes
.../classic.small/sightseeing/museum.png | Bin 0 -> 562 bytes
.../classic.small/sightseeing/ruins.png | Bin 0 -> 447 bytes
.../classic.small/sightseeing/viewpoint.png | Bin 0 -> 198 bytes
Icons/map-icons/classic.small/sports.png | Bin 0 -> 801 bytes
.../map-icons/classic.small/sports/10pin.png | Bin 0 -> 705 bytes
.../classic.small/sports/archery.png | Bin 0 -> 731 bytes
.../classic.small/sports/baseball.png | Bin 0 -> 951 bytes
.../classic.small/sports/basketball.png | Bin 0 -> 934 bytes
.../classic.small/sports/bicycle.png | Bin 0 -> 565 bytes
.../map-icons/classic.small/sports/boule.png | Bin 0 -> 490 bytes
.../map-icons/classic.small/sports/centre.png | Bin 0 -> 419 bytes
.../classic.small/sports/cricket.png | Bin 0 -> 513 bytes
.../classic.small/sports/croquet.png | Bin 0 -> 521 bytes
.../classic.small/sports/cycling.png | Bin 0 -> 700 bytes
Icons/map-icons/classic.small/sports/dart.png | Bin 0 -> 840 bytes
.../map-icons/classic.small/sports/diving.png | Bin 0 -> 405 bytes
.../classic.small/sports/fishing.png | Bin 0 -> 333 bytes
.../classic.small/sports/football.png | Bin 0 -> 661 bytes
Icons/map-icons/classic.small/sports/golf.png | Bin 0 -> 587 bytes
.../classic.small/sports/handball.png | Bin 0 -> 507 bytes
.../map-icons/classic.small/sports/hockey.png | Bin 0 -> 260 bytes
.../classic.small/sports/indoor_pool.png | Bin 0 -> 650 bytes
.../classic.small/sports/kiteflying.png | Bin 0 -> 556 bytes
.../classic.small/sports/mountain_bike.png | Bin 0 -> 755 bytes
.../map-icons/classic.small/sports/multi.png | Bin 0 -> 743 bytes
.../map-icons/classic.small/sports/pitch.png | Bin 0 -> 773 bytes
Icons/map-icons/classic.small/sports/pool.png | Bin 0 -> 610 bytes
.../classic.small/sports/racquetball.png | Bin 0 -> 762 bytes
.../map-icons/classic.small/sports/riding.png | Bin 0 -> 543 bytes
.../map-icons/classic.small/sports/skiing.png | Bin 0 -> 730 bytes
.../map-icons/classic.small/sports/soccer.png | Bin 0 -> 801 bytes
.../classic.small/sports/stadium.png | Bin 0 -> 700 bytes
.../classic.small/sports/swimming.png | Bin 0 -> 544 bytes
.../classic.small/sports/table_tennis.png | Bin 0 -> 715 bytes
.../map-icons/classic.small/sports/tennis.png | Bin 0 -> 800 bytes
.../map-icons/classic.small/sports/track.png | Bin 0 -> 307 bytes
.../classic.small/sports/volleyball.png | Bin 0 -> 1103 bytes
Icons/map-icons/classic.small/transport.png | Bin 0 -> 559 bytes
.../classic.small/transport/aerialway.png | Bin 0 -> 553 bytes
.../transport/aerialway/cable_car.png | Bin 0 -> 553 bytes
.../transport/aerialway/chair_lift.png | Bin 0 -> 614 bytes
.../transport/aerialway/drag_lift.png | Bin 0 -> 507 bytes
.../transport/aerialway/station.png | Bin 0 -> 416 bytes
.../classic.small/transport/airport.png | Bin 0 -> 491 bytes
.../transport/airport/airfield.png | Bin 0 -> 443 bytes
.../transport/airport/helipad.png | Bin 0 -> 308 bytes
.../transport/airport/terminal.png | Bin 0 -> 557 bytes
.../classic.small/transport/bridge.png | Bin 0 -> 347 bytes
.../transport/bridge/bridge-car.png | Bin 0 -> 463 bytes
.../transport/bridge/bridge-pedestrian.png | Bin 0 -> 443 bytes
.../transport/bridge/drawbridge.png | Bin 0 -> 444 bytes
.../map-icons/classic.small/transport/bus.png | Bin 0 -> 608 bytes
.../classic.small/transport/bus_small.png | Bin 0 -> 513 bytes
.../map-icons/classic.small/transport/car.png | Bin 0 -> 438 bytes
.../classic.small/transport/ferry.png | Bin 0 -> 370 bytes
.../transport/ferry/ferry-car.png | Bin 0 -> 472 bytes
.../transport/ferry/ferry-pedestrian.png | Bin 0 -> 459 bytes
.../classic.small/transport/funicular.png | Bin 0 -> 937 bytes
.../classic.small/transport/handicapped.png | Bin 0 -> 399 bytes
.../classic.small/transport/harbour.png | Bin 0 -> 495 bytes
.../classic.small/transport/park_ride.png | Bin 0 -> 423 bytes
.../classic.small/transport/pedestrian.png | Bin 0 -> 433 bytes
.../classic.small/transport/railway.png | Bin 0 -> 732 bytes
.../classic.small/transport/railway_small.png | Bin 0 -> 231 bytes
.../classic.small/transport/rapid_train.png | Bin 0 -> 731 bytes
.../classic.small/transport/steps.png | Bin 0 -> 632 bytes
.../classic.small/transport/taxi.png | Bin 0 -> 552 bytes
.../transport/ticket-machine.png | Bin 0 -> 550 bytes
.../classic.small/transport/track.png | Bin 0 -> 217 bytes
.../classic.small/transport/tram.png | Bin 0 -> 373 bytes
.../classic.small/transport/turntable.png | Bin 0 -> 551 bytes
.../classic.small/transport/underground.png | Bin 0 -> 722 bytes
Icons/map-icons/classic.small/unknown.png | Bin 0 -> 485 bytes
Icons/map-icons/classic.small/vehicle.png | Bin 0 -> 473 bytes
.../classic.small/vehicle/bicycle_rental.png | Bin 0 -> 793 bytes
.../classic.small/vehicle/car_rental.png | Bin 0 -> 597 bytes
.../classic.small/vehicle/car_rental/sixt.png | Bin 0 -> 813 bytes
.../classic.small/vehicle/car_sharing.png | Bin 0 -> 614 bytes
.../classic.small/vehicle/car_wash.png | Bin 0 -> 528 bytes
.../classic.small/vehicle/cattle_grid.png | Bin 0 -> 402 bytes
.../classic.small/vehicle/caution.png | Bin 0 -> 673 bytes
.../classic.small/vehicle/crossing.png | Bin 0 -> 349 bytes
.../classic.small/vehicle/crossing_small.png | Bin 0 -> 289 bytes
.../classic.small/vehicle/emergency_phone.png | Bin 0 -> 563 bytes
.../map-icons/classic.small/vehicle/exit.png | Bin 0 -> 492 bytes
.../map-icons/classic.small/vehicle/ford.png | Bin 0 -> 608 bytes
.../classic.small/vehicle/fuel_station.png | Bin 0 -> 535 bytes
.../vehicle/fuel_station/agip.png | Bin 0 -> 701 bytes
.../vehicle/fuel_station/aral.png | Bin 0 -> 815 bytes
.../vehicle/fuel_station/elf.png | Bin 0 -> 628 bytes
.../vehicle/fuel_station/esso.png | Bin 0 -> 705 bytes
.../vehicle/fuel_station/jet.png | Bin 0 -> 712 bytes
.../vehicle/fuel_station/omv.png | Bin 0 -> 660 bytes
.../vehicle/fuel_station/shell.png | Bin 0 -> 720 bytes
.../vehicle/fuel_station/texaco.png | Bin 0 -> 675 bytes
.../vehicle/fuel_station/total.png | Bin 0 -> 798 bytes
.../map-icons/classic.small/vehicle/gate.png | Bin 0 -> 600 bytes
.../classic.small/vehicle/motorbike.png | Bin 0 -> 553 bytes
.../classic.small/vehicle/parking.png | Bin 0 -> 528 bytes
.../classic.small/vehicle/parking/bike.png | Bin 0 -> 751 bytes
.../classic.small/vehicle/parking/car.png | Bin 0 -> 730 bytes
.../classic.small/vehicle/parking/garage.png | Bin 0 -> 612 bytes
.../vehicle/parking/handicapped.png | Bin 0 -> 709 bytes
.../classic.small/vehicle/parking/hiking.png | Bin 0 -> 576 bytes
.../vehicle/parking/motorbike.png | Bin 0 -> 760 bytes
.../vehicle/parking/park_ride.png | Bin 0 -> 614 bytes
.../vehicle/parking/restarea-toilets.png | Bin 0 -> 717 bytes
.../vehicle/parking/restarea.png | Bin 0 -> 477 bytes
.../vehicle/parking/underground.png | Bin 0 -> 566 bytes
.../classic.small/vehicle/repair_shop.png | Bin 0 -> 314 bytes
.../classic.small/vehicle/restrictions.png | Bin 0 -> 558 bytes
.../vehicle/restrictions/access.png | Bin 0 -> 594 bytes
.../restrictions/bicycle-designated.png | Bin 0 -> 924 bytes
.../vehicle/restrictions/bicycle.png | Bin 0 -> 723 bytes
.../vehicle/restrictions/bollard-bw.png | Bin 0 -> 683 bytes
.../vehicle/restrictions/bollard.png | Bin 0 -> 517 bytes
.../vehicle/restrictions/citylimit.png | Bin 0 -> 504 bytes
.../vehicle/restrictions/dead_end.png | Bin 0 -> 424 bytes
.../vehicle/restrictions/foot-designated.png | Bin 0 -> 825 bytes
.../vehicle/restrictions/foot.png | Bin 0 -> 763 bytes
.../vehicle/restrictions/goods.png | Bin 0 -> 708 bytes
.../vehicle/restrictions/horse-designated.png | Bin 0 -> 856 bytes
.../vehicle/restrictions/horse.png | Bin 0 -> 777 bytes
.../vehicle/restrictions/incline.png | Bin 0 -> 688 bytes
.../vehicle/restrictions/maxheight.png | Bin 0 -> 742 bytes
.../vehicle/restrictions/maxlength.png | Bin 0 -> 773 bytes
.../vehicle/restrictions/maxweight.png | Bin 0 -> 760 bytes
.../vehicle/restrictions/maxwidth.png | Bin 0 -> 772 bytes
.../vehicle/restrictions/minspeed.png | Bin 0 -> 828 bytes
.../vehicle/restrictions/motorbike.png | Bin 0 -> 686 bytes
.../vehicle/restrictions/motorcar.png | Bin 0 -> 757 bytes
.../vehicle/restrictions/parking.png | Bin 0 -> 751 bytes
.../vehicle/restrictions/play_street.png | Bin 0 -> 676 bytes
.../vehicle/restrictions/psv.png | Bin 0 -> 743 bytes
.../vehicle/restrictions/right_of_way.png | Bin 0 -> 603 bytes
.../vehicle/restrictions/road_works.png | Bin 0 -> 735 bytes
.../vehicle/restrictions/roundabout_left.png | Bin 0 -> 884 bytes
.../vehicle/restrictions/roundabout_right.png | Bin 0 -> 864 bytes
.../vehicle/restrictions/speed.png | Bin 0 -> 997 bytes
.../vehicle/restrictions/speed/30-end.png | Bin 0 -> 903 bytes
.../vehicle/restrictions/speed_trap.png | Bin 0 -> 456 bytes
.../vehicle/restrictions/stop.png | Bin 0 -> 678 bytes
.../vehicle/restrictions/traffic-light.png | Bin 0 -> 455 bytes
.../vehicle/restrictions/traffic_jam.png | Bin 0 -> 709 bytes
.../ireland/no_left_turn.png | Bin 0 -> 1730 bytes
.../ireland/no_right_turn.png | Bin 0 -> 1730 bytes
.../ireland/no_straight_on.png | Bin 0 -> 1697 bytes
.../turn_restrictions/ireland/no_u_turn.png | Bin 0 -> 1495 bytes
.../turn_restrictions/no_left_turn.png | Bin 0 -> 1590 bytes
.../turn_restrictions/no_right_turn.png | Bin 0 -> 1587 bytes
.../turn_restrictions/no_straight_on.png | Bin 0 -> 1728 bytes
.../turn_restrictions/no_u_turn.png | Bin 0 -> 1504 bytes
.../turn_restrictions/only_left_turn.png | Bin 0 -> 1397 bytes
.../turn_restrictions/only_right_turn.png | Bin 0 -> 1391 bytes
.../turn_restrictions/only_straight_on.png | Bin 0 -> 1328 bytes
.../classic.small/vehicle/services.png | Bin 0 -> 594 bytes
.../map-icons/classic.small/vehicle/stile.png | Bin 0 -> 413 bytes
.../map-icons/classic.small/vehicle/tank.png | Bin 0 -> 508 bytes
.../classic.small/vehicle/toll_station.png | Bin 0 -> 545 bytes
.../classic.small/vehicle/towing.png | Bin 0 -> 562 bytes
.../classic.small/vehicle/tunnel.png | Bin 0 -> 496 bytes
.../classic.small/vehicle/turning_circle.png | Bin 0 -> 292 bytes
.../classic.small/vehicle/viaduct.png | Bin 0 -> 338 bytes
.../classic.small/vehicle/zebra_crossing.png | Bin 0 -> 227 bytes
Icons/map-icons/classic.small/waypoint.png | Bin 0 -> 429 bytes
.../map-icons/classic.small/waypoint/wpt1.png | Bin 0 -> 458 bytes
.../map-icons/classic.small/waypoint/wpt2.png | Bin 0 -> 459 bytes
.../map-icons/classic.small/waypoint/wpt3.png | Bin 0 -> 522 bytes
.../map-icons/classic.small/waypoint/wpt4.png | Bin 0 -> 447 bytes
.../map-icons/classic.small/waypoint/wpt5.png | Bin 0 -> 663 bytes
.../map-icons/classic.small/waypoint/wpt6.png | Bin 0 -> 1132 bytes
.../map-icons/classic.small/waypoint/wpt7.png | Bin 0 -> 967 bytes
.../map-icons/classic.small/waypoint/wpt8.png | Bin 0 -> 1134 bytes
.../map-icons/classic.small/waypoint/wpt9.png | Bin 0 -> 1129 bytes
.../classic.small/waypoint/wptblue.png | Bin 0 -> 402 bytes
.../classic.small/waypoint/wptgreen.png | Bin 0 -> 400 bytes
.../classic.small/waypoint/wptorange.png | Bin 0 -> 433 bytes
.../classic.small/waypoint/wptred.png | Bin 0 -> 400 bytes
.../classic.small/waypoint/wpttemp.png | Bin 0 -> 850 bytes
.../waypoint/wpttemp/wpttemp-green.png | Bin 0 -> 848 bytes
.../waypoint/wpttemp/wpttemp-red.png | Bin 0 -> 839 bytes
.../waypoint/wpttemp/wpttemp-yellow.png | Bin 0 -> 842 bytes
.../classic.small/waypoint/wptyellow.png | Bin 0 -> 411 bytes
Icons/map-icons/classic.small/wlan.png | Bin 0 -> 655 bytes
Icons/map-icons/classic.small/wlan/closed.png | Bin 0 -> 433 bytes
Icons/map-icons/classic.small/wlan/open.png | Bin 0 -> 447 bytes
Icons/map-icons/classic.small/wlan/pay.png | Bin 0 -> 545 bytes
.../map-icons/classic.small/wlan/pay/fon.png | Bin 0 -> 975 bytes
Icons/map-icons/classic.small/wlan/wep.png | Bin 0 -> 473 bytes
.../map-icons/square.small/accommodation.png | Bin 0 -> 547 bytes
.../square.small/accommodation/camping.png | Bin 0 -> 552 bytes
.../accommodation/camping/caravan.png | Bin 0 -> 610 bytes
.../accommodation/camping/dump-station.png | Bin 0 -> 724 bytes
.../accommodation/camping/gas-refill.png | Bin 0 -> 517 bytes
.../accommodation/camping/hookup.png | Bin 0 -> 463 bytes
.../accommodation/camping/trash.png | Bin 0 -> 610 bytes
.../accommodation/camping/wastewater.png | Bin 0 -> 582 bytes
.../accommodation/camping/water.png | Bin 0 -> 494 bytes
.../square.small/accommodation/chalet.png | Bin 0 -> 752 bytes
.../square.small/accommodation/empty.png | Bin 0 -> 249 bytes
.../accommodation/guest_house.png | Bin 0 -> 670 bytes
.../square.small/accommodation/hostel.png | Bin 0 -> 414 bytes
.../square.small/accommodation/hotel.png | Bin 0 -> 547 bytes
.../accommodation/hotel/five_star.png | Bin 0 -> 664 bytes
.../accommodation/hotel/four_star.png | Bin 0 -> 632 bytes
.../accommodation/hotel/one_star.png | Bin 0 -> 567 bytes
.../accommodation/hotel/three_star.png | Bin 0 -> 613 bytes
.../accommodation/hotel/two_star.png | Bin 0 -> 582 bytes
.../square.small/accommodation/motel.png | Bin 0 -> 513 bytes
.../square.small/accommodation/shelter-bw.png | Bin 0 -> 801 bytes
.../square.small/accommodation/shelter.png | Bin 0 -> 789 bytes
.../accommodation/youth-hostel.png | Bin 0 -> 642 bytes
Icons/map-icons/square.small/education.png | Bin 0 -> 662 bytes
.../square.small/education/empty.png | Bin 0 -> 249 bytes
.../square.small/education/kindergarten.png | Bin 0 -> 804 bytes
.../square.small/education/university.png | Bin 0 -> 432 bytes
Icons/map-icons/square.small/food.png | Bin 0 -> 303 bytes
.../square.small/food/bacon_and_eggs.png | Bin 0 -> 1299 bytes
Icons/map-icons/square.small/food/bar.png | Bin 0 -> 693 bytes
.../square.small/food/biergarten.png | Bin 0 -> 771 bytes
Icons/map-icons/square.small/food/cafe.png | Bin 0 -> 384 bytes
Icons/map-icons/square.small/food/empty.png | Bin 0 -> 249 bytes
.../map-icons/square.small/food/fastfood.png | Bin 0 -> 763 bytes
.../food/fastfood/burger-king.png | Bin 0 -> 990 bytes
.../square.small/food/fastfood/kfc.png | Bin 0 -> 861 bytes
.../square.small/food/fastfood/mc-donalds.png | Bin 0 -> 932 bytes
.../square.small/food/fastfood/subway.png | Bin 0 -> 737 bytes
.../map-icons/square.small/food/icecream.png | Bin 0 -> 546 bytes
.../map-icons/square.small/food/pizzahut.png | Bin 0 -> 790 bytes
Icons/map-icons/square.small/food/pub.png | Bin 0 -> 685 bytes
.../square.small/food/restaurant.png | Bin 0 -> 303 bytes
Icons/map-icons/square.small/food/snacks.png | Bin 0 -> 735 bytes
Icons/map-icons/square.small/geocache.png | Bin 0 -> 452 bytes
.../map-icons/square.small/geocache/empty.png | Bin 0 -> 317 bytes
.../geocache/geocache_drivein.png | Bin 0 -> 728 bytes
.../square.small/geocache/geocache_earth.png | Bin 0 -> 815 bytes
.../square.small/geocache/geocache_event.png | Bin 0 -> 788 bytes
.../square.small/geocache/geocache_found.png | Bin 0 -> 593 bytes
.../square.small/geocache/geocache_math.png | Bin 0 -> 730 bytes
.../square.small/geocache/geocache_multi.png | Bin 0 -> 788 bytes
.../geocache/geocache_multi/multi_stage01.png | Bin 0 -> 554 bytes
.../geocache/geocache_multi/multi_stage02.png | Bin 0 -> 609 bytes
.../geocache/geocache_multi/multi_stage03.png | Bin 0 -> 603 bytes
.../geocache/geocache_multi/multi_stage04.png | Bin 0 -> 572 bytes
.../geocache/geocache_multi/multi_stage05.png | Bin 0 -> 637 bytes
.../geocache/geocache_multi/multi_stage06.png | Bin 0 -> 609 bytes
.../geocache/geocache_multi/multi_stage07.png | Bin 0 -> 563 bytes
.../geocache/geocache_multi/multi_stage08.png | Bin 0 -> 619 bytes
.../geocache/geocache_multi/multi_stage09.png | Bin 0 -> 611 bytes
.../geocache/geocache_multi/multi_stage10.png | Bin 0 -> 561 bytes
.../geocache/geocache_mystery.png | Bin 0 -> 900 bytes
.../square.small/geocache/geocache_night.png | Bin 0 -> 1009 bytes
.../geocache/geocache_traditional.png | Bin 0 -> 637 bytes
.../geocache/geocache_virtual.png | Bin 0 -> 758 bytes
.../square.small/geocache/geocache_webcam.png | Bin 0 -> 953 bytes
Icons/map-icons/square.small/health.png | Bin 0 -> 372 bytes
.../map-icons/square.small/health/doctor.png | Bin 0 -> 640 bytes
.../square.small/health/emergency.png | Bin 0 -> 613 bytes
Icons/map-icons/square.small/health/empty.png | Bin 0 -> 359 bytes
.../square.small/health/hospital.png | Bin 0 -> 641 bytes
.../square.small/health/pharmacy.png | Bin 0 -> 465 bytes
.../square.small/health/veterinary.png | Bin 0 -> 855 bytes
Icons/map-icons/square.small/incomming.png | Bin 0 -> 580 bytes
.../square.small/incomming/empty.png | Bin 0 -> 413 bytes
Icons/map-icons/square.small/misc.png | Bin 0 -> 173 bytes
Icons/map-icons/square.small/misc/bunny.png | Bin 0 -> 698 bytes
.../map-icons/square.small/misc/butterfly.png | Bin 0 -> 775 bytes
.../square.small/misc/construction.png | Bin 0 -> 486 bytes
Icons/map-icons/square.small/misc/danger.png | Bin 0 -> 653 bytes
.../square.small/misc/deprecated.png | Bin 0 -> 556 bytes
Icons/map-icons/square.small/misc/door.png | Bin 0 -> 350 bytes
Icons/map-icons/square.small/misc/empty.png | Bin 0 -> 264 bytes
.../square.small/misc/information.png | Bin 0 -> 561 bytes
.../map-icons/square.small/misc/landmark.png | Bin 0 -> 374 bytes
.../square.small/misc/landmark/barn.png | Bin 0 -> 579 bytes
.../square.small/misc/landmark/bunker.png | Bin 0 -> 497 bytes
.../square.small/misc/landmark/chimney.png | Bin 0 -> 449 bytes
.../square.small/misc/landmark/crane.png | Bin 0 -> 565 bytes
.../square.small/misc/landmark/empty.png | Bin 0 -> 225 bytes
.../square.small/misc/landmark/farm.png | Bin 0 -> 700 bytes
.../square.small/misc/landmark/gasometer.png | Bin 0 -> 526 bytes
.../square.small/misc/landmark/lighthouse.png | Bin 0 -> 589 bytes
.../square.small/misc/landmark/mine.png | Bin 0 -> 751 bytes
.../misc/landmark/mountain_pass.png | Bin 0 -> 633 bytes
.../square.small/misc/landmark/peak.png | Bin 0 -> 440 bytes
.../square.small/misc/landmark/peak_small.png | Bin 0 -> 369 bytes
.../square.small/misc/landmark/pier.png | Bin 0 -> 544 bytes
.../square.small/misc/landmark/plant.png | Bin 0 -> 729 bytes
.../square.small/misc/landmark/power.png | Bin 0 -> 503 bytes
.../misc/landmark/power/fossil.png | Bin 0 -> 618 bytes
.../misc/landmark/power/hydro.png | Bin 0 -> 546 bytes
.../misc/landmark/power/nuclear.png | Bin 0 -> 735 bytes
.../misc/landmark/power/tower.png | Bin 0 -> 689 bytes
.../square.small/misc/landmark/power/wind.png | Bin 0 -> 679 bytes
.../square.small/misc/landmark/range.png | Bin 0 -> 678 bytes
.../misc/landmark/reservoir_covered.png | Bin 0 -> 587 bytes
.../square.small/misc/landmark/spring.png | Bin 0 -> 485 bytes
.../misc/landmark/survey_point.png | Bin 0 -> 529 bytes
.../square.small/misc/landmark/tower.png | Bin 0 -> 629 bytes
.../square.small/misc/landmark/trees.png | Bin 0 -> 841 bytes
.../misc/landmark/wastewater_plant.png | Bin 0 -> 710 bytes
.../misc/landmark/water_tower.png | Bin 0 -> 446 bytes
.../square.small/misc/landmark/windmill.png | Bin 0 -> 633 bytes
.../square.small/misc/landmark/works.png | Bin 0 -> 575 bytes
.../square.small/misc/lock_closed.png | Bin 0 -> 582 bytes
.../map-icons/square.small/misc/lock_open.png | Bin 0 -> 596 bytes
Icons/map-icons/square.small/misc/no_icon.png | Bin 0 -> 434 bytes
.../square.small/misc/no_smoking.png | Bin 0 -> 900 bytes
.../map-icons/square.small/misc/proposed.png | Bin 0 -> 552 bytes
.../square.small/misc/tap_drinking.png | Bin 0 -> 643 bytes
Icons/map-icons/square.small/money.png | Bin 0 -> 691 bytes
Icons/map-icons/square.small/money/atm.png | Bin 0 -> 600 bytes
Icons/map-icons/square.small/money/bank.png | Bin 0 -> 665 bytes
Icons/map-icons/square.small/money/empty.png | Bin 0 -> 249 bytes
.../map-icons/square.small/money/exchange.png | Bin 0 -> 729 bytes
Icons/map-icons/square.small/nautical.png | Bin 0 -> 1166 bytes
.../square.small/nautical/alpha_flag.png | Bin 0 -> 434 bytes
.../square.small/nautical/aqueduct.png | Bin 0 -> 423 bytes
.../map-icons/square.small/nautical/empty.png | Bin 0 -> 241 bytes
.../square.small/nautical/lock_gate.png | Bin 0 -> 572 bytes
.../square.small/nautical/turning.png | Bin 0 -> 454 bytes
.../map-icons/square.small/nautical/weir.png | Bin 0 -> 429 bytes
Icons/map-icons/square.small/people.png | Bin 0 -> 504 bytes
.../people/developer/gpsdrive.png | Bin 0 -> 692 bytes
.../people/developer/openstreetmap.png | Bin 0 -> 706 bytes
Icons/map-icons/square.small/people/empty.png | Bin 0 -> 242 bytes
.../map-icons/square.small/people/friends.png | Bin 0 -> 464 bytes
.../square.small/people/friendsd.png | Bin 0 -> 1106 bytes
.../square.small/people/friendsd/airplane.png | Bin 0 -> 171 bytes
.../square.small/people/friendsd/bike.png | Bin 0 -> 1232 bytes
.../square.small/people/friendsd/boat.png | Bin 0 -> 171 bytes
.../square.small/people/friendsd/car.png | Bin 0 -> 1106 bytes
.../square.small/people/friendsd/walk.png | Bin 0 -> 171 bytes
Icons/map-icons/square.small/people/home.png | Bin 0 -> 253 bytes
Icons/map-icons/square.small/people/work.png | Bin 0 -> 266 bytes
Icons/map-icons/square.small/places.png | Bin 0 -> 188 bytes
Icons/map-icons/square.small/places/empty.png | Bin 0 -> 231 bytes
.../square.small/places/settlement.png | Bin 0 -> 377 bytes
.../places/settlement/capital.png | Bin 0 -> 586 bytes
.../square.small/places/settlement/city.png | Bin 0 -> 407 bytes
.../square.small/places/settlement/hamlet.png | Bin 0 -> 218 bytes
.../square.small/places/settlement/town.png | Bin 0 -> 377 bytes
.../places/settlement/village.png | Bin 0 -> 271 bytes
Icons/map-icons/square.small/public.png | Bin 0 -> 1166 bytes
.../public/administration/court_of_law.png | Bin 0 -> 982 bytes
.../public/administration/prison.png | Bin 0 -> 800 bytes
.../square.small/public/arts_centre.png | Bin 0 -> 1245 bytes
Icons/map-icons/square.small/public/empty.png | Bin 0 -> 1166 bytes
.../square.small/public/firebrigade.png | Bin 0 -> 1099 bytes
.../map-icons/square.small/public/police.png | Bin 0 -> 1118 bytes
.../square.small/public/post_box.png | Bin 0 -> 853 bytes
.../square.small/public/post_office.png | Bin 0 -> 934 bytes
.../square.small/public/recycling.png | Bin 0 -> 1250 bytes
.../public/recycling/trash-bin.png | Bin 0 -> 1144 bytes
.../square.small/public/recycling_small.png | Bin 0 -> 1288 bytes
.../square.small/public/telephone.png | Bin 0 -> 972 bytes
.../map-icons/square.small/public/toilets.png | Bin 0 -> 1223 bytes
Icons/map-icons/square.small/recreation.png | Bin 0 -> 762 bytes
.../square.small/recreation/bicycling.png | Bin 0 -> 921 bytes
.../square.small/recreation/cinema.png | Bin 0 -> 935 bytes
.../square.small/recreation/common.png | Bin 0 -> 648 bytes
.../square.small/recreation/empty.png | Bin 0 -> 242 bytes
.../square.small/recreation/garden.png | Bin 0 -> 700 bytes
.../square.small/recreation/music.png | Bin 0 -> 756 bytes
.../recreation/nature_reserve.png | Bin 0 -> 770 bytes
.../square.small/recreation/nightclub.png | Bin 0 -> 693 bytes
.../square.small/recreation/park.png | Bin 0 -> 559 bytes
.../square.small/recreation/picnic.png | Bin 0 -> 1105 bytes
.../square.small/recreation/playground.png | Bin 0 -> 702 bytes
.../square.small/recreation/shelter.png | Bin 0 -> 783 bytes
.../square.small/recreation/theater.png | Bin 0 -> 848 bytes
.../square.small/recreation/theme_park.png | Bin 0 -> 980 bytes
.../square.small/recreation/water_park.png | Bin 0 -> 669 bytes
.../map-icons/square.small/recreation/zoo.png | Bin 0 -> 526 bytes
Icons/map-icons/square.small/religion.png | Bin 0 -> 756 bytes
.../square.small/religion/cemetery.png | Bin 0 -> 394 bytes
.../square.small/religion/chapel.png | Bin 0 -> 547 bytes
.../square.small/religion/church.png | Bin 0 -> 489 bytes
.../square.small/religion/church/bahai.png | Bin 0 -> 681 bytes
.../square.small/religion/church/buddhism.png | Bin 0 -> 642 bytes
.../square.small/religion/church/catholic.png | Bin 0 -> 474 bytes
.../square.small/religion/church/hinduism.png | Bin 0 -> 719 bytes
.../square.small/religion/church/jainism.png | Bin 0 -> 531 bytes
.../square.small/religion/church/mormon.png | Bin 0 -> 716 bytes
.../square.small/religion/church/mosque.png | Bin 0 -> 539 bytes
.../square.small/religion/church/orthodox.png | Bin 0 -> 524 bytes
.../religion/church/protestant.png | Bin 0 -> 482 bytes
.../square.small/religion/church/shinto.png | Bin 0 -> 407 bytes
.../square.small/religion/church/sikhism.png | Bin 0 -> 663 bytes
.../religion/church/synagogue.png | Bin 0 -> 651 bytes
.../square.small/religion/church/taoism.png | Bin 0 -> 675 bytes
.../map-icons/square.small/religion/empty.png | Bin 0 -> 247 bytes
Icons/map-icons/square.small/rendering.png | Bin 0 -> 256 bytes
Icons/map-icons/square.small/shopping.png | Bin 0 -> 1166 bytes
.../square.small/shopping/beverages.png | Bin 0 -> 716 bytes
.../square.small/shopping/computers.png | Bin 0 -> 1056 bytes
.../square.small/shopping/confectioner.png | Bin 0 -> 1133 bytes
.../square.small/shopping/diy_store.png | Bin 0 -> 701 bytes
.../shopping/diy_store/hagebau.png | Bin 0 -> 850 bytes
.../shopping/diy_store/hornbach.png | Bin 0 -> 752 bytes
.../square.small/shopping/diy_store/obi.png | Bin 0 -> 472 bytes
.../shopping/diy_store/praktiker.png | Bin 0 -> 439 bytes
.../map-icons/square.small/shopping/empty.png | Bin 0 -> 236 bytes
.../square.small/shopping/florist.png | Bin 0 -> 638 bytes
.../square.small/shopping/furniture.png | Bin 0 -> 731 bytes
.../shopping/groceries/bakery.png | Bin 0 -> 1078 bytes
.../shopping/groceries/butcher.png | Bin 0 -> 466 bytes
.../shopping/groceries/fruits.png | Bin 0 -> 1299 bytes
.../square.small/shopping/kaufhof.png | Bin 0 -> 654 bytes
.../map-icons/square.small/shopping/kiosk.png | Bin 0 -> 592 bytes
.../square.small/shopping/laundry.png | Bin 0 -> 503 bytes
.../square.small/shopping/sports/outdoor.png | Bin 0 -> 705 bytes
.../square.small/shopping/supermarket.png | Bin 0 -> 638 bytes
.../shopping/supermarket/aldi.png | Bin 0 -> 375 bytes
.../shopping/supermarket/aldi_nord.png | Bin 0 -> 612 bytes
.../shopping/supermarket/kaufland.png | Bin 0 -> 409 bytes
.../shopping/supermarket/lidl.png | Bin 0 -> 942 bytes
.../shopping/supermarket/norma.png | Bin 0 -> 430 bytes
.../shopping/supermarket/real.png | Bin 0 -> 515 bytes
.../shopping/supermarket/rewe.png | Bin 0 -> 389 bytes
.../shopping/supermarket/tengelmann.png | Bin 0 -> 818 bytes
Icons/map-icons/square.small/sightseeing.png | Bin 0 -> 416 bytes
.../sightseeing/archaeological.png | Bin 0 -> 644 bytes
.../square.small/sightseeing/battlefield.png | Bin 0 -> 753 bytes
.../square.small/sightseeing/castle.png | Bin 0 -> 502 bytes
.../square.small/sightseeing/empty.png | Bin 0 -> 241 bytes
.../square.small/sightseeing/memorial.png | Bin 0 -> 501 bytes
.../square.small/sightseeing/monument.png | Bin 0 -> 412 bytes
.../square.small/sightseeing/museum.png | Bin 0 -> 683 bytes
.../square.small/sightseeing/ruins.png | Bin 0 -> 496 bytes
.../square.small/sightseeing/viewpoint.png | Bin 0 -> 1689 bytes
Icons/map-icons/square.small/sports.png | Bin 0 -> 619 bytes
.../square.small/sports/basketball.png | Bin 0 -> 694 bytes
.../map-icons/square.small/sports/bicycle.png | Bin 0 -> 537 bytes
.../map-icons/square.small/sports/centre.png | Bin 0 -> 628 bytes
.../map-icons/square.small/sports/cycling.png | Bin 0 -> 667 bytes
Icons/map-icons/square.small/sports/dart.png | Bin 0 -> 909 bytes
Icons/map-icons/square.small/sports/empty.png | Bin 0 -> 246 bytes
.../square.small/sports/football.png | Bin 0 -> 610 bytes
Icons/map-icons/square.small/sports/golf.png | Bin 0 -> 840 bytes
.../square.small/sports/indoor_pool.png | Bin 0 -> 706 bytes
.../square.small/sports/kiteflying.png | Bin 0 -> 586 bytes
.../square.small/sports/mountain_bike.png | Bin 0 -> 716 bytes
Icons/map-icons/square.small/sports/pitch.png | Bin 0 -> 773 bytes
Icons/map-icons/square.small/sports/pool.png | Bin 0 -> 676 bytes
.../square.small/sports/racquetball.png | Bin 0 -> 749 bytes
.../map-icons/square.small/sports/riding.png | Bin 0 -> 552 bytes
.../map-icons/square.small/sports/skiing.png | Bin 0 -> 798 bytes
.../map-icons/square.small/sports/soccer.png | Bin 0 -> 619 bytes
.../square.small/sports/swimming.png | Bin 0 -> 548 bytes
.../square.small/sports/table_tennis.png | Bin 0 -> 646 bytes
.../map-icons/square.small/sports/tennis.png | Bin 0 -> 737 bytes
Icons/map-icons/square.small/transport.png | Bin 0 -> 653 bytes
.../square.small/transport/airport.png | Bin 0 -> 527 bytes
.../transport/airport/airfield.png | Bin 0 -> 507 bytes
.../transport/airport/helipad.png | Bin 0 -> 531 bytes
.../transport/airport/terminal.png | Bin 0 -> 659 bytes
.../square.small/transport/bridge.png | Bin 0 -> 427 bytes
.../transport/bridge/bridge-car.png | Bin 0 -> 642 bytes
.../transport/bridge/bridge-pedestrian.png | Bin 0 -> 614 bytes
.../transport/bridge/drawbridge.png | Bin 0 -> 571 bytes
.../map-icons/square.small/transport/bus.png | Bin 0 -> 574 bytes
.../map-icons/square.small/transport/car.png | Bin 0 -> 502 bytes
.../square.small/transport/empty.png | Bin 0 -> 244 bytes
.../square.small/transport/ferry.png | Bin 0 -> 458 bytes
.../transport/ferry/ferry-car.png | Bin 0 -> 592 bytes
.../transport/ferry/ferry-pedestrian.png | Bin 0 -> 609 bytes
.../square.small/transport/handicapped.png | Bin 0 -> 539 bytes
.../square.small/transport/harbour.png | Bin 0 -> 570 bytes
.../square.small/transport/park_ride.png | Bin 0 -> 591 bytes
.../square.small/transport/pedestrian.png | Bin 0 -> 601 bytes
.../square.small/transport/railway.png | Bin 0 -> 645 bytes
.../square.small/transport/rapid_train.png | Bin 0 -> 870 bytes
.../map-icons/square.small/transport/taxi.png | Bin 0 -> 680 bytes
.../square.small/transport/ticket-machine.png | Bin 0 -> 644 bytes
.../map-icons/square.small/transport/tram.png | Bin 0 -> 516 bytes
.../square.small/transport/turntable.png | Bin 0 -> 675 bytes
.../square.small/transport/underground.png | Bin 0 -> 513 bytes
Icons/map-icons/square.small/unknown.png | Bin 0 -> 613 bytes
Icons/map-icons/square.small/vehicle.png | Bin 0 -> 605 bytes
.../square.small/vehicle/bicycle_rental.png | Bin 0 -> 795 bytes
.../square.small/vehicle/car_rental.png | Bin 0 -> 669 bytes
.../square.small/vehicle/car_rental/avis.png | Bin 0 -> 792 bytes
.../vehicle/car_rental/europcar.png | Bin 0 -> 652 bytes
.../square.small/vehicle/car_rental/hertz.png | Bin 0 -> 702 bytes
.../square.small/vehicle/car_rental/sixt.png | Bin 0 -> 728 bytes
.../square.small/vehicle/car_sharing.png | Bin 0 -> 751 bytes
.../square.small/vehicle/caution.png | Bin 0 -> 626 bytes
.../square.small/vehicle/crossing.png | Bin 0 -> 518 bytes
.../square.small/vehicle/crossing_small.png | Bin 0 -> 441 bytes
.../square.small/vehicle/emergency_phone.png | Bin 0 -> 551 bytes
.../map-icons/square.small/vehicle/empty.png | Bin 0 -> 236 bytes
Icons/map-icons/square.small/vehicle/exit.png | Bin 0 -> 523 bytes
Icons/map-icons/square.small/vehicle/ford.png | Bin 0 -> 608 bytes
.../square.small/vehicle/fuel_station.png | Bin 0 -> 476 bytes
.../vehicle/fuel_station/agip.png | Bin 0 -> 649 bytes
.../vehicle/fuel_station/aral.png | Bin 0 -> 693 bytes
.../square.small/vehicle/fuel_station/elf.png | Bin 0 -> 471 bytes
.../vehicle/fuel_station/esso.png | Bin 0 -> 648 bytes
.../square.small/vehicle/fuel_station/jet.png | Bin 0 -> 687 bytes
.../square.small/vehicle/fuel_station/omv.png | Bin 0 -> 609 bytes
.../vehicle/fuel_station/shell.png | Bin 0 -> 698 bytes
.../vehicle/fuel_station/texaco.png | Bin 0 -> 587 bytes
.../vehicle/fuel_station/total.png | Bin 0 -> 838 bytes
.../square.small/vehicle/motorbike.png | Bin 0 -> 619 bytes
.../square.small/vehicle/parking.png | Bin 0 -> 431 bytes
.../square.small/vehicle/parking/bike.png | Bin 0 -> 722 bytes
.../square.small/vehicle/parking/car.png | Bin 0 -> 673 bytes
.../square.small/vehicle/parking/garage.png | Bin 0 -> 535 bytes
.../vehicle/parking/handicapped.png | Bin 0 -> 656 bytes
.../square.small/vehicle/parking/hiking.png | Bin 0 -> 642 bytes
.../vehicle/parking/motorbike.png | Bin 0 -> 654 bytes
.../vehicle/parking/park_ride.png | Bin 0 -> 602 bytes
.../vehicle/parking/restarea-toilets.png | Bin 0 -> 688 bytes
.../square.small/vehicle/parking/restarea.png | Bin 0 -> 670 bytes
.../square.small/vehicle/repair_shop.png | Bin 0 -> 420 bytes
.../square.small/vehicle/restrictions.png | Bin 0 -> 706 bytes
.../vehicle/restrictions/bollard-bw.png | Bin 0 -> 627 bytes
.../vehicle/restrictions/bollard.png | Bin 0 -> 646 bytes
.../vehicle/restrictions/dead_end.png | Bin 0 -> 423 bytes
.../vehicle/restrictions/incline.png | Bin 0 -> 649 bytes
.../vehicle/restrictions/motorbike.png | Bin 0 -> 706 bytes
.../vehicle/restrictions/parking.png | Bin 0 -> 690 bytes
.../vehicle/restrictions/play_street.png | Bin 0 -> 643 bytes
.../vehicle/restrictions/right_of_way.png | Bin 0 -> 621 bytes
.../vehicle/restrictions/road_works.png | Bin 0 -> 748 bytes
.../vehicle/restrictions/roundabout_left.png | Bin 0 -> 780 bytes
.../vehicle/restrictions/roundabout_right.png | Bin 0 -> 779 bytes
.../vehicle/restrictions/stop.png | Bin 0 -> 654 bytes
.../vehicle/restrictions/traffic-light.png | Bin 0 -> 416 bytes
.../vehicle/restrictions/traffic_jam.png | Bin 0 -> 674 bytes
.../square.small/vehicle/services.png | Bin 0 -> 540 bytes
.../square.small/vehicle/toll_station.png | Bin 0 -> 846 bytes
.../map-icons/square.small/vehicle/tunnel.png | Bin 0 -> 468 bytes
.../square.small/vehicle/turning_circle.png | Bin 0 -> 380 bytes
.../square.small/vehicle/viaduct.png | Bin 0 -> 330 bytes
.../square.small/vehicle/zebra_crossing.png | Bin 0 -> 281 bytes
Icons/map-icons/square.small/waypoint.png | Bin 0 -> 351 bytes
.../map-icons/square.small/waypoint/empty.png | Bin 0 -> 225 bytes
.../map-icons/square.small/waypoint/flag.png | Bin 0 -> 303 bytes
.../square.small/waypoint/flag/blue.png | Bin 0 -> 303 bytes
.../square.small/waypoint/flag/green.png | Bin 0 -> 300 bytes
.../square.small/waypoint/flag/orange.png | Bin 0 -> 312 bytes
.../square.small/waypoint/flag/red.png | Bin 0 -> 288 bytes
.../square.small/waypoint/flag/temp.png | Bin 0 -> 585 bytes
.../square.small/waypoint/flag/yellow.png | Bin 0 -> 305 bytes
.../square.small/waypoint/routepoint.png | Bin 0 -> 476 bytes
.../waypoint/routepoint/destination.png | Bin 0 -> 907 bytes
.../square.small/waypoint/routepoint/left.png | Bin 0 -> 382 bytes
.../waypoint/routepoint/left/exit.png | Bin 0 -> 703 bytes
.../waypoint/routepoint/left/fork.png | Bin 0 -> 560 bytes
.../waypoint/routepoint/left/hard.png | Bin 0 -> 675 bytes
.../waypoint/routepoint/left/merge.png | Bin 0 -> 668 bytes
.../waypoint/routepoint/left/soft.png | Bin 0 -> 575 bytes
.../waypoint/routepoint/left/uturn.png | Bin 0 -> 412 bytes
.../waypoint/routepoint/right.png | Bin 0 -> 392 bytes
.../waypoint/routepoint/right/exit.png | Bin 0 -> 688 bytes
.../waypoint/routepoint/right/fork.png | Bin 0 -> 548 bytes
.../waypoint/routepoint/right/hard.png | Bin 0 -> 667 bytes
.../waypoint/routepoint/right/merge.png | Bin 0 -> 649 bytes
.../waypoint/routepoint/right/soft.png | Bin 0 -> 584 bytes
.../waypoint/routepoint/right/uturn.png | Bin 0 -> 429 bytes
.../waypoint/routepoint/straight.png | Bin 0 -> 331 bytes
.../map-icons/square.small/waypoint/wpt1.png | Bin 0 -> 366 bytes
.../map-icons/square.small/waypoint/wpt2.png | Bin 0 -> 404 bytes
.../map-icons/square.small/waypoint/wpt3.png | Bin 0 -> 396 bytes
.../map-icons/square.small/waypoint/wpt4.png | Bin 0 -> 382 bytes
.../map-icons/square.small/waypoint/wpt5.png | Bin 0 -> 410 bytes
.../map-icons/square.small/waypoint/wpt6.png | Bin 0 -> 399 bytes
.../map-icons/square.small/waypoint/wpt7.png | Bin 0 -> 374 bytes
.../map-icons/square.small/waypoint/wpt8.png | Bin 0 -> 395 bytes
.../map-icons/square.small/waypoint/wpt9.png | Bin 0 -> 397 bytes
.../waypoint/wpttemp/wpttemp-green.png | Bin 0 -> 587 bytes
.../waypoint/wpttemp/wpttemp-red.png | Bin 0 -> 552 bytes
.../waypoint/wpttemp/wpttemp-yellow.png | Bin 0 -> 596 bytes
Icons/map-icons/square.small/wlan.png | Bin 0 -> 177 bytes
Icons/map-icons/square.small/wlan/closed.png | Bin 0 -> 616 bytes
Icons/map-icons/square.small/wlan/empty.png | Bin 0 -> 238 bytes
Icons/map-icons/square.small/wlan/open.png | Bin 0 -> 643 bytes
Icons/map-icons/square.small/wlan/pay.png | Bin 0 -> 483 bytes
Icons/map-icons/square.small/wlan/pay/fon.png | Bin 0 -> 934 bytes
Icons/map-icons/square.small/wlan/wep.png | Bin 0 -> 750 bytes
Icons/merkaartor-win32.rc | 1 +
Icons/merkaartor.icns | Bin 0 -> 518181 bytes
Icons/move.xpm | 31 +
Icons/remove.xpm | 30 +
Icons/reverse.xpm | 33 +
Icons/rotate.png | Bin 0 -> 819 bytes
Icons/rotate.svg | 565 ++
Icons/small-remove.xpm | 18 +
Icons/src/actions/GPS.svg | 73 +
Icons/src/actions/align_nodes.pspimage | Bin 0 -> 4056 bytes
Icons/src/actions/break_apart_roads.pspimage | Bin 0 -> 7513 bytes
Icons/src/actions/build_bridge.xcf | Bin 0 -> 1420 bytes
Icons/src/actions/camera.svg | 57 +
Icons/src/actions/create_area.pspimage | Bin 0 -> 5254 bytes
Icons/src/actions/create_node.pspimage | Bin 0 -> 3463 bytes
Icons/src/actions/create_road.pspimage | Bin 0 -> 5152 bytes
Icons/src/actions/detach_node.pspimage | Bin 0 -> 5383 bytes
Icons/src/actions/join_roads.pspimage | Bin 0 -> 6057 bytes
Icons/src/actions/node_4.png | Bin 0 -> 154 bytes
Icons/src/actions/node_5.png | Bin 0 -> 224 bytes
Icons/src/actions/plus_11_oxygen.png | Bin 0 -> 448 bytes
Icons/src/actions/reverse_road.pspimage | Bin 0 -> 4239 bytes
Icons/src/actions/shadow.xcf | Bin 0 -> 1864 bytes
Icons/src/actions/split_road.pspimage | Bin 0 -> 7766 bytes
Icons/src/actions/split_road_a.pspimage | Bin 0 -> 6457 bytes
Icons/src/actions/split_road_b.pspimage | Bin 0 -> 6820 bytes
Icons/toolselect.xpm | 30 +
Icons/zoomico.xpm | 40 +
LICENSE | 225 +
Merkaartor.pro | 11 +
README.md | 51 +
Styles/Bicycle.mas | 426 +
Styles/Classic.mas | 252 +
Styles/Lighting.mas | 50 +
Styles/Mapnik.mas | 715 ++
Styles/MapnikPlus.mas | 1004 +++
Styles/Maxspeed.mas | 205 +
Styles/Merkaartor.mas | 1085 +++
Styles/Mobile.mas | 622 ++
Styles/None.mas | 2 +
Styles/Styles.qrc | 14 +
Styles/Validation.mas | 41 +
Styles/Wireframe.mas | 680 ++
Templates/Brussels.mat | 99 +
Templates/TagTemplate.xsd | 67 +
Templates/Templates.qrc | 5 +
Templates/default.mat | 2895 +++++++
Templates/mine.mat | 2803 +++++++
cmake/CMakeDMGBackground.tif | Bin 0 -> 213169 bytes
cmake/CMakeDMGSetup.scpt | 58 +
cmake/DS_Store.bin | Bin 0 -> 10244 bytes
cmake/ModulesOverride/NSIS.template.in | 998 +++
cmake/deploy-osx.cmake.in | 15 +
cmake/deploy-windows.cmake.in | 52 +
cmake/upload-artifacts.sh.in | 12 +
cmake/vcs-snapshot.cmake | 35 +
cmake/vcs.cmake | 80 +
include/RTree.h | 1600 ++++
interfaces/IBackend.h | 34 +
interfaces/IDocument.h | 20 +
interfaces/IFeature.h | 124 +
interfaces/IImageManager.cpp | 86 +
interfaces/IImageManager.h | 107 +
interfaces/ILayer.h | 9 +
interfaces/IMapAdapter.h | 139 +
interfaces/IMapAdapterFactory.h | 32 +
interfaces/IMapWatermark.h | 18 +
interfaces/IMerkMainWindow.h | 25 +
interfaces/IProgressWindow.h | 21 +
interfaces/IProjection.h | 21 +
interfaces/IRenderer.h | 48 +
interfaces/Interfaces.pri | 13 +
.../CadastreFrance.cpp | 406 +
.../CadastreFrance.h | 192 +
.../MCadastreFranceBackground.pro | 17 +
.../MCadastreFranceBackground/qadastre.pri | 14 +
.../qadastre/COPYING.txt | 674 ++
.../qadastre/cadastrebrowser.cpp | 87 +
.../qadastre/cadastrebrowser.h | 47 +
.../qadastre/cadastrebrowser.ui | 118 +
.../qadastre/cadastrewrapper.cpp | 348 +
.../qadastre/cadastrewrapper.h | 72 +
.../qadastre/city.cpp | 95 +
.../MCadastreFranceBackground/qadastre/city.h | 57 +
.../qadastre/main.cpp | 37 +
.../qadastre/qadastre.pro | 20 +
.../qadastre/searchdialog.cpp | 105 +
.../qadastre/searchdialog.h | 56 +
.../qadastre/searchdialog.ui | 173 +
.../qadastre/tile.cpp | 112 +
.../MCadastreFranceBackground/qadastre/tile.h | 42 +
.../MGdalBackground/GdalAdapter.cpp | 667 ++
.../background/MGdalBackground/GdalAdapter.h | 204 +
.../MGdalBackground/GdalAdapter.json | 1 +
.../MGdalBackground/MGdalBackground.pro | 38 +
.../MGeoTiffBackground/GeoTiffAdapter.cpp | 429 +
.../MGeoTiffBackground/GeoTiffAdapter.h | 201 +
.../MGeoTiffBackground/GeoTiffAdapter.json | 1 +
.../MGeoTiffBackground/MGeoTiffBackground.pro | 37 +
.../MMsBingMapBackground.pro | 20 +
.../MMsBingMapBackground/Resources.qrc | 5 +
.../images/logo_powered_by.png | Bin 0 -> 4295 bytes
.../MMsBingMapBackground/mapadapter.cpp | 46 +
.../MMsBingMapBackground/mapadapter.h | 97 +
.../MMsBingMapBackground/msbingmapadapter.cpp | 331 +
.../MMsBingMapBackground/msbingmapadapter.h | 178 +
.../msbingmapadapter.json | 1 +
.../MWalkingPapersBackground.pro | 26 +
.../WalkingPapersAdapter.cpp | 446 +
.../WalkingPapersAdapter.h | 182 +
.../WalkingPapersAdapter.json | 0
plugins/background/background.pro | 19 +
plugins/background/common.pri | 9 +
plugins/common.pri | 68 +
plugins/plugins.cmake | 69 +
plugins/plugins.pro | 6 +
share/BookmarksList.xml | 5 +
share/Projections.xml | 11 +
share/TmsServersList.xml | 6 +
share/WmsServersList.xml | 7 +
share/share.qrc | 9 +
src/Backend/Backend.pri | 8 +
src/Backend/MemoryBackend.cpp | 395 +
src/Backend/MemoryBackend.h | 61 +
src/Commands/Command.cpp | 571 ++
src/Commands/Command.h | 110 +
src/Commands/Commands.pri | 20 +
src/Commands/DocumentCommands.cpp | 280 +
src/Commands/DocumentCommands.h | 59 +
src/Commands/FeatureCommands.cpp | 416 +
src/Commands/FeatureCommands.h | 91 +
src/Commands/NodeCommands.cpp | 129 +
src/Commands/NodeCommands.h | 34 +
src/Commands/RelationCommands.cpp | 275 +
src/Commands/RelationCommands.h | 64 +
src/Commands/TrackSegmentCommands.cpp | 196 +
src/Commands/TrackSegmentCommands.h | 58 +
src/Commands/WayCommands.cpp | 255 +
src/Commands/WayCommands.h | 59 +
src/Config.pri | 45 +
src/Custom.pri | 0
src/Docks/DirtyDock.cpp | 198 +
src/Docks/DirtyDock.h | 57 +
src/Docks/DirtyDock.ui | 79 +
src/Docks/Docks.pri | 23 +
src/Docks/FeaturesDock.cpp | 483 ++
src/Docks/FeaturesDock.h | 89 +
src/Docks/FeaturesDock.ui | 172 +
src/Docks/GeoImage.pri | 15 +
src/Docks/GeoImageDock.cpp | 1153 +++
src/Docks/GeoImageDock.h | 107 +
src/Docks/InfoDock.cpp | 99 +
src/Docks/InfoDock.h | 49 +
src/Docks/LayerDock.cpp | 564 ++
src/Docks/LayerDock.h | 82 +
src/Docks/MDockAncestor.cpp | 40 +
src/Docks/MDockAncestor.h | 44 +
src/Docks/MinimumRelationProperties.ui | 190 +
src/Docks/MinimumRoadProperties.ui | 133 +
src/Docks/MinimumTrackPointProperties.ui | 149 +
src/Docks/PhotoLoadErrorDialog.ui | 172 +
src/Docks/PropertiesDock.cpp | 1185 +++
src/Docks/PropertiesDock.h | 130 +
src/Docks/StyleDock.cpp | 104 +
src/Docks/StyleDock.h | 49 +
src/Docks/StyleDock.ui | 49 +
src/Features/Feature.cpp | 1108 +++
src/Features/Feature.h | 368 +
src/Features/Features.h | 6 +
src/Features/Features.pri | 17 +
src/Features/Node.cpp | 768 ++
src/Features/Node.h | 150 +
src/Features/Relation.cpp | 804 ++
src/Features/Relation.h | 72 +
src/Features/TrackSegment.cpp | 413 +
src/Features/TrackSegment.h | 70 +
src/Features/Way.cpp | 1042 +++
src/Features/Way.h | 108 +
src/GPS/GPS.pri | 40 +
src/GPS/GpsFix.cpp | 75 +
src/GPS/GpsFix.h | 102 +
src/GPS/SatelliteStrengthView.cpp | 51 +
src/GPS/SatelliteStrengthView.h | 33 +
src/GPS/qgps.cpp | 241 +
src/GPS/qgps.h | 67 +
src/GPS/qgpsdevice.cpp | 1419 ++++
src/GPS/qgpsdevice.h | 380 +
src/GPS/qgpsmainwindowui.ui | 207 +
src/GPS/qgpssatellitetracker.cpp | 142 +
src/GPS/qgpssatellitetracker.h | 49 +
src/ImportExport/ExportDialog.ui | 106 +
src/ImportExport/ExportGPX.cpp | 99 +
src/ImportExport/ExportGPX.h | 31 +
src/ImportExport/ExportOSM.cpp | 104 +
src/ImportExport/ExportOSM.h | 17 +
src/ImportExport/IImportExport.cpp | 70 +
src/ImportExport/IImportExport.h | 59 +
src/ImportExport/ImportCSVDialog.cpp | 565 ++
src/ImportExport/ImportCSVDialog.h | 95 +
src/ImportExport/ImportCSVDialog.ui | 427 +
src/ImportExport/ImportExport.pri | 62 +
src/ImportExport/ImportExportCSV.cpp | 50 +
src/ImportExport/ImportExportCSV.h | 35 +
src/ImportExport/ImportExportGdal.cpp | 498 ++
src/ImportExport/ImportExportGdal.h | 72 +
src/ImportExport/ImportExportKML.cpp | 320 +
src/ImportExport/ImportExportKML.h | 35 +
src/ImportExport/ImportExportOSC.cpp | 170 +
src/ImportExport/ImportExportOSC.h | 35 +
src/ImportExport/ImportExportPBF.cpp | 602 ++
src/ImportExport/ImportExportPBF.h | 94 +
src/ImportExport/ImportGPX.cpp | 350 +
src/ImportExport/ImportGPX.h | 34 +
src/ImportExport/ImportNGT.cpp | 48 +
src/ImportExport/ImportNGT.h | 12 +
src/ImportExport/ImportNMEA.cpp | 230 +
src/ImportExport/ImportNMEA.h | 45 +
src/ImportExport/ImportOSM.cpp | 595 ++
src/ImportExport/ImportOSM.h | 49 +
src/ImportExport/fileformat.pb.cc | 611 ++
src/ImportExport/fileformat.pb.h | 565 ++
src/ImportExport/fileformat.proto | 56 +
src/ImportExport/osmformat.pb.cc | 3824 +++++++++
src/ImportExport/osmformat.pb.h | 2810 +++++++
src/ImportExport/osmformat.proto | 229 +
src/Interactions/BuildBridgeInteraction.cpp | 174 +
src/Interactions/BuildBridgeInteraction.h | 26 +
src/Interactions/CreateAreaInteraction.cpp | 277 +
src/Interactions/CreateAreaInteraction.h | 45 +
src/Interactions/CreateDoubleWayDock.ui | 66 +
.../CreateDoubleWayInteraction.cpp | 263 +
src/Interactions/CreateDoubleWayInteraction.h | 41 +
src/Interactions/CreateNodeInteraction.cpp | 133 +
src/Interactions/CreateNodeInteraction.h | 28 +
src/Interactions/CreatePolygonInteraction.cpp | 203 +
src/Interactions/CreatePolygonInteraction.h | 36 +
src/Interactions/CreateRoundaboutDock.ui | 106 +
.../CreateRoundaboutInteraction.cpp | 190 +
.../CreateRoundaboutInteraction.h | 39 +
.../CreateSingleWayInteraction.cpp | 364 +
src/Interactions/CreateSingleWayInteraction.h | 48 +
src/Interactions/EditInteraction.cpp | 345 +
src/Interactions/EditInteraction.h | 44 +
src/Interactions/ExtrudeInteraction.cpp | 174 +
src/Interactions/ExtrudeInteraction.h | 44 +
src/Interactions/Interaction.cpp | 544 ++
src/Interactions/Interaction.h | 136 +
src/Interactions/Interactions.pri | 38 +
src/Interactions/MoveNodeInteraction.cpp | 324 +
src/Interactions/MoveNodeInteraction.h | 40 +
src/Interactions/RotateInteraction.cpp | 203 +
src/Interactions/RotateInteraction.h | 42 +
src/Interactions/ScaleInteraction.cpp | 194 +
src/Interactions/ScaleInteraction.h | 41 +
src/Interactions/ZoomInteraction.cpp | 87 +
src/Interactions/ZoomInteraction.h | 31 +
src/Layers/FilterEditDialog.ui | 108 +
src/Layers/ImageMapLayer.cpp | 1054 +++
src/Layers/ImageMapLayer.h | 94 +
src/Layers/Layer.cpp | 982 +++
src/Layers/Layer.h | 295 +
src/Layers/LayerIterator.h | 70 +
src/Layers/LayerPrivate.h | 40 +
src/Layers/LayerWidget.cpp | 725 ++
src/Layers/LayerWidget.h | 207 +
src/Layers/LayerWidget.ui | 41 +
src/Layers/Layers.pri | 16 +
src/Layers/LicenseDisplayDialog.ui | 69 +
src/Layers/OsmRenderLayer.cpp | 275 +
src/Layers/OsmRenderLayer.h | 74 +
src/Main.cpp | 302 +
src/MainWindow.cpp | 4326 ++++++++++
src/MainWindow.h | 350 +
src/MainWindow.ui | 2178 +++++
src/NameFinder/NameFinder.pri | 14 +
src/NameFinder/NameFinderResult.h | 60 +
src/NameFinder/httpquery.cpp | 93 +
src/NameFinder/httpquery.h | 60 +
src/NameFinder/namefindertablemodel.cpp | 119 +
src/NameFinder/namefindertablemodel.h | 57 +
src/NameFinder/namefinderwidget.cpp | 146 +
src/NameFinder/namefinderwidget.h | 83 +
src/NameFinder/namefinderwidget.ui | 40 +
src/NameFinder/xmlstreamreader.cpp | 167 +
src/NameFinder/xmlstreamreader.h | 61 +
src/PaintStyle/FeaturePainter.cpp | 833 ++
src/PaintStyle/FeaturePainter.h | 61 +
src/PaintStyle/IPaintStyle.h | 28 +
src/PaintStyle/MapCSSPaintstyle.cpp | 134 +
src/PaintStyle/MapCSSPaintstyle.h | 43 +
src/PaintStyle/MasPaintStyle.cpp | 140 +
src/PaintStyle/MasPaintStyle.h | 36 +
src/PaintStyle/PaintStyle.pri | 17 +
src/PaintStyle/PaintStyleEditor.cpp | 855 ++
src/PaintStyle/PaintStyleEditor.h | 94 +
src/PaintStyle/PaintStyleEditor.pri | 11 +
src/PaintStyle/PaintStyleEditor.ui | 2358 ++++++
src/PaintStyle/Painter.cpp | 745 ++
src/PaintStyle/Painter.h | 174 +
src/PaintStyle/PrimitivePainter.cpp | 537 ++
src/PaintStyle/PrimitivePainter.h | 58 +
src/Preferences/BookmarksList.cpp | 143 +
src/Preferences/BookmarksList.h | 54 +
src/Preferences/FilterList.cpp | 128 +
src/Preferences/FilterList.h | 52 +
src/Preferences/FilterPreferencesDialog.cpp | 200 +
src/Preferences/FilterPreferencesDialog.h | 67 +
src/Preferences/FilterPreferencesDialog.ui | 198 +
src/Preferences/MerkaartorPreferences.cpp | 1719 ++++
src/Preferences/MerkaartorPreferences.h | 502 ++
src/Preferences/OsmServerWidget.ui | 112 +
src/Preferences/Preferences.pri | 43 +
src/Preferences/PreferencesDialog.cpp | 691 ++
src/Preferences/PreferencesDialog.h | 96 +
src/Preferences/PreferencesDialog.ui | 1881 +++++
src/Preferences/ProjPreferencesDialog.cpp | 145 +
src/Preferences/ProjPreferencesDialog.h | 62 +
src/Preferences/ProjPreferencesDialog.ui | 198 +
src/Preferences/ProjectionsList.cpp | 156 +
src/Preferences/ProjectionsList.h | 51 +
src/Preferences/TMSPreferencesDialog.cpp | 397 +
src/Preferences/TMSPreferencesDialog.h | 86 +
src/Preferences/TMSPreferencesDialog.ui | 361 +
src/Preferences/TmsServersList.cpp | 178 +
src/Preferences/TmsServersList.h | 61 +
src/Preferences/WMSPreferencesDialog.cpp | 747 ++
src/Preferences/WMSPreferencesDialog.h | 157 +
src/Preferences/WMSPreferencesDialog.ui | 395 +
src/Preferences/WmsServersList.cpp | 238 +
src/Preferences/WmsServersList.h | 84 +
src/QMapControl.pri | 31 +
src/QMapControl/WmscMapAdapter.cpp | 166 +
src/QMapControl/WmscMapAdapter.h | 113 +
src/QMapControl/browserimagemanager.cpp | 393 +
src/QMapControl/browserimagemanager.h | 142 +
src/QMapControl/imagemanager.cpp | 197 +
src/QMapControl/imagemanager.h | 96 +
src/QMapControl/imagepoint.cpp | 43 +
src/QMapControl/imagepoint.h | 62 +
src/QMapControl/mapadapter.cpp | 87 +
src/QMapControl/mapadapter.h | 128 +
src/QMapControl/mapcontrol.cpp | 344 +
src/QMapControl/mapcontrol.h | 276 +
src/QMapControl/mapnetwork.cpp | 204 +
src/QMapControl/mapnetwork.h | 76 +
src/QMapControl/tilemapadapter.cpp | 154 +
src/QMapControl/tilemapadapter.h | 112 +
src/QMapControl/wmsmapadapter.cpp | 122 +
src/QMapControl/wmsmapadapter.h | 141 +
src/QToolBarDialog/QToolBarDialog.pri | 7 +
src/QToolBarDialog/qttoolbardialog.cpp | 1892 +++++
src/QToolBarDialog/qttoolbardialog.h | 144 +
src/QToolBarDialog/qttoolbardialog.ui | 240 +
src/Render/MapRenderer.cpp | 397 +
src/Render/MapRenderer.h | 125 +
src/Render/NativeRenderDialog.cpp | 275 +
src/Render/NativeRenderDialog.h | 71 +
src/Render/NativeRenderDialog.ui | 331 +
src/Render/RENDERING.md | 26 +
src/Render/Render.pri | 25 +
src/Sync/DirtyList.cpp | 833 ++
src/Sync/DirtyList.h | 159 +
src/Sync/DirtyListExecutorOSC.cpp | 481 ++
src/Sync/DirtyListExecutorOSC.h | 67 +
src/Sync/DownloadOSM.cpp | 742 ++
src/Sync/DownloadOSM.h | 89 +
src/Sync/Sync.pri | 21 +
src/Sync/SyncListDialog.ui | 319 +
src/TagTemplate/TagTemplate.cpp | 1114 +++
src/TagTemplate/TagTemplate.h | 246 +
src/TagTemplate/TagTemplate.pri | 16 +
src/Tools/ActionsDialog.cpp | 177 +
src/Tools/ActionsDialog.h | 37 +
src/Tools/QFatFs/QFat.cpp | 585 ++
src/Tools/QFatFs/QFat.h | 114 +
src/Tools/QFatFs/QFatFile.cpp | 78 +
src/Tools/QFatFs/QFatFile.h | 29 +
src/Tools/QFatFs/QFatFs.cpp | 278 +
src/Tools/QFatFs/QFatFs.h | 91 +
src/Tools/QFatFs/QFatFs.pri | 12 +
src/Tools/RegionMapWidget.cpp | 138 +
src/Tools/RegionMapWidget.h | 43 +
src/Tools/Tools.pri | 19 +
src/Utils/CheckBoxList.cpp | 156 +
src/Utils/CheckBoxList.h | 35 +
src/Utils/EditCompleterDelegate.cpp | 140 +
src/Utils/EditCompleterDelegate.h | 39 +
src/Utils/LineF.h | 299 +
src/Utils/MDiscardableDialog.cpp | 81 +
src/Utils/MDiscardableDialog.h | 37 +
src/Utils/OsmLink.cpp | 238 +
src/Utils/OsmLink.h | 27 +
src/Utils/PictureViewerDialog.cpp | 71 +
src/Utils/PictureViewerDialog.h | 39 +
src/Utils/PictureViewerDialog.ui | 55 +
src/Utils/PixmapWidget.cpp | 158 +
src/Utils/PixmapWidget.h | 50 +
src/Utils/ProjectionChooser.cpp | 129 +
src/Utils/ProjectionChooser.h | 25 +
src/Utils/ProjectionChooser.ui | 204 +
src/Utils/RemoteControlServer.cpp | 134 +
src/Utils/RemoteControlServer.hpp | 77 +
src/Utils/SelectionDialog.cpp | 115 +
src/Utils/SelectionDialog.h | 42 +
src/Utils/SelectionDialog.ui | 171 +
src/Utils/ShortcutOverrideFilter.cpp | 69 +
src/Utils/ShortcutOverrideFilter.h | 29 +
src/Utils/SlippyMapWidget.cpp | 513 ++
src/Utils/SlippyMapWidget.h | 94 +
src/Utils/SvgCache.cpp | 35 +
src/Utils/SvgCache.h | 8 +
src/Utils/TagSelector.cpp | 1167 +++
src/Utils/TagSelector.h | 218 +
src/Utils/TagSelectorWidget.cpp | 65 +
src/Utils/TagSelectorWidget.h | 35 +
src/Utils/TagSelectorWidget.ui | 117 +
src/Utils/Utils.cpp | 115 +
src/Utils/Utils.h | 33 +
src/Utils/Utils.pri | 54 +
src/Utils/Utils.qrc | 5 +
src/common/AboutDialog.ui | 255 +
src/common/Coord.cpp | 196 +
src/common/Coord.h | 213 +
src/common/Document.cpp | 1284 +++
src/common/Document.h | 188 +
src/common/DownloadMapDialog.ui | 220 +
src/common/FeatureManipulations.cpp | 1992 +++++
src/common/FeatureManipulations.h | 56 +
src/common/Global.cpp | 147 +
src/common/Global.h | 58 +
src/common/GotoDialog.cpp | 214 +
src/common/GotoDialog.h | 63 +
src/common/GotoDialog.ui | 381 +
src/common/MapTypedef.h | 27 +
src/common/MapView.cpp | 1178 +++
src/common/MapView.h | 140 +
src/common/MultiProperties.ui | 90 +
src/common/Painting.cpp | 226 +
src/common/Painting.h | 29 +
src/common/Projection.cpp | 258 +
src/common/Projection.h | 121 +
src/common/PropertiesDialog.ui | 67 +
src/common/RelationProperties.ui | 111 +
src/common/TagModel.cpp | 198 +
src/common/TagModel.h | 39 +
src/common/TerraceDialog.cpp | 126 +
src/common/TerraceDialog.h | 43 +
src/common/TerraceDialog.ui | 289 +
src/common/UploadMapDialog.ui | 174 +
src/common/common.pri | 41 +
src/org.merkaartor.merkaartor.appdata.xml | 43 +
src/org.merkaartor.merkaartor.desktop | 13 +
src/qextserialport/posix_qextserialport.cpp | 1117 +++
src/qextserialport/posix_qextserialport.h | 56 +
src/qextserialport/qextserialbase.cpp | 250 +
src/qextserialport/qextserialbase.h | 196 +
src/qextserialport/qextserialport.cpp | 98 +
src/qextserialport/qextserialport.h | 29 +
src/qextserialport/qextserialport.pri | 17 +
src/qextserialport/win_qextserialport.cpp | 880 ++
src/qextserialport/win_qextserialport.h | 49 +
src/src.pro | 342 +
tests/data/sample-shapefile/POINT.dbf | Bin 0 -> 37 bytes
tests/data/sample-shapefile/POINT.prj | 1 +
tests/data/sample-shapefile/POINT.shp | Bin 0 -> 212 bytes
tests/data/sample-shapefile/POINT.shx | Bin 0 -> 132 bytes
tests/data/sample-shapefile/POLYGON.dbf | Bin 0 -> 35 bytes
tests/data/sample-shapefile/POLYGON.prj | 1 +
tests/data/sample-shapefile/POLYGON.shp | Bin 0 -> 404 bytes
tests/data/sample-shapefile/POLYGON.shx | Bin 0 -> 116 bytes
tests/data/sample-shapefile/POLYLINE.dbf | Bin 0 -> 35 bytes
tests/data/sample-shapefile/POLYLINE.prj | 1 +
tests/data/sample-shapefile/POLYLINE.shp | Bin 0 -> 308 bytes
tests/data/sample-shapefile/POLYLINE.shx | Bin 0 -> 116 bytes
tests/data/sample.geojson | 1 +
tests/test-projection.cpp | 85 +
translations/README.md | 30 +
translations/i18n.pl | 554 ++
translations/makefile | 32 +
translations/maketar.pl | 57 +
translations/merkaartor_cs.ts | 7379 ++++++++++++++++
translations/merkaartor_de.ts | 7397 +++++++++++++++++
translations/merkaartor_en.ts | 7336 ++++++++++++++++
translations/merkaartor_es.ts | 7368 ++++++++++++++++
translations/merkaartor_fi.ts | 7368 ++++++++++++++++
translations/merkaartor_fr.ts | 7368 ++++++++++++++++
translations/merkaartor_hr.ts | 7347 ++++++++++++++++
translations/merkaartor_hu.ts | 7391 ++++++++++++++++
translations/merkaartor_id_ID.ts | 7383 ++++++++++++++++
translations/merkaartor_it.ts | 7393 ++++++++++++++++
translations/merkaartor_ja.ts | 7378 ++++++++++++++++
translations/merkaartor_nl.ts | 7369 ++++++++++++++++
translations/merkaartor_pl.ts | 7386 ++++++++++++++++
translations/merkaartor_pt_BR.ts | 7379 ++++++++++++++++
translations/merkaartor_ru.ts | 7388 ++++++++++++++++
translations/merkaartor_sv.ts | 7367 ++++++++++++++++
translations/merkaartor_uk.ts | 7369 ++++++++++++++++
translations/merkaartor_zh_TW.ts | 7392 ++++++++++++++++
1684 files changed, 254590 insertions(+)
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/INSTALL.TXT
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/LGPL_EXCEPTION.txt
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.GPL3
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.LGPL
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/README.TXT
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/buildlib/buildlib.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/common.pri
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/config.pri
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/configure
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/classic.css
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/images/qt-logo.png
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/index.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtlockedfile-members.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtlockedfile.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-example-loader.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-example-trivial.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-members.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-obsolete.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication.dcf
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication.index
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication.qch
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication.qhp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication-example-console.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication-members.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication.html
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/images/qt-logo.png
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/doc/index.qdoc
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.qdoc
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/main.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/examples.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file1.qsl
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file2.qsl
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.qdoc
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/main.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/main.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.qdoc
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/qtsingleapplication.pro
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/QtLockedFile
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/QtSingleApplication
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.pri
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
create mode 100644 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.pri
create mode 100644 AUTHORS
create mode 100644 CHANGELOG
create mode 100644 CMakeLists.txt
create mode 100644 COMPILE.md
create mode 100644 CREDITS
create mode 100644 HACKING.md
create mode 100644 Icons/128x128/merkaartor.png
create mode 100644 Icons/16x16/merkaartor.png
create mode 100644 Icons/192x192/merkaartor.png
create mode 100644 Icons/22x22/merkaartor.png
create mode 100644 Icons/24x24/merkaartor.png
create mode 100644 Icons/256x256/merkaartor.png
create mode 100644 Icons/32x32/merkaartor.png
create mode 100644 Icons/36x36/merkaartor.png
create mode 100644 Icons/40x40/merkaartor.png
create mode 100644 Icons/42x42/merkaartor.png
create mode 100644 Icons/48x48/merkaartor.png
create mode 100644 Icons/512x512/merkaartor.png
create mode 100644 Icons/64x64/merkaartor.png
create mode 100644 Icons/72x72/merkaartor.png
create mode 100644 Icons/80x80/merkaartor.png
create mode 100644 Icons/8x8/merkaartor.png
create mode 100644 Icons/96x96/merkaartor.png
create mode 100644 Icons/AllIcons.qrc
create mode 100644 Icons/Frisius.xpm
create mode 100644 Icons/Frisius_100x100.png
create mode 100644 Icons/Frisius_16x16.ico
create mode 100644 Icons/Frisius_48x48.ico
create mode 100644 Icons/Frisius_large.xcf
create mode 100644 Icons/Frisius_splash.png
create mode 100644 Icons/Frisius_splash.xcf
create mode 100644 Icons/Gps_Marker.svg
create mode 100644 Icons/Grab.png
create mode 100644 Icons/Mapnik/aerodrome.p.16.png
create mode 100644 Icons/Mapnik/aerodrome.png
create mode 100644 Icons/Mapnik/aiga_parking1.png
create mode 100644 Icons/Mapnik/airport.p.16.png
create mode 100644 Icons/Mapnik/airport.png
create mode 100644 Icons/Mapnik/arrow.png
create mode 100644 Icons/Mapnik/arrow_back.png
create mode 100644 Icons/Mapnik/atm.png
create mode 100644 Icons/Mapnik/atm2.p.16.png
create mode 100644 Icons/Mapnik/bank2.p.16.png
create mode 100644 Icons/Mapnik/bar.p.20.png
create mode 100644 Icons/Mapnik/beach.png
create mode 100644 Icons/Mapnik/bus_stop.p.12.png
create mode 100644 Icons/Mapnik/bus_stop.png
create mode 100644 Icons/Mapnik/cable_car.png
create mode 100644 Icons/Mapnik/cafe.p.16.png
create mode 100644 Icons/Mapnik/camping.n.16.png
create mode 100644 Icons/Mapnik/chair_lift.png
create mode 100644 Icons/Mapnik/christian3.p.14.png
create mode 100644 Icons/Mapnik/cinema.p.24.png
create mode 100644 Icons/Mapnik/cliff.png
create mode 100644 Icons/Mapnik/cliff2.png
create mode 100644 Icons/Mapnik/communications.p.20.png
create mode 100644 Icons/Mapnik/danger.png
create mode 100644 Icons/Mapnik/food_bar.p.16.png
create mode 100644 Icons/Mapnik/forest.png
create mode 100644 Icons/Mapnik/fuel.p.16.png
create mode 100644 Icons/Mapnik/gate.png
create mode 100644 Icons/Mapnik/gate2.png
create mode 100644 Icons/Mapnik/glacier.png
create mode 100644 Icons/Mapnik/glacier2.png
create mode 100644 Icons/Mapnik/grave_yard.png
create mode 100644 Icons/Mapnik/halt.png
create mode 100644 Icons/Mapnik/hospital.p.16.png
create mode 100644 Icons/Mapnik/hospital.png
create mode 100644 Icons/Mapnik/hotel2.p.20.png
create mode 100644 Icons/Mapnik/islamic3.p.16.png
create mode 100644 Icons/Mapnik/jewish3.p.16.png
create mode 100644 Icons/Mapnik/landfill.png
create mode 100644 Icons/Mapnik/level_crossing.png
create mode 100644 Icons/Mapnik/level_crossing2.png
create mode 100644 Icons/Mapnik/library.p.20.png
create mode 100644 Icons/Mapnik/london-tube-24.png
create mode 100644 Icons/Mapnik/marsh.png
create mode 100644 Icons/Mapnik/mini_round.png
create mode 100644 Icons/Mapnik/mosque.png
create mode 100644 Icons/Mapnik/motorway_shield1.png
create mode 100644 Icons/Mapnik/motorway_shield2.png
create mode 100644 Icons/Mapnik/motorway_shield3.png
create mode 100644 Icons/Mapnik/motorway_shield4.png
create mode 100644 Icons/Mapnik/motorway_shield5.png
create mode 100644 Icons/Mapnik/motorway_shield6.png
create mode 100644 Icons/Mapnik/mud.png
create mode 100644 Icons/Mapnik/museum.p.16.png
create mode 100644 Icons/Mapnik/nature_reserve.png
create mode 100644 Icons/Mapnik/nature_reserve2.png
create mode 100644 Icons/Mapnik/parking.p.16.png
create mode 100644 Icons/Mapnik/parking.png
create mode 100644 Icons/Mapnik/peak.png
create mode 100644 Icons/Mapnik/pint.png
create mode 100644 Icons/Mapnik/place_of_worship.png
create mode 100644 Icons/Mapnik/place_of_worship3.p.16.png
create mode 100644 Icons/Mapnik/place_of_worship3.png
create mode 100644 Icons/Mapnik/post_box.p.16.png
create mode 100644 Icons/Mapnik/post_box.png
create mode 100644 Icons/Mapnik/post_office.p.16.png
create mode 100644 Icons/Mapnik/post_office.png
create mode 100644 Icons/Mapnik/postoffice.png
create mode 100644 Icons/Mapnik/power_line.png
create mode 100644 Icons/Mapnik/power_tower.png
create mode 100644 Icons/Mapnik/power_wind.png
create mode 100644 Icons/Mapnik/primary_shield1.png
create mode 100644 Icons/Mapnik/primary_shield2.png
create mode 100644 Icons/Mapnik/primary_shield3.png
create mode 100644 Icons/Mapnik/primary_shield4.png
create mode 100644 Icons/Mapnik/primary_shield5.png
create mode 100644 Icons/Mapnik/primary_shield6.png
create mode 100644 Icons/Mapnik/primary_shield7.png
create mode 100644 Icons/Mapnik/primary_shield8.png
create mode 100644 Icons/Mapnik/pub.p.16.png
create mode 100644 Icons/Mapnik/pub.png
create mode 100644 Icons/Mapnik/quarry.png
create mode 100644 Icons/Mapnik/quarry2.png
create mode 100644 Icons/Mapnik/recycle.png
create mode 100644 Icons/Mapnik/recycling.p.16.png
create mode 100644 Icons/Mapnik/recycling.png
create mode 100644 Icons/Mapnik/restaurant.p.16.png
create mode 100644 Icons/Mapnik/scrub.png
create mode 100644 Icons/Mapnik/secondary_shield1.png
create mode 100644 Icons/Mapnik/secondary_shield2.png
create mode 100644 Icons/Mapnik/secondary_shield3.png
create mode 100644 Icons/Mapnik/secondary_shield4.png
create mode 100644 Icons/Mapnik/secondary_shield5.png
create mode 100644 Icons/Mapnik/secondary_shield6.png
create mode 100644 Icons/Mapnik/secondary_shield7.png
create mode 100644 Icons/Mapnik/secondary_shield8.png
create mode 100644 Icons/Mapnik/sikh.png
create mode 100644 Icons/Mapnik/sikh3.p.16.png
create mode 100644 Icons/Mapnik/station.png
create mode 100644 Icons/Mapnik/station_small.png
create mode 100644 Icons/Mapnik/synagogue.png
create mode 100644 Icons/Mapnik/telephone.p.16.png
create mode 100644 Icons/Mapnik/tertiary_shield1.png
create mode 100644 Icons/Mapnik/tertiary_shield2.png
create mode 100644 Icons/Mapnik/tertiary_shield3.png
create mode 100644 Icons/Mapnik/tertiary_shield4.png
create mode 100644 Icons/Mapnik/tertiary_shield5.png
create mode 100644 Icons/Mapnik/tertiary_shield6.png
create mode 100644 Icons/Mapnik/tertiary_shield7.png
create mode 100644 Icons/Mapnik/tertiary_shield8.png
create mode 100644 Icons/Mapnik/toilets.p.20.png
create mode 100644 Icons/Mapnik/tower.png
create mode 100644 Icons/Mapnik/tree.png
create mode 100644 Icons/Mapnik/trunk_shield1.png
create mode 100644 Icons/Mapnik/trunk_shield2.png
create mode 100644 Icons/Mapnik/trunk_shield3.png
create mode 100644 Icons/Mapnik/trunk_shield4.png
create mode 100644 Icons/Mapnik/trunk_shield5.png
create mode 100644 Icons/Mapnik/trunk_shield6.png
create mode 100644 Icons/Mapnik/trunk_shield7.png
create mode 100644 Icons/Mapnik/trunk_shield8.png
create mode 100644 Icons/Mapnik/turning_circle.13.png
create mode 100644 Icons/Mapnik/turning_circle.15.png
create mode 100644 Icons/Mapnik/turning_circle.17.png
create mode 100644 Icons/Mapnik/turning_circle.19.png
create mode 100644 Icons/Mapnik/vineyard.png
create mode 100644 Icons/Mapnik/windmill.png
create mode 100644 Icons/Mapnik/zoo.png
create mode 100644 Icons/Merkaartor.xpm
create mode 100644 Icons/Merkaartor_100x100.png
create mode 100644 Icons/Merkaartor_16x16.ico
create mode 100644 Icons/Merkaartor_48x48.ico
create mode 100644 Icons/Merkaartor_installer.bmp
create mode 100644 Icons/Merkaartor_large.xcf
create mode 100644 Icons/Merkaartor_splash.png
create mode 100644 Icons/Merkaartor_splash.xcf
create mode 100644 Icons/Places/place_hamlet.png
create mode 100644 Icons/Places/place_town.png
create mode 100644 Icons/Places/place_village.png
create mode 100644 Icons/QToolBarDialog/back.png
create mode 100644 Icons/QToolBarDialog/down.png
create mode 100644 Icons/QToolBarDialog/forward.png
create mode 100644 Icons/QToolBarDialog/minus.png
create mode 100644 Icons/QToolBarDialog/plus.png
create mode 100644 Icons/QToolBarDialog/qttoolbardialog.qrc
create mode 100644 Icons/QToolBarDialog/up.png
create mode 100644 Icons/Tiles/000.png
create mode 100644 Icons/Tiles/100.png
create mode 100644 Icons/Tiles/101.png
create mode 100644 Icons/Tiles/110.png
create mode 100644 Icons/Tiles/111.png
create mode 100644 Icons/actions/GPS.png
create mode 100644 Icons/actions/align_nodes.png
create mode 100644 Icons/actions/axisalign.png
create mode 100644 Icons/actions/break_apart_roads.png
create mode 100644 Icons/actions/build_bridge.png
create mode 100644 Icons/actions/camera.png
create mode 100644 Icons/actions/create_area.png
create mode 100644 Icons/actions/create_node.png
create mode 100644 Icons/actions/create_road.png
create mode 100644 Icons/actions/detach_node.png
create mode 100644 Icons/actions/document_import.png
create mode 100644 Icons/actions/document_new.png
create mode 100644 Icons/actions/document_open.png
create mode 100644 Icons/actions/download.png
create mode 100644 Icons/actions/download_more.png
create mode 100644 Icons/actions/edit-cut.png
create mode 100644 Icons/actions/edit_copy.png
create mode 100644 Icons/actions/edit_delete.png
create mode 100644 Icons/actions/edit_move.png
create mode 100644 Icons/actions/edit_paste.png
create mode 100644 Icons/actions/edit_paste_tags.png
create mode 100644 Icons/actions/edit_rotate.png
create mode 100644 Icons/actions/edit_rotate.svg
create mode 100644 Icons/actions/emblem-important.png
create mode 100644 Icons/actions/emblem-unreadable.png
create mode 100644 Icons/actions/find.png
create mode 100644 Icons/actions/goto.png
create mode 100644 Icons/actions/join_areas.png
create mode 100644 Icons/actions/join_roads.png
create mode 100644 Icons/actions/list-add.png
create mode 100644 Icons/actions/list-remove.png
create mode 100644 Icons/actions/offline.png
create mode 100644 Icons/actions/preferences.png
create mode 100644 Icons/actions/redo.png
create mode 100644 Icons/actions/reverse_road.png
create mode 100644 Icons/actions/save.png
create mode 100644 Icons/actions/select.png
create mode 100644 Icons/actions/software-update-available.png
create mode 100644 Icons/actions/split_area.png
create mode 100644 Icons/actions/split_road.png
create mode 100644 Icons/actions/spread_nodes.png
create mode 100644 Icons/actions/subdivide_road.png
create mode 100644 Icons/actions/terrace_building.png
create mode 100644 Icons/actions/transform-move.png
create mode 100644 Icons/actions/transform-rotate.png
create mode 100644 Icons/actions/transform-scale.png
create mode 100644 Icons/actions/undo.png
create mode 100644 Icons/actions/upload.png
create mode 100644 Icons/actions/zoom_fit_best.png
create mode 100644 Icons/actions/zoom_in.png
create mode 100644 Icons/actions/zoom_out.png
create mode 100644 Icons/add.xpm
create mode 100644 Icons/dialog-error.png
create mode 100644 Icons/dialog-warning.png
create mode 100644 Icons/edit-copy.png
create mode 100644 Icons/edit-cut.png
create mode 100644 Icons/edit-paste.png
create mode 100644 Icons/edit-redo.xpm
create mode 100644 Icons/edit-undo.xpm
create mode 100644 Icons/emblem-readonly.png
create mode 100644 Icons/empty.xpm
create mode 100644 Icons/eye.xpm
create mode 100644 Icons/frisius-win32.rc
create mode 100644 Icons/geotagged.png
create mode 100644 Icons/grabbing.png
create mode 100644 Icons/map-icons/classic.small/accommodation.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/caravan.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/dump-station.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/gas-refill.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/hookup.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/trash.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/wastewater.png
create mode 100644 Icons/map-icons/classic.small/accommodation/camping/water.png
create mode 100644 Icons/map-icons/classic.small/accommodation/chalet.png
create mode 100644 Icons/map-icons/classic.small/accommodation/guest_house.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hostel.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel/five_star.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel/four_star.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel/one_star.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel/three_star.png
create mode 100644 Icons/map-icons/classic.small/accommodation/hotel/two_star.png
create mode 100644 Icons/map-icons/classic.small/accommodation/motel.png
create mode 100644 Icons/map-icons/classic.small/accommodation/shelter-bw.png
create mode 100644 Icons/map-icons/classic.small/accommodation/shelter.png
create mode 100644 Icons/map-icons/classic.small/education.png
create mode 100644 Icons/map-icons/classic.small/education/college.png
create mode 100644 Icons/map-icons/classic.small/education/kindergarten.png
create mode 100644 Icons/map-icons/classic.small/education/school.png
create mode 100644 Icons/map-icons/classic.small/education/school/primary.png
create mode 100644 Icons/map-icons/classic.small/education/university.png
create mode 100644 Icons/map-icons/classic.small/empty.png
create mode 100644 Icons/map-icons/classic.small/food.png
create mode 100644 Icons/map-icons/classic.small/food/bacon_and_eggs.png
create mode 100644 Icons/map-icons/classic.small/food/bar.png
create mode 100644 Icons/map-icons/classic.small/food/biergarten.png
create mode 100644 Icons/map-icons/classic.small/food/cafe.png
create mode 100644 Icons/map-icons/classic.small/food/drinking_water.png
create mode 100644 Icons/map-icons/classic.small/food/fastfood.png
create mode 100644 Icons/map-icons/classic.small/food/fastfood/burger-king.png
create mode 100644 Icons/map-icons/classic.small/food/fastfood/mc-donalds.png
create mode 100644 Icons/map-icons/classic.small/food/icecream.png
create mode 100644 Icons/map-icons/classic.small/food/pub.png
create mode 100644 Icons/map-icons/classic.small/food/restaurant.png
create mode 100644 Icons/map-icons/classic.small/food/restaurant/japanese.png
create mode 100644 Icons/map-icons/classic.small/food/snacks.png
create mode 100644 Icons/map-icons/classic.small/food/snacks/pizza.png
create mode 100644 Icons/map-icons/classic.small/food/teashop.png
create mode 100644 Icons/map-icons/classic.small/food/wine_tavern.png
create mode 100644 Icons/map-icons/classic.small/geocache.png
create mode 100644 Icons/map-icons/classic.small/health.png
create mode 100644 Icons/map-icons/classic.small/health/dentist.png
create mode 100644 Icons/map-icons/classic.small/health/doctor.png
create mode 100644 Icons/map-icons/classic.small/health/emergency.png
create mode 100644 Icons/map-icons/classic.small/health/eye_specialist.png
create mode 100644 Icons/map-icons/classic.small/health/hospital.png
create mode 100644 Icons/map-icons/classic.small/health/optician.png
create mode 100644 Icons/map-icons/classic.small/health/pharmacy.png
create mode 100644 Icons/map-icons/classic.small/health/veterinary.png
create mode 100644 Icons/map-icons/classic.small/incomming/Broad.png
create mode 100644 Icons/map-icons/classic.small/incomming/OLmarker.png
create mode 100644 Icons/map-icons/classic.small/incomming/amenity.png
create mode 100644 Icons/map-icons/classic.small/incomming/aroad.png
create mode 100644 Icons/map-icons/classic.small/incomming/bridleway.png
create mode 100644 Icons/map-icons/classic.small/incomming/byway.png
create mode 100644 Icons/map-icons/classic.small/incomming/contours.png
create mode 100644 Icons/map-icons/classic.small/incomming/footpath.png
create mode 100644 Icons/map-icons/classic.small/incomming/fwpbr.png
create mode 100644 Icons/map-icons/classic.small/incomming/industry.png
create mode 100644 Icons/map-icons/classic.small/incomming/interest.png
create mode 100644 Icons/map-icons/classic.small/incomming/london-tube-24.png
create mode 100644 Icons/map-icons/classic.small/incomming/minorroad.png
create mode 100644 Icons/map-icons/classic.small/incomming/motorway_shield2.png
create mode 100644 Icons/map-icons/classic.small/incomming/motorway_shield3.png
create mode 100644 Icons/map-icons/classic.small/incomming/one.png
create mode 100644 Icons/map-icons/classic.small/incomming/pbridleway.png
create mode 100644 Icons/map-icons/classic.small/incomming/place.png
create mode 100644 Icons/map-icons/classic.small/incomming/railway.png
create mode 100644 Icons/map-icons/classic.small/incomming/road.png
create mode 100644 Icons/map-icons/classic.small/incomming/station.png
create mode 100644 Icons/map-icons/classic.small/incomming/stationnew.png
create mode 100644 Icons/map-icons/classic.small/incomming/three.png
create mode 100644 Icons/map-icons/classic.small/incomming/two.png
create mode 100644 Icons/map-icons/classic.small/misc.png
create mode 100644 Icons/map-icons/classic.small/misc/bunny.png
create mode 100644 Icons/map-icons/classic.small/misc/butterfly.png
create mode 100644 Icons/map-icons/classic.small/misc/construction.png
create mode 100644 Icons/map-icons/classic.small/misc/danger.png
create mode 100644 Icons/map-icons/classic.small/misc/deprecated.png
create mode 100644 Icons/map-icons/classic.small/misc/door.png
create mode 100644 Icons/map-icons/classic.small/misc/housenumber.png
create mode 100644 Icons/map-icons/classic.small/misc/information.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/barn.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/beacon.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/building.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/bunker.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/chimney.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/crane.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/farm.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/gasometer.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/glacier.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/glacier_small.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/lighthouse.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/mine.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/mountain_pass.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/peak.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/peak_small.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/pier.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/plant.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/fossil.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/hydro.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/nuclear.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/tower.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/tower_small.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/power/wind.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/range.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/reservoir_covered.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/spring.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/survey_point.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/tower.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/trees.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/volcano.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/volcano_small.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/wastewater_plant.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/water_tower.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/windmill.png
create mode 100644 Icons/map-icons/classic.small/misc/landmark/works.png
create mode 100644 Icons/map-icons/classic.small/misc/landuse/commercial.png
create mode 100644 Icons/map-icons/classic.small/misc/landuse/residential.png
create mode 100644 Icons/map-icons/classic.small/misc/lock_closed.png
create mode 100644 Icons/map-icons/classic.small/misc/lock_open.png
create mode 100644 Icons/map-icons/classic.small/misc/no_icon.png
create mode 100644 Icons/map-icons/classic.small/misc/no_smoking.png
create mode 100644 Icons/map-icons/classic.small/misc/note.png
create mode 100644 Icons/map-icons/classic.small/misc/proposed.png
create mode 100644 Icons/map-icons/classic.small/misc/surveillance.png
create mode 100644 Icons/map-icons/classic.small/misc/tap_drinking.png
create mode 100644 Icons/map-icons/classic.small/money.png
create mode 100644 Icons/map-icons/classic.small/money/atm.png
create mode 100644 Icons/map-icons/classic.small/money/bank.png
create mode 100644 Icons/map-icons/classic.small/money/bank/vr-bank.png
create mode 100644 Icons/map-icons/classic.small/money/exchange.png
create mode 100644 Icons/map-icons/classic.small/nautical.png
create mode 100644 Icons/map-icons/classic.small/nautical/alpha_flag.png
create mode 100644 Icons/map-icons/classic.small/nautical/anchor.png
create mode 100644 Icons/map-icons/classic.small/nautical/aqueduct.png
create mode 100644 Icons/map-icons/classic.small/nautical/boat.png
create mode 100644 Icons/map-icons/classic.small/nautical/boatyard.png
create mode 100644 Icons/map-icons/classic.small/nautical/lock_gate.png
create mode 100644 Icons/map-icons/classic.small/nautical/marina.png
create mode 100644 Icons/map-icons/classic.small/nautical/slipway.png
create mode 100644 Icons/map-icons/classic.small/nautical/turning.png
create mode 100644 Icons/map-icons/classic.small/nautical/waterfall.png
create mode 100644 Icons/map-icons/classic.small/nautical/weir.png
create mode 100644 Icons/map-icons/classic.small/people.png
create mode 100644 Icons/map-icons/classic.small/people/friends.png
create mode 100644 Icons/map-icons/classic.small/people/friendsd.png
create mode 100644 Icons/map-icons/classic.small/people/work.png
create mode 100644 Icons/map-icons/classic.small/places.png
create mode 100644 Icons/map-icons/classic.small/places/island.png
create mode 100644 Icons/map-icons/classic.small/places/locality.png
create mode 100644 Icons/map-icons/classic.small/places/settlement.png
create mode 100644 Icons/map-icons/classic.small/places/settlement/capital.png
create mode 100644 Icons/map-icons/classic.small/places/settlement/city.png
create mode 100644 Icons/map-icons/classic.small/places/settlement/town.png
create mode 100644 Icons/map-icons/classic.small/public.png
create mode 100644 Icons/map-icons/classic.small/public/administration/court_of_law.png
create mode 100644 Icons/map-icons/classic.small/public/administration/prison.png
create mode 100644 Icons/map-icons/classic.small/public/arts_centre.png
create mode 100644 Icons/map-icons/classic.small/public/firebrigade.png
create mode 100644 Icons/map-icons/classic.small/public/police.png
create mode 100644 Icons/map-icons/classic.small/public/post_box.png
create mode 100644 Icons/map-icons/classic.small/public/post_office.png
create mode 100644 Icons/map-icons/classic.small/public/recycling.png
create mode 100644 Icons/map-icons/classic.small/public/recycling/trash-bin.png
create mode 100644 Icons/map-icons/classic.small/public/telephone.png
create mode 100644 Icons/map-icons/classic.small/public/toilets.png
create mode 100644 Icons/map-icons/classic.small/recreation.png
create mode 100644 Icons/map-icons/classic.small/recreation/bench.png
create mode 100644 Icons/map-icons/classic.small/recreation/bicycling.png
create mode 100644 Icons/map-icons/classic.small/recreation/cinema.png
create mode 100644 Icons/map-icons/classic.small/recreation/common.png
create mode 100644 Icons/map-icons/classic.small/recreation/garden.png
create mode 100644 Icons/map-icons/classic.small/recreation/music.png
create mode 100644 Icons/map-icons/classic.small/recreation/nature_reserve.png
create mode 100644 Icons/map-icons/classic.small/recreation/nightclub.png
create mode 100644 Icons/map-icons/classic.small/recreation/park.png
create mode 100644 Icons/map-icons/classic.small/recreation/picnic.png
create mode 100644 Icons/map-icons/classic.small/recreation/playground.png
create mode 100644 Icons/map-icons/classic.small/recreation/shelter.png
create mode 100644 Icons/map-icons/classic.small/recreation/theater.png
create mode 100644 Icons/map-icons/classic.small/recreation/theme_park.png
create mode 100644 Icons/map-icons/classic.small/recreation/water_park.png
create mode 100644 Icons/map-icons/classic.small/recreation/zoo.png
create mode 100644 Icons/map-icons/classic.small/religion.png
create mode 100644 Icons/map-icons/classic.small/religion/cemetery.png
create mode 100644 Icons/map-icons/classic.small/religion/chapel.png
create mode 100644 Icons/map-icons/classic.small/religion/church.png
create mode 100644 Icons/map-icons/classic.small/religion/church/bahai.png
create mode 100644 Icons/map-icons/classic.small/religion/church/buddhism.png
create mode 100644 Icons/map-icons/classic.small/religion/church/catholic.png
create mode 100644 Icons/map-icons/classic.small/religion/church/hinduism.png
create mode 100644 Icons/map-icons/classic.small/religion/church/jainism.png
create mode 100644 Icons/map-icons/classic.small/religion/church/mormon.png
create mode 100644 Icons/map-icons/classic.small/religion/church/mosque.png
create mode 100644 Icons/map-icons/classic.small/religion/church/orthodox.png
create mode 100644 Icons/map-icons/classic.small/religion/church/protestant.png
create mode 100644 Icons/map-icons/classic.small/religion/church/shinto.png
create mode 100644 Icons/map-icons/classic.small/religion/church/sikhism.png
create mode 100644 Icons/map-icons/classic.small/religion/church/synagogue.png
create mode 100644 Icons/map-icons/classic.small/religion/church/taoism.png
create mode 100644 Icons/map-icons/classic.small/religion/wayside_cross.png
create mode 100644 Icons/map-icons/classic.small/religion/wayside_shrine.png
create mode 100644 Icons/map-icons/classic.small/rendering.png
create mode 100644 Icons/map-icons/classic.small/rendering/beach.png
create mode 100644 Icons/map-icons/classic.small/rendering/cliff.png
create mode 100644 Icons/map-icons/classic.small/rendering/cliff2.png
create mode 100644 Icons/map-icons/classic.small/rendering/quarry.png
create mode 100644 Icons/map-icons/classic.small/rendering/quarry2.png
create mode 100644 Icons/map-icons/classic.small/rendering/rail_preserved.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield1.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield2.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield3.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield4.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield5.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/motorway_shield6.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield1.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield2.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield3.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield4.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield5.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield6.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield7.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/primary_shield8.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield1.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield2.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield3.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield4.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield5.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield6.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield7.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/secondary_shield8.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield1.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield2.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield3.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield4.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield5.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield6.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield7.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/tertiary_shield8.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield1.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield2.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield3.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield4.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield5.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield6.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield7.png
create mode 100644 Icons/map-icons/classic.small/rendering/shield/trunk_shield8.png
create mode 100644 Icons/map-icons/classic.small/rendering/station_small.png
create mode 100644 Icons/map-icons/classic.small/rendering/track/arrow.png
create mode 100644 Icons/map-icons/classic.small/rendering/track/arrow_back.png
create mode 100644 Icons/map-icons/classic.small/rendering/track/mini_round.png
create mode 100644 Icons/map-icons/classic.small/rendering/track/rail.png
create mode 100644 Icons/map-icons/classic.small/rendering/track/station_small.png
create mode 100644 Icons/map-icons/classic.small/shopping.png
create mode 100644 Icons/map-icons/classic.small/shopping/beverages.png
create mode 100644 Icons/map-icons/classic.small/shopping/chemist.png
create mode 100644 Icons/map-icons/classic.small/shopping/clothes.png
create mode 100644 Icons/map-icons/classic.small/shopping/computer.png
create mode 100644 Icons/map-icons/classic.small/shopping/diy_store.png
create mode 100644 Icons/map-icons/classic.small/shopping/electronics.png
create mode 100644 Icons/map-icons/classic.small/shopping/florist.png
create mode 100644 Icons/map-icons/classic.small/shopping/furniture.png
create mode 100644 Icons/map-icons/classic.small/shopping/garden_centre.png
create mode 100644 Icons/map-icons/classic.small/shopping/groceries/bakery.png
create mode 100644 Icons/map-icons/classic.small/shopping/groceries/butcher.png
create mode 100644 Icons/map-icons/classic.small/shopping/groceries/fruits.png
create mode 100644 Icons/map-icons/classic.small/shopping/hairdresser.png
create mode 100644 Icons/map-icons/classic.small/shopping/hifi.png
create mode 100644 Icons/map-icons/classic.small/shopping/jewelry.png
create mode 100644 Icons/map-icons/classic.small/shopping/kiosk.png
create mode 100644 Icons/map-icons/classic.small/shopping/laundry.png
create mode 100644 Icons/map-icons/classic.small/shopping/mall.png
create mode 100644 Icons/map-icons/classic.small/shopping/optician.png
create mode 100644 Icons/map-icons/classic.small/shopping/rental/library.png
create mode 100644 Icons/map-icons/classic.small/shopping/shoes.png
create mode 100644 Icons/map-icons/classic.small/shopping/sports/outdoor.png
create mode 100644 Icons/map-icons/classic.small/shopping/supermarket.png
create mode 100644 Icons/map-icons/classic.small/shopping/supermarket/aldi.png
create mode 100644 Icons/map-icons/classic.small/shopping/supermarket/aldi_nord.png
create mode 100644 Icons/map-icons/classic.small/shopping/supermarket/kaufland.png
create mode 100644 Icons/map-icons/classic.small/shopping/supermarket/lidl.png
create mode 100644 Icons/map-icons/classic.small/shopping/tailor.png
create mode 100644 Icons/map-icons/classic.small/shopping/toys.png
create mode 100644 Icons/map-icons/classic.small/shopping/video.png
create mode 100644 Icons/map-icons/classic.small/sightseeing.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/archaeological.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/battlefield.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/castle.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/memorial.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/monument.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/museum.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/ruins.png
create mode 100644 Icons/map-icons/classic.small/sightseeing/viewpoint.png
create mode 100644 Icons/map-icons/classic.small/sports.png
create mode 100644 Icons/map-icons/classic.small/sports/10pin.png
create mode 100644 Icons/map-icons/classic.small/sports/archery.png
create mode 100644 Icons/map-icons/classic.small/sports/baseball.png
create mode 100644 Icons/map-icons/classic.small/sports/basketball.png
create mode 100644 Icons/map-icons/classic.small/sports/bicycle.png
create mode 100644 Icons/map-icons/classic.small/sports/boule.png
create mode 100644 Icons/map-icons/classic.small/sports/centre.png
create mode 100644 Icons/map-icons/classic.small/sports/cricket.png
create mode 100644 Icons/map-icons/classic.small/sports/croquet.png
create mode 100644 Icons/map-icons/classic.small/sports/cycling.png
create mode 100644 Icons/map-icons/classic.small/sports/dart.png
create mode 100644 Icons/map-icons/classic.small/sports/diving.png
create mode 100644 Icons/map-icons/classic.small/sports/fishing.png
create mode 100644 Icons/map-icons/classic.small/sports/football.png
create mode 100644 Icons/map-icons/classic.small/sports/golf.png
create mode 100644 Icons/map-icons/classic.small/sports/handball.png
create mode 100644 Icons/map-icons/classic.small/sports/hockey.png
create mode 100644 Icons/map-icons/classic.small/sports/indoor_pool.png
create mode 100644 Icons/map-icons/classic.small/sports/kiteflying.png
create mode 100644 Icons/map-icons/classic.small/sports/mountain_bike.png
create mode 100644 Icons/map-icons/classic.small/sports/multi.png
create mode 100644 Icons/map-icons/classic.small/sports/pitch.png
create mode 100644 Icons/map-icons/classic.small/sports/pool.png
create mode 100644 Icons/map-icons/classic.small/sports/racquetball.png
create mode 100644 Icons/map-icons/classic.small/sports/riding.png
create mode 100644 Icons/map-icons/classic.small/sports/skiing.png
create mode 100644 Icons/map-icons/classic.small/sports/soccer.png
create mode 100644 Icons/map-icons/classic.small/sports/stadium.png
create mode 100644 Icons/map-icons/classic.small/sports/swimming.png
create mode 100644 Icons/map-icons/classic.small/sports/table_tennis.png
create mode 100644 Icons/map-icons/classic.small/sports/tennis.png
create mode 100644 Icons/map-icons/classic.small/sports/track.png
create mode 100644 Icons/map-icons/classic.small/sports/volleyball.png
create mode 100644 Icons/map-icons/classic.small/transport.png
create mode 100644 Icons/map-icons/classic.small/transport/aerialway.png
create mode 100644 Icons/map-icons/classic.small/transport/aerialway/cable_car.png
create mode 100644 Icons/map-icons/classic.small/transport/aerialway/chair_lift.png
create mode 100644 Icons/map-icons/classic.small/transport/aerialway/drag_lift.png
create mode 100644 Icons/map-icons/classic.small/transport/aerialway/station.png
create mode 100644 Icons/map-icons/classic.small/transport/airport.png
create mode 100644 Icons/map-icons/classic.small/transport/airport/airfield.png
create mode 100644 Icons/map-icons/classic.small/transport/airport/helipad.png
create mode 100644 Icons/map-icons/classic.small/transport/airport/terminal.png
create mode 100644 Icons/map-icons/classic.small/transport/bridge.png
create mode 100644 Icons/map-icons/classic.small/transport/bridge/bridge-car.png
create mode 100644 Icons/map-icons/classic.small/transport/bridge/bridge-pedestrian.png
create mode 100644 Icons/map-icons/classic.small/transport/bridge/drawbridge.png
create mode 100644 Icons/map-icons/classic.small/transport/bus.png
create mode 100644 Icons/map-icons/classic.small/transport/bus_small.png
create mode 100644 Icons/map-icons/classic.small/transport/car.png
create mode 100644 Icons/map-icons/classic.small/transport/ferry.png
create mode 100644 Icons/map-icons/classic.small/transport/ferry/ferry-car.png
create mode 100644 Icons/map-icons/classic.small/transport/ferry/ferry-pedestrian.png
create mode 100644 Icons/map-icons/classic.small/transport/funicular.png
create mode 100644 Icons/map-icons/classic.small/transport/handicapped.png
create mode 100644 Icons/map-icons/classic.small/transport/harbour.png
create mode 100644 Icons/map-icons/classic.small/transport/park_ride.png
create mode 100644 Icons/map-icons/classic.small/transport/pedestrian.png
create mode 100644 Icons/map-icons/classic.small/transport/railway.png
create mode 100644 Icons/map-icons/classic.small/transport/railway_small.png
create mode 100644 Icons/map-icons/classic.small/transport/rapid_train.png
create mode 100644 Icons/map-icons/classic.small/transport/steps.png
create mode 100644 Icons/map-icons/classic.small/transport/taxi.png
create mode 100644 Icons/map-icons/classic.small/transport/ticket-machine.png
create mode 100644 Icons/map-icons/classic.small/transport/track.png
create mode 100644 Icons/map-icons/classic.small/transport/tram.png
create mode 100644 Icons/map-icons/classic.small/transport/turntable.png
create mode 100644 Icons/map-icons/classic.small/transport/underground.png
create mode 100644 Icons/map-icons/classic.small/unknown.png
create mode 100644 Icons/map-icons/classic.small/vehicle.png
create mode 100644 Icons/map-icons/classic.small/vehicle/bicycle_rental.png
create mode 100644 Icons/map-icons/classic.small/vehicle/car_rental.png
create mode 100644 Icons/map-icons/classic.small/vehicle/car_rental/sixt.png
create mode 100644 Icons/map-icons/classic.small/vehicle/car_sharing.png
create mode 100644 Icons/map-icons/classic.small/vehicle/car_wash.png
create mode 100644 Icons/map-icons/classic.small/vehicle/cattle_grid.png
create mode 100644 Icons/map-icons/classic.small/vehicle/caution.png
create mode 100644 Icons/map-icons/classic.small/vehicle/crossing.png
create mode 100644 Icons/map-icons/classic.small/vehicle/crossing_small.png
create mode 100644 Icons/map-icons/classic.small/vehicle/emergency_phone.png
create mode 100644 Icons/map-icons/classic.small/vehicle/exit.png
create mode 100644 Icons/map-icons/classic.small/vehicle/ford.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/agip.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/aral.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/elf.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/esso.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/jet.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/omv.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/shell.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/texaco.png
create mode 100644 Icons/map-icons/classic.small/vehicle/fuel_station/total.png
create mode 100644 Icons/map-icons/classic.small/vehicle/gate.png
create mode 100644 Icons/map-icons/classic.small/vehicle/motorbike.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/bike.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/car.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/garage.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/handicapped.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/hiking.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/motorbike.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/park_ride.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/restarea-toilets.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/restarea.png
create mode 100644 Icons/map-icons/classic.small/vehicle/parking/underground.png
create mode 100644 Icons/map-icons/classic.small/vehicle/repair_shop.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/access.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/bicycle-designated.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/bicycle.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/bollard-bw.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/bollard.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/citylimit.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/dead_end.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/foot-designated.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/foot.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/goods.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/horse-designated.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/horse.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/incline.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/maxheight.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/maxlength.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/maxweight.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/maxwidth.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/minspeed.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/motorbike.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/motorcar.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/parking.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/play_street.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/psv.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/right_of_way.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/road_works.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/roundabout_left.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/roundabout_right.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/speed.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/speed/30-end.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/speed_trap.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/stop.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/traffic-light.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/traffic_jam.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/ireland/no_left_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/ireland/no_right_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/ireland/no_straight_on.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/ireland/no_u_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/no_left_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/no_right_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/no_straight_on.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/no_u_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/only_left_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/only_right_turn.png
create mode 100644 Icons/map-icons/classic.small/vehicle/restrictions/turn_restrictions/only_straight_on.png
create mode 100644 Icons/map-icons/classic.small/vehicle/services.png
create mode 100644 Icons/map-icons/classic.small/vehicle/stile.png
create mode 100644 Icons/map-icons/classic.small/vehicle/tank.png
create mode 100644 Icons/map-icons/classic.small/vehicle/toll_station.png
create mode 100644 Icons/map-icons/classic.small/vehicle/towing.png
create mode 100644 Icons/map-icons/classic.small/vehicle/tunnel.png
create mode 100644 Icons/map-icons/classic.small/vehicle/turning_circle.png
create mode 100644 Icons/map-icons/classic.small/vehicle/viaduct.png
create mode 100644 Icons/map-icons/classic.small/vehicle/zebra_crossing.png
create mode 100644 Icons/map-icons/classic.small/waypoint.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt1.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt2.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt3.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt4.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt5.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt6.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt7.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt8.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpt9.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wptblue.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wptgreen.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wptorange.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wptred.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpttemp.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpttemp/wpttemp-green.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpttemp/wpttemp-red.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wpttemp/wpttemp-yellow.png
create mode 100644 Icons/map-icons/classic.small/waypoint/wptyellow.png
create mode 100644 Icons/map-icons/classic.small/wlan.png
create mode 100644 Icons/map-icons/classic.small/wlan/closed.png
create mode 100644 Icons/map-icons/classic.small/wlan/open.png
create mode 100644 Icons/map-icons/classic.small/wlan/pay.png
create mode 100644 Icons/map-icons/classic.small/wlan/pay/fon.png
create mode 100644 Icons/map-icons/classic.small/wlan/wep.png
create mode 100644 Icons/map-icons/square.small/accommodation.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/caravan.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/dump-station.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/gas-refill.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/hookup.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/trash.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/wastewater.png
create mode 100644 Icons/map-icons/square.small/accommodation/camping/water.png
create mode 100644 Icons/map-icons/square.small/accommodation/chalet.png
create mode 100644 Icons/map-icons/square.small/accommodation/empty.png
create mode 100644 Icons/map-icons/square.small/accommodation/guest_house.png
create mode 100644 Icons/map-icons/square.small/accommodation/hostel.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel/five_star.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel/four_star.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel/one_star.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel/three_star.png
create mode 100644 Icons/map-icons/square.small/accommodation/hotel/two_star.png
create mode 100644 Icons/map-icons/square.small/accommodation/motel.png
create mode 100644 Icons/map-icons/square.small/accommodation/shelter-bw.png
create mode 100644 Icons/map-icons/square.small/accommodation/shelter.png
create mode 100644 Icons/map-icons/square.small/accommodation/youth-hostel.png
create mode 100644 Icons/map-icons/square.small/education.png
create mode 100644 Icons/map-icons/square.small/education/empty.png
create mode 100644 Icons/map-icons/square.small/education/kindergarten.png
create mode 100644 Icons/map-icons/square.small/education/university.png
create mode 100644 Icons/map-icons/square.small/food.png
create mode 100644 Icons/map-icons/square.small/food/bacon_and_eggs.png
create mode 100644 Icons/map-icons/square.small/food/bar.png
create mode 100644 Icons/map-icons/square.small/food/biergarten.png
create mode 100644 Icons/map-icons/square.small/food/cafe.png
create mode 100644 Icons/map-icons/square.small/food/empty.png
create mode 100644 Icons/map-icons/square.small/food/fastfood.png
create mode 100644 Icons/map-icons/square.small/food/fastfood/burger-king.png
create mode 100644 Icons/map-icons/square.small/food/fastfood/kfc.png
create mode 100644 Icons/map-icons/square.small/food/fastfood/mc-donalds.png
create mode 100644 Icons/map-icons/square.small/food/fastfood/subway.png
create mode 100644 Icons/map-icons/square.small/food/icecream.png
create mode 100644 Icons/map-icons/square.small/food/pizzahut.png
create mode 100644 Icons/map-icons/square.small/food/pub.png
create mode 100644 Icons/map-icons/square.small/food/restaurant.png
create mode 100644 Icons/map-icons/square.small/food/snacks.png
create mode 100644 Icons/map-icons/square.small/geocache.png
create mode 100644 Icons/map-icons/square.small/geocache/empty.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_drivein.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_earth.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_event.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_found.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_math.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage01.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage02.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage03.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage04.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage05.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage06.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage07.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage08.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage09.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_multi/multi_stage10.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_mystery.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_night.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_traditional.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_virtual.png
create mode 100644 Icons/map-icons/square.small/geocache/geocache_webcam.png
create mode 100644 Icons/map-icons/square.small/health.png
create mode 100644 Icons/map-icons/square.small/health/doctor.png
create mode 100644 Icons/map-icons/square.small/health/emergency.png
create mode 100644 Icons/map-icons/square.small/health/empty.png
create mode 100644 Icons/map-icons/square.small/health/hospital.png
create mode 100644 Icons/map-icons/square.small/health/pharmacy.png
create mode 100644 Icons/map-icons/square.small/health/veterinary.png
create mode 100644 Icons/map-icons/square.small/incomming.png
create mode 100644 Icons/map-icons/square.small/incomming/empty.png
create mode 100644 Icons/map-icons/square.small/misc.png
create mode 100644 Icons/map-icons/square.small/misc/bunny.png
create mode 100644 Icons/map-icons/square.small/misc/butterfly.png
create mode 100644 Icons/map-icons/square.small/misc/construction.png
create mode 100644 Icons/map-icons/square.small/misc/danger.png
create mode 100644 Icons/map-icons/square.small/misc/deprecated.png
create mode 100644 Icons/map-icons/square.small/misc/door.png
create mode 100644 Icons/map-icons/square.small/misc/empty.png
create mode 100644 Icons/map-icons/square.small/misc/information.png
create mode 100644 Icons/map-icons/square.small/misc/landmark.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/barn.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/bunker.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/chimney.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/crane.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/empty.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/farm.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/gasometer.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/lighthouse.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/mine.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/mountain_pass.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/peak.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/peak_small.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/pier.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/plant.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power/fossil.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power/hydro.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power/nuclear.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power/tower.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/power/wind.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/range.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/reservoir_covered.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/spring.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/survey_point.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/tower.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/trees.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/wastewater_plant.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/water_tower.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/windmill.png
create mode 100644 Icons/map-icons/square.small/misc/landmark/works.png
create mode 100644 Icons/map-icons/square.small/misc/lock_closed.png
create mode 100644 Icons/map-icons/square.small/misc/lock_open.png
create mode 100644 Icons/map-icons/square.small/misc/no_icon.png
create mode 100644 Icons/map-icons/square.small/misc/no_smoking.png
create mode 100644 Icons/map-icons/square.small/misc/proposed.png
create mode 100644 Icons/map-icons/square.small/misc/tap_drinking.png
create mode 100644 Icons/map-icons/square.small/money.png
create mode 100644 Icons/map-icons/square.small/money/atm.png
create mode 100644 Icons/map-icons/square.small/money/bank.png
create mode 100644 Icons/map-icons/square.small/money/empty.png
create mode 100644 Icons/map-icons/square.small/money/exchange.png
create mode 100644 Icons/map-icons/square.small/nautical.png
create mode 100644 Icons/map-icons/square.small/nautical/alpha_flag.png
create mode 100644 Icons/map-icons/square.small/nautical/aqueduct.png
create mode 100644 Icons/map-icons/square.small/nautical/empty.png
create mode 100644 Icons/map-icons/square.small/nautical/lock_gate.png
create mode 100644 Icons/map-icons/square.small/nautical/turning.png
create mode 100644 Icons/map-icons/square.small/nautical/weir.png
create mode 100644 Icons/map-icons/square.small/people.png
create mode 100644 Icons/map-icons/square.small/people/developer/gpsdrive.png
create mode 100644 Icons/map-icons/square.small/people/developer/openstreetmap.png
create mode 100644 Icons/map-icons/square.small/people/empty.png
create mode 100644 Icons/map-icons/square.small/people/friends.png
create mode 100644 Icons/map-icons/square.small/people/friendsd.png
create mode 100644 Icons/map-icons/square.small/people/friendsd/airplane.png
create mode 100644 Icons/map-icons/square.small/people/friendsd/bike.png
create mode 100644 Icons/map-icons/square.small/people/friendsd/boat.png
create mode 100644 Icons/map-icons/square.small/people/friendsd/car.png
create mode 100644 Icons/map-icons/square.small/people/friendsd/walk.png
create mode 100644 Icons/map-icons/square.small/people/home.png
create mode 100644 Icons/map-icons/square.small/people/work.png
create mode 100644 Icons/map-icons/square.small/places.png
create mode 100644 Icons/map-icons/square.small/places/empty.png
create mode 100644 Icons/map-icons/square.small/places/settlement.png
create mode 100644 Icons/map-icons/square.small/places/settlement/capital.png
create mode 100644 Icons/map-icons/square.small/places/settlement/city.png
create mode 100644 Icons/map-icons/square.small/places/settlement/hamlet.png
create mode 100644 Icons/map-icons/square.small/places/settlement/town.png
create mode 100644 Icons/map-icons/square.small/places/settlement/village.png
create mode 100644 Icons/map-icons/square.small/public.png
create mode 100644 Icons/map-icons/square.small/public/administration/court_of_law.png
create mode 100644 Icons/map-icons/square.small/public/administration/prison.png
create mode 100644 Icons/map-icons/square.small/public/arts_centre.png
create mode 100644 Icons/map-icons/square.small/public/empty.png
create mode 100644 Icons/map-icons/square.small/public/firebrigade.png
create mode 100644 Icons/map-icons/square.small/public/police.png
create mode 100644 Icons/map-icons/square.small/public/post_box.png
create mode 100644 Icons/map-icons/square.small/public/post_office.png
create mode 100644 Icons/map-icons/square.small/public/recycling.png
create mode 100644 Icons/map-icons/square.small/public/recycling/trash-bin.png
create mode 100644 Icons/map-icons/square.small/public/recycling_small.png
create mode 100644 Icons/map-icons/square.small/public/telephone.png
create mode 100644 Icons/map-icons/square.small/public/toilets.png
create mode 100644 Icons/map-icons/square.small/recreation.png
create mode 100644 Icons/map-icons/square.small/recreation/bicycling.png
create mode 100644 Icons/map-icons/square.small/recreation/cinema.png
create mode 100644 Icons/map-icons/square.small/recreation/common.png
create mode 100644 Icons/map-icons/square.small/recreation/empty.png
create mode 100644 Icons/map-icons/square.small/recreation/garden.png
create mode 100644 Icons/map-icons/square.small/recreation/music.png
create mode 100644 Icons/map-icons/square.small/recreation/nature_reserve.png
create mode 100644 Icons/map-icons/square.small/recreation/nightclub.png
create mode 100644 Icons/map-icons/square.small/recreation/park.png
create mode 100644 Icons/map-icons/square.small/recreation/picnic.png
create mode 100644 Icons/map-icons/square.small/recreation/playground.png
create mode 100644 Icons/map-icons/square.small/recreation/shelter.png
create mode 100644 Icons/map-icons/square.small/recreation/theater.png
create mode 100644 Icons/map-icons/square.small/recreation/theme_park.png
create mode 100644 Icons/map-icons/square.small/recreation/water_park.png
create mode 100644 Icons/map-icons/square.small/recreation/zoo.png
create mode 100644 Icons/map-icons/square.small/religion.png
create mode 100644 Icons/map-icons/square.small/religion/cemetery.png
create mode 100644 Icons/map-icons/square.small/religion/chapel.png
create mode 100644 Icons/map-icons/square.small/religion/church.png
create mode 100644 Icons/map-icons/square.small/religion/church/bahai.png
create mode 100644 Icons/map-icons/square.small/religion/church/buddhism.png
create mode 100644 Icons/map-icons/square.small/religion/church/catholic.png
create mode 100644 Icons/map-icons/square.small/religion/church/hinduism.png
create mode 100644 Icons/map-icons/square.small/religion/church/jainism.png
create mode 100644 Icons/map-icons/square.small/religion/church/mormon.png
create mode 100644 Icons/map-icons/square.small/religion/church/mosque.png
create mode 100644 Icons/map-icons/square.small/religion/church/orthodox.png
create mode 100644 Icons/map-icons/square.small/religion/church/protestant.png
create mode 100644 Icons/map-icons/square.small/religion/church/shinto.png
create mode 100644 Icons/map-icons/square.small/religion/church/sikhism.png
create mode 100644 Icons/map-icons/square.small/religion/church/synagogue.png
create mode 100644 Icons/map-icons/square.small/religion/church/taoism.png
create mode 100644 Icons/map-icons/square.small/religion/empty.png
create mode 100644 Icons/map-icons/square.small/rendering.png
create mode 100644 Icons/map-icons/square.small/shopping.png
create mode 100644 Icons/map-icons/square.small/shopping/beverages.png
create mode 100644 Icons/map-icons/square.small/shopping/computers.png
create mode 100644 Icons/map-icons/square.small/shopping/confectioner.png
create mode 100644 Icons/map-icons/square.small/shopping/diy_store.png
create mode 100644 Icons/map-icons/square.small/shopping/diy_store/hagebau.png
create mode 100644 Icons/map-icons/square.small/shopping/diy_store/hornbach.png
create mode 100644 Icons/map-icons/square.small/shopping/diy_store/obi.png
create mode 100644 Icons/map-icons/square.small/shopping/diy_store/praktiker.png
create mode 100644 Icons/map-icons/square.small/shopping/empty.png
create mode 100644 Icons/map-icons/square.small/shopping/florist.png
create mode 100644 Icons/map-icons/square.small/shopping/furniture.png
create mode 100644 Icons/map-icons/square.small/shopping/groceries/bakery.png
create mode 100644 Icons/map-icons/square.small/shopping/groceries/butcher.png
create mode 100644 Icons/map-icons/square.small/shopping/groceries/fruits.png
create mode 100644 Icons/map-icons/square.small/shopping/kaufhof.png
create mode 100644 Icons/map-icons/square.small/shopping/kiosk.png
create mode 100644 Icons/map-icons/square.small/shopping/laundry.png
create mode 100644 Icons/map-icons/square.small/shopping/sports/outdoor.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/aldi.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/aldi_nord.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/kaufland.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/lidl.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/norma.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/real.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/rewe.png
create mode 100644 Icons/map-icons/square.small/shopping/supermarket/tengelmann.png
create mode 100644 Icons/map-icons/square.small/sightseeing.png
create mode 100644 Icons/map-icons/square.small/sightseeing/archaeological.png
create mode 100644 Icons/map-icons/square.small/sightseeing/battlefield.png
create mode 100644 Icons/map-icons/square.small/sightseeing/castle.png
create mode 100644 Icons/map-icons/square.small/sightseeing/empty.png
create mode 100644 Icons/map-icons/square.small/sightseeing/memorial.png
create mode 100644 Icons/map-icons/square.small/sightseeing/monument.png
create mode 100644 Icons/map-icons/square.small/sightseeing/museum.png
create mode 100644 Icons/map-icons/square.small/sightseeing/ruins.png
create mode 100644 Icons/map-icons/square.small/sightseeing/viewpoint.png
create mode 100644 Icons/map-icons/square.small/sports.png
create mode 100644 Icons/map-icons/square.small/sports/basketball.png
create mode 100644 Icons/map-icons/square.small/sports/bicycle.png
create mode 100644 Icons/map-icons/square.small/sports/centre.png
create mode 100644 Icons/map-icons/square.small/sports/cycling.png
create mode 100644 Icons/map-icons/square.small/sports/dart.png
create mode 100644 Icons/map-icons/square.small/sports/empty.png
create mode 100644 Icons/map-icons/square.small/sports/football.png
create mode 100644 Icons/map-icons/square.small/sports/golf.png
create mode 100644 Icons/map-icons/square.small/sports/indoor_pool.png
create mode 100644 Icons/map-icons/square.small/sports/kiteflying.png
create mode 100644 Icons/map-icons/square.small/sports/mountain_bike.png
create mode 100644 Icons/map-icons/square.small/sports/pitch.png
create mode 100644 Icons/map-icons/square.small/sports/pool.png
create mode 100644 Icons/map-icons/square.small/sports/racquetball.png
create mode 100644 Icons/map-icons/square.small/sports/riding.png
create mode 100644 Icons/map-icons/square.small/sports/skiing.png
create mode 100644 Icons/map-icons/square.small/sports/soccer.png
create mode 100644 Icons/map-icons/square.small/sports/swimming.png
create mode 100644 Icons/map-icons/square.small/sports/table_tennis.png
create mode 100644 Icons/map-icons/square.small/sports/tennis.png
create mode 100644 Icons/map-icons/square.small/transport.png
create mode 100644 Icons/map-icons/square.small/transport/airport.png
create mode 100644 Icons/map-icons/square.small/transport/airport/airfield.png
create mode 100644 Icons/map-icons/square.small/transport/airport/helipad.png
create mode 100644 Icons/map-icons/square.small/transport/airport/terminal.png
create mode 100644 Icons/map-icons/square.small/transport/bridge.png
create mode 100644 Icons/map-icons/square.small/transport/bridge/bridge-car.png
create mode 100644 Icons/map-icons/square.small/transport/bridge/bridge-pedestrian.png
create mode 100644 Icons/map-icons/square.small/transport/bridge/drawbridge.png
create mode 100644 Icons/map-icons/square.small/transport/bus.png
create mode 100644 Icons/map-icons/square.small/transport/car.png
create mode 100644 Icons/map-icons/square.small/transport/empty.png
create mode 100644 Icons/map-icons/square.small/transport/ferry.png
create mode 100644 Icons/map-icons/square.small/transport/ferry/ferry-car.png
create mode 100644 Icons/map-icons/square.small/transport/ferry/ferry-pedestrian.png
create mode 100644 Icons/map-icons/square.small/transport/handicapped.png
create mode 100644 Icons/map-icons/square.small/transport/harbour.png
create mode 100644 Icons/map-icons/square.small/transport/park_ride.png
create mode 100644 Icons/map-icons/square.small/transport/pedestrian.png
create mode 100644 Icons/map-icons/square.small/transport/railway.png
create mode 100644 Icons/map-icons/square.small/transport/rapid_train.png
create mode 100644 Icons/map-icons/square.small/transport/taxi.png
create mode 100644 Icons/map-icons/square.small/transport/ticket-machine.png
create mode 100644 Icons/map-icons/square.small/transport/tram.png
create mode 100644 Icons/map-icons/square.small/transport/turntable.png
create mode 100644 Icons/map-icons/square.small/transport/underground.png
create mode 100644 Icons/map-icons/square.small/unknown.png
create mode 100644 Icons/map-icons/square.small/vehicle.png
create mode 100644 Icons/map-icons/square.small/vehicle/bicycle_rental.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_rental.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_rental/avis.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_rental/europcar.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_rental/hertz.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_rental/sixt.png
create mode 100644 Icons/map-icons/square.small/vehicle/car_sharing.png
create mode 100644 Icons/map-icons/square.small/vehicle/caution.png
create mode 100644 Icons/map-icons/square.small/vehicle/crossing.png
create mode 100644 Icons/map-icons/square.small/vehicle/crossing_small.png
create mode 100644 Icons/map-icons/square.small/vehicle/emergency_phone.png
create mode 100644 Icons/map-icons/square.small/vehicle/empty.png
create mode 100644 Icons/map-icons/square.small/vehicle/exit.png
create mode 100644 Icons/map-icons/square.small/vehicle/ford.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/agip.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/aral.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/elf.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/esso.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/jet.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/omv.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/shell.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/texaco.png
create mode 100644 Icons/map-icons/square.small/vehicle/fuel_station/total.png
create mode 100644 Icons/map-icons/square.small/vehicle/motorbike.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/bike.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/car.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/garage.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/handicapped.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/hiking.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/motorbike.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/park_ride.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/restarea-toilets.png
create mode 100644 Icons/map-icons/square.small/vehicle/parking/restarea.png
create mode 100644 Icons/map-icons/square.small/vehicle/repair_shop.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/bollard-bw.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/bollard.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/dead_end.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/incline.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/motorbike.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/parking.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/play_street.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/right_of_way.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/road_works.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/roundabout_left.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/roundabout_right.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/stop.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/traffic-light.png
create mode 100644 Icons/map-icons/square.small/vehicle/restrictions/traffic_jam.png
create mode 100644 Icons/map-icons/square.small/vehicle/services.png
create mode 100644 Icons/map-icons/square.small/vehicle/toll_station.png
create mode 100644 Icons/map-icons/square.small/vehicle/tunnel.png
create mode 100644 Icons/map-icons/square.small/vehicle/turning_circle.png
create mode 100644 Icons/map-icons/square.small/vehicle/viaduct.png
create mode 100644 Icons/map-icons/square.small/vehicle/zebra_crossing.png
create mode 100644 Icons/map-icons/square.small/waypoint.png
create mode 100644 Icons/map-icons/square.small/waypoint/empty.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/blue.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/green.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/orange.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/red.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/temp.png
create mode 100644 Icons/map-icons/square.small/waypoint/flag/yellow.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/destination.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/exit.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/fork.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/hard.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/merge.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/soft.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/left/uturn.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/exit.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/fork.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/hard.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/merge.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/soft.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/right/uturn.png
create mode 100644 Icons/map-icons/square.small/waypoint/routepoint/straight.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt1.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt2.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt3.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt4.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt5.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt6.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt7.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt8.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpt9.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpttemp/wpttemp-green.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpttemp/wpttemp-red.png
create mode 100644 Icons/map-icons/square.small/waypoint/wpttemp/wpttemp-yellow.png
create mode 100644 Icons/map-icons/square.small/wlan.png
create mode 100644 Icons/map-icons/square.small/wlan/closed.png
create mode 100644 Icons/map-icons/square.small/wlan/empty.png
create mode 100644 Icons/map-icons/square.small/wlan/open.png
create mode 100644 Icons/map-icons/square.small/wlan/pay.png
create mode 100644 Icons/map-icons/square.small/wlan/pay/fon.png
create mode 100644 Icons/map-icons/square.small/wlan/wep.png
create mode 100644 Icons/merkaartor-win32.rc
create mode 100644 Icons/merkaartor.icns
create mode 100644 Icons/move.xpm
create mode 100644 Icons/remove.xpm
create mode 100644 Icons/reverse.xpm
create mode 100644 Icons/rotate.png
create mode 100644 Icons/rotate.svg
create mode 100644 Icons/small-remove.xpm
create mode 100644 Icons/src/actions/GPS.svg
create mode 100644 Icons/src/actions/align_nodes.pspimage
create mode 100644 Icons/src/actions/break_apart_roads.pspimage
create mode 100644 Icons/src/actions/build_bridge.xcf
create mode 100644 Icons/src/actions/camera.svg
create mode 100644 Icons/src/actions/create_area.pspimage
create mode 100644 Icons/src/actions/create_node.pspimage
create mode 100644 Icons/src/actions/create_road.pspimage
create mode 100644 Icons/src/actions/detach_node.pspimage
create mode 100644 Icons/src/actions/join_roads.pspimage
create mode 100644 Icons/src/actions/node_4.png
create mode 100644 Icons/src/actions/node_5.png
create mode 100644 Icons/src/actions/plus_11_oxygen.png
create mode 100644 Icons/src/actions/reverse_road.pspimage
create mode 100644 Icons/src/actions/shadow.xcf
create mode 100644 Icons/src/actions/split_road.pspimage
create mode 100644 Icons/src/actions/split_road_a.pspimage
create mode 100644 Icons/src/actions/split_road_b.pspimage
create mode 100644 Icons/toolselect.xpm
create mode 100644 Icons/zoomico.xpm
create mode 100644 LICENSE
create mode 100644 Merkaartor.pro
create mode 100644 README.md
create mode 100644 Styles/Bicycle.mas
create mode 100644 Styles/Classic.mas
create mode 100644 Styles/Lighting.mas
create mode 100644 Styles/Mapnik.mas
create mode 100644 Styles/MapnikPlus.mas
create mode 100644 Styles/Maxspeed.mas
create mode 100644 Styles/Merkaartor.mas
create mode 100644 Styles/Mobile.mas
create mode 100644 Styles/None.mas
create mode 100644 Styles/Styles.qrc
create mode 100644 Styles/Validation.mas
create mode 100644 Styles/Wireframe.mas
create mode 100644 Templates/Brussels.mat
create mode 100644 Templates/TagTemplate.xsd
create mode 100644 Templates/Templates.qrc
create mode 100644 Templates/default.mat
create mode 100644 Templates/mine.mat
create mode 100644 cmake/CMakeDMGBackground.tif
create mode 100644 cmake/CMakeDMGSetup.scpt
create mode 100644 cmake/DS_Store.bin
create mode 100644 cmake/ModulesOverride/NSIS.template.in
create mode 100644 cmake/deploy-osx.cmake.in
create mode 100644 cmake/deploy-windows.cmake.in
create mode 100755 cmake/upload-artifacts.sh.in
create mode 100644 cmake/vcs-snapshot.cmake
create mode 100644 cmake/vcs.cmake
create mode 100644 include/RTree.h
create mode 100644 interfaces/IBackend.h
create mode 100644 interfaces/IDocument.h
create mode 100644 interfaces/IFeature.h
create mode 100644 interfaces/IImageManager.cpp
create mode 100644 interfaces/IImageManager.h
create mode 100644 interfaces/ILayer.h
create mode 100644 interfaces/IMapAdapter.h
create mode 100644 interfaces/IMapAdapterFactory.h
create mode 100644 interfaces/IMapWatermark.h
create mode 100644 interfaces/IMerkMainWindow.h
create mode 100644 interfaces/IProgressWindow.h
create mode 100644 interfaces/IProjection.h
create mode 100644 interfaces/IRenderer.h
create mode 100644 interfaces/Interfaces.pri
create mode 100644 plugins/background/MCadastreFranceBackground/CadastreFrance.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/CadastreFrance.h
create mode 100644 plugins/background/MCadastreFranceBackground/MCadastreFranceBackground.pro
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre.pri
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/COPYING.txt
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/cadastrebrowser.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/cadastrebrowser.h
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/cadastrebrowser.ui
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/cadastrewrapper.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/cadastrewrapper.h
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/city.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/city.h
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/main.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/qadastre.pro
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/searchdialog.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/searchdialog.h
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/searchdialog.ui
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/tile.cpp
create mode 100644 plugins/background/MCadastreFranceBackground/qadastre/tile.h
create mode 100644 plugins/background/MGdalBackground/GdalAdapter.cpp
create mode 100644 plugins/background/MGdalBackground/GdalAdapter.h
create mode 100644 plugins/background/MGdalBackground/GdalAdapter.json
create mode 100644 plugins/background/MGdalBackground/MGdalBackground.pro
create mode 100644 plugins/background/MGeoTiffBackground/GeoTiffAdapter.cpp
create mode 100644 plugins/background/MGeoTiffBackground/GeoTiffAdapter.h
create mode 100644 plugins/background/MGeoTiffBackground/GeoTiffAdapter.json
create mode 100644 plugins/background/MGeoTiffBackground/MGeoTiffBackground.pro
create mode 100644 plugins/background/MMsBingMapBackground/MMsBingMapBackground.pro
create mode 100644 plugins/background/MMsBingMapBackground/Resources.qrc
create mode 100644 plugins/background/MMsBingMapBackground/images/logo_powered_by.png
create mode 100644 plugins/background/MMsBingMapBackground/mapadapter.cpp
create mode 100644 plugins/background/MMsBingMapBackground/mapadapter.h
create mode 100644 plugins/background/MMsBingMapBackground/msbingmapadapter.cpp
create mode 100644 plugins/background/MMsBingMapBackground/msbingmapadapter.h
create mode 100644 plugins/background/MMsBingMapBackground/msbingmapadapter.json
create mode 100644 plugins/background/MWalkingPapersBackground/MWalkingPapersBackground.pro
create mode 100644 plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.cpp
create mode 100644 plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.h
create mode 100644 plugins/background/MWalkingPapersBackground/WalkingPapersAdapter.json
create mode 100644 plugins/background/background.pro
create mode 100644 plugins/background/common.pri
create mode 100644 plugins/common.pri
create mode 100644 plugins/plugins.cmake
create mode 100644 plugins/plugins.pro
create mode 100644 share/BookmarksList.xml
create mode 100644 share/Projections.xml
create mode 100644 share/TmsServersList.xml
create mode 100644 share/WmsServersList.xml
create mode 100644 share/share.qrc
create mode 100644 src/Backend/Backend.pri
create mode 100644 src/Backend/MemoryBackend.cpp
create mode 100644 src/Backend/MemoryBackend.h
create mode 100644 src/Commands/Command.cpp
create mode 100644 src/Commands/Command.h
create mode 100644 src/Commands/Commands.pri
create mode 100644 src/Commands/DocumentCommands.cpp
create mode 100644 src/Commands/DocumentCommands.h
create mode 100644 src/Commands/FeatureCommands.cpp
create mode 100644 src/Commands/FeatureCommands.h
create mode 100644 src/Commands/NodeCommands.cpp
create mode 100644 src/Commands/NodeCommands.h
create mode 100644 src/Commands/RelationCommands.cpp
create mode 100644 src/Commands/RelationCommands.h
create mode 100644 src/Commands/TrackSegmentCommands.cpp
create mode 100644 src/Commands/TrackSegmentCommands.h
create mode 100644 src/Commands/WayCommands.cpp
create mode 100644 src/Commands/WayCommands.h
create mode 100644 src/Config.pri
create mode 100644 src/Custom.pri
create mode 100644 src/Docks/DirtyDock.cpp
create mode 100644 src/Docks/DirtyDock.h
create mode 100644 src/Docks/DirtyDock.ui
create mode 100644 src/Docks/Docks.pri
create mode 100644 src/Docks/FeaturesDock.cpp
create mode 100644 src/Docks/FeaturesDock.h
create mode 100644 src/Docks/FeaturesDock.ui
create mode 100644 src/Docks/GeoImage.pri
create mode 100644 src/Docks/GeoImageDock.cpp
create mode 100644 src/Docks/GeoImageDock.h
create mode 100644 src/Docks/InfoDock.cpp
create mode 100644 src/Docks/InfoDock.h
create mode 100644 src/Docks/LayerDock.cpp
create mode 100644 src/Docks/LayerDock.h
create mode 100644 src/Docks/MDockAncestor.cpp
create mode 100644 src/Docks/MDockAncestor.h
create mode 100644 src/Docks/MinimumRelationProperties.ui
create mode 100644 src/Docks/MinimumRoadProperties.ui
create mode 100644 src/Docks/MinimumTrackPointProperties.ui
create mode 100644 src/Docks/PhotoLoadErrorDialog.ui
create mode 100644 src/Docks/PropertiesDock.cpp
create mode 100644 src/Docks/PropertiesDock.h
create mode 100644 src/Docks/StyleDock.cpp
create mode 100644 src/Docks/StyleDock.h
create mode 100644 src/Docks/StyleDock.ui
create mode 100644 src/Features/Feature.cpp
create mode 100644 src/Features/Feature.h
create mode 100644 src/Features/Features.h
create mode 100644 src/Features/Features.pri
create mode 100644 src/Features/Node.cpp
create mode 100644 src/Features/Node.h
create mode 100644 src/Features/Relation.cpp
create mode 100644 src/Features/Relation.h
create mode 100644 src/Features/TrackSegment.cpp
create mode 100644 src/Features/TrackSegment.h
create mode 100644 src/Features/Way.cpp
create mode 100644 src/Features/Way.h
create mode 100644 src/GPS/GPS.pri
create mode 100644 src/GPS/GpsFix.cpp
create mode 100644 src/GPS/GpsFix.h
create mode 100644 src/GPS/SatelliteStrengthView.cpp
create mode 100644 src/GPS/SatelliteStrengthView.h
create mode 100644 src/GPS/qgps.cpp
create mode 100644 src/GPS/qgps.h
create mode 100644 src/GPS/qgpsdevice.cpp
create mode 100644 src/GPS/qgpsdevice.h
create mode 100644 src/GPS/qgpsmainwindowui.ui
create mode 100644 src/GPS/qgpssatellitetracker.cpp
create mode 100644 src/GPS/qgpssatellitetracker.h
create mode 100644 src/ImportExport/ExportDialog.ui
create mode 100644 src/ImportExport/ExportGPX.cpp
create mode 100644 src/ImportExport/ExportGPX.h
create mode 100644 src/ImportExport/ExportOSM.cpp
create mode 100644 src/ImportExport/ExportOSM.h
create mode 100644 src/ImportExport/IImportExport.cpp
create mode 100644 src/ImportExport/IImportExport.h
create mode 100644 src/ImportExport/ImportCSVDialog.cpp
create mode 100644 src/ImportExport/ImportCSVDialog.h
create mode 100644 src/ImportExport/ImportCSVDialog.ui
create mode 100644 src/ImportExport/ImportExport.pri
create mode 100644 src/ImportExport/ImportExportCSV.cpp
create mode 100644 src/ImportExport/ImportExportCSV.h
create mode 100644 src/ImportExport/ImportExportGdal.cpp
create mode 100644 src/ImportExport/ImportExportGdal.h
create mode 100644 src/ImportExport/ImportExportKML.cpp
create mode 100644 src/ImportExport/ImportExportKML.h
create mode 100644 src/ImportExport/ImportExportOSC.cpp
create mode 100644 src/ImportExport/ImportExportOSC.h
create mode 100644 src/ImportExport/ImportExportPBF.cpp
create mode 100644 src/ImportExport/ImportExportPBF.h
create mode 100644 src/ImportExport/ImportGPX.cpp
create mode 100644 src/ImportExport/ImportGPX.h
create mode 100644 src/ImportExport/ImportNGT.cpp
create mode 100644 src/ImportExport/ImportNGT.h
create mode 100644 src/ImportExport/ImportNMEA.cpp
create mode 100644 src/ImportExport/ImportNMEA.h
create mode 100644 src/ImportExport/ImportOSM.cpp
create mode 100644 src/ImportExport/ImportOSM.h
create mode 100644 src/ImportExport/fileformat.pb.cc
create mode 100644 src/ImportExport/fileformat.pb.h
create mode 100644 src/ImportExport/fileformat.proto
create mode 100644 src/ImportExport/osmformat.pb.cc
create mode 100644 src/ImportExport/osmformat.pb.h
create mode 100644 src/ImportExport/osmformat.proto
create mode 100644 src/Interactions/BuildBridgeInteraction.cpp
create mode 100644 src/Interactions/BuildBridgeInteraction.h
create mode 100644 src/Interactions/CreateAreaInteraction.cpp
create mode 100644 src/Interactions/CreateAreaInteraction.h
create mode 100644 src/Interactions/CreateDoubleWayDock.ui
create mode 100644 src/Interactions/CreateDoubleWayInteraction.cpp
create mode 100644 src/Interactions/CreateDoubleWayInteraction.h
create mode 100644 src/Interactions/CreateNodeInteraction.cpp
create mode 100644 src/Interactions/CreateNodeInteraction.h
create mode 100644 src/Interactions/CreatePolygonInteraction.cpp
create mode 100644 src/Interactions/CreatePolygonInteraction.h
create mode 100644 src/Interactions/CreateRoundaboutDock.ui
create mode 100644 src/Interactions/CreateRoundaboutInteraction.cpp
create mode 100644 src/Interactions/CreateRoundaboutInteraction.h
create mode 100644 src/Interactions/CreateSingleWayInteraction.cpp
create mode 100644 src/Interactions/CreateSingleWayInteraction.h
create mode 100644 src/Interactions/EditInteraction.cpp
create mode 100644 src/Interactions/EditInteraction.h
create mode 100644 src/Interactions/ExtrudeInteraction.cpp
create mode 100644 src/Interactions/ExtrudeInteraction.h
create mode 100644 src/Interactions/Interaction.cpp
create mode 100644 src/Interactions/Interaction.h
create mode 100644 src/Interactions/Interactions.pri
create mode 100644 src/Interactions/MoveNodeInteraction.cpp
create mode 100644 src/Interactions/MoveNodeInteraction.h
create mode 100644 src/Interactions/RotateInteraction.cpp
create mode 100644 src/Interactions/RotateInteraction.h
create mode 100644 src/Interactions/ScaleInteraction.cpp
create mode 100644 src/Interactions/ScaleInteraction.h
create mode 100644 src/Interactions/ZoomInteraction.cpp
create mode 100644 src/Interactions/ZoomInteraction.h
create mode 100644 src/Layers/FilterEditDialog.ui
create mode 100644 src/Layers/ImageMapLayer.cpp
create mode 100644 src/Layers/ImageMapLayer.h
create mode 100644 src/Layers/Layer.cpp
create mode 100644 src/Layers/Layer.h
create mode 100644 src/Layers/LayerIterator.h
create mode 100644 src/Layers/LayerPrivate.h
create mode 100644 src/Layers/LayerWidget.cpp
create mode 100644 src/Layers/LayerWidget.h
create mode 100644 src/Layers/LayerWidget.ui
create mode 100644 src/Layers/Layers.pri
create mode 100755 src/Layers/LicenseDisplayDialog.ui
create mode 100644 src/Layers/OsmRenderLayer.cpp
create mode 100644 src/Layers/OsmRenderLayer.h
create mode 100644 src/Main.cpp
create mode 100755 src/MainWindow.cpp
create mode 100644 src/MainWindow.h
create mode 100644 src/MainWindow.ui
create mode 100644 src/NameFinder/NameFinder.pri
create mode 100644 src/NameFinder/NameFinderResult.h
create mode 100644 src/NameFinder/httpquery.cpp
create mode 100644 src/NameFinder/httpquery.h
create mode 100644 src/NameFinder/namefindertablemodel.cpp
create mode 100644 src/NameFinder/namefindertablemodel.h
create mode 100644 src/NameFinder/namefinderwidget.cpp
create mode 100644 src/NameFinder/namefinderwidget.h
create mode 100644 src/NameFinder/namefinderwidget.ui
create mode 100644 src/NameFinder/xmlstreamreader.cpp
create mode 100644 src/NameFinder/xmlstreamreader.h
create mode 100644 src/PaintStyle/FeaturePainter.cpp
create mode 100644 src/PaintStyle/FeaturePainter.h
create mode 100644 src/PaintStyle/IPaintStyle.h
create mode 100644 src/PaintStyle/MapCSSPaintstyle.cpp
create mode 100644 src/PaintStyle/MapCSSPaintstyle.h
create mode 100644 src/PaintStyle/MasPaintStyle.cpp
create mode 100644 src/PaintStyle/MasPaintStyle.h
create mode 100644 src/PaintStyle/PaintStyle.pri
create mode 100644 src/PaintStyle/PaintStyleEditor.cpp
create mode 100644 src/PaintStyle/PaintStyleEditor.h
create mode 100644 src/PaintStyle/PaintStyleEditor.pri
create mode 100644 src/PaintStyle/PaintStyleEditor.ui
create mode 100644 src/PaintStyle/Painter.cpp
create mode 100644 src/PaintStyle/Painter.h
create mode 100644 src/PaintStyle/PrimitivePainter.cpp
create mode 100644 src/PaintStyle/PrimitivePainter.h
create mode 100644 src/Preferences/BookmarksList.cpp
create mode 100644 src/Preferences/BookmarksList.h
create mode 100644 src/Preferences/FilterList.cpp
create mode 100644 src/Preferences/FilterList.h
create mode 100644 src/Preferences/FilterPreferencesDialog.cpp
create mode 100644 src/Preferences/FilterPreferencesDialog.h
create mode 100644 src/Preferences/FilterPreferencesDialog.ui
create mode 100644 src/Preferences/MerkaartorPreferences.cpp
create mode 100644 src/Preferences/MerkaartorPreferences.h
create mode 100644 src/Preferences/OsmServerWidget.ui
create mode 100644 src/Preferences/Preferences.pri
create mode 100644 src/Preferences/PreferencesDialog.cpp
create mode 100644 src/Preferences/PreferencesDialog.h
create mode 100644 src/Preferences/PreferencesDialog.ui
create mode 100644 src/Preferences/ProjPreferencesDialog.cpp
create mode 100644 src/Preferences/ProjPreferencesDialog.h
create mode 100644 src/Preferences/ProjPreferencesDialog.ui
create mode 100644 src/Preferences/ProjectionsList.cpp
create mode 100644 src/Preferences/ProjectionsList.h
create mode 100644 src/Preferences/TMSPreferencesDialog.cpp
create mode 100644 src/Preferences/TMSPreferencesDialog.h
create mode 100644 src/Preferences/TMSPreferencesDialog.ui
create mode 100644 src/Preferences/TmsServersList.cpp
create mode 100644 src/Preferences/TmsServersList.h
create mode 100644 src/Preferences/WMSPreferencesDialog.cpp
create mode 100644 src/Preferences/WMSPreferencesDialog.h
create mode 100644 src/Preferences/WMSPreferencesDialog.ui
create mode 100644 src/Preferences/WmsServersList.cpp
create mode 100644 src/Preferences/WmsServersList.h
create mode 100644 src/QMapControl.pri
create mode 100644 src/QMapControl/WmscMapAdapter.cpp
create mode 100644 src/QMapControl/WmscMapAdapter.h
create mode 100644 src/QMapControl/browserimagemanager.cpp
create mode 100644 src/QMapControl/browserimagemanager.h
create mode 100644 src/QMapControl/imagemanager.cpp
create mode 100644 src/QMapControl/imagemanager.h
create mode 100644 src/QMapControl/imagepoint.cpp
create mode 100644 src/QMapControl/imagepoint.h
create mode 100644 src/QMapControl/mapadapter.cpp
create mode 100644 src/QMapControl/mapadapter.h
create mode 100644 src/QMapControl/mapcontrol.cpp
create mode 100644 src/QMapControl/mapcontrol.h
create mode 100644 src/QMapControl/mapnetwork.cpp
create mode 100644 src/QMapControl/mapnetwork.h
create mode 100644 src/QMapControl/tilemapadapter.cpp
create mode 100644 src/QMapControl/tilemapadapter.h
create mode 100644 src/QMapControl/wmsmapadapter.cpp
create mode 100644 src/QMapControl/wmsmapadapter.h
create mode 100644 src/QToolBarDialog/QToolBarDialog.pri
create mode 100644 src/QToolBarDialog/qttoolbardialog.cpp
create mode 100644 src/QToolBarDialog/qttoolbardialog.h
create mode 100644 src/QToolBarDialog/qttoolbardialog.ui
create mode 100644 src/Render/MapRenderer.cpp
create mode 100644 src/Render/MapRenderer.h
create mode 100644 src/Render/NativeRenderDialog.cpp
create mode 100644 src/Render/NativeRenderDialog.h
create mode 100644 src/Render/NativeRenderDialog.ui
create mode 100644 src/Render/RENDERING.md
create mode 100644 src/Render/Render.pri
create mode 100644 src/Sync/DirtyList.cpp
create mode 100644 src/Sync/DirtyList.h
create mode 100644 src/Sync/DirtyListExecutorOSC.cpp
create mode 100644 src/Sync/DirtyListExecutorOSC.h
create mode 100644 src/Sync/DownloadOSM.cpp
create mode 100644 src/Sync/DownloadOSM.h
create mode 100644 src/Sync/Sync.pri
create mode 100644 src/Sync/SyncListDialog.ui
create mode 100644 src/TagTemplate/TagTemplate.cpp
create mode 100644 src/TagTemplate/TagTemplate.h
create mode 100644 src/TagTemplate/TagTemplate.pri
create mode 100644 src/Tools/ActionsDialog.cpp
create mode 100644 src/Tools/ActionsDialog.h
create mode 100644 src/Tools/QFatFs/QFat.cpp
create mode 100644 src/Tools/QFatFs/QFat.h
create mode 100644 src/Tools/QFatFs/QFatFile.cpp
create mode 100644 src/Tools/QFatFs/QFatFile.h
create mode 100644 src/Tools/QFatFs/QFatFs.cpp
create mode 100644 src/Tools/QFatFs/QFatFs.h
create mode 100644 src/Tools/QFatFs/QFatFs.pri
create mode 100644 src/Tools/RegionMapWidget.cpp
create mode 100644 src/Tools/RegionMapWidget.h
create mode 100644 src/Tools/Tools.pri
create mode 100644 src/Utils/CheckBoxList.cpp
create mode 100644 src/Utils/CheckBoxList.h
create mode 100644 src/Utils/EditCompleterDelegate.cpp
create mode 100644 src/Utils/EditCompleterDelegate.h
create mode 100644 src/Utils/LineF.h
create mode 100644 src/Utils/MDiscardableDialog.cpp
create mode 100644 src/Utils/MDiscardableDialog.h
create mode 100644 src/Utils/OsmLink.cpp
create mode 100644 src/Utils/OsmLink.h
create mode 100644 src/Utils/PictureViewerDialog.cpp
create mode 100644 src/Utils/PictureViewerDialog.h
create mode 100644 src/Utils/PictureViewerDialog.ui
create mode 100644 src/Utils/PixmapWidget.cpp
create mode 100644 src/Utils/PixmapWidget.h
create mode 100644 src/Utils/ProjectionChooser.cpp
create mode 100644 src/Utils/ProjectionChooser.h
create mode 100644 src/Utils/ProjectionChooser.ui
create mode 100644 src/Utils/RemoteControlServer.cpp
create mode 100644 src/Utils/RemoteControlServer.hpp
create mode 100644 src/Utils/SelectionDialog.cpp
create mode 100644 src/Utils/SelectionDialog.h
create mode 100644 src/Utils/SelectionDialog.ui
create mode 100644 src/Utils/ShortcutOverrideFilter.cpp
create mode 100644 src/Utils/ShortcutOverrideFilter.h
create mode 100644 src/Utils/SlippyMapWidget.cpp
create mode 100644 src/Utils/SlippyMapWidget.h
create mode 100644 src/Utils/SvgCache.cpp
create mode 100644 src/Utils/SvgCache.h
create mode 100644 src/Utils/TagSelector.cpp
create mode 100644 src/Utils/TagSelector.h
create mode 100644 src/Utils/TagSelectorWidget.cpp
create mode 100644 src/Utils/TagSelectorWidget.h
create mode 100644 src/Utils/TagSelectorWidget.ui
create mode 100644 src/Utils/Utils.cpp
create mode 100644 src/Utils/Utils.h
create mode 100644 src/Utils/Utils.pri
create mode 100644 src/Utils/Utils.qrc
create mode 100644 src/common/AboutDialog.ui
create mode 100644 src/common/Coord.cpp
create mode 100644 src/common/Coord.h
create mode 100644 src/common/Document.cpp
create mode 100644 src/common/Document.h
create mode 100644 src/common/DownloadMapDialog.ui
create mode 100644 src/common/FeatureManipulations.cpp
create mode 100644 src/common/FeatureManipulations.h
create mode 100644 src/common/Global.cpp
create mode 100644 src/common/Global.h
create mode 100644 src/common/GotoDialog.cpp
create mode 100644 src/common/GotoDialog.h
create mode 100644 src/common/GotoDialog.ui
create mode 100644 src/common/MapTypedef.h
create mode 100644 src/common/MapView.cpp
create mode 100644 src/common/MapView.h
create mode 100644 src/common/MultiProperties.ui
create mode 100644 src/common/Painting.cpp
create mode 100644 src/common/Painting.h
create mode 100644 src/common/Projection.cpp
create mode 100644 src/common/Projection.h
create mode 100644 src/common/PropertiesDialog.ui
create mode 100644 src/common/RelationProperties.ui
create mode 100644 src/common/TagModel.cpp
create mode 100644 src/common/TagModel.h
create mode 100644 src/common/TerraceDialog.cpp
create mode 100644 src/common/TerraceDialog.h
create mode 100644 src/common/TerraceDialog.ui
create mode 100644 src/common/UploadMapDialog.ui
create mode 100644 src/common/common.pri
create mode 100644 src/org.merkaartor.merkaartor.appdata.xml
create mode 100644 src/org.merkaartor.merkaartor.desktop
create mode 100644 src/qextserialport/posix_qextserialport.cpp
create mode 100644 src/qextserialport/posix_qextserialport.h
create mode 100644 src/qextserialport/qextserialbase.cpp
create mode 100644 src/qextserialport/qextserialbase.h
create mode 100644 src/qextserialport/qextserialport.cpp
create mode 100644 src/qextserialport/qextserialport.h
create mode 100644 src/qextserialport/qextserialport.pri
create mode 100644 src/qextserialport/win_qextserialport.cpp
create mode 100644 src/qextserialport/win_qextserialport.h
create mode 100644 src/src.pro
create mode 100644 tests/data/sample-shapefile/POINT.dbf
create mode 100644 tests/data/sample-shapefile/POINT.prj
create mode 100644 tests/data/sample-shapefile/POINT.shp
create mode 100644 tests/data/sample-shapefile/POINT.shx
create mode 100644 tests/data/sample-shapefile/POLYGON.dbf
create mode 100644 tests/data/sample-shapefile/POLYGON.prj
create mode 100644 tests/data/sample-shapefile/POLYGON.shp
create mode 100644 tests/data/sample-shapefile/POLYGON.shx
create mode 100644 tests/data/sample-shapefile/POLYLINE.dbf
create mode 100644 tests/data/sample-shapefile/POLYLINE.prj
create mode 100644 tests/data/sample-shapefile/POLYLINE.shp
create mode 100644 tests/data/sample-shapefile/POLYLINE.shx
create mode 100644 tests/data/sample.geojson
create mode 100644 tests/test-projection.cpp
create mode 100644 translations/README.md
create mode 100644 translations/i18n.pl
create mode 100644 translations/makefile
create mode 100644 translations/maketar.pl
create mode 100644 translations/merkaartor_cs.ts
create mode 100644 translations/merkaartor_de.ts
create mode 100644 translations/merkaartor_en.ts
create mode 100644 translations/merkaartor_es.ts
create mode 100644 translations/merkaartor_fi.ts
create mode 100644 translations/merkaartor_fr.ts
create mode 100644 translations/merkaartor_hr.ts
create mode 100644 translations/merkaartor_hu.ts
create mode 100644 translations/merkaartor_id_ID.ts
create mode 100644 translations/merkaartor_it.ts
create mode 100644 translations/merkaartor_ja.ts
create mode 100644 translations/merkaartor_nl.ts
create mode 100644 translations/merkaartor_pl.ts
create mode 100644 translations/merkaartor_pt_BR.ts
create mode 100644 translations/merkaartor_ru.ts
create mode 100644 translations/merkaartor_sv.ts
create mode 100644 translations/merkaartor_uk.ts
create mode 100644 translations/merkaartor_zh_TW.ts
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/INSTALL.TXT b/3rdparty/qtsingleapplication-2.6_1-opensource/INSTALL.TXT
new file mode 100644
index 0000000..bbb74a9
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/INSTALL.TXT
@@ -0,0 +1,254 @@
+INSTALLATION INSTRUCTIONS
+
+These instructions refer to the package you are installing as
+some-package.tar.gz or some-package.zip. The .zip file is intended for use
+on Windows.
+
+The directory you choose for the installation will be referred to as
+your-install-dir.
+
+Note to Qt Visual Studio Integration users: In the instructions below,
+instead of building from command line with nmake, you can use the menu
+command 'Qt->Open Solution from .pro file' on the .pro files in the
+example and plugin directories, and then build from within Visual
+Studio.
+
+Unpacking and installation
+--------------------------
+
+1. Unpacking the archive (if you have not done so already).
+
+ On Unix and Mac OS X (in a terminal window):
+
+ cd your-install-dir
+ gunzip some-package.tar.gz
+ tar xvf some-package.tar
+
+ This creates the subdirectory some-package containing the files.
+
+ On Windows:
+
+ Unpack the .zip archive by right-clicking it in explorer and
+ choosing "Extract All...". If your version of Windows does not
+ have zip support, you can use the infozip tools available
+ from www.info-zip.org.
+
+ If you are using the infozip tools (in a command prompt window):
+ cd your-install-dir
+ unzip some-package.zip
+
+2. Configuring the package.
+
+ The configure script is called "configure" on unix/mac and
+ "configure.bat" on Windows. It should be run from a command line
+ after cd'ing to the package directory.
+
+ You can choose whether you want to use the component by including
+ its source code directly into your project, or build the component
+ as a dynamic shared library (DLL) that is loaded into the
+ application at run-time. The latter may be preferable for
+ technical or licensing (LGPL) reasons. If you want to build a DLL,
+ run the configure script with the argument "-library". Also see
+ the note about usage below.
+
+ (Components that are Qt plugins, e.g. styles and image formats,
+ are by default built as a plugin DLL.)
+
+ The configure script will prompt you in some cases for further
+ information. Answer these questions and carefully read the license text
+ before accepting the license conditions. The package cannot be used if
+ you do not accept the license conditions.
+
+3. Building the component and examples (when required).
+
+ If a DLL is to be built, or if you would like to build the
+ examples, next give the commands
+
+ qmake
+ make [or nmake if your are using Microsoft Visual C++]
+
+ The example program(s) can be found in the directory called
+ "examples" or "example".
+
+ Components that are Qt plugins, e.g. styles and image formats, are
+ ready to be used as soon as they are built, so the rest of this
+ installation instruction can be skipped.
+
+4. Building the Qt Designer plugin (optional).
+
+ Some of the widget components are provided with plugins for Qt
+ Designer. To build and install the plugin, cd into the
+ some-package/plugin directory and give the commands
+
+ qmake
+ make [or nmake if your are using Microsoft Visual C++]
+
+ Restart Qt Designer to make it load the new widget plugin.
+
+ Note: If you are using the built-in Qt Designer from the Qt Visual
+ Studio Integration, you will need to manually copy the plugin DLL
+ file, i.e. copy
+ %QTDIR%\plugins\designer\some-component.dll
+ to the Qt Visual Studio Integration plugin path, typically:
+ C:\Program Files\Trolltech\Qt VS Integration\plugins
+
+ Note: If you for some reason are using a Qt Designer that is built
+ in debug mode, you will need to build the plugin in debug mode
+ also. Edit the file plugin.pro in the plugin directory, changing
+ 'release' to 'debug' in the CONFIG line, before running qmake.
+
+
+
+Solutions components are intended to be used directly from the package
+directory during development, so there is no 'make install' procedure.
+
+
+Using a component in your project
+---------------------------------
+
+To use this component in your project, add the following line to the
+project's .pro file (or do the equivalent in your IDE):
+
+ include(your-install-dir/some-package/src/some-package.pri)
+
+This adds the package's sources and headers to the SOURCES and HEADERS
+project variables respectively (or, if the component has been
+configured as a DLL, it adds that library to the LIBS variable), and
+updates INCLUDEPATH to contain the package's src
+directory. Additionally, the .pri file may include some dependencies
+needed by the package.
+
+To include a header file from the package in your sources, you can now
+simply use:
+
+ #include
+
+or alternatively, in pre-Qt 4 style:
+
+ #include
+
+Refer to the documentation to see the classes and headers this
+components provides.
+
+
+
+Install documentation (optional)
+--------------------------------
+
+The HTML documentation for the package's classes is located in the
+your-install-dir/some-package/doc/html/index.html. You can open this
+file and read the documentation with any web browser.
+
+To install the documentation into Qt Assistant (for Qt version 4.4 and
+later):
+
+1. In Assistant, open the Edit->Preferences dialog and choose the
+ Documentation tab. Click the Add... button and select the file
+ your-install-dir/some-package/doc/html/some-package.qch
+
+For Qt versions prior to 4.4, do instead the following:
+
+1. The directory your-install-dir/some-package/doc/html contains a
+ file called some-package.dcf. Execute the following commands in a
+ shell, command prompt or terminal window:
+
+ cd your-install-dir/some-package/doc/html/
+ assistant -addContentFile some-package.dcf
+
+The next time you start Qt Assistant, you can access the package's
+documentation.
+
+
+Removing the documentation from assistant
+-----------------------------------------
+
+If you have installed the documentation into Qt Assistant, and want to uninstall it, do as follows, for Qt version 4.4 and later:
+
+1. In Assistant, open the Edit->Preferences dialog and choose the
+ Documentation tab. In the list of Registered Documentation, select
+ the item com.nokia.qtsolutions.some-package_version, and click
+ the Remove button.
+
+For Qt versions prior to 4.4, do instead the following:
+
+1. The directory your-install-dir/some-package/doc/html contains a
+ file called some-package.dcf. Execute the following commands in a
+ shell, command prompt or terminal window:
+
+ cd your-install-dir/some-package/doc/html/
+ assistant -removeContentFile some-package.dcf
+
+
+
+Using the component as a DLL
+----------------------------
+
+1. Normal components
+
+ The shared library (DLL) is built and placed in the
+ some-package/lib directory. It is intended to be used directly
+ from there during development. When appropriate, both debug and
+ release versions are built, since the run-time linker will in some
+ cases refuse to load a debug-built DLL into a release-built
+ application or vice versa.
+
+ The following steps are taken by default to help the dynamic
+ linker to locate the DLL at run-time (during development):
+
+ Unix: The some-package.pri file will add linker instructions to
+ add the some-package/lib directory to the rpath of the
+ executable. (When distributing, or if your system does not support
+ rpath, you can copy the shared library to another place that is
+ searched by the dynamic linker, e.g. the "lib" directory of your
+ Qt installation.)
+
+ Mac: The full path to the library is hardcoded into the library
+ itself, from where it is copied into the executable at link time,
+ and ready by the dynamic linker at run-time. (When distributing,
+ you will want to edit these hardcoded paths in the same way as for
+ the Qt DLLs. Refer to the document "Deploying an Application on
+ Mac OS X" in the Qt Reference Documentation.)
+
+ Windows: the .dll file(s) are copied into the "bin" directory of
+ your Qt installation. The Qt installation will already have set up
+ that directory to be searched by the dynamic linker.
+
+
+2. Plugins
+
+ For Qt Solutions plugins (e.g. image formats), both debug and
+ release versions of the plugin are built by default when
+ appropriate, since in some cases the release Qt library will not
+ load a debug plugin, and vice versa. The plugins are automatically
+ copied into the plugins directory of your Qt installation when
+ built, so no further setup is required.
+
+ Plugins may also be built statically, i.e. as a library that will be
+ linked into your application executable, and so will not need to
+ be redistributed as a separate plugin DLL to end users. Static
+ building is required if Qt itself is built statically. To do it,
+ just add "static" to the CONFIG variable in the plugin/plugin.pro
+ file before building. Refer to the "Static Plugins" section in the
+ chapter "How to Create Qt Plugins" for explanation of how to use a
+ static plugin in your application. The source code of the example
+ program(s) will also typically contain the relevant instructions
+ as comments.
+
+
+
+Uninstalling
+------------
+
+ The following command will remove any fils that have been
+ automatically placed outside the package directory itself during
+ installation and building
+
+ make distclean [or nmake if your are using Microsoft Visual C++]
+
+ If Qt Assistant documentation or Qt Designer plugins have been
+ installed, they can be uninstalled manually, ref. above.
+
+
+Enjoy! :)
+
+- The Qt Solutions Team.
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/LGPL_EXCEPTION.txt b/3rdparty/qtsingleapplication-2.6_1-opensource/LGPL_EXCEPTION.txt
new file mode 100644
index 0000000..238ade5
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/LGPL_EXCEPTION.txt
@@ -0,0 +1,23 @@
+Nokia Qt LGPL Exception version 1.1
+
+As an additional permission to the GNU Lesser General Public License
+version 2.1, the object code form of a "work that uses the Library"
+may incorporate material from a header file that is part of the
+Library. You may distribute such object code under terms of your
+choice, provided that:
+(i) the header files of the Library have not been modified; and
+(ii) the incorporated material is limited to numerical parameters,
+data structure layouts, accessors, macros, inline functions and
+templates; and
+(iii) you comply with the terms of Section 6 of the GNU
+Lesser General Public License version 2.1.
+
+Moreover, you may apply this exception to a modified version of the
+Library, provided that such modification does not involve copying
+material from the Library into the modified Library?s header files
+unless such material is limited to (i) numerical parameters; (ii) data
+structure layouts; (iii) accessors; and (iv) small macros, templates
+and inline functions of five lines or less in length.
+
+Furthermore, you are not required to apply this additional permission
+to a modified version of the Library.
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.GPL3 b/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.GPL3
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.GPL3
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.LGPL b/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.LGPL
new file mode 100644
index 0000000..5ab7695
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/LICENSE.LGPL
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/README.TXT b/3rdparty/qtsingleapplication-2.6_1-opensource/README.TXT
new file mode 100644
index 0000000..f12dc98
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/README.TXT
@@ -0,0 +1,7 @@
+Single Application v2.6
+
+The QtSingleApplication component provides support for
+applications that can be only started once per user.
+
+
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/buildlib/buildlib.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/buildlib/buildlib.pro
new file mode 100644
index 0000000..37dddcd
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/buildlib/buildlib.pro
@@ -0,0 +1,13 @@
+TEMPLATE=lib
+CONFIG += qt dll qtsingleapplication-buildlib
+mac:CONFIG += absolute_library_soname
+win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
+include(../src/qtsingleapplication.pri)
+TARGET = $$QTSINGLEAPPLICATION_LIBNAME
+DESTDIR = $$QTSINGLEAPPLICATION_LIBDIR
+win32 {
+ DLLDESTDIR = $$[QT_INSTALL_BINS]
+ QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QTSINGLEAPPLICATION_LIBNAME}.dll
+}
+target.path = $$DESTDIR
+INSTALLS += target
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/common.pri b/3rdparty/qtsingleapplication-2.6_1-opensource/common.pri
new file mode 100644
index 0000000..b45a4fc
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/common.pri
@@ -0,0 +1,6 @@
+infile(config.pri, SOLUTIONS_LIBRARY, yes): CONFIG += qtsingleapplication-uselib
+TEMPLATE += fakelib
+QTSINGLEAPPLICATION_LIBNAME = $$qtLibraryTarget(QtSolutions_SingleApplication-2.6)
+TEMPLATE -= fakelib
+QTSINGLEAPPLICATION_LIBDIR = $$PWD/lib
+unix:qtsingleapplication-uselib:!qtsingleapplication-buildlib:QMAKE_RPATHDIR += $$QTSINGLEAPPLICATION_LIBDIR
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/config.pri b/3rdparty/qtsingleapplication-2.6_1-opensource/config.pri
new file mode 100644
index 0000000..e69de29
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/configure b/3rdparty/qtsingleapplication-2.6_1-opensource/configure
new file mode 100644
index 0000000..099b08c
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/configure
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+if [ "x$1" != "x" -a "x$1" != "x-library" ]; then
+ echo "Usage: $0 [-library]"
+ echo
+ echo "-library: Build the component as a dynamic library (DLL). Default is to"
+ echo " include the component source code directly in the application."
+ echo " A DLL may be preferable for technical or licensing (LGPL) reasons."
+ echo
+ exit 0
+fi
+
+
+# only ask to accept the license text once
+if [ ! -f .licenseAccepted ]; then
+# determine if opensource or commercial package
+ if [ -f LICENSE.LGPL ]; then
+ # opensource edition
+ while true; do
+ echo
+ echo "You are licensed to use this software under the terms of"
+ echo "the GNU General Public License (GPL) version 3, or"
+ echo "the GNU Lesser General Public License (LGPL) version 2.1"
+ echo "with certain additional extra rights as specified in the"
+ echo "Nokia Qt LGPL Exception version 1.1."
+ echo
+ echo "Type 'G' to view the GNU General Public License (GPL) version 3."
+ echo "Type 'L' to view the GNU Lesser General Public License (LGPL) version 2.1."
+ echo "Type 'E' to view the Nokia Qt LGPL Exception version 1.1."
+ echo "Type 'yes' to accept this license offer."
+ echo "Type 'no' to decline this license offer."
+ echo
+ echo "Do you accept the terms of this license? "
+ read answer
+ echo
+
+ if [ "x$answer" = "xno" ]; then
+ echo "You are not licensed to use this software."
+ echo
+ exit 1
+ elif [ "x$answer" = "xyes" ]; then
+ echo license accepted > .licenseAccepted
+ break
+ elif [ "x$answer" = "xe" -o "x$answer" = "xE" ]; then
+ more LGPL_EXCEPTION.txt
+ elif [ "x$answer" = "xl" -o "x$answer" = "xL" ]; then
+ more LICENSE.LGPL
+ elif [ "x$answer" = "xg" -o "x$answer" = "xG" ]; then
+ more LICENSE.GPL3
+ fi
+ done
+ else
+ while true; do
+ echo
+ echo "Please choose your region."
+ echo
+ echo "Type 1 for North or South America."
+ echo "Type 2 for anywhere outside North and South America."
+ echo
+ echo "Select: "
+ read region
+ if [ "x$region" = "x1" ]; then
+ licenseFile=LICENSE.US
+ break;
+ elif [ "x$region" = "x2" ]; then
+ licenseFile=LICENSE.NO
+ break;
+ fi
+ done
+ while true; do
+ echo
+ echo "License Agreement"
+ echo
+ echo "Type '?' to view the Qt Solutions Commercial License."
+ echo "Type 'yes' to accept this license offer."
+ echo "Type 'no' to decline this license offer."
+ echo
+ echo "Do you accept the terms of this license? "
+ read answer
+ echo
+
+ if [ "x$answer" = "xno" ]; then
+ echo "You are not licensed to use this software."
+ echo
+ exit 1
+ elif [ "x$answer" = "xyes" ]; then
+ echo license accepted > .licenseAccepted
+ cp "$licenseFile" LICENSE
+ rm LICENSE.US
+ rm LICENSE.NO
+ break
+ elif [ "x$answer" = "x?" ]; then
+ more "$licenseFile"
+ fi
+ done
+ fi
+fi
+
+rm -f config.pri
+if [ "x$1" = "x-library" ]; then
+ echo "Configuring to build this component as a dynamic library."
+ echo "SOLUTIONS_LIBRARY = yes" > config.pri
+fi
+
+echo
+echo "This component is now configured."
+echo
+echo "To build the component library (if requested) and example(s),"
+echo "run qmake and your make command."
+echo
+echo "To remove or reconfigure, run make distclean."
+echo
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/classic.css b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/classic.css
new file mode 100644
index 0000000..f22a77a
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/classic.css
@@ -0,0 +1,139 @@
+h3.fn,span.fn
+{
+ margin-left: 1cm;
+ text-indent: -1cm;
+}
+
+a:link
+{
+ color: #004faf;
+ text-decoration: none
+}
+
+a:visited
+{
+ color: #672967;
+ text-decoration: none
+}
+
+a.obsolete
+{
+ color: #661100;
+ text-decoration: none
+}
+
+a.compat
+{
+ color: #661100;
+ text-decoration: none
+}
+
+a.obsolete:visited
+{
+ color: #995500;
+ text-decoration: none
+}
+
+a.compat:visited
+{
+ color: #995500;
+ text-decoration: none
+}
+
+td.postheader
+{
+ font-family: sans-serif
+}
+
+tr.address
+{
+ font-family: sans-serif
+}
+
+body
+{
+ background: #ffffff;
+ color: black
+}
+
+table tr.odd {
+ background: #f0f0f0;
+ color: black;
+}
+
+table tr.even {
+ background: #e4e4e4;
+ color: black;
+}
+
+table.annotated th {
+ padding: 3px;
+ text-align: left
+}
+
+table.annotated td {
+ padding: 3px;
+}
+
+table tr pre
+{
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 0px;
+ padding-right: 0px;
+ border: none;
+ background: none
+}
+
+tr.qt-style
+{
+ background: #96E066;
+ color: black
+}
+
+body pre
+{
+ padding: 0.2em;
+ border: #e7e7e7 1px solid;
+ background: #f1f1f1;
+ color: black
+}
+
+table tr.qt-code pre
+{
+ padding: 0.2em;
+ border: #e7e7e7 1px solid;
+ background: #f1f1f1;
+ color: black
+}
+
+span.preprocessor, span.preprocessor a
+{
+ color: darkblue;
+}
+
+span.comment
+{
+ color: darkred;
+ font-style: italic
+}
+
+span.string,span.char
+{
+ color: darkgreen;
+}
+
+.title
+{
+ text-align: center
+}
+
+.subtitle
+{
+ font-size: 0.8em
+}
+
+.small-subtitle
+{
+ font-size: 0.65em
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/images/qt-logo.png b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/images/qt-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..794162f5af58e7b38beebf472842fc9703ede19b
GIT binary patch
literal 4075
zcmb7H30qUw7R5$_N(2N2A__tfM8-gsp~yw0Ae4$j8GNEd2*JKmajJr%mxxR@0%4Fz
zh&Z7IL~)=h5Fh~p1k*Z!Q$rYws0mUD$xZHghoL{<@qG#R<9@8O_u6}}y-voqt$vFa
zEnlRep|RM1i_Z@D+Z}#3FZc?6-{g7xqM@N%>+iGihxm(;DgY3k-aPn11Axfo`?a#C
zAK~-zfCHNU|HHlK<;yfyk@$a{ZO2UtDrwAOWqQqF>+KCnlgTxU%*`*|IM=l`i8yl@
zKf*|b$+MVjW(ND93}8Tt@DL)A=u5Op*Saz6YdjlB%g9R<02it=uE6Ad`2&6qoCNvD
zl@+~yR)1w7;M7p`NWnm8{=m+B$a{~F1M*(&2JxCUW;E!R|F3#
zf}`W}E#v8$?mqA>*|_izq0iwB6hcOZ)(lB4rndk9F?4#Oaxx{jvFA$rad)4y_VxJ0
zB4?EfH;Z&*O#vz3asg1`a!ka9$Ec$t>GY`KzGx#oNnUn;e!Ht5L8Wh{beozcnA)n81!3v{=okpw>LEPC*L;<|B4jBb#|gsooMmri`XeCDfw*X
zlJ_T4Q89`(fC**w@d8|pbu|eDZNewKHpdnlhYpH$SB*t`&DyR?yAE4xq0N&{ew)xc
zcGvvbZ1itsd!JH|S2NCazp3FA6%}^ZgK?ONn&(YVWv1y_X5&;9hDk+cTY3TDH8nML
z@*%V}-^L0;^D68_5W2#ymEzd4y17lr>hWVFf`O5I;4*Q7Zs+K_dE-dn!~Ye@9-o1IQzuM|y+|q#yxI+F7g<#-f%X=IO4y=?2TtCI$iFiKzdtpk(7nn9bw0@R$i&xcf
z!fzjP+KXVD^ZcVD_ii8%2ows%#lXeIU}8)fWF;;8ItJ@RP;lGn4xFIxa{L;FwGab^
zpBP5u35BZSQT^qddv*ju{f2)yQvrsv5x=Sq3?y+IsmP-#dq=nJ*}MBhVkCRLq_QUH
zZk*5=zycbe!EKD*k~G!MyEy6Xij~
z?2h&|a&Y_TGWRu8k=0&KbMVzGXmtA2M9JvHn3!>$2m^+46vcok)8pmp7bS6`RS7BV
zjE&n^U;5Q0@U@-LZd$OSBSV)x-KXT0+uf95QnU2!a0c%@N(p2I>UzEPRM2&)>)d7&
zFb{`yp+!bceHlP_uD*LTf4Q-WhZ2dYy2xLrF?C7?dlZ>&eK0Y8w>};W^Llhi*=3r9
zWahb-P`AvN3*eHNp@JG-WPCai6UjKid&7&F^Yje?6pBWbatf0=>V$lP7-}GDYHn32
z+IzAh5bcB7-T{_Dehn8Nu6F#-U-p&78r1g#S@K_>1PwC=)VS1uz0!0J+kLT0InH4g
z1)q&bpZ7XUA!=%psYN|p09xKS#Ky8vpi(LaObAu7Jc9z|XRLKxyS?xGq&U>8x_+Hx
zgkx3}82dK1p5Lo86Kh^BRVT@bMEE)9+*2nf8909VtiIt7A@NB=xj{Iuc-0bicI5qe
z8fMr2RIB|qxAR~Rfn>Dn-w2UE_Z|x8K18N
z7_FEk@kKQ#DkMXyFiba~it1A9yHz^N~D}P
zgiCdDa`HZTpHwA`6{tmAU~Ft$L>nDMpmNo4#h}^Q?A08Z4>O~qV(3%Y*t?M|(w2A2
zbPOG!j;G&+OBlx?wfvTj)W3&L;a|q#`eU(Jd8{dz>U6iis{U}11$(fpA)#60<8miw
zNZ#%7yH0mEMisHgdqn7mst=wQ!w;U1<2I;Z)l&u>=FV)c&VGV?qeUTL;*u=$?m>{f
ze<;SNpDw}Wz>H4+gw>(-;hu@%^?DU>EqE#t0rKC8EY?4B|8C!aW9>~XlbqnBAysK5
zY;+bYP|pNz`Lk}{0vucXV>+so?f%a;R$B51QdN3Fs$R$NH5^>uiQYhpjLAjmq_{b#
z24SSq+J<*}^5qaz7#9~RRTVQO2aehXm9>{%)}Y+NLSr~%Cx9}GSxbcMiMc4W5?<=5
zgCpu?#~7I?T%;!R16e|pd>X{yUp|VgE$*)Tmmt`Q1>5PUVz{}y%bI+N_alsz1cizV
zRQ-K4Ty=pd>E3SoQ?md;r(^%<2i~S|+cl)8EXy1yhhM!P?>yze|vqb~9wMixy
zM{NG7vAg}jC$Hn#DMbo7N33_#+g?0+xMxRr?;Byt5b~@dLMm;1
ze5~)!>viIY+s=2Ee3&l7G)pmwNo=-cBny4bxM)QF^d?{P)|%3ve=A>X6K-B@U}a_H
zOT7L}G+AfXbrSoisiiIF0u%+2db#@~M(Wq6y$+2={pg^R8H9+@sqsm;DyGF_(0&g6
z$lDZ%-k!xJ4tt8q-szN#99aFSM8e)*`E#2gvIw2+m!aZc%~@u2EW2N_-V2FxYN0dArh*_+owvm^SqV)
zl9P3ucft8P7%CCJsY&l<>BQ&=Hdf>4rA!>_;h63Jxdrt4dOUn!tKQ4GUa<;tbv?u5Kfn8t~
ziA4$|31yN=F2Hdd8*@GSTQWN(qt&Og{Pl@N&=A6(+d32|NV9~rd<;pi%Q&!n^TjT{
zz{17?S~;;J7lDp`I(`fqRW28WNNTB3tbXeGwDS>X{6cat072$%rcoe+7c)w3*
zdP+9npWyLl-7$3>a4$Ht)4Moy
zS8?dZv)|>cj9Q*^)rM9(H(K>CnHdX@WWEPTD)-(ovehhtMPJB_*5K-xs|kfmrZ?R5
q^n7^PJomUfU@U$1kN?*do1n4%(BY1g{cSVe#sAx_KDRc}&ioHDn>RrK
literal 0
HcmV?d00001
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/index.html b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/index.html
new file mode 100644
index 0000000..d0bb38b
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/index.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+ Single Application
+
+
+
+
The QtSingleApplication component provides support for applications that can be only started once per user.
+
For some applications it is useful or even critical that they are started only once by any user. Future attempts to start the application should activate any already running instance, and possibly perform requested actions, e.g. loading a file, in that instance.
+
The QtSingleApplication class provides an interface to detect a running instance, and to send command strings to that instance. For console (non-GUI) applications, the QtSingleCoreApplication variant is provided, which avoids dependency on QtGui.
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtlockedfile-members.html b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtlockedfile-members.html
new file mode 100644
index 0000000..326c99b
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtlockedfile-members.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+ List of All Members for QtLockedFile
+
+
+
+
The QtLockedFile class extends QFile with advisory locking functions.
+
A file may be locked in read or write mode. Multiple instances of QtLockedFile, created in multiple processes running on the same machine, may have a file locked in read mode. Exactly one instance may have it locked in write mode. A read and a write lock cannot exist simultaneously on the same file.
+
The file locks are advisory. This means that nothing prevents another process from manipulating a locked file using QFile or file system functions offered by the OS. Serialization is only guaranteed if all processes that access the file use QLockedFile. Also, while holding a lock on a file, a process must not open the same file again (through any API), or locks can be unexpectedly lost.
+
The lock provided by an instance of QtLockedFile is released whenever the program terminates. This is true even when the program crashes and no destructors are called.
+
+
Member Type Documentation
+
enum QtLockedFile::LockMode
+
This enum describes the available lock modes.
+
+
Constant
Value
Description
+
QtLockedFile::ReadLock
1
A read lock.
+
QtLockedFile::WriteLock
2
A write lock.
+
QtLockedFile::NoLock
0
Neither a read lock nor a write lock.
+
+
+
Member Function Documentation
+
QtLockedFile::QtLockedFile ()
+
Constructs an unlocked QtLockedFile object. This constructor behaves in the same way as QFile::QFile().
Obtains a lock of type mode. The file must be opened before it can be locked.
+
If block is true, this function will block until the lock is aquired. If block is false, this function returns false immediately if the lock cannot be aquired.
+
If this object already has a lock of type mode, this function returns true immediately. If this object has a lock of a different type than mode, the lock is first released and then a new lock is obtained.
+
This function returns true if, after it executes, the file is locked by this object, and false otherwise.
This is identical to QFile::open(), with the one exception that the Truncate mode flag is disallowed. Truncation would conflict with the advisory file locking, since the file would be modified before the write lock is obtained. If truncation is required, use resize(0) after obtaining the write lock.
The application in this example loads or prints the documents passed as commandline parameters to further instances of this application.
+
/****************************************************************************
+ **
+ ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of a Qt Solutions component.
+ **
+ ** Commercial Usage
+ ** Licensees holding valid Qt Commercial licenses may use this file in
+ ** accordance with the Qt Solutions Commercial License Agreement provided
+ ** with the Software or, alternatively, in accordance with the terms
+ ** contained in a written agreement between you and Nokia.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain
+ ** additional rights. These rights are described in the Nokia Qt LGPL
+ ** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+ ** package.
+ **
+ ** GNU General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU
+ ** General Public License version 3.0 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.GPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU General Public License version 3.0 requirements will be
+ ** met: http://www.gnu.org/copyleft/gpl.html.
+ **
+ ** Please note Third Party Software included with Qt Solutions may impose
+ ** additional restrictions and it is the user's responsibility to ensure
+ ** that they have met the licensing requirements of the GPL, LGPL, or Qt
+ ** Solutions Commercial license and the relevant license of the Third
+ ** Party Software they are using.
+ **
+ ** If you are unsure which license is appropriate for your use, please
+ ** contact Nokia at qt-info@nokia.com.
+ **
+ ****************************************************************************/
+
+ #include <qtsingleapplication.h>
+ #include <QtCore/QFile>
+ #include <QtGui/QMainWindow>
+ #include <QtGui/QPrinter>
+ #include <QtGui/QPainter>
+ #include <QtGui/QTextEdit>
+ #include <QtGui/QMdiArea>
+ #include <QtCore/QTextStream>
+
+ class MainWindow : public QMainWindow
+ {
+ Q_OBJECT
+ public:
+ MainWindow();
+
+ public slots:
+ void handleMessage(const QString& message);
+
+ signals:
+ void needToShow();
+
+ private:
+ QMdiArea *workspace;
+ };
+
The user interface in this application is a QMainWindow subclass with a QMdiArea as the central widget. It implements a slot handleMessage() that will be connected to the messageReceived() signal of the QtSingleApplication class.
The handleMessage() slot interprets the message passed in as a filename that can be prepended with /print to indicate that the file should just be printed rather than loaded.
#include "main.moc"
+
+ int main(int argc, char **argv)
+ {
+ QtSingleApplication instance("File loader QtSingleApplication example", argc, argv);
+ QString message;
+ for (int a = 1; a < argc; ++a) {
+ message += argv[a];
+ if (a < argc-1)
+ message += " ";
+ }
+
+ if (instance.sendMessage(message))
+ return 0;
+
The main entry point function creates a QtSingleApplication object, and creates a message to send to a running instance of the application. If the message was sent successfully the process exits immediately.
If the message could not be sent the application starts up. Note that false is passed to the call to setActivationWindow() to prevent automatic activation for every message received, e.g. when the application should just print a file. Instead, the message handling function determines whether activation is requested, and signals that by emitting the needToShow() signal. This is then simply connected directly to QtSingleApplication's activateWindow() slot.
The application in this example has a log-view that displays messages sent by further instances of the same application.
+
The example demonstrates the use of the QtSingleApplication class to detect and communicate with a running instance of the application using the sendMessage() API. The messageReceived() signal is used to display received messages in a QTextEdit log.
+
/****************************************************************************
+ **
+ ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of a Qt Solutions component.
+ **
+ ** Commercial Usage
+ ** Licensees holding valid Qt Commercial licenses may use this file in
+ ** accordance with the Qt Solutions Commercial License Agreement provided
+ ** with the Software or, alternatively, in accordance with the terms
+ ** contained in a written agreement between you and Nokia.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain
+ ** additional rights. These rights are described in the Nokia Qt LGPL
+ ** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+ ** package.
+ **
+ ** GNU General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU
+ ** General Public License version 3.0 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.GPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU General Public License version 3.0 requirements will be
+ ** met: http://www.gnu.org/copyleft/gpl.html.
+ **
+ ** Please note Third Party Software included with Qt Solutions may impose
+ ** additional restrictions and it is the user's responsibility to ensure
+ ** that they have met the licensing requirements of the GPL, LGPL, or Qt
+ ** Solutions Commercial license and the relevant license of the Third
+ ** Party Software they are using.
+ **
+ ** If you are unsure which license is appropriate for your use, please
+ ** contact Nokia at qt-info@nokia.com.
+ **
+ ****************************************************************************/
+
+ #include <qtsingleapplication.h>
+ #include <QtGui/QTextEdit>
+
+ class TextEdit : public QTextEdit
+ {
+ Q_OBJECT
+ public:
+ TextEdit(QWidget *parent = 0)
+ : QTextEdit(parent)
+ {}
+ public slots:
+ void append(const QString &str)
+ {
+ QTextEdit::append(str);
+ }
+ };
+
+ #include "main.moc"
+
+ int main(int argc, char **argv)
+ {
+ QtSingleApplication instance(argc, argv);
+
The example has only the main entry point function. A QtSingleApplication object is created immediately.
+
if (instance.sendMessage("Wake up!"))
+ return 0;
+
If another instance of this application is already running, sendMessage() will succeed, and this instance just exits immediately.
The logview object is also set as the application's activation window. Every time a message is received, the window will be raised and activated automatically.
+
The messageReceived() signal is also connected to the QTextEdit's append() slot. Every message received from further instances of this application will be displayed in the log.
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-members.html b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-members.html
new file mode 100644
index 0000000..17107ec
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsingleapplication-members.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+ List of All Members for QtSingleApplication
+
+
+
+
The QtSingleApplication class provides an API to detect and communicate with running instances of an application.
+
This class allows you to create applications where only one instance should be running at a time. I.e., if the user tries to launch another instance, the already running instance will be activated instead. Another usecase is a client-server system, where the first started instance will assume the role of server, and the later instances will act as clients of that server.
+
By default, the full path of the executable file is used to determine whether two processes are instances of the same application. You can also provide an explicit identifier string that will be compared instead.
+
The application should create the QtSingleApplication object early in the startup phase, and call isRunning() or sendMessage() to find out if another instance of this application is already running. Startup parameters (e.g. the name of the file the user wanted this new instance to open) can be passed to the running instance in the sendMessage() function.
+
If isRunning() or sendMessage() returns false, it means that no other instance is running, and this instance has assumed the role as the running instance. The application should continue with the initialization of the application user interface before entering the event loop with exec(), as normal. The messageReceived() signal will be emitted when the application receives messages from another instance of the same application.
+
If isRunning() or sendMessage() returns true, another instance is already running, and the application should terminate or enter client mode.
+
If a message is received it might be helpful to the user to raise the application so that it becomes visible. To facilitate this, QtSingleApplication provides the setActivationWindow() function and the activateWindow() slot.
+
Here's an example that shows how to convert an existing application to use QtSingleApplication. It is very simple and does not make use of all QtSingleApplication's functionality (see the examples for that).
Once this QtSingleApplication instance is destroyed(for example, when the user quits), when the user next attempts to run the application this instance will not, of course, be encountered. The next instance to call isRunning() or sendMessage() will assume the role as the new running instance.
+
For console (non-GUI) applications, QtSingleCoreApplication may be used instead of this class, to avoid the dependency on the QtGui library.
Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). dpy, argc, argv, visual, and cmap are passed on to the QApplication constructor.
Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be appId. dpy, argc, argv, visual, and cmap are passed on to the QApplication constructor.
De-minimizes, raises, and activates this application's activation window. This function does nothing if no activation window has been set.
+
This is a convenience function to show the user that this application instance has been activated when he has tried to start another instance.
+
This function should typically be called in response to the messageReceived() signal. By default, that will happen automatically, if an activation window has been set.
Tries to send the text message to the currently running instance. The QtSingleApplication object in the running instance will emit the messageReceived() signal when it receives the message.
+
This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within timeout milliseconds, this function return false.
Sets the activation window of this application to aw. The activation window is the widget that will be activated by activateWindow(). This is typically the application's main window.
+
If activateOnMessage is true (the default), the window will be activated automatically every time a message is received, just prior to the messageReceived() signal being emitted.
/****************************************************************************
+ **
+ ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of a Qt Solutions component.
+ **
+ ** Commercial Usage
+ ** Licensees holding valid Qt Commercial licenses may use this file in
+ ** accordance with the Qt Solutions Commercial License Agreement provided
+ ** with the Software or, alternatively, in accordance with the terms
+ ** contained in a written agreement between you and Nokia.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain
+ ** additional rights. These rights are described in the Nokia Qt LGPL
+ ** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+ ** package.
+ **
+ ** GNU General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU
+ ** General Public License version 3.0 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.GPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU General Public License version 3.0 requirements will be
+ ** met: http://www.gnu.org/copyleft/gpl.html.
+ **
+ ** Please note Third Party Software included with Qt Solutions may impose
+ ** additional restrictions and it is the user's responsibility to ensure
+ ** that they have met the licensing requirements of the GPL, LGPL, or Qt
+ ** Solutions Commercial license and the relevant license of the Third
+ ** Party Software they are using.
+ **
+ ** If you are unsure which license is appropriate for your use, please
+ ** contact Nokia at qt-info@nokia.com.
+ **
+ ****************************************************************************/
+
+ #include "qtsinglecoreapplication.h"
+ #include <QtCore/QDebug>
+
+ void report(const QString& msg)
+ {
+ qDebug("[%i] %s", (int)QCoreApplication::applicationPid(), qPrintable(msg));
+ }
+
+ class MainClass : public QObject
+ {
+ Q_OBJECT
+ public:
+ MainClass()
+ : QObject()
+ {}
+
+ public slots:
+ void handleMessage(const QString& message)
+ {
+ report( "Message received: \"" + message + "\"");
+ }
+ };
+
+ int main(int argc, char **argv)
+ {
+ report("Starting up");
+
+ QtSingleCoreApplication app(argc, argv);
+
+ if (app.isRunning()) {
+ QString msg(QString("Hi master, I am %1.").arg(QCoreApplication::applicationPid()));
+ bool sentok = app.sendMessage(msg);
+ QString rep("Another instance is running, so I will exit.");
+ rep += sentok ? " Message sent ok." : " Message sending failed.";
+ report(rep);
+ return 0;
+ } else {
+ report("No other instance is running; so I will.");
+ MainClass mainObj;
+ QObject::connect(&app, SIGNAL(messageReceived(const QString&)),
+ &mainObj, SLOT(handleMessage(const QString&)));
+ return app.exec();
+ }
+ }
+
+ #include "main.moc"
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication-members.html b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication-members.html
new file mode 100644
index 0000000..0b63012
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/html/qtsinglecoreapplication-members.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+ List of All Members for QtSingleCoreApplication
+
+
+
+
The API and usage is identical to QtSingleApplication, except that functions relating to the "activation window" are not present, for obvious reasons. Please refer to the QtSingleApplication documentation for explanation of the usage.
+
A QtSingleCoreApplication instance can communicate to a QtSingleApplication instance if they share the same application id. Hence, this class can be used to create a light-weight command-line tool that sends commands to a GUI application.
Tries to send the text message to the currently running instance. The QtSingleCoreApplication object in the running instance will emit the messageReceived() signal when it receives the message.
+
This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within timeout milliseconds, this function return false.
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/images/qt-logo.png b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/images/qt-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..794162f5af58e7b38beebf472842fc9703ede19b
GIT binary patch
literal 4075
zcmb7H30qUw7R5$_N(2N2A__tfM8-gsp~yw0Ae4$j8GNEd2*JKmajJr%mxxR@0%4Fz
zh&Z7IL~)=h5Fh~p1k*Z!Q$rYws0mUD$xZHghoL{<@qG#R<9@8O_u6}}y-voqt$vFa
zEnlRep|RM1i_Z@D+Z}#3FZc?6-{g7xqM@N%>+iGihxm(;DgY3k-aPn11Axfo`?a#C
zAK~-zfCHNU|HHlK<;yfyk@$a{ZO2UtDrwAOWqQqF>+KCnlgTxU%*`*|IM=l`i8yl@
zKf*|b$+MVjW(ND93}8Tt@DL)A=u5Op*Saz6YdjlB%g9R<02it=uE6Ad`2&6qoCNvD
zl@+~yR)1w7;M7p`NWnm8{=m+B$a{~F1M*(&2JxCUW;E!R|F3#
zf}`W}E#v8$?mqA>*|_izq0iwB6hcOZ)(lB4rndk9F?4#Oaxx{jvFA$rad)4y_VxJ0
zB4?EfH;Z&*O#vz3asg1`a!ka9$Ec$t>GY`KzGx#oNnUn;e!Ht5L8Wh{beozcnA)n81!3v{=okpw>LEPC*L;<|B4jBb#|gsooMmri`XeCDfw*X
zlJ_T4Q89`(fC**w@d8|pbu|eDZNewKHpdnlhYpH$SB*t`&DyR?yAE4xq0N&{ew)xc
zcGvvbZ1itsd!JH|S2NCazp3FA6%}^ZgK?ONn&(YVWv1y_X5&;9hDk+cTY3TDH8nML
z@*%V}-^L0;^D68_5W2#ymEzd4y17lr>hWVFf`O5I;4*Q7Zs+K_dE-dn!~Ye@9-o1IQzuM|y+|q#yxI+F7g<#-f%X=IO4y=?2TtCI$iFiKzdtpk(7nn9bw0@R$i&xcf
z!fzjP+KXVD^ZcVD_ii8%2ows%#lXeIU}8)fWF;;8ItJ@RP;lGn4xFIxa{L;FwGab^
zpBP5u35BZSQT^qddv*ju{f2)yQvrsv5x=Sq3?y+IsmP-#dq=nJ*}MBhVkCRLq_QUH
zZk*5=zycbe!EKD*k~G!MyEy6Xij~
z?2h&|a&Y_TGWRu8k=0&KbMVzGXmtA2M9JvHn3!>$2m^+46vcok)8pmp7bS6`RS7BV
zjE&n^U;5Q0@U@-LZd$OSBSV)x-KXT0+uf95QnU2!a0c%@N(p2I>UzEPRM2&)>)d7&
zFb{`yp+!bceHlP_uD*LTf4Q-WhZ2dYy2xLrF?C7?dlZ>&eK0Y8w>};W^Llhi*=3r9
zWahb-P`AvN3*eHNp@JG-WPCai6UjKid&7&F^Yje?6pBWbatf0=>V$lP7-}GDYHn32
z+IzAh5bcB7-T{_Dehn8Nu6F#-U-p&78r1g#S@K_>1PwC=)VS1uz0!0J+kLT0InH4g
z1)q&bpZ7XUA!=%psYN|p09xKS#Ky8vpi(LaObAu7Jc9z|XRLKxyS?xGq&U>8x_+Hx
zgkx3}82dK1p5Lo86Kh^BRVT@bMEE)9+*2nf8909VtiIt7A@NB=xj{Iuc-0bicI5qe
z8fMr2RIB|qxAR~Rfn>Dn-w2UE_Z|x8K18N
z7_FEk@kKQ#DkMXyFiba~it1A9yHz^N~D}P
zgiCdDa`HZTpHwA`6{tmAU~Ft$L>nDMpmNo4#h}^Q?A08Z4>O~qV(3%Y*t?M|(w2A2
zbPOG!j;G&+OBlx?wfvTj)W3&L;a|q#`eU(Jd8{dz>U6iis{U}11$(fpA)#60<8miw
zNZ#%7yH0mEMisHgdqn7mst=wQ!w;U1<2I;Z)l&u>=FV)c&VGV?qeUTL;*u=$?m>{f
ze<;SNpDw}Wz>H4+gw>(-;hu@%^?DU>EqE#t0rKC8EY?4B|8C!aW9>~XlbqnBAysK5
zY;+bYP|pNz`Lk}{0vucXV>+so?f%a;R$B51QdN3Fs$R$NH5^>uiQYhpjLAjmq_{b#
z24SSq+J<*}^5qaz7#9~RRTVQO2aehXm9>{%)}Y+NLSr~%Cx9}GSxbcMiMc4W5?<=5
zgCpu?#~7I?T%;!R16e|pd>X{yUp|VgE$*)Tmmt`Q1>5PUVz{}y%bI+N_alsz1cizV
zRQ-K4Ty=pd>E3SoQ?md;r(^%<2i~S|+cl)8EXy1yhhM!P?>yze|vqb~9wMixy
zM{NG7vAg}jC$Hn#DMbo7N33_#+g?0+xMxRr?;Byt5b~@dLMm;1
ze5~)!>viIY+s=2Ee3&l7G)pmwNo=-cBny4bxM)QF^d?{P)|%3ve=A>X6K-B@U}a_H
zOT7L}G+AfXbrSoisiiIF0u%+2db#@~M(Wq6y$+2={pg^R8H9+@sqsm;DyGF_(0&g6
z$lDZ%-k!xJ4tt8q-szN#99aFSM8e)*`E#2gvIw2+m!aZc%~@u2EW2N_-V2FxYN0dArh*_+owvm^SqV)
zl9P3ucft8P7%CCJsY&l<>BQ&=Hdf>4rA!>_;h63Jxdrt4dOUn!tKQ4GUa<;tbv?u5Kfn8t~
ziA4$|31yN=F2Hdd8*@GSTQWN(qt&Og{Pl@N&=A6(+d32|NV9~rd<;pi%Q&!n^TjT{
zz{17?S~;;J7lDp`I(`fqRW28WNNTB3tbXeGwDS>X{6cat072$%rcoe+7c)w3*
zdP+9npWyLl-7$3>a4$Ht)4Moy
zS8?dZv)|>cj9Q*^)rM9(H(K>CnHdX@WWEPTD)-(ovehhtMPJB_*5K-xs|kfmrZ?R5
q^n7^PJomUfU@U$1kN?*do1n4%(BY1g{cSVe#sAx_KDRc}&ioHDn>RrK
literal 0
HcmV?d00001
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/doc/index.qdoc b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/index.qdoc
new file mode 100644
index 0000000..9c3308d
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/doc/index.qdoc
@@ -0,0 +1,47 @@
+/*!
+ \page index.html
+ \title Single Application
+
+ \section1 Description
+
+ The QtSingleApplication component provides support
+ for applications that can be only started once per user.
+
+
+
+ For some applications it is useful or even critical that they are started
+ only once by any user. Future attempts to start the application should
+ activate any already running instance, and possibly perform requested
+ actions, e.g. loading a file, in that instance.
+
+ The QtSingleApplication class provides an interface to detect a running
+ instance, and to send command strings to that instance.
+ For console (non-GUI) applications, the QtSingleCoreApplication variant is provided, which avoids dependency on QtGui.
+
+
+
+
+ \section1 Classes
+ \list
+ \i QtSingleApplication \i QtSingleCoreApplication\endlist
+
+ \section1 Examples
+ \list
+ \i \link qtsingleapplication-example-trivial.html A Trivial Example \endlink \i \link qtsingleapplication-example-loader.html Loading Documents \endlink \i \link qtsinglecoreapplication-example-console.html A Non-GUI Example \endlink \endlist
+
+
+
+
+
+
+ \section1 Tested platforms
+ \list
+ \i Qt 4.4, 4.5 / Windows XP / MSVC.NET 2005
+ \i Qt 4.4, 4.5 / Linux / gcc
+ \i Qt 4.4, 4.5 / MacOS X 10.5 / gcc
+ \endlist
+
+
+
+
+ */
\ No newline at end of file
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.pro
new file mode 100644
index 0000000..e0390e2
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.pro
@@ -0,0 +1,5 @@
+TEMPLATE = app
+CONFIG += console
+SOURCES += main.cpp
+include(../../src/qtsinglecoreapplication.pri)
+QT -= gui
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.qdoc b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.qdoc
new file mode 100644
index 0000000..9fd6fae
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/console.qdoc
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+/*! \page qtsinglecoreapplication-example-console.html
+ \title A non-GUI example
+
+ This example shows how to use the single-application functionality
+ in a console application. It does not require the \c QtGui library
+ at all.
+
+ The only differences from the GUI application usage demonstrated
+ in the other examples are:
+
+ 1) The \c.pro file should include \c qtsinglecoreapplication.pri
+ instead of \c qtsingleapplication.pri
+
+ 2) The class name is \c QtSingleCoreApplication instead of \c
+ QtSingleApplication.
+
+ 3) No calls are made regarding window activation, for obvious reasons.
+
+ console.pro:
+ \quotefile console/console.pro
+
+ main.cpp:
+ \quotefile console/main.cpp
+
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/main.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/main.cpp
new file mode 100644
index 0000000..1db3d77
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/console/main.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include "qtsinglecoreapplication.h"
+#include
+
+
+void report(const QString& msg)
+{
+ qDebug("[%i] %s", (int)QCoreApplication::applicationPid(), qPrintable(msg));
+}
+
+class MainClass : public QObject
+{
+ Q_OBJECT
+public:
+ MainClass()
+ : QObject()
+ {}
+
+public slots:
+ void handleMessage(const QString& message)
+ {
+ report( "Message received: \"" + message + "\"");
+ }
+};
+
+int main(int argc, char **argv)
+{
+ report("Starting up");
+
+ QtSingleCoreApplication app(argc, argv);
+
+ if (app.isRunning()) {
+ QString msg(QString("Hi master, I am %1.").arg(QCoreApplication::applicationPid()));
+ bool sentok = app.sendMessage(msg);
+ QString rep("Another instance is running, so I will exit.");
+ rep += sentok ? " Message sent ok." : " Message sending failed.";
+ report(rep);
+ return 0;
+ } else {
+ report("No other instance is running; so I will.");
+ MainClass mainObj;
+ QObject::connect(&app, SIGNAL(messageReceived(const QString&)),
+ &mainObj, SLOT(handleMessage(const QString&)));
+ return app.exec();
+ }
+}
+
+
+#include "main.moc"
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/examples.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/examples.pro
new file mode 100644
index 0000000..36b8fd3
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/examples.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+SUBDIRS = trivial \
+ loader \
+ console
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file1.qsl b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file1.qsl
new file mode 100644
index 0000000..50fcd26
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file1.qsl
@@ -0,0 +1 @@
+File 1
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file2.qsl b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file2.qsl
new file mode 100644
index 0000000..4475433
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/file2.qsl
@@ -0,0 +1 @@
+File 2
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.pro
new file mode 100644
index 0000000..673497a
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.pro
@@ -0,0 +1,5 @@
+TEMPLATE = app
+
+include(../../src/qtsingleapplication.pri)
+
+SOURCES += main.cpp
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.qdoc b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.qdoc
new file mode 100644
index 0000000..1b5546c
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/loader.qdoc
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+/*! \page qtsingleapplication-example-loader.html
+ \title Loading Documents
+
+ The application in this example loads or prints the documents
+ passed as commandline parameters to further instances of this
+ application.
+
+ \quotefromfile loader/main.cpp
+ \printuntil };
+ The user interface in this application is a QMainWindow subclass
+ with a QMdiArea as the central widget. It implements a slot
+ \c handleMessage() that will be connected to the messageReceived()
+ signal of the QtSingleApplication class.
+
+ \printuntil }
+ The MainWindow constructor creates a minimal user interface.
+
+ \printto case Print:
+ The handleMessage() slot interprets the message passed in as a
+ filename that can be prepended with \e /print to indicate that
+ the file should just be printed rather than loaded.
+
+ \printto #include
+ Loading the file will also activate the window.
+
+ \printto mw
+ The \c main entry point function creates a QtSingleApplication
+ object, and creates a message to send to a running instance
+ of the application. If the message was sent successfully the
+ process exits immediately.
+
+ \printuntil }
+ If the message could not be sent the application starts up. Note
+ that \c false is passed to the call to setActivationWindow() to
+ prevent automatic activation for every message received, e.g. when
+ the application should just print a file. Instead, the message
+ handling function determines whether activation is requested, and
+ signals that by emitting the needToShow() signal. This is then
+ simply connected directly to QtSingleApplication's
+ activateWindow() slot.
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/main.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/main.cpp
new file mode 100644
index 0000000..23e6fe0
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/loader/main.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+public:
+ MainWindow();
+
+public slots:
+ void handleMessage(const QString& message);
+
+signals:
+ void needToShow();
+
+private:
+ QMdiArea *workspace;
+};
+
+MainWindow::MainWindow()
+{
+ workspace = new QMdiArea(this);
+
+ setCentralWidget(workspace);
+}
+
+void MainWindow::handleMessage(const QString& message)
+{
+ enum Action {
+ Nothing,
+ Open,
+ Print
+ } action;
+
+ action = Nothing;
+ QString filename = message;
+ if (message.toLower().startsWith("/print ")) {
+ filename = filename.mid(7);
+ action = Print;
+ } else if (!message.isEmpty()) {
+ action = Open;
+ }
+ if (action == Nothing) {
+ emit needToShow();
+ return;
+ }
+
+ QFile file(filename);
+ QString contents;
+ if (file.open(QIODevice::ReadOnly))
+ contents = file.readAll();
+ else
+ contents = "[[Error: Could not load file " + filename + "]]";
+
+ QTextEdit *view = new QTextEdit;
+ view->setPlainText(contents);
+
+ switch(action) {
+ case Print:
+ {
+ QPrinter printer;
+ view->print(&printer);
+ delete view;
+ }
+ break;
+
+ case Open:
+ {
+ workspace->addSubWindow(view);
+ view->setWindowTitle(message);
+ view->show();
+ emit needToShow();
+ }
+ break;
+ default:
+ break;
+ };
+}
+
+#include "main.moc"
+
+int main(int argc, char **argv)
+{
+ QtSingleApplication instance("File loader QtSingleApplication example", argc, argv);
+ QString message;
+ for (int a = 1; a < argc; ++a) {
+ message += argv[a];
+ if (a < argc-1)
+ message += " ";
+ }
+
+ if (instance.sendMessage(message))
+ return 0;
+
+ MainWindow mw;
+ mw.handleMessage(message);
+ mw.show();
+
+ QObject::connect(&instance, SIGNAL(messageReceived(const QString&)),
+ &mw, SLOT(handleMessage(const QString&)));
+
+ instance.setActivationWindow(&mw, false);
+ QObject::connect(&mw, SIGNAL(needToShow()), &instance, SLOT(activateWindow()));
+
+ return instance.exec();
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/main.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/main.cpp
new file mode 100644
index 0000000..727fab8
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/main.cpp
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#include
+#include
+
+class TextEdit : public QTextEdit
+{
+ Q_OBJECT
+public:
+ TextEdit(QWidget *parent = 0)
+ : QTextEdit(parent)
+ {}
+public slots:
+ void append(const QString &str)
+ {
+ QTextEdit::append(str);
+ }
+};
+
+#include "main.moc"
+
+
+
+int main(int argc, char **argv)
+{
+ QtSingleApplication instance(argc, argv);
+ if (instance.sendMessage("Wake up!"))
+ return 0;
+
+ TextEdit logview;
+ logview.setReadOnly(true);
+ logview.show();
+
+ instance.setActivationWindow(&logview);
+
+ QObject::connect(&instance, SIGNAL(messageReceived(const QString&)),
+ &logview, SLOT(append(const QString&)));
+
+ return instance.exec();
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.pro
new file mode 100644
index 0000000..673497a
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.pro
@@ -0,0 +1,5 @@
+TEMPLATE = app
+
+include(../../src/qtsingleapplication.pri)
+
+SOURCES += main.cpp
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.qdoc b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.qdoc
new file mode 100644
index 0000000..d33a4c7
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/examples/trivial/trivial.qdoc
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+/*! \page qtsingleapplication-example-trivial.html
+ \title A Trivial Example
+
+ The application in this example has a log-view that displays
+ messages sent by further instances of the same application.
+
+ The example demonstrates the use of the QtSingleApplication
+ class to detect and communicate with a running instance of
+ the application using the sendMessage() API. The messageReceived()
+ signal is used to display received messages in a QTextEdit log.
+
+ \quotefromfile trivial/main.cpp
+ \printuntil instance
+ The example has only the \c main entry point function.
+ A QtSingleApplication object is created immediately.
+
+ \printuntil return
+ If another instance of this application is already running,
+ sendMessage() will succeed, and this instance just exits
+ immediately.
+
+ \printuntil show()
+ Otherwise the instance continues as normal and creates the
+ user interface.
+
+ \printuntil return instance.exec();
+ The \c logview object is also set as the application's activation
+ window. Every time a message is received, the window will be raised
+ and activated automatically.
+
+ The messageReceived() signal is also connected to the QTextEdit's
+ append() slot. Every message received from further instances of
+ this application will be displayed in the log.
+
+ Finally the event loop is entered.
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/qtsingleapplication.pro b/3rdparty/qtsingleapplication-2.6_1-opensource/qtsingleapplication.pro
new file mode 100644
index 0000000..cceb41f
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/qtsingleapplication.pro
@@ -0,0 +1,6 @@
+TEMPLATE=subdirs
+CONFIG += ordered
+include(common.pri)
+qtsingleapplication-uselib:SUBDIRS=buildlib
+SUBDIRS+=examples
+QT += widgets
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtLockedFile b/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtLockedFile
new file mode 100644
index 0000000..16b48ba
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtLockedFile
@@ -0,0 +1 @@
+#include "qtlockedfile.h"
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtSingleApplication b/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtSingleApplication
new file mode 100644
index 0000000..d111bf7
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/QtSingleApplication
@@ -0,0 +1 @@
+#include "qtsingleapplication.h"
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
new file mode 100644
index 0000000..bff13f5
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
@@ -0,0 +1,209 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include "qtlocalpeer.h"
+#include
+#include
+#include
+
+#if defined(Q_OS_WIN)
+#include
+#include
+typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*);
+static PProcessIdToSessionId pProcessIdToSessionId = 0;
+#endif
+#if defined(Q_OS_UNIX)
+#include
+#include
+#endif
+
+#include
+#include
+
+namespace QtLP_Private {
+#include "qtlockedfile.cpp"
+#if defined(Q_OS_WIN)
+#include "qtlockedfile_win.cpp"
+#else
+#include "qtlockedfile_unix.cpp"
+#endif
+}
+
+
+const char* QtLocalPeer::ack = "ack";
+
+QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId)
+ : QObject(parent), id(appId)
+{
+ QString prefix = id;
+ if (id.isEmpty()) {
+ id = QCoreApplication::applicationFilePath();
+#if defined(Q_OS_WIN)
+ id = id.toLower();
+#endif
+ prefix = id.section(QLatin1Char('/'), -1);
+ }
+ prefix.remove(QRegExp("[^a-zA-Z]"));
+ prefix.truncate(6);
+
+ QByteArray idc = id.toUtf8();
+ quint16 idNum = qChecksum(idc.constData(), idc.size());
+ socketName = QLatin1String("qtsingleapp-") + prefix
+ + QLatin1Char('-') + QString::number(idNum, 16);
+
+#if defined(Q_OS_WIN)
+ if (!pProcessIdToSessionId) {
+ QLibrary lib("kernel32");
+ pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId");
+ }
+ if (pProcessIdToSessionId) {
+ DWORD sessionId = 0;
+ pProcessIdToSessionId(GetCurrentProcessId(), &sessionId);
+ socketName += QLatin1Char('-') + QString::number(sessionId, 16);
+ }
+#else
+ socketName += QLatin1Char('-') + QString::number(getuid(), 16);
+#endif
+
+ server = new QLocalServer(this);
+ QString lockName = QDir(QDir::tempPath()).absolutePath()
+ + QLatin1Char('/') + socketName
+ + QLatin1String("-lockfile");
+ lockFile.setFileName(lockName);
+ lockFile.open(QIODevice::ReadWrite);
+}
+
+
+
+bool QtLocalPeer::isClient()
+{
+ if (lockFile.isLocked())
+ return false;
+
+ if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false))
+ return true;
+
+ bool res = server->listen(socketName);
+#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0))
+ // ### Workaround
+ if (!res && server->serverError() == QAbstractSocket::AddressInUseError) {
+ QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName);
+ res = server->listen(socketName);
+ }
+#endif
+ if (!res)
+ qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString()));
+ QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection()));
+ return false;
+}
+
+
+bool QtLocalPeer::sendMessage(const QString &message, int timeout)
+{
+ if (!isClient())
+ return false;
+
+ QLocalSocket socket;
+ bool connOk = false;
+ for(int i = 0; i < 2; i++) {
+ // Try twice, in case the other instance is just starting up
+ socket.connectToServer(socketName);
+ connOk = socket.waitForConnected(timeout/2);
+ if (connOk || i)
+ break;
+ int ms = 250;
+#if defined(Q_OS_WIN)
+ Sleep(DWORD(ms));
+#else
+ struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 };
+ nanosleep(&ts, NULL);
+#endif
+ }
+ if (!connOk)
+ return false;
+
+ QByteArray uMsg(message.toUtf8());
+ QDataStream ds(&socket);
+ ds.writeBytes(uMsg.constData(), uMsg.size());
+ bool res = socket.waitForBytesWritten(timeout);
+ res &= socket.waitForReadyRead(timeout); // wait for ack
+ res &= (socket.read(qstrlen(ack)) == ack);
+ return res;
+}
+
+
+void QtLocalPeer::receiveConnection()
+{
+ QLocalSocket* socket = server->nextPendingConnection();
+ if (!socket)
+ return;
+
+ while (socket->bytesAvailable() < (int)sizeof(quint32))
+ socket->waitForReadyRead();
+ QDataStream ds(socket);
+ QByteArray uMsg;
+ quint32 remaining;
+ ds >> remaining;
+ uMsg.resize(remaining);
+ int got = 0;
+ char* uMsgBuf = uMsg.data();
+ do {
+ got = ds.readRawData(uMsgBuf, remaining);
+ remaining -= got;
+ uMsgBuf += got;
+ } while (remaining && got >= 0 && socket->waitForReadyRead(2000));
+ if (got < 0) {
+ qWarning() << "QtLocalPeer: Message reception failed" << socket->errorString();
+ delete socket;
+ return;
+ }
+ QString message(QString::fromUtf8(uMsg));
+ socket->write(ack, qstrlen(ack));
+ socket->waitForBytesWritten(1000);
+ delete socket;
+ emit messageReceived(message); //### (might take a long time to return)
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
new file mode 100644
index 0000000..8a54a9b
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include
+#include
+#include
+
+namespace QtLP_Private {
+#include "qtlockedfile.h"
+}
+
+class QtLocalPeer : public QObject
+{
+ Q_OBJECT
+
+public:
+ QtLocalPeer(QObject *parent = 0, const QString &appId = QString());
+ bool isClient();
+ bool sendMessage(const QString &message, int timeout);
+ QString applicationId() const
+ { return id; }
+
+Q_SIGNALS:
+ void messageReceived(const QString &message);
+
+protected Q_SLOTS:
+ void receiveConnection();
+
+protected:
+ QString id;
+ QString socketName;
+ QLocalServer* server;
+ QtLP_Private::QtLockedFile lockFile;
+
+private:
+ static const char* ack;
+};
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
new file mode 100644
index 0000000..2cf0805
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
@@ -0,0 +1,199 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#include "qtlockedfile.h"
+
+/*!
+ \class QtLockedFile
+
+ \brief The QtLockedFile class extends QFile with advisory locking
+ functions.
+
+ A file may be locked in read or write mode. Multiple instances of
+ \e QtLockedFile, created in multiple processes running on the same
+ machine, may have a file locked in read mode. Exactly one instance
+ may have it locked in write mode. A read and a write lock cannot
+ exist simultaneously on the same file.
+
+ The file locks are advisory. This means that nothing prevents
+ another process from manipulating a locked file using QFile or
+ file system functions offered by the OS. Serialization is only
+ guaranteed if all processes that access the file use
+ QLockedFile. Also, while holding a lock on a file, a process
+ must not open the same file again (through any API), or locks
+ can be unexpectedly lost.
+
+ The lock provided by an instance of \e QtLockedFile is released
+ whenever the program terminates. This is true even when the
+ program crashes and no destructors are called.
+*/
+
+/*! \enum QtLockedFile::LockMode
+
+ This enum describes the available lock modes.
+
+ \value ReadLock A read lock.
+ \value WriteLock A write lock.
+ \value NoLock Neither a read lock nor a write lock.
+*/
+
+/*!
+ Constructs an unlocked \e QtLockedFile object. This constructor
+ behaves in the same way as \e QFile::QFile().
+
+ \sa QFile::QFile()
+*/
+QtLockedFile::QtLockedFile()
+ : QFile()
+{
+#ifdef Q_OS_WIN
+ wmutex = 0;
+ rmutex = 0;
+#endif
+ m_lock_mode = NoLock;
+}
+
+/*!
+ Constructs an unlocked QtLockedFile object with file \a name. This
+ constructor behaves in the same way as \e QFile::QFile(const
+ QString&).
+
+ \sa QFile::QFile()
+*/
+QtLockedFile::QtLockedFile(const QString &name)
+ : QFile(name)
+{
+#ifdef Q_OS_WIN
+ wmutex = 0;
+ rmutex = 0;
+#endif
+ m_lock_mode = NoLock;
+}
+
+/*!
+ Opens the file in OpenMode \a mode.
+
+ This is identical to QFile::open(), with the one exception that the
+ Truncate mode flag is disallowed. Truncation would conflict with the
+ advisory file locking, since the file would be modified before the
+ write lock is obtained. If truncation is required, use resize(0)
+ after obtaining the write lock.
+
+ Returns true if successful; otherwise false.
+
+ \sa QFile::open(), QFile::resize()
+*/
+bool QtLockedFile::open(OpenMode mode)
+{
+ if (mode & QIODevice::Truncate) {
+ qWarning("QtLockedFile::open(): Truncate mode not allowed.");
+ return false;
+ }
+ return QFile::open(mode);
+}
+
+/*!
+ Returns \e true if this object has a in read or write lock;
+ otherwise returns \e false.
+
+ \sa lockMode()
+*/
+bool QtLockedFile::isLocked() const
+{
+ return m_lock_mode != NoLock;
+}
+
+/*!
+ Returns the type of lock currently held by this object, or \e
+ QtLockedFile::NoLock.
+
+ \sa isLocked()
+*/
+QtLockedFile::LockMode QtLockedFile::lockMode() const
+{
+ return m_lock_mode;
+}
+
+/*!
+ \fn bool QtLockedFile::lock(LockMode mode, bool block = true)
+
+ Obtains a lock of type \a mode. The file must be opened before it
+ can be locked.
+
+ If \a block is true, this function will block until the lock is
+ aquired. If \a block is false, this function returns \e false
+ immediately if the lock cannot be aquired.
+
+ If this object already has a lock of type \a mode, this function
+ returns \e true immediately. If this object has a lock of a
+ different type than \a mode, the lock is first released and then a
+ new lock is obtained.
+
+ This function returns \e true if, after it executes, the file is
+ locked by this object, and \e false otherwise.
+
+ \sa unlock(), isLocked(), lockMode()
+*/
+
+/*!
+ \fn bool QtLockedFile::unlock()
+
+ Releases a lock.
+
+ If the object has no lock, this function returns immediately.
+
+ This function returns \e true if, after it executes, the file is
+ not locked by this object, and \e false otherwise.
+
+ \sa lock(), isLocked(), lockMode()
+*/
+
+/*!
+ \fn QtLockedFile::~QtLockedFile()
+
+ Destroys the \e QtLockedFile object. If any locks were held, they
+ are released.
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
new file mode 100644
index 0000000..1d3b918
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#ifndef QTLOCKEDFILE_H
+#define QTLOCKEDFILE_H
+
+#include
+#ifdef Q_OS_WIN
+#include
+#endif
+
+#if defined(Q_WS_WIN)
+# if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT)
+# define QT_QTLOCKEDFILE_EXPORT
+# elif defined(QT_QTLOCKEDFILE_IMPORT)
+# if defined(QT_QTLOCKEDFILE_EXPORT)
+# undef QT_QTLOCKEDFILE_EXPORT
+# endif
+# define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport)
+# elif defined(QT_QTLOCKEDFILE_EXPORT)
+# undef QT_QTLOCKEDFILE_EXPORT
+# define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport)
+# endif
+#else
+# define QT_QTLOCKEDFILE_EXPORT
+#endif
+
+class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile
+{
+public:
+ enum LockMode { NoLock = 0, ReadLock, WriteLock };
+
+ QtLockedFile();
+ QtLockedFile(const QString &name);
+ ~QtLockedFile();
+
+ bool open(OpenMode mode);
+
+ bool lock(LockMode mode, bool block = true);
+ bool unlock();
+ bool isLocked() const;
+ LockMode lockMode() const;
+
+private:
+#ifdef Q_OS_WIN
+ Qt::HANDLE wmutex;
+ Qt::HANDLE rmutex;
+ QVector rmutexes;
+ QString mutexname;
+
+ Qt::HANDLE getMutexHandle(int idx, bool doCreate);
+ bool waitMutex(Qt::HANDLE mutex, bool doBlock);
+
+#endif
+ LockMode m_lock_mode;
+};
+
+#endif
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp
new file mode 100644
index 0000000..2881bdd
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#include
+#include
+#include
+#include
+
+#include "qtlockedfile.h"
+
+bool QtLockedFile::lock(LockMode mode, bool block)
+{
+ if (!isOpen()) {
+ qWarning("QtLockedFile::lock(): file is not opened");
+ return false;
+ }
+
+ if (mode == NoLock)
+ return unlock();
+
+ if (mode == m_lock_mode)
+ return true;
+
+ if (m_lock_mode != NoLock)
+ unlock();
+
+ struct flock fl;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+ fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK;
+ int cmd = block ? F_SETLKW : F_SETLK;
+ int ret = fcntl(handle(), cmd, &fl);
+
+ if (ret == -1) {
+ if (errno != EINTR && errno != EAGAIN)
+ qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno));
+ return false;
+ }
+
+
+ m_lock_mode = mode;
+ return true;
+}
+
+
+bool QtLockedFile::unlock()
+{
+ if (!isOpen()) {
+ qWarning("QtLockedFile::unlock(): file is not opened");
+ return false;
+ }
+
+ if (!isLocked())
+ return true;
+
+ struct flock fl;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+ fl.l_type = F_UNLCK;
+ int ret = fcntl(handle(), F_SETLKW, &fl);
+
+ if (ret == -1) {
+ qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno));
+ return false;
+ }
+
+ m_lock_mode = NoLock;
+ return true;
+}
+
+QtLockedFile::~QtLockedFile()
+{
+ if (isOpen())
+ unlock();
+}
+
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp
new file mode 100644
index 0000000..1ac542b
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp
@@ -0,0 +1,216 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+#include "qtlockedfile.h"
+#include
+#include
+#if QT_VERSION >= 0x050000
+#define QT_WA(unicode,ansi) unicode
+#endif
+
+#define MUTEX_PREFIX "QtLockedFile mutex "
+// Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS
+#define MAX_READERS MAXIMUM_WAIT_OBJECTS
+
+Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate)
+{
+ if (mutexname.isEmpty()) {
+ QFileInfo fi(*this);
+ mutexname = QString::fromLatin1(MUTEX_PREFIX)
+ + fi.absoluteFilePath().toLower();
+ }
+ QString mname(mutexname);
+ if (idx >= 0)
+ mname += QString::number(idx);
+
+ Qt::HANDLE mutex;
+ if (doCreate) {
+ QT_WA( { mutex = CreateMutexW(NULL, FALSE, (LPCWSTR) mname.utf16()); },
+ { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } );
+ if (!mutex) {
+ qErrnoWarning("QtLockedFile::lock(): CreateMutex failed");
+ return 0;
+ }
+ }
+ else {
+ QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (LPCWSTR) mname.utf16()); },
+ { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } );
+ if (!mutex) {
+ if (GetLastError() != ERROR_FILE_NOT_FOUND)
+ qErrnoWarning("QtLockedFile::lock(): OpenMutex failed");
+ return 0;
+ }
+ }
+ return mutex;
+}
+
+bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock)
+{
+ Q_ASSERT(mutex);
+ DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0);
+ switch (res) {
+ case WAIT_OBJECT_0:
+ case WAIT_ABANDONED:
+ return true;
+ break;
+ case WAIT_TIMEOUT:
+ break;
+ default:
+ qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed");
+ }
+ return false;
+}
+
+
+
+bool QtLockedFile::lock(LockMode mode, bool block)
+{
+ if (!isOpen()) {
+ qWarning("QtLockedFile::lock(): file is not opened");
+ return false;
+ }
+
+ if (mode == NoLock)
+ return unlock();
+
+ if (mode == m_lock_mode)
+ return true;
+
+ if (m_lock_mode != NoLock)
+ unlock();
+
+ if (!wmutex && !(wmutex = getMutexHandle(-1, true)))
+ return false;
+
+ if (!waitMutex(wmutex, block))
+ return false;
+
+ if (mode == ReadLock) {
+ int idx = 0;
+ for (; idx < MAX_READERS; idx++) {
+ rmutex = getMutexHandle(idx, false);
+ if (!rmutex || waitMutex(rmutex, false))
+ break;
+ CloseHandle(rmutex);
+ }
+ bool ok = true;
+ if (idx >= MAX_READERS) {
+ qWarning("QtLockedFile::lock(): too many readers");
+ rmutex = 0;
+ ok = false;
+ }
+ else if (!rmutex) {
+ rmutex = getMutexHandle(idx, true);
+ if (!rmutex || !waitMutex(rmutex, false))
+ ok = false;
+ }
+ if (!ok && rmutex) {
+ CloseHandle(rmutex);
+ rmutex = 0;
+ }
+ ReleaseMutex(wmutex);
+ if (!ok)
+ return false;
+ }
+ else {
+ Q_ASSERT(rmutexes.isEmpty());
+ for (int i = 0; i < MAX_READERS; i++) {
+ Qt::HANDLE mutex = getMutexHandle(i, false);
+ if (mutex)
+ rmutexes.append(mutex);
+ }
+ if (rmutexes.size()) {
+ DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(),
+ TRUE, block ? INFINITE : 0);
+ if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) {
+ if (res != WAIT_TIMEOUT)
+ qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed");
+ m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky
+ unlock();
+ return false;
+ }
+ }
+ }
+
+ m_lock_mode = mode;
+ return true;
+}
+
+bool QtLockedFile::unlock()
+{
+ if (!isOpen()) {
+ qWarning("QtLockedFile::unlock(): file is not opened");
+ return false;
+ }
+
+ if (!isLocked())
+ return true;
+
+ if (m_lock_mode == ReadLock) {
+ ReleaseMutex(rmutex);
+ CloseHandle(rmutex);
+ rmutex = 0;
+ }
+ else {
+ foreach(Qt::HANDLE mutex, rmutexes) {
+ ReleaseMutex(mutex);
+ CloseHandle(mutex);
+ }
+ rmutexes.clear();
+ ReleaseMutex(wmutex);
+ }
+
+ m_lock_mode = QtLockedFile::NoLock;
+ return true;
+}
+
+QtLockedFile::~QtLockedFile()
+{
+ if (isOpen())
+ unlock();
+ if (wmutex)
+ CloseHandle(wmutex);
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
new file mode 100644
index 0000000..cd5623e
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
@@ -0,0 +1,354 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include "qtsingleapplication.h"
+#include "qtlocalpeer.h"
+#include
+
+
+/*!
+ \class QtSingleApplication qtsingleapplication.h
+ \brief The QtSingleApplication class provides an API to detect and
+ communicate with running instances of an application.
+
+ This class allows you to create applications where only one
+ instance should be running at a time. I.e., if the user tries to
+ launch another instance, the already running instance will be
+ activated instead. Another usecase is a client-server system,
+ where the first started instance will assume the role of server,
+ and the later instances will act as clients of that server.
+
+ By default, the full path of the executable file is used to
+ determine whether two processes are instances of the same
+ application. You can also provide an explicit identifier string
+ that will be compared instead.
+
+ The application should create the QtSingleApplication object early
+ in the startup phase, and call isRunning() or sendMessage() to
+ find out if another instance of this application is already
+ running. Startup parameters (e.g. the name of the file the user
+ wanted this new instance to open) can be passed to the running
+ instance in the sendMessage() function.
+
+ If isRunning() or sendMessage() returns false, it means that no
+ other instance is running, and this instance has assumed the role
+ as the running instance. The application should continue with the
+ initialization of the application user interface before entering
+ the event loop with exec(), as normal. The messageReceived()
+ signal will be emitted when the application receives messages from
+ another instance of the same application.
+
+ If isRunning() or sendMessage() returns true, another instance is
+ already running, and the application should terminate or enter
+ client mode.
+
+ If a message is received it might be helpful to the user to raise
+ the application so that it becomes visible. To facilitate this,
+ QtSingleApplication provides the setActivationWindow() function
+ and the activateWindow() slot.
+
+ Here's an example that shows how to convert an existing
+ application to use QtSingleApplication. It is very simple and does
+ not make use of all QtSingleApplication's functionality (see the
+ examples for that).
+
+ \code
+ // Original
+ int main(int argc, char **argv)
+ {
+ QApplication app(argc, argv);
+
+ MyMainWidget mmw;
+
+ mmw.show();
+ return app.exec();
+ }
+
+ // Single instance
+ int main(int argc, char **argv)
+ {
+ QtSingleApplication app(argc, argv);
+
+ if (app.isRunning())
+ return 0;
+
+ MyMainWidget mmw;
+
+ app.setActivationWindow(&mmw);
+
+ mmw.show();
+ return app.exec();
+ }
+ \endcode
+
+ Once this QtSingleApplication instance is destroyed(for example,
+ when the user quits), when the user next attempts to run the
+ application this instance will not, of course, be encountered. The
+ next instance to call isRunning() or sendMessage() will assume the
+ role as the new running instance.
+
+ For console (non-GUI) applications, QtSingleCoreApplication may be
+ used instead of this class, to avoid the dependency on the QtGui
+ library.
+
+ \sa QtSingleCoreApplication
+*/
+
+
+void QtSingleApplication::sysInit(const QString &appId)
+{
+ actWin = 0;
+ peer = new QtLocalPeer(this, appId);
+ connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&)));
+}
+
+
+/*!
+ Creates a QtSingleApplication object. The application identifier
+ will be QCoreApplication::applicationFilePath(). \a argc, \a
+ argv, and \a GUIenabled are passed on to the QAppliation constructor.
+
+ If you are creating a console application (i.e. setting \a
+ GUIenabled to false), you may consider using
+ QtSingleCoreApplication instead.
+*/
+
+QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled)
+ : QApplication(argc, argv, GUIenabled)
+{
+ sysInit();
+}
+
+
+/*!
+ Creates a QtSingleApplication object with the application
+ identifier \a appId. \a argc and \a argv are passed on to the
+ QAppliation constructor.
+*/
+
+QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv)
+ : QApplication(argc, argv)
+{
+ sysInit(appId);
+}
+
+
+/*!
+ Creates a QtSingleApplication object. The application identifier
+ will be QCoreApplication::applicationFilePath(). \a argc, \a
+ argv, and \a type are passed on to the QAppliation constructor.
+*/
+#if 0
+QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type)
+ : QApplication(argc, argv, type)
+{
+ sysInit();
+}
+#endif
+
+
+#if defined(Q_WS_X11)
+/*!
+ Special constructor for X11, ref. the documentation of
+ QApplication's corresponding constructor. The application identifier
+ will be QCoreApplication::applicationFilePath(). \a dpy, \a visual,
+ and \a cmap are passed on to the QApplication constructor.
+*/
+QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap)
+ : QApplication(dpy, visual, cmap)
+{
+ sysInit();
+}
+
+/*!
+ Special constructor for X11, ref. the documentation of
+ QApplication's corresponding constructor. The application identifier
+ will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a
+ argv, \a visual, and \a cmap are passed on to the QApplication
+ constructor.
+*/
+QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap)
+ : QApplication(dpy, argc, argv, visual, cmap)
+{
+ sysInit();
+}
+
+/*!
+ Special constructor for X11, ref. the documentation of
+ QApplication's corresponding constructor. The application identifier
+ will be \a appId. \a dpy, \a argc, \a
+ argv, \a visual, and \a cmap are passed on to the QApplication
+ constructor.
+*/
+QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap)
+ : QApplication(dpy, argc, argv, visual, cmap)
+{
+ sysInit(appId);
+}
+#endif
+
+
+/*!
+ Returns true if another instance of this application is running;
+ otherwise false.
+
+ This function does not find instances of this application that are
+ being run by a different user (on Windows: that are running in
+ another session).
+
+ \sa sendMessage()
+*/
+
+bool QtSingleApplication::isRunning()
+{
+ return peer->isClient();
+}
+
+
+/*!
+ Tries to send the text \a message to the currently running
+ instance. The QtSingleApplication object in the running instance
+ will emit the messageReceived() signal when it receives the
+ message.
+
+ This function returns true if the message has been sent to, and
+ processed by, the current instance. If there is no instance
+ currently running, or if the running instance fails to process the
+ message within \a timeout milliseconds, this function return false.
+
+ \sa isRunning(), messageReceived()
+*/
+bool QtSingleApplication::sendMessage(const QString &message, int timeout)
+{
+ return peer->sendMessage(message, timeout);
+}
+
+
+/*!
+ Returns the application identifier. Two processes with the same
+ identifier will be regarded as instances of the same application.
+*/
+QString QtSingleApplication::id() const
+{
+ return peer->applicationId();
+}
+
+
+/*!
+ Sets the activation window of this application to \a aw. The
+ activation window is the widget that will be activated by
+ activateWindow(). This is typically the application's main window.
+
+ If \a activateOnMessage is true (the default), the window will be
+ activated automatically every time a message is received, just prior
+ to the messageReceived() signal being emitted.
+
+ \sa activateWindow(), messageReceived()
+*/
+
+void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage)
+{
+ actWin = aw;
+ if (activateOnMessage)
+ connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow()));
+ else
+ disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow()));
+}
+
+
+/*!
+ Returns the applications activation window if one has been set by
+ calling setActivationWindow(), otherwise returns 0.
+
+ \sa setActivationWindow()
+*/
+QWidget* QtSingleApplication::activationWindow() const
+{
+ return actWin;
+}
+
+
+/*!
+ De-minimizes, raises, and activates this application's activation window.
+ This function does nothing if no activation window has been set.
+
+ This is a convenience function to show the user that this
+ application instance has been activated when he has tried to start
+ another instance.
+
+ This function should typically be called in response to the
+ messageReceived() signal. By default, that will happen
+ automatically, if an activation window has been set.
+
+ \sa setActivationWindow(), messageReceived(), initialize()
+*/
+void QtSingleApplication::activateWindow()
+{
+ if (actWin) {
+ qDebug() << "QtSingleApplication::activateWindow";
+ actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized);
+ actWin->raise();
+ actWin->activateWindow();
+ }
+}
+
+
+/*!
+ \fn void QtSingleApplication::messageReceived(const QString& message)
+
+ This signal is emitted when the current instance receives a \a
+ message from another instance of this application.
+
+ \sa sendMessage(), setActivationWindow(), activateWindow()
+*/
+
+
+/*!
+ \fn void QtSingleApplication::initialize(bool dummy = true)
+
+ \obsolete
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
new file mode 100644
index 0000000..ca2c118
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include
+
+class QtLocalPeer;
+
+#if defined(Q_WS_WIN)
+# if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT)
+# define QT_QTSINGLEAPPLICATION_EXPORT
+# elif defined(QT_QTSINGLEAPPLICATION_IMPORT)
+# if defined(QT_QTSINGLEAPPLICATION_EXPORT)
+# undef QT_QTSINGLEAPPLICATION_EXPORT
+# endif
+# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport)
+# elif defined(QT_QTSINGLEAPPLICATION_EXPORT)
+# undef QT_QTSINGLEAPPLICATION_EXPORT
+# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport)
+# endif
+#else
+# define QT_QTSINGLEAPPLICATION_EXPORT
+#endif
+
+class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication
+{
+ Q_OBJECT
+
+public:
+ QtSingleApplication(int &argc, char **argv, bool GUIenabled = true);
+ QtSingleApplication(const QString &id, int &argc, char **argv);
+ //QtSingleApplication(int &argc, char **argv, Type type);
+#if defined(Q_WS_X11)
+ QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
+ QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
+ QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
+#endif
+
+ bool isRunning();
+ QString id() const;
+
+ void setActivationWindow(QWidget* aw, bool activateOnMessage = true);
+ QWidget* activationWindow() const;
+
+ // Obsolete:
+ void initialize(bool dummy = true)
+ { isRunning(); Q_UNUSED(dummy) }
+
+public Q_SLOTS:
+ bool sendMessage(const QString &message, int timeout = 5000);
+ void activateWindow();
+
+
+Q_SIGNALS:
+ void messageReceived(const QString &message);
+
+
+private:
+ void sysInit(const QString &appId = QString());
+ QtLocalPeer *peer;
+ QWidget *actWin;
+};
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.pri b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.pri
new file mode 100644
index 0000000..f306033
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.pri
@@ -0,0 +1,16 @@
+include(../common.pri)
+INCLUDEPATH += $$PWD
+DEPENDPATH += $$PWD
+QT *= network widgets
+
+qtsingleapplication-uselib:!qtsingleapplication-buildlib {
+ LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME
+} else {
+ SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp
+ HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h
+}
+
+win32 {
+ contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTSINGLEAPPLICATION_EXPORT
+ else:qtsingleapplication-uselib:DEFINES += QT_QTSINGLEAPPLICATION_IMPORT
+}
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
new file mode 100644
index 0000000..307e255
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include "qtsinglecoreapplication.h"
+#include "qtlocalpeer.h"
+
+/*!
+ \class QtSingleCoreApplication qtsinglecoreapplication.h
+ \brief A variant of the QtSingleApplication class for non-GUI applications.
+
+ This class is a variant of QtSingleApplication suited for use in
+ console (non-GUI) applications. It is an extension of
+ QCoreApplication (instead of QApplication). It does not require
+ the QtGui library.
+
+ The API and usage is identical to QtSingleApplication, except that
+ functions relating to the "activation window" are not present, for
+ obvious reasons. Please refer to the QtSingleApplication
+ documentation for explanation of the usage.
+
+ A QtSingleCoreApplication instance can communicate to a
+ QtSingleApplication instance if they share the same application
+ id. Hence, this class can be used to create a light-weight
+ command-line tool that sends commands to a GUI application.
+
+ \sa QtSingleApplication
+*/
+
+/*!
+ Creates a QtSingleCoreApplication object. The application identifier
+ will be QCoreApplication::applicationFilePath(). \a argc and \a
+ argv are passed on to the QCoreAppliation constructor.
+*/
+
+QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv)
+ : QCoreApplication(argc, argv)
+{
+ peer = new QtLocalPeer(this);
+ connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&)));
+}
+
+
+/*!
+ Creates a QtSingleCoreApplication object with the application
+ identifier \a appId. \a argc and \a argv are passed on to the
+ QCoreAppliation constructor.
+*/
+QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv)
+ : QCoreApplication(argc, argv)
+{
+ peer = new QtLocalPeer(this, appId);
+ connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&)));
+}
+
+
+/*!
+ Returns true if another instance of this application is running;
+ otherwise false.
+
+ This function does not find instances of this application that are
+ being run by a different user (on Windows: that are running in
+ another session).
+
+ \sa sendMessage()
+*/
+
+bool QtSingleCoreApplication::isRunning()
+{
+ return peer->isClient();
+}
+
+
+/*!
+ Tries to send the text \a message to the currently running
+ instance. The QtSingleCoreApplication object in the running instance
+ will emit the messageReceived() signal when it receives the
+ message.
+
+ This function returns true if the message has been sent to, and
+ processed by, the current instance. If there is no instance
+ currently running, or if the running instance fails to process the
+ message within \a timeout milliseconds, this function return false.
+
+ \sa isRunning(), messageReceived()
+*/
+
+bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout)
+{
+ return peer->sendMessage(message, timeout);
+}
+
+
+/*!
+ Returns the application identifier. Two processes with the same
+ identifier will be regarded as instances of the same application.
+*/
+
+QString QtSingleCoreApplication::id() const
+{
+ return peer->applicationId();
+}
+
+
+/*!
+ \fn void QtSingleCoreApplication::messageReceived(const QString& message)
+
+ This signal is emitted when the current instance receives a \a
+ message from another instance of this application.
+
+ \sa sendMessage()
+*/
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
new file mode 100644
index 0000000..8e2fda6
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of a Qt Solutions component.
+**
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Solutions Commercial License Agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** Please note Third Party Software included with Qt Solutions may impose
+** additional restrictions and it is the user's responsibility to ensure
+** that they have met the licensing requirements of the GPL, LGPL, or Qt
+** Solutions Commercial license and the relevant license of the Third
+** Party Software they are using.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact Nokia at qt-info@nokia.com.
+**
+****************************************************************************/
+
+
+#include
+
+class QtLocalPeer;
+
+class QtSingleCoreApplication : public QCoreApplication
+{
+ Q_OBJECT
+
+public:
+ QtSingleCoreApplication(int &argc, char **argv);
+ QtSingleCoreApplication(const QString &id, int &argc, char **argv);
+
+ bool isRunning();
+ QString id() const;
+
+public Q_SLOTS:
+ bool sendMessage(const QString &message, int timeout = 5000);
+
+
+Q_SIGNALS:
+ void messageReceived(const QString &message);
+
+
+private:
+ QtLocalPeer* peer;
+};
diff --git a/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.pri b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.pri
new file mode 100644
index 0000000..d2d6cc3
--- /dev/null
+++ b/3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.pri
@@ -0,0 +1,10 @@
+INCLUDEPATH += $$PWD
+DEPENDPATH += $$PWD
+HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h
+SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp
+
+QT *= network
+
+win32:contains(TEMPLATE, lib):contains(CONFIG, shared) {
+ DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport)
+}
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..58698ea
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,30 @@
+Copyright 2006-2016 Bart Vanhauwaert, Chris Browet, Ladislav Láska and others
+
+ACTIVE CONTRIBUTORS
+
+Ladislav Láska
+
+PAST CONTRIBUTORS
+
+Bart Vanhauwaert bvh-osm@irule.be
+Chris "Koying" Browet
+Elrond elrond+openstreetmap.org@samba-tng.org
+Oliver Heesakkers
+Patric Cameron
+Geoff Richards
+Raphael Studer
+Matt Williams
+Daniel van Gerpen
+Colin Marquardt
+Andreas Laas
+Vincent Meurisse
+Dirk Stöcker
+Tomás Mika
+Yves "LonelyPixel" Goergen
+Toby Speight
+James Hogan
+Richard Brinkman
+Balgofil
+
+Merkaartor uses icons from the Tango Desktop Project
+(http://tango-freedesktop.org/)
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..190bf31
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,992 @@
+This is a shortened changelog. See the Git commits for a full list of changes.
+
+v0.19.0
+ * FIX: Fixed various GDAL import issues on all platforms.
+ * CHG: Projection engine no longer enables coordinate wrapping by default.
+ * CHG: Projection no longer guesses some EPSG projections only based on string contained, but rather requires it being an exact match.
+ * CHG: Added support for newer Proj.4 versions.
+ * CHG: Improved logging output.
+ * CHG: Added support for gpsd 3.20 and newer
+ * CHG: Automated translation handling not to include less than 50% translated languages (PR #250).
+ * FIX: Fixed undo for join ways interaction (PR #239).
+ * FIX: Disabled virtual node selection to avoid crash when applying interactions to virtual nodes. (PR #254, original issue described in PR #240).
+ * FIX: Fixed undo for build bridge too.
+
+v0.18.4
+ * FIX: Fixed "Create rectangular building" when panning (issue 125).
+ * FIX: Fixed wrong GPS track rendering of anonymized tracks (issue 181).
+ * FIX: Fixed a few bugs in gpsd handling.
+ * FIX: Fixed remote control not to trigger multiple downloads (issue 147).
+ * FIX: Fixed parsing of some OSM links.
+ * FIX: Fixed import of some GPX files.
+ * FIX: Updated GDAL, Proj.4 and Exiv2 code to support newer versions.
+ * FIX: Fixed wrong DPI when printing and exporting map.
+ * FIX: Fixed OSM renderer caching mechanism.
+ * FIX: Fixed wheel zooming speeds.
+ * FIX: Various stability issues.
+ * FIX: Various typos.
+ * DEL: Removed broken plugins: gosmore, NavigBackground, Yahoo imagery.
+ * DEL: Removed mobilemerk (unused and unusable build profile).
+ * DEL: Spatialite backend (unused and unusable data backend).
+
+v0.18.3
+ * ADD : Updated slippy map to allow selection.
+ * ADD : Implemented relation filter, based on current selection.
+ * ADD : Implement /add_node command in JOSM Remote control.
+ * ADD : Tuned the "Create roundabout" tool.
+ * ADD : Added support for mapy.cz address parser.
+ * CHG : Reworked upload dialog to include some statistics and encourage description.
+ * CHG : Changed semantics of Open and Import, separated GDAL Import.
+ * CHG : Increased max zoom in slippy map to 19.
+ * FIX : Various crash fixes and code cleanup.
+ * FIX : Fixed drawing of transparent background imagery.
+ * FIX : Fix qDebug() output on Windows.
+ * FIX : Fixed screen update while panning with keys.
+ * FIX : Fixed segfault on loading non-existent file.
+ * FIX : Fixed import of some NMEA formats (Garmin GLO).
+ * FIX : Fix gpsdata handling for gpsd >= 3.12
+ * FIX : Partially fixed printing.
+ * FIX : Fixed GDAL imports for GDAL 2.0.
+ * DEL : Removed OpenStreetBugs references (service no longer exists).
+
+v0.18.2
+ * CHG : Updated spatialite API to 4.1.0 version using spatialite_init_ex().
+ * FIX : Updated the INSTALL file with current instructions both for Linux and Windows.
+ * FIX : Fixed version info on Linux, and added 32/64bit information to the version string.
+ * CHG : Migrated GDAL to 2.0 API.
+ * ADD : Improved Windows Installer splash image.
+ * FIX : Fixed a lot of the Windows build system.
+ * DEL : Remove semperMerk
+ * FIX : Fix bug #44: infinite loop in network code when password is wrong.
+ * FIX : Use proper capitalization for the Qt framework
+ * FIX : Fix build failure with Qt 5.5 snapshot
+ * FIX : Plugin path and debug builds fixed.
+ * DEL : Removed reference to qWinMsgHandler.
+ * CHG : Updated install instructions to reflect debug/release.
+ * FIX : Removed the Win32 assembly in Layers/OsmRenderLayer.cpp
+ * FIX : Fixed some plugin interfaces for Qt 5.
+ * DEL : Removed plugins/qtstyle.
+ * FIX : Fixed file saving.
+ * CHG : Clean up DownloadOSM a bit.
+ * FIX : Update after upload.
+ * CHG : Remove all remaining references to Boost, incl. translations
+ * CHG : Remove built-in GGL copy
+ * CHG : Keep Symbian #ifndef's for busy cursors in one place only
+ * CHG : Move single file importing into separate method
+ * ChG : Merge uselessly explicit management of MapAdapter implementations
+ * CHG : Factor together some instances of preference file localization
+ * CHG : Better name for MerkaartorPreferences::loadBookmark
+ * CHG : Factor together loading of QSettings
+ * FIX : Fixed Wireframe.mas style.
+ * ADD : Support for address sanitizer.
+ * FIX : Fixed random crashes while changing styles.
+ * CHG : Removed the use of IDocument in OsmRenderLayer and MapView.
+ * FIX : Segfault in QRegExp.
+ * ADD : travis-ci automated builds.
+ * ADD : Qt 5 support.
+ * FIX : A potential deadlock in Realtion/Way.
+ * FIX : Replace bashism in Config.pri
+ * ADD : Support for building with system qtsingleapplication and quazip
+ * FIX : Fixed crash on moving virtual node.
+ * CHG : Added debug_and_release CONFIG option.
+ * FIX : Fixed loading of plugins (at least for some cases).
+ * FIX : Moved the QToolBarDialog into src/.
+ * FIX : Removed the inline assembler in OsmRenderLayer.cpp
+ * FIX : Added locking to Feature::updatePainters.
+ * ADD : The openstreetmap.org/#map= URL parsing.
+ * FIX : Re-enable virtual node movement.
+ * FIX : After layer is closed, all of its features are deleted.
+ * FIX : Define QT_WA macro on Qt 5 to always use unicode.
+ * FIX : Conflict sometimes create Nodes without layers.
+ * FIX : Fix building markaartor on arm.
+ * FIX : Fix building with gcc 4.7 and later.
+ * FIX : Merkaartor needs to link libsqlite3.
+ * FIX : Replaced the static version of quazip with a new one.
+ * CHG : Updated Authors.
+ * FIX : Removed 3 memory leaks
+ * FIX : Splitting of roads containing duplicate nodes
+ * FIX : Fixed SlippyMap (bad requests caused by a typo).
+ * FIX : Minor fixes in the Qt 4/Qt 5 usage.
+ * DEL : Removed the qtstyle plugins from compilation.
+ * FIX : Updated the plugin interface for Qt 5.
+ * FIX : Removed deprecated call to ::translate.
+ * FIX : Added locking to Way::add and Way::remove.
+ * ADD : Implemented jOSM-like load_objects feature.
+ * FIX : Don't try GET ⦠/full on nodes, as API does not support it.
+ * FIX : GDAL crash
+ * FIX : Virtual nodes not highlighted on hover (fixes #3333)
+ * FIX : French cadastre parsing issue (fixes #3334)
+ * FIX : openSUSE build
+ * FIX : libgps20 build fix (from Dirk Stocker)
+ * FIX : Secondary road simple color
+ * FIX : Assert "width > 0" with wireframe with style
+
+v0.18
+ * ADD : Self-contained style packages (*.msz)
+ * FIX : Mutex deadlock (refs #3319)
+ * FIX : Protect updatemeta (fixes #3317)
+ * ADD : Allow showing/hiding the toolbars labels (toolbar context menu)
+ * ADD : "Select parent(s)" & "Download missing children" to the Feature menu (refs #3314)
+ * FIX : Force redrawing the osm map when zooming (fixes #3316)
+ * FIX : Mutex-lock update of the painters (fixes #3315)
+ * ADD : Preferences regarding rendering during edition + Wireframe view
+ * CHG : Switch to wireframe while editing
+ * FIX : Clipboard crash at launch
+ * FIX : Crash in merge nodes when merging last node (fixes #3309)
+ * FIX : Crash when loading images
+ * ADD : Support for MapDust
+ * CHG : Deprecate Yahoo background
+ * FIX : Set Content-type to 'text/xml' for OSM uploads (fixes #3307)
+ * FIX : Handle more multipolygon cases (closes #3295)
+ * FIX : Problem parsing WMS layer value in editor (fixes #3301)
+ * FIX : Stylizing "natural=coastline" in Mapnik* styles only (fixes #3283)
+ * FIX : Improve rendering of multipolygon buildings
+ * FIX : Properly cascade to relation a way deletion (fixes #3300)
+ * FIX : Solve moving nested relations (fixes #3290)
+ * FIX : Set minimal size on "Key" column to avoid 0 width (fixes #3289)
+ * FIX : url.port(80) returns P instead of port number (fixes #3296)
+ * ADD : Added Denmark - Fugro Aerial Imagery to TmsServerList
+ * ADD : Preference to disable Antialiasing + disable while panning (closes #3284)
+ * FIX : "Fixed" Lat/Lon grid (fixes #3282)
+ * FIX : Export 'speed' attribute in GPX (fixes #3280)
+ * ADD : Press 'c' in the geoimage dock to center the map on the image coordinates (closes #3271)
+ * CHG : Replace all links in the Info dock by a single one pointing to the "browse" interface on OSM
+ * ADD : Add support for "https://www.openstreetmap.org/browse/â¦" type of URL in the download dialog
+ * FIX : Shortcuts not restored if default exists (fixes #3277)
+ * ADD : New "Wireframe" style
+ * FIX : Handle negative id numbers in tag selector (fixes #3269)
+ * FIX : Crash with tag selector without value (fixes #3276)
+ * ADD : "Rebuild history" tool, for when history got corrupted
+ * ADD : Scale tool: If one and only one node is selected besides ways, scale around this node rather than around the geometrical center
+ * ADD : Rotate tool: If one and only one node is selected besides ways, rotate around this node rather than around the geometrical center
+ * ADD : Implement Bing Road Detect api (closes #3252)
+ * FIX : Crash when creating a tag template based upon an empty one (fixes #3250)
+ * FIX : Crash with --ignore-preferences
+ * FIX : Unblock indexing after an aborted download, too (fixes #3248)
+ * FIX : Harden Filter Editor (fixes #3247)
+ * FIX : Do not simplify (i.e. remove) nodes outside the downloaded area (fixes #3246)
+ * FIX : Issue when creating nodes when active layer is closed (fixes #3244)
+ * ADD : Rebuild an uploadable history if it gets corrupted (refs #3233)
+ * ADD : Allow full regexp in tag selector (enclosed with '/') (closes #3218)
+ * FIX : Background cache size not limited (fixes #3227)
+ * FIX : Do not save local to registry in portable mode
+ * FIX : Do not create ~/.merkaartor in portable mode
+ * FIX : Handle UTF8 in GDAL fields
+ * CHG : When doing GDAL imports, always confirm input projection
+ * ADD : Allow using projection chooser in projection editor
+ * ADD : Allow entering WKT in projection chooser
+ * ADD : Goto dialog: Allow showing/editing coordinates in projected units
+ * FIX : Only check styles for POI nodes
+ * FIX : Feature dock: Relations not shown in "All' tab
+ * FIX : log2 not available on FreeBSD (fixes #3211)
+ * FIX : Make sure new id's are unique (fixes #3223)
+ * FIX : Background image refresh issue when going to tiled from direct (e.g. GeoTIFF)
+ * DEL : Remove unmaintained own OSM Binary format
+ * FIX : Import all GDAL layers
+ * ADD : Import PBF
+v0.17
+ * FIX : Problem importing OSM comprising new features
+ * ADD : Move "validation" style rules to a new "Validation.mas" style
+ * ADD : Allow aligning background image with +pan
+ * CHG : Rename "Create rectangle" to "Create rectangular building" and automatically add "building=yes"
+ * ADD : Remember "Create polygon" last number of sides
+ * ADD : "Relation->Add to Multipolygon"; allows creating or adding to a multipolygon relation (closes 2889)
+ * ADD : Network timeout preference
+ * CHG : Paste Tags : Allow any<->any pasting but only takes top level features into account (fixes #3174)
+ * FIX : When loading history from MDC, do not import the command if the layer is not found + save layers dirty level in MDC (fixes #3176)
+ * FIX : Locked zoom was bugged since passage to real pixel per Meter (fixes #3175)
+ * FIX : Allow creating a way in non-separate move mode with a virtual node selected (fixes #3172)
+ * FIX : Revert to custom icon for move interaction on MAC (fixes #3170)
+ * FIX : GeoTIFF + GDAL backgrounds: Allow specifying an automatic "source" tag via the plugin menu
+ * ADD : Bing map plugin
+ * FIX : GDAL + GeoTIFF: If a ESRI World File (.tfw, *.wld) is present, override file geotransform
+ * FIX : GDAL + GeoTIFF: If the projection cannot be determined, ask for it rather than fail
+ * ADD : Printing: Add option to show/hide unstyled features
+ * FIX : Cannot access TMS servers that Min-zoom equals Max-zoom (fixes #3157)
+ * ADD : GDAL raster background plugin
+ * FIX : WMS Editor - Handle Styles properly
+ * ADD : Explicitly add GML to the list of supported format (via GDAL)
+ * ADD : Bicycle style by Markus Straub
+ * ADD : Styles : allow texturing areas with an icon
+ * CHG : When opening/importing, always fallback to GDAL if available. Allows opening most GDAL supported geomtery files.
+ * ADD : Vector map layers
+ * ADD : Allow "[*] is xxx" (or "*=xxx") construct in tag selection. Means a feature match if any of its tags has xxx as a value (fixes #3146)
+ * ADD : Do not allow deleting OSM nodes in non-downloaded areas (refs #3083)
+ * ADD : Save the downloaded areas in the MDC. Expired after 12h.
+ * ADD : Allow specifying the Nominatim URL in preferences
+ * ADD : French Cadastre plugin
+ * FIX : Infloop on next/previous image when none visible (fixes #3135)
+ * CHG : Do not wait for "CLOSE changeset" response
+ * ADD : Provision for a license term url to be agreed for map backgrounds
+ * ADD : Proper User-Agent for network requests
+ * ADD : Auto-add "source" tag when drawing over a background map; define the value in the WMS and TMS editors
+ * FIX : Filter out invalid value for first Tag list column width (fixes #3129)
+ * FIX : Remove tags from autocomplete suggestions when cleared from features (fixes #3113)
+ * ADD : Allow starting merkaartor with a document template specified in preferences
+ * CHG : Layers & View settings are now saved in a $HOME/Startup.mdc document rather than thru QSettings
+ * ADD : New CL options: "--ignore-preferences" && "--reset-preferences"
+ * FIX : Re-enable PgUp/PgDown in Geoimage dock (dock must be focused) (fixes #3126); coincidentaly, PgUp/PgDown for zooming only works when the map view is focused.
+ * FIX : If a document cannot be saved (e.g. is readonly), propose the "Save asâ¦" dialog (fixes #3125)
+ * CHG : Split Rotation interaction between pure rotation and scale
+ * ADD : When creating a way or area, press "P" to snap the current segment as a parallel of the closest existing segment with the same general direction
+ * ADD : Extrude interaction for ways (JOSM style)
+ * ADD : When creating a way or area, press "C" to close the current way
+ * FIX : Remove dependency on GDAL data files when importing OSGB36 shapefiles + correct projection (closes #3119)
+ * ADD : New preference: "Allow node/way creation in select mode". When checked, allows double-click to create a node and double-click on a node to start a way in select mode.
+ * ADD : When drawing ways, double-clicking finishes the current way (Potlach/JOSM style)
+ * ADD : Way segments: Keeping ALT depressed allows moving a way segment
+ * ADD : In Road creation mode, double-click creates a new node
+ * ADD : Hardcoded PgUp/PgDown for Zoom in/Zoom out (Potlach style)
+ * ADD : Snap to angle functionality when creating way: keeping "o" pressed snap to 45° angles, "h" snap to 30° angles
+ * ADD : Ability to enter and select multiple OSM servers in preferences (closes #3107)
+ * ADD : "--importag-tags-as-is" command-line switch to prevent adding underscores to imported tags (closes #3102)
+ * CHG : Use Nominatim (https://nominatim.openstreetmap.org/) for place name lookup due to gazetteer closure
+ * ADD : Cut functionality
+ * ADD : Double-clicking a feature selects the feature and its children
+ * CHG : Style update
+ * ADD : Style Editor: allow filtering the style list
+ * FIX : Styles: draw icons for ways, too
+ * FIX : Allow shrinking properties dock
+ * ADD : Support for XAPI
+ * ADD : ":dirty" and ":uploaded" pseudo tags for finding/filtering
+ * CHG : Remove builtin "Dirty" and "Uploaded" layers. Those are now managed at feature level.
+ * ADD : Allow renaming a layer by double-clicking on its name
+ * FIX : Initial viewport issue
+ * ADD : View menu item allowing to highlight "dirty" features, i.e., features ready for upload
+ * FIX : Do not export incomplete features
+ * FIX : CSV import bugs
+ * ADD : Display tags in info dock
+ * FIX : Use "GPX track width" setting even when not in "Simple track appearance" (fixes #3095)
+ * ADD : If a shapefile do not provide its projection, ask the user for it and do not crash (fixes #3087)
+ * ADD : "Set view projection to layer's" action added to image layers; set the main projection to the one of the layer
+ * ADD : "Close" action to image layers
+ * ADD : Allow plugins to save parameters in a .mdc document; allows, e.g.; to save the filename of a GeoTIFF
+ * ADD : Add a "Properties" dialog to display various info about the current document
+ * ADD : Save projection in .MDC files
+ * CHG : Do not save the projection in preferences unless the projection is specified thru the menu
+ * ADD : Re-introduce PROJ4 as a build-time optional dependency for projections. It is probably needed for exotic projections...
+ * FIX : Implement new ID's as global incremented 64-bits integer (fixes #3082)
+ * FIX : Lat/lon grid fixes for non-othogonal projections
+ * FIX : For non-rthogonal projections, maximize the viewport in lat/lon
+ * FIX : Handle empty style list in editor (fixes #3079)
+ * FIX : Fix scale bar to take latitude into account.
+ * ADD : Tool to align edges to regularly spaced angles (can orthogonalise buildings)
+ * FIX : Do not tag-match relation's children unless the type is "multippolygon" (fixes #2916)
+ * ADD : Support for potlach-style TMS URL (with "!") and "%x", "%y", "%z" in addition to "%1", "%2", "%3"
+ * ADD : Join areas tool
+ * FIX : Problem with "Bottom-left standard" TMS
+ * ADD : Printing
+ * ADD : Hungarian translation by Peter Sulyok
+ * CHG : Allow panning with middle mouse button
+ * ADD : Toolbar editor (create/modify tollbars)
+ * FIX : OSX fix
+ * FIX : Draw relations children dashed to avoid multiple parent drawing
+ * FIX : Fix several issues with features dock.
+ * FIX : Fix reappearance of deleted features.
+ * FIX : Fix WayRemoveNodeCommand reversibility.
+ * ADD : Allow moving complete relations
+ * FIX : WMS'es in EPSG:4326 not showing
+ * FIX : Don't overzoom on layer zoom (and don't allow if the bbox is null). fixes #3046
+ * ADD : Add a "portable" mode to Merkaartor via command-line ("-p") or build setting ("PORTABLE=1")
+ * ADD : Add a "Find" button to the Feature dock. Press "Reset" to revert to list current features.
+ * CHG : Use TagSelector for "Edit-Find"
+ * ADD : Pseudo-tag key :id, :user, :version, :time to TagSelector
+ * ADD : Added subdivide, area split, spread nodes, and terracing tools (by James Hogan)
+ * ADD : Read-only filter system
+v0.16
+ * CHG : Split the view menu into a new "Show" menu
+ * CHG : Move Merkaartor's config from ~/.config/BartVanhauwaert to ~/.config/Merkaartor (or platform specific equivalent)
+ * FIX : For consistency, when deleting the end-node of a polygon, don't break it (fixes #2983)
+ * ADD : Ramer-Douglas-Peucker simplification of ways (in Roads menu)
+ * CHG : Only allows one instance of Merkaartor (override with "-n")
+ * ADD : Support for JOSM remote protocol on port 8111
+ * FIX : Reduce browserimagemanger timeout, improving Yahoo responsiveness
+ * FIX : Do not overwrite local lists with the ones from OSM user preferences
+ * FIX : Check menu status whene resetting properties dock (fixes #2930)
+ * CHG : Don't autocomplete pure numeric values (fixes #2951)
+ * ADD : Support for "standard" (as in http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) TMS servers
+ * FIX : Make JOSM happy about our .osm export (fixes #2952)
+ * ADD : Preliminary support for OpenStreetBugs (Refs #983)
+ * ADD : POC of a Gosmore map adapter
+ * FIX : Allow one to "Force Upload" relations, too (fixes #2926)
+ * FIX : Update Feature dock when document content changes (fixes #2923)
+ * CHG : Change way the virtual nodes are handled
+ * CHG : Allow tag pasting between different classes of features
+ * CHG : Use a different spatial index provider
+ * ADD : Allow deleting features from the context menu of the Features dock
+ * ADD : Accept mlon/mlat URLs as emitted by mkgmap logging
+ * ADD : Walking Papers backgound plugin + load WP scans as geotagged images
+ * ADD : Import from OSC (osmChange format)
+ * ADD : Feature-Force Delete action (deletes the feature without entry in the undo nor upload list)
+ * CHG : Switch to transactional diff uploads to OSM to harden the process
+ * ADD : Export to OSC (osmChange format)
+ * ADD : CSV POI import
+ * FIX : Crash when closing layer with virtual nodes (fixes #2858)
+ * ADD : OSGB36 to the default list of projections
+ * CHG : Allow adding images to a GeoTIFF layer
+ * ADD : Add SHP feature attributes as not uploadable OSM Feature tags
+ * FIX : Allow loading OS VectorMap District shapefiles
+ * ADD : Allow saving geotagged images
+ * CHG : Enhanced support for geotagged images drag&drop
+ * CHG : Geotag support enhancements
+ * FIX : Use gpsd API and implement gpsd-ng
+ * FIX : Do not take closed layers into account when choosing photo layer (fixes #2823)
+ * ADD : Show geotagged photos on the map (disable via 'view-Show Photos on map')
+ * FIX : Crash when closing layers containing photos (fixes #2828)
+ * CHG : Allow importing geotagged photos when no track layer is present (closes #2827)
+ * ADD : Templates xsd (by Jonathan Bennett) (closes #2809; closes #2707)
+ * ADD : Allow re-ordering relation members (closes #2759)
+ * FIX : Solves a problem when hovering large relations
+ * ADD : Add a projection editor
+ * ADD : Allow google maps links in goto and download dialogs
+ * FIX : Abort tile downloading when zooming
+ * ADD : Allow tiling (and caching) arbitrary WMS'es (only EPSG:4326 and google projection supported)
+ * CHG : Rework "Zoom lock" and move it to the view menu
+ * ADD : Support for WMS-C servers (see http://wiki.openstreetmap.org/wiki/Merkaartor/Documentation#WMS-C_Servers) (closes #2598)
+ * FIX : Problem when joining ways
+ * CHG : Hardcode "lat/long", i.e. EPSG:4326, projection
+ * CHG : Hardcode "Google" projection.
+ * CHG : Adapt TMS code to allow for non-google projections
+ * ADD : Add the possibility to show a lat/lon grid
+ * FIX : Delete a way when its second to last node is deleted (fixes #2786)
+ * FIX : Make sure polygons are at least 1 pixel wide when drawing them at creation time
+ * FIX : Do not count deleted parents when removing children nodes (fixes #2785)
+ * FIX : Make sure not to write to the log after it has been closed (fixes #2783)
+ * FIX : OSX Qt system translations location (by Aleksandar)
+ * FIX : Update language of language combo after language change (by Alaeksandar)
+ * FIX : Only allow virtual node updates after relations resolution (by Trav)(closes #2782)
+ * ADD : Allow zooming on the location of a GeoTIFF image
+ * FIX : Do not updateindex() if the feature is deleted
+ * FIX : Roads not always refreshed when changing type or properties (fixes #2773)
+ * FIX : Cannot cleanly copy tags from one relation to another (fixes #2746)
+ * FIX : When merging contiguous nodes in the same way, check that we don't add the same node twice (fixes #2771)
+ * ADD : Brazilian Portuguese translation (by Marcio Moraes)
+ * FIX : OSX enhacements (by Aleksandar Topuzovic) (closes #2774)
+ * FIX : When nodes are hidden,do not put them in the way of selecting roads
+ * FIX : Avoid multiple updateVirtuals() at download time by disabling it and doing them all when the download is done
+ * FIX : Speedup node moving by disabling virtual nodes and index updates during drag
+ * FIX : Crash when coming from "Separate move mode" and a feature is selected.
+ * CHG : Move the "File-Render" menu to "File-Export-Raster/SVG"
+v0.15
+ * FIX : In about box, the changelog is now properly resized
+ * ADD : Support for OSM short link as input
+ * ADD : Show distance measurement during area creation (closes #1640)
+ * ADD : Add language to changeset created_by (closes #2369)
+ * FIX : Add support for HTTP auth to TMS (by Trav) (closes #2473)
+ * FIX : Crash in tag selection with invalid "not" expression (fixes #2722)
+ * FIX : Joining 2 ways to create an area doesn't create a polygon if the 2 ways have opposite directions (fixes #2718)
+ * FIX : Improve tag completion behaviour (by Trav) (closes #2716)
+ * ADD : Add GlobeXplorer (DigitalGlobe) to default WMS list (by sim6) (closes #2714)
+ * FIX : Handle case of selection being reset during tag editing (fixes #2646)
+ * ADD : Make the point where nodes are not displayed configurable
+ * FIX : Do not allow node interaction when they are not displayed (closes #2674)
+ * FIX : 100% CPU usage and Crash on creating roundabout (fixes #2659)
+ * FIX : No name in for gpx track layer in Layers menu after File -> Import. Patch by Trav (closes #2661)
+ * CHG : Keep directional arrows blue for oneway roads in "Show directional arrows - Always" mode.
+ * ADD : GeoTIFF background plugin (closes #1025)
+ * ADD : Grabbing hand icon in single mouse mode
+ * FIX : Layers menu entry for background layer is wrong at startup. Patch by Trav (closes #2641)
+ * ADD : When in "single mouse button" mode, allow canceling most operation with a right-click
+ * ADD : "Zoom lock" mode. Zoom steps are locked to TMS ones and projection is locked to Mercator
+ * FIX : Get sharper Yahoo images (closes #2623)
+ * FIX : Rag value "Fast food" should be "fast_food" (closes #2625)
+ * ADD : Add a preference disallowing selection of relations when hidden
+ * ADD : Add japanese and ukrainian languages to Windows installer (fixes #2619)
+ * ADD : Automatic SVN revision number in about dialog and elsewhere (closes #2208)
+ * FIX : URL's in about dialog (fixes #2606)
+ * FIX : Export trackpoints time when exporting GPX (fixes #2594)
+ * ADD : Virtual nodes allow fast creation of intermediary nodes (closes #821)
+ * ADD : Allow moving node in Node creation mode (closes #1910)
+ * CHG : Only generate log files on request (--log) on release builds
+ * FIX : Speedup epsg:4326 projection
+ * FIX : WMS projection related bugfixes
+ * ADD : Re-added tiled Yahoo! imagery as a plugin
+ * ADD : NearMap Austalian TMS to the default list
+ * FIX : Corrected issues in image downloading
+ * FIX : Set "yes" as default to request for saving .mdc file after upload
+ * FIX : Crash with self-intersecting polygons (fixes #2317)
+ * FIX : Assert when drawing scale (fixes #2347)
+ * FIX : Do not add the "oneway" tag on roundabouts (implied)
+ * FIX : Crashes on editing style None.mas by Stefan (Konink?) (fixes #2200)
+ * FIX : Tiles network patch by Tom Verbeure (refs #2316)
+ * FIX : Align nodes patch by Chris Baird (closes #2296)
+ * ADD : Mac OS X icon (closes #2254)
+ * FIX : Force custom Qt style if Qt runtime version < 4.5.1 (fixes #2204)
+ * ADD : Allow all platforms to connect to a gpsd backend
+ * FIX : Set gpsd output to NMEA; allow saving log
+ * FIX : Do not draw background if saved pixmap is null as a copy of a null pixmap seems to crash on Mac (fixes #2262)
+ * FIX : Fixes MacOSX plugin dir (fixes #2253)
+ * FIX : Handle latlong projection in SHP files (fixes #2183)
+ * FIX : Remove s60 extensions (fixes #2185)
+ * FIX : Allow non-uploadable nodes to be uploaded when they are part of of a created road (fixes #2175)
+ * FIX : Fixes building Merkaartor 0.14 with the -Werror=format-security CFLAG, which is used by default in Mandriva
+ * FIX : Remove Yahoo when NOUSEWEBKIT is enabled
+v0.14
+ * FIX : Optimize painter/style update
+ * FIX : XML encode the changeset comments (fixes #2115)
+ * ADD : Ability to create house numbers "Karlsruhe" style
+ * FIX : Avoid infinite loop with imbricated relations
+ * CHG : Remove API 0.5 option
+ * ADD : Alternative way of drawing tracks
+ * FIX : Don't fail importing lower-cased filenames
+ * ADD : Select a relation member by contextual menu
+ * CHG : Do not select a relation member when doing a "Centerâ¦"
+ * ADD : Clicking on a relation member highlights it
+ * ADD : Add a Features dock displaying the features in the current viewport
+ * ADD : Add a case-sensitiveness option to the search + search by ID (closes #1509)
+ * CHG : Remove support for osmarender (fixes #1966)
+ * ADD : Allow multi-selection of layers; allow one to show/hide or readonly several layers at once (closes #1798)
+ * ADD : Also export routes in GPX
+ * ADD : Paste features as a whole (closes #1807)
+ * ADD : Spatial indexing of features for faster display with large downloaded areas.
+ * ADD : Built-in list of epsg projections (from proj4)
+ * CHG : Replaced "Commitâ¦" command by "Force Upload". Allows forcing update of existing features or to upload imported features (such as SHP, KML, ...)
+ * FIX : User preferences thru OSM preferences system works again
+ * FIX : Support projections when importing SHP files
+ * ADD : Drag & drop re-ordering of the layers
+ * ADD : Support for multiple image layers (closes #1400)
+ * CHG : Load Yahoo background as a whole rather than in pseudo-tile
+ * FIX : Take layer tag into account for drawing priority (fixes #1792)
+ * FIX : Relations were no more drawn according to style
+ * ADD : Interactions help in the info dock
+ * ADD : Generic polygons creation (closes #1808)
+ * FIX : Never loose selection when Ctrl- or Shift-clicking (fixes #1793)
+ * FIX : Allow move of multiple selected features
+ * ADD : Rotate function
+ * FIX : Give title to progress dialogs (fixes #1512)
+ * ADD : WMS Editor: Display user-friendly layers/projection list based on capabilities
+ * ADD : Display plain trackpoint description/comment in infodock if found (closes #1788)
+ * FIX : First node of a new way not connected to existing way after upload (fixes #1774; fixes #1780)
+ * CHG : Changed way to handle WMS. Should allow exotic projections and eliminate problems.
+ * ADD : Create road junction function (closes #1661)
+ * FIX : Force the addition of children of imported features (might solve some "prerequisites" errors)
+ * FIX : Import & export JOSM compatible .osm (fixes #1163)
+ * ADD : Log file for debugging output
+ * ADD : Standard command-line arguments (-h, -v, â¦) (fixes #1712)
+ * FIX : Use application-wide proxy (fixes #1763)
+ * ADD : Allow specifying a user/password for the proxy (untested by me)
+ * FIX : Photo localization patch from Toby Speight.
+ * FIX : Set version of newly uploaded objects at 1.
+ * FIX : Graphical corruption on Intel chipsets when "Show downloaded areas" was enabled
+ * FIX : API 0.6: Add features version number in MDC'es
+ * FIX : API 0.6: Fix info dock links
+ * FIX : Problem with "center" & "center & zoom" from the properties dock
+ * FIX : API 0.6: Error when deleting a road with no nodes (fixes #1732)
+ * FIX : Correctly handle plural forms in MapLayer information
+ * FIX : API 0.6: Do not add "created_by" to changed features (fixes #1728)
+ * FIX : API 0.6: Allow defining a comment on a changeset (fixes #1731)
+ * FIX : API 0.6 fixes
+ * FIX : Nodes fetched by relations are incomplete and not completed by "download more" (fixes #1715)
+ * ADD : Initial support for Symbian S60v5
+ * ADD : Support for discardable dialogs/messageboxes (fixes #1487)
+ * FIX : Do not automerge GPX nodes (fixes #1486)
+ * FIX : Proper clipping via Boost's geometry template library
+ * FIX : Do not use guarded pointers (too slow) (closes #1674)
+ * FIX : Styles tag selection speed optimisation (by Trav)
+ * FIX : OSM/GPX import optimisations (by Trav)
+ * FIX : in Name property inspector causes AV (fixes #1672)
+ * CHG : Move vector background from SHP to OSB
+ * CHG : Preferences are uploaded to OSM in binary, base-64 encoded, 254 char slice. Allow bypassing the 255 char per preference limitation.
+ * CHG : Preferences lists (Bookmarks, WMS servers, â¦) are now distributed and saved as XML in ~/.merkaartor. Allow proper merging (fixes #1401)
+ * ADD : Allow choosing which Qt style to use via a combobox
+ * CHG : Implement the custom styles as plugins
+ * FIX : English language warning
+ * ADD : Switch to template-based projection handling; remove dependency on libproj
+ * FIX : Proper handling of the "Don't connect GPX nodesâ¦" disabling.
+ * FIX : Fit the style editor in 1024x600 resolution (fixes #1609)
+ * FIX : Reflect in dirty dock the fact that multiple objects were changed together (fixes #1507)
+ * ADD : Threaded browser-based background image grabbing. (fixes #1312)
+ * FIX : Handle redirection for TMS/WMS servers (fixes #1639)
+ * FIX : Clear "hover" state when mouse leave the map widget
+ * FIX : WMS has now the proper projection
+ * ADD : Projections are specified in a "Projections.xml" file
+ * ADD : Move WMS/TMS configuration out of the preferences dialog to their own tools menu items.
+ * ADD : Switch to plugin-based image backgrounds
+ * ADD : Prioritize tile loading starting from center (by Arvin Schnell)
+v0.13
+ * FIX : Workaround for a crash with templates on Qt 4.5
+ * FIX : Crash after TMS/WMS server renaming (fixes #1634)
+ * FIX : Download opaqueness applied to relations (fixes #1637)
+ * FIX : Do not zoom out after a viewport download in background projection (fixes #1638)
+ * FIX : Remove layer from "downloaded areas" on close (fixes #1636)
+ * FIX : Crash on layer close
+ * FIX : Hardening upload process
+ * FIX : Remove the deleted road from parent when joining
+ * FIX : allow spliting/joining roads belonging to not-completely-downloaded relations
+ * FIX : Avert crashes by using guarded pointers
+ * FIX : In case of a failed "Download more", do not delete layer if it was a previously existing one.
+ * FIX : GeoTagged images are drawn to the full size of GeoImageDock
+ * FIX : Background images with a too long hash filename were not cached.
+ * FIX : Tracklayers are (after asking the user) made writeable when opening geotagged images to it
+ * ADD : Images can be dropped on TrackPoints to add the coordinates from the trackpoint to the image and then load it as geotagged image (see #1602)
+ * FIX : trackpoints which are associated with an image are highlighted according to the Style's settings (but not by painting an reactangle in paintEvent manually)
+ * FIX : Much better zoom (and image-moving) for ImageView in GeoImageDock
+ * FIX : Long image filenames are cutted to fit the GeoImageDock (fixes #1452)
+ * FIX : ImageView in GeoImageDock draws images using an antialiasing painter and images are not copied when displaying them which results in faster drawing. (fixes #1452)
+ * FIX : If there is only one opened layer, GeoImage uses it automatically (without asking the user) (fixes #1450)
+ * FIX : Loading images with non-ascii filenames is now supported by GeoImage (fixes #1359)
+ * FIX : Handle Undoes while creating single/double roads (fixes #1621)
+ * FIX : Re-apply custom shortcuts after retranslateUI (fixes #1620)
+ * FIX : Insufficent precision for WMS bbox requests at high zoom (fixes #1618)
+ * ADD : Allow forcing the custom Qt style thru Config.pri
+ * FIX : Do not remove incomplete downloaded relation; make them readonly and display them in red (temporary)
+ * FIX : Painting slowdowns (+ memory consumption) when relations are involved (fixes #1528)
+ * FIX : Split roads not added to Relation (fixes #1586)
+ * FIX : Tweaked windows menu to be "standard"
+ * ADD : Splash screen
+ * ADD : Styles dock + list of styles in "Tools-Styles" for quick style switching. As a consequence, a directory must be defined in the preferences where all custom styles will be stored.
+ * ADD : Add a button to the Slippy map allowing to go to the current viewport.
+ * ADD : Outline coastlines
+ * ADD : Include build of translations during make
+ * ADD : Use a builtin shapefile of the world as a background
+ * ADD : Support for ESRI shapefile import (and, potentially, every GDAL supported file formats) via the GDAL library
+ * FIX : Bugs when loading MDC history (fixes #1546)
+ * ADD : Readonly layers + Preferences to default track layers to readonly (fixes #1460)
+ * FIX : Make upload dialog modal
+ * ADD : Initial support for multiple projections via proj4. Enable in Config.pri with PROJ=1
+ * FIX : Crash during OSM import (fixes #1536)
+ * ADD : Option (in Manager) to autoload/autoshow the World
+ * FIX : Implement dynamic UI translation (fixes #1432)
+ * ADD : Generalize the concept of download progress window
+ * FIX : If one of the translation composant (Qt or Merkaartor) is missing, allow the other to be loaded.
+ * FIX : Add missing tr() calls in render dialogs.
+ * FIX : Messagebox-cancel after deleting a line did not work (fixes #1392)
+ * ADD : Native SVG renderer
+ * ADD : Allow breaking roads (and areas) with a single node (fixes #1505)
+ * ADD : Relation member context menu for center and zoom on the properties dock
+ * ADD : Allow removing a member from a relation thru the properties dock.
+ * FIX : Switch to skulpture 2.2 custom style by default
+ * FIX : Don't allow templates combo to grow depending on content (fixes #1482)
+ * FIX : Allow disabling "Don't connect GPX nodes separated more than.." by setting it to 0. (fixes #1488)
+ * FIX : getDefaultLanguage() returns an invalid value with 2-parts language definition (like en_GB) (by Lukasz Jernas) (closes #1417)
+ * ADD : Single-node splitting of roads even with a connection to the extremity of another road (by Yves Goergen) (closes #1419)
+ * FIX : Declutter - move translations to a separate directory.
+ * ADD : Custom Qt style (skulpture by Christoph Feck) to bypass Qt expanding dock problem on Linux. Enable via preferences-visual. (fixes #1482)
+ * FIX : Allow port number in WMS/TMS server address (fixes #1479)
+ * ADD : Save relative icon filenames in map styles if not builtin (closes #1463)
+ * FIX : Don't loose selection(s) on "download more" (fixes #1470)
+ * FIX : Make at least docks translated after a restart (refs #1432)
+ * FIX : Do not re-sort features when zooming or when latitude changes.
+ * FIX : Make "Resolve Relations" work as intended (fixes #1449)
+ * FIX : Don't snap to the road being moved (by Yves Goergen)
+ * ADD : Merge multiple nodes when dragging one node onto another (by Yves Goergen)
+ * FIX : Don't jump around on Download More
+ * FIX : Remember last selected preferences tab page (not stored over an application restart) (by Yves Goergen)
+ * FIX : Look into application directory for translations by default (by Yves Goergen; fixes #1297)
+ * FIX : Don't draw the node dot if there is an icon (by Yves Goergen)
+ * FIX : Make sure areas are rendered before anything else.
+ * FIX : Add NVIDIA_HACK in Config.pri to (hopefully) help with Nvidia slowdowns.
+ * FIX : Cache preferences values for quicker access.
+ * FIX : Crash wen reloading MDC when no layer specified in the command XML (fixes #1434)
+ * ADD : "Offline" mode switch.
+ * ADD : Add a "Separate Move Mode" preference to remove "Move" mode. Moving features will be done from the "Edit" mode if deactivated.
+ * ADD : "Node" - "Detach" to remove a node from a road. Works the same way as "Split"
+ * FIX : Make Osmarender work again
+ * ADD : Area transparency
+ * ADD : Allow on-the-fly language change
+ * ADD : Remember tag view first column size
+ * FIX : Allow up to 999Mb for background image cache
+ * FIX : The API doesn't like some zoom levels return from the name finder service, so fall back to a default in that case.
+ * ADD : Allow canvas background to be set from a style. Background color is still overridable in the global preferences. (closes #1333)
+ * FIX : Change URL in about dialog to merkaartor.org.
+ * FIX : Connection error reporting in name finder service. (sponsored by today's power outage;)
+ * FIX : Ugly way to ensure ways with duplicate consecutive node will not be uploaded/exported/saved
+ * ADD : Do not auto-complete "name" tag + make "created_by" read-only
+ * FIX : Selecting elements with Find do not update the menus (closes #1375)
+ * FIX : Tag values inputed during session not added to auto-completion (refs #1373)
+ * ADD : "View" - "Show directional Arrows" menu. "Never" obviously never shows the arrows, "Always" obviously always shows them, even for non-roads. "Oneway" is the equivalent of the existing and is the default. (closes #1316)
+ * FIX : If a style was selected for a node but no icon was defined, nothing was drawn
+ * ADD : Possibility to add/remove members from Relations (closes #1265)
+ * ADD : Automatically save/restore bookmarks, TMS servers & WMS servers to OSM user preferences (closes #1362)
+ * ADD : Add Name Finder service to "Go to" dialog.
+ * FIX : If TRANSDIR_SYSTEM isn't set use QLibraryInfo::TranslationsPath. (closes #1358)
+ * FIX : Plural/paucal forms in DownloadOSM.cpp (closes #1306)
+ * FIX : World OSM manager now uses standard API rather than the not quite stable XAPI service
+ * FIX : GPS dock coordinates display wrong (fixes #1303)
+ * FIX : Background Image: show warning about Yahoo non-cacheable (closes #1310)
+ * ADD : Single mouse button preference (closes #1314)
+ * ADD : Tag Templates (closes #1031)
+ * ADD : "Area" type to tag selector (matches closed roads); Use as "Type is area".
+ * ADD : Context menu to the slippy map to reset viewport to default (as a side effect, disable right mouse click for zoomout)
+ * ADD : "Locked selection". Pressing "Tab" enters lock mode. In this mode, only the features around last click can be selected. Repeatedly press "Tab" to select them in cycle.
+ * ADD : When hovering/focussing a feature, its parents appear in dotted lines
+ * FIX : Initial viewport is really the one from previous session
+ * FIX : Verify selection is in layer before accessing (closes #1250)
+ * FIX : After coming out of fullscreen, revert to previous state rather than showing all docks
+ * FIX : Do not unselect newly created features
+ * FIX : Make moving images to start of track work
+ * ADD : GPX tracks are split if trkpts are more than a certain distance apart (configurable)
+ * ADD : Update info dock on hover
+ * ADD : KML import
+ * ADD : Display layer name in node info
+ * ADD : Shortcut editor
+ * FIX : Crash after undo roundabout (closes #1218)
+ * ADD : Enhanced goto dialog
+ * ADD : Add "Area" label option to the style editor (handle road label as trackpoints, with anchor at the center of the bounding box)
+ * ADD : Add support for MTK-based GPSes
+ * ADD : Add "Halo" label option to the style editor
+ * ADD : Make focus and hover size configurable
+ * FIX : Windows crash when resaving changed scene truncates save file (closes #1164)
+ * ADD : Move to the next field on enter in properties dock tags - part 2 (by Travers Carter) (closes #1137)
+v0.12
+ * FIX : Upload of nodes coming from tracks
+ * FIX : Full zoom drawing bug yahoo images don't scale (fixes #1173)
+ * FIX : Scroll redraw bug yahoo images don't redraw (fixes #1172)
+ * FIX : Scroll redraw bug streetnames left behind (fixes #1171)
+ * FIX : Limit max zoom to a scale of ~2m to avoid overflow
+ * ADD : SlippyMap remembers last used view
+ * FIX : Remove support for internal webkit. As of now, Qt 4.4+ is required for Yahoo! imagery.
+ * ADD : Let the use choose between translating standard OSM tags
+ * ADD : Ability to set language explicitly
+ * FIX : Make "About" dialog more useful
+ * FIX : Show correct progress when downloading maps
+ * FIX : Make yahoo maps line up for large views (sync from r10585 by Petr Dlouhy)
+ * FIX : GPX track timestamps are in UTC (see gpx 1.1 schema)
+ * FIX : Change serial port GPS readout from busy looping to signal wakeup
+ * FIX : Nake the heading appear in the satellite tracker
+ * ADD : Nice satellite strength view widget
+ * FIX : OSM export doesn't handle quotes well (Fixes #1139)
+ * ADD : Allow osm API url in the "Use OSM link" text box
+ * FIX : 'Download more' should work without prior 'Download from web' (Closes #1028)
+ * FIX : Joining roads by moving a node from one road on top of another road gives incorrect node sequence (Fixes #1149)
+ * ADD : Preliminary gpsd supprt
+ * FIX : Upload of a modified single GPX track node was not working anymore (fixes #1141)
+ * ADD : Support for GeoTagged images. qmake GEOIMAGE=1 to activate. requires exiv2 (by Timo SchlüÃler)
+ * ADD : Move to the next field on enter in properties dock tags (by Travers Carter) (Refs #1137)
+ * ADD : Revised OSB format. Allows using large map files directly from disk with low memory footprint.
+ * FIX : Native render doesn't render anything at high lat/long values(by Travers Carter) (Closes #1135)
+ * FIX : Expand tables in the properties dock to the available width by default (by Travers Carter) (Closes #1136)
+ * FIX : Make download dialog a less cluttered
+ * FIX : Update the "created_by" tag at each update, not only add.
+ * ADD : Check if there are empty roads/relations during a download and propose to mark them for deletion
+ * ADD : "Visible" action in layers menu
+ * FIX : Properly detect if roads are breakable/joinable and update menus accordingly
+ * FIX : Handle "NotYetDownloaded" for Relations
+ * ADD : Scalable POI icons in styles
+ * ADD : +/- buttons on zooming slippy map so single button devices can use it too
+ * FIX : Only activate upload menu when there is something to upload
+ * ADD : Ability to use svg for node icons
+ * ADD : Tab filtering and color code to Layer dock
+ * FIX : Manage road conflicts from downloads
+ * ADD : Continue road if selected node belongs to only 1 road and is at one end
+ * ADD : MRU for opened and imported files
+ * ADD : Menu option to show/hide a selectable relation bounding box
+ * ADD : Preference option for focus/hover/relations colors
+ * ADD : Create one layer per track during GPX import
+ * ADD : Info dock for layers
+ * ADD : Menu option to show/hide scale
+ * ADD : "Duplicate", "Apply", "Up", "Down" functionality to the style editor
+ * FIX : Another try at solving the "long-ways-at-high-zoom-makes-Merkaartor-unusable" problem (closes #1110)
+ * ADD : Names rendering in styles
+ * ADD : Save last download layer to MDCs
+ * ADD : Switch to integer internal coordinates. Coordinates now vary from -INT_MAX to +INT_MAX rather than -M_PI / +M_PI
+ * FIX : 412 when uploading joined/split roads
+ * ADD : Layer menu in menubar
+ * ADD : Display viewport coordinates in status bar
+ * ADD : (Almost) generalize progress dialogs
+ * ADD : Support (initial) of GPS devices / NMEA log replay
+ * ADD : Option to show/hide track segments
+ * ADD : Option to show/hide non-stylized trackpoints
+ * ADD : Option to show/hide street names on the map
+ * ADD : Render to bitmap via native engine.
+ * ADD : Render to SVG via Osmarender (requires libxml2/libxslt; inkscape required to generate bitmap). Closes #694
+v0.11
+ * ADD : Export to KML
+ * ADD : Export to GPX + proper waypoint saving in MDC documents
+ * ADD : Shift-Right button to drag-zoom
+ * FIX : Qt slows to a crawl when drawing lines offscreen to a large virtual canvas, clipping enabled or not (Qt bug?). Try to optimize roads/track segments drawing to cope with this.
+ * FIX : Save also the redo history in a MDC document
+ * FIX : Allow deletion of a node from a track without deleting the whole segment
+ * FIX : Add a preference option to disable styling for Track layers + re-inject default waypoint painting from dantje
+ * ADD : Non-uplodable tags; tags with key beginnig and ending with an underscore ("_") won't be uploaded
+ * ADD : Ability to commit features from non-uplodable layers to the dirty layer, i.e. make them uploadable
+ * FIX : Bump MDC documents to version 1.1 due to bug-fixes in history saving; history from version 1.0 MDC won't be imported.
+ * ADD : Basic support for waypoints/logpoints from gpx files
+ * ADD : Altitude and velocity to NMEA import
+ * FIX : Background image cache: delete older images from cache first
+ * ADD : Context menu functionality to the map
+ * FIX : Show tracksegment even if it only intersects the viewport
+ * ADD : Encode speed and slope in track segments
+ * FIX : Handle relative paths when loading files
+ * FIX : Clip track segments on viewport
+ * ADD : Show length of selected way in info dock
+ * ADD : Display distance in CreateSingleWay
+ * FIX : "Dynamically" display all built-in styles in the preferences dialog rather than pre-defined ones
+ * ADD : Special value "_NULL_" to TagSelector; matches non-existent or empty tag
+ * FIX : Allow punctuation in tag selector
+ * ADD : "Not", "true", "false", "[Default]" keywords to the Tag Selector; "[Default]" specifies the style for features not having a specific (i.e. non-default) style selected. Together with "Type Is", allows for "bug-fixing" styles "a la Maplint"
+ * ADD : Implementation of a binary OSM file format targeted to mobile devices (*.osb); so far, is ~3x smaller and loads ~5x faster; format subject to changes and documentation
+ * FIX : Pixmap from background images were not freed, leading to ever growing memory consumption
+ * FIX : Problem with map adapters having limited zoom range (e.g. Maplint 12-16)
+ * ADD : Style tag selector by type (e.g "Type is TrackPoint") and presence of tags (e.g. "HasTags"). Allows: 1) To show a generic icon for POI; 2) To display an icon for "lost" points with no roads nor tags.
+ * ADD : Clipboard-copy-paste support (Tags only for now). Clipboard format is XML OSM.
+ * ADD : "Export selected to OSM"
+ * ADD : Proxy support to SlippyMapWidget + change the kind of download only when interacting with the slippy map
+ * ADD : when deleting roads, ask if nodes should be deleted also
+ * ADD : "View downloaded area": "dot" the areas not downloaded from OSM during the current session
+ * ADD : Save position of last edit session on exit
+ * ADD : Split a road by selecting only the node
+ * ADD : Arrow keys move the map (by Rainer Keller)
+ * FIX : When cascade removing, not all children are deleted if they are present multiple times + avoid having twice the same node contiguous in the a road/relation
+ * FIX : Segfault with MDC containing history where a feature is created and deleted
+ * ADD : "Dirty" layer where all modified features go
+ * ADD : "Undo" dock with all undo actions
+ * FIX : Start new road from selected node
+ * FIX : German translation
+ * ADD : Czech translation (Tom Mika)
+ * FIX : History window now displays UTF8
+ * FIX : Bookmark created from "Download from web" immediately added to bookmarks menu (by rullzer)
+ * FIX : Tags undo was pretty much broken
+ * FIX : Update undo button state after upload
+ * ADD : Make URL in about window selectable (by Max Vasilev)
+ * FIX : Style definitions can now use *,? and [abc]
+ * ADD : Open/Import multiple files
+ * ADD : Draw scale
+ * FIX : Upload order when merging nodes
+ * FIX : Warn when using wrong credentials
+ * ADD : Drag the map around with control key for poor Mac owners
+ * FIX : We can now select the move tool every time
+ * FIX : Reverse on an area doesn't open it anymore
+ * FIX : Select dialog : fix the size of elements
+ * FIX : Roundabout creation. Add tag junction=roundabout
+ * FIX : Autoselect source in download dialog
+ * ADD : Align nodes function
+ * ADD : Living_street as a predefined highway tag
+ * FIX : Use CoordBox method to zoom a little instead of calling zoom
+ * ADD : Caching mechanism for painters
+ * ADD : Draw nodes of hovered/selected roads (by Vincent Meurisse)
+ * FIX : Make the shortcuts for creating a new road and way less interfering
+ * ADD : Support for OSM links in download dialog (Refs #812) (by Timo SchlüÃler)
+ * ADD : Shortcuts for zoom-in(+) and zoom-out(-) (by Timo SchlüÃler)
+ * FIX : Keyboard modifiers: Ctrl-click toggle; Shift-click add; Ctrl-add-click prevents road selection; Shift-drag selects features which intersects
+ * ADD : Information dock
+ * ADD : Dock menu / shortcuts
+ * ADD : Different colors for focus and hover
+ * ADD : Merkaartor icon
+ * FIX : Unified version handling
+ * ADD : OpenTopoMap WMS server to list of defaults; OpenAerialMap as TMS (existed as WMS already)
+ * ADD : "Download more" command. Adds to last download layer
+ * ADD : Per-layer "zoom all"
+ * ADD : Delete layer command
+ * ADD : French translation
+ * ADD : Merkaartor document (*.mdc)
+ * FIX : Apply button in Preferences now updates the main window immediately
+ * FIX : If a feature contains a node more than once, if the node is deleted, only the first occurrence is removed
+ * ADD : Merge nodes function
+ * FIX : Don't ignore "width" tags on export
+ * ADD : Translation capabilities
+ * FIX : Misaligned background after view resize
+ * FIX : Clipping problem with selected features during resize
+ * FIX : NMEA import timestamps
+ * FIX : Don't force to enter an u/p for download
+ * FIX : Right background column not drawn in large resolution
+v0.10
+ * ADD : Warn for older versions of Qt
+ * ADD : Save mainwindow layout status (by Daniel van Gerpen)
+ * ADD : Improved tag selection mechanism
+ * ADD : Per-layer transparency
+ * ADD : Background color chooser
+ * FIX : Redraw view when joining roads
+ * ADD : Generalization of Tile servers (OSM is now part of that group)
+ * ADD : Shift-click also prevents roads from selected (previously only alt-click)
+ * ADD : Configurable projection type (allow custom zoom in "Merkaartor" projection, for background also)
+ * ADD : Configurable zoom factors
+ * ADD : Background tiles caching
+ * ADD : Initial track to road
+ * ADD : Initial osmarender rendering
+ * FIX : Decrease memory usage when importing OSM
+ * FIX : Increase snap update speed
+ * ADD : Ability to load tracks from the command line (by Daniel van Gerpen)
+ * ADD : Mapnik-lookalike style (by Colin Marquardt and Andreas Laas)
+ * ADD : Ability to set default style at startup
+ * FIX : Remove compile warnings and C-style casts (by Daniel van Gerpen)
+ * ADD : "created_by" to new features
+ * ADD : Navigation: View -> bookmark + add/remove
+ * FIX : Warn when OSM userid/password not set
+ * ADD : Export viewport to OSM
+ * FIX : Crash when splitting roads (by Daniel van Gerpen)
+ * FIX : Various memory leaks and clean ups (by Daniel van Gerpen)
+ * ADD : Provide navigation for the slippy map with right and left mouse button (by Daniel van Gerpen)
+ * FIX : Zoom around cursor position
+ * ADD : Import NMEA logs (crude) (by Chris Browet)
+ * FIX : Proper handling of dirty documents (by Chris Browet)
+ * ADD : Search on name/tags (by Chris Browet)
+ * FIX : Don't crash while createing a roundabout (by Tommi Vainikiainen)
+ * ADD : Curved road support
+ * FIX : Enhance somewhat visibility of selected items (by Chris Browet)
+ * ADD : Export OSM files (by Chris Browet)
+ * ADD : Support for OSM backgrounds (by Chris Browet)
+ * ADD : Centralized preferences dialog (by Chris Browet)
+ * ADD : Support for WMS maps (by Chris Browet)
+ * FIX : Remove yahoo maps support (not "legal" way to access tiles) (by Chris Browet)
+ * ADD : Support for Yahoo maps backgrounds (by Chris Browet; QMapControl widget by Kai Winter)
+ * ADD : Tags autocompletion in related widgets
+ * ADD : Paint style editor
+
+v0.09
+ * ADD : Support for Noni GPSPlot tracks
+ * ADD : Draw natural=wood areas (by Raphael Studer)
+ * FIX : Also draw trackpoints that have an icon
+ * FIX : Draw unconnected trackpoints
+ * ADD : Multiple remove
+ * ADD : Save last current directory
+ * ADD : Draw landuse=forest area (by Raphael Studer)
+ * ADD : Move trackpoints onto a road inserts the point in the road
+ * ADD : Draw a lot of more things in merkaartor (by Matt Williams)
+ * ADD : Draw hospital area and node
+ * ADD : Nice amenity selector for nodes
+ * FIX : Use the standard system for predefined tags for highway
+ * ADD : Nice landuse selector for roads (areas)
+ * ADD : More amenities (by Matt Williams)
+ * ADD : Ability to easily draw an area
+ * ADD : Landuse selector for relations
+ * ADD : Upload relations to OSM
+ * FIX : Compile fixes for gcc 3.x (by Thomas Wood)
+
+v0.08
+ * FIX : Work with 0.5 API
+ * ADD : Move can now work on a complete way
+ * ADD : Non-transparant proxy support
+ * ADD : Change cursor when in move mode
+ * FIX : Recognize 1 in oneway key
+ * FIX : Slightly change default way width
+ * FIX : Undo/redo handling for manipulating tags
+ * ADD : Ability to draw icons on specific trackpoints
+ * ADD : Draw parking symbol from mapnik
+ * ADD : Tertiary highway type
+ * FIX : Tweak color scheme
+ * ADD : Cache road bounding box
+ * FIX : Draw parking surface
+ * FIX : Tab order of various widgets
+ * ADD : Slippy map coordinates selector
+ * FIX : Reuse slippy map cache between different invocations
+ * FIX : Improve download handling
+ * ADD : Join/split/break road actions
+ * ADD : Caching algorithm for editstylepainters
+ * FIX : Improve rendering on higher zoomed-out levels
+ * ADD : Drag box to select a group of elements
+ * ADD : Selection box when multiple features are selected
+ * FIX : Zoom with wheelbox as in Google maps
+ * FIX : Remove irrelevant menu item
+ * ADD : Import relations
+ * ADD : View relations in the propertiesdock
+ * ADD : Track back to which features a feature belongs
+ * FIX : Compile warnings (by Elrond)
+ * ADD : Rendering according to correct priority
+ * ADD : Create relationships
+ * FIX : Also render relations where tags are on the individual
+ roads
+ * FIX : Clean up code and compile warnings (by Elrond)
+
+v0.07 18 aug 2007
+ * ADD : Nice mappaint mechanism
+ * FIX : Downloading same area twice doesn't create upload conflicts
+ anymore
+ * FIX : Keep tag content when editing them in the tag table
+ * FIX : Correctly keep track of the tag table size
+ * FIX : Remove 0.3 API support
+ * ADD : Gzipped downloading
+ * ADD : Nice painting for water
+ * ADD : File->new menu option to start a new map
+ * FIX : Change current directory when opening a file
+ * FIX : Suppress drawing artefact when creating a new segment
+ * FIX : Avoid Qt to have to process download notifications recursively
+ * ADD : Scripts to create the windows installation package
+ * ADD : Create way from selected segments tool
+ * FIX : Don't systematically add width tags to segments
+ * FIX : Streamline changing the width of a segment
+ * FIX : Bring back drawing of traffic direction indicators
+ * FIX : Show more segments on greater zoom levels
+ * FIX : Make user interface work with Qt 4.2 again
+
+v0.06 5 dec 2006
+ * FIX : Also recognize true/false for oneway tag
+ * FIX : Correctly update roads when downloading the same road twice
+ * ADD : Type combobox to set highway tag
+ * FIX : No busy waiting for OSM download
+ * ADD : Progress dialog while downloading from OSM
+ * FIX : Refresh view immediately after download
+ * FIX : Download segments outside original bounding box for roads
+ * FIX : Don't call QStatusbar methods from a paintEvent
+ * FIX : Speed up drawing of roads when zoomed out
+ * ADD : Undo/redo icons + actions added to toolbar
+ * FIX : Improve speed with a double buffer for static content
+ * ADD : Change tags on multiple elements at the same time
+ * ADD : Delete tag tool
+ * ADD : Download with 0.4 API
+ * ADD : Upload with 0.4 API
+ * ADD : Draw arrows on GPX tracks
+ * ADD : Optionally download trackpoints from OSM
+ * ADD : Ability to contact OSM at a different port
+ * ADD : Allow panning with right mouse button from all interactions
+ * FIX : Keep correct startpoint when changing view during segment drawing
+ * ADD : Debugging mode
+ * FIX : Create node bad URL
+ * ADD : Double carriageway tool
+ * FIX : Upload segments before roads and nodes before segments
+ * ADD : Draw roundabout tool
+ * ADD : Easy single way creation
+ * FIX : Improve speed with large number of trackpoints
+
+v0.05 15 nov 2006
+ * ADD : Connection roads by dragging end points
+ * FIX : Don't crash after undoing deletion and doing something else
+ * ADD : Go to selection interaction after upload/import/open/download
+ * FIX : Make the Cancel button work in the import OSM progress dialog
+ * FIX : Add an ID hash map to speed up importing OSM file
+ * ADD : Bookmark system for downloading from OSM
+ * FIX : Don't jump when zooming after panning
+ * FIX : Use the same step to zoom in and out
+ * FIX : Calculate correct bounding box
+ * FIX : Always update tagview and fix memory leak
+ * FIX : Performance improvements
+ * ADD : Oneway markers
+ * ADD : Reverse way/road action
+ * ADD : Traffic direction combobox in road properties
+ * ADD : Load tags for nodes
+ * ADD : Rendering of parks pitches and water reservoirs
+ * ADD : Set view to coordinates dialog box
+ * FIX : After downloading from web focus on downloaded area
+
+v0.04 29 oct 2006
+ * FIX : Reset brush when drawing zoom window
+ * FIX : Include way id when sending updates to Openstreetmap
+ * FIX : Always prefer to select a road
+ * ADD : Delete nodes,segments,roads on server
+ * ADD : Ability to remove segments from roads, and influence order
+ * ADD : User recognizable names in upload window
+ * FIX : Use a dotted line for GPX track segments
+ * ADD : Split roads by adding a node
+ * ADD : Zoom in/out with the scrollwheel
+ * ADD : Debian package
+
+v0.03 25 oct 2006
+ * FIX : Compilation fixes for Linux
+ * ADD : Pan view by dragging
+ * ADD : Create node
+ * FIX : Don't draw nodes when zoomed out
+ * FIX : Draw segments stronger when zoomed out
+ * FIX : Make roads easier to select, segments harder
+
+v0.02 24 oct 2006
+ * ADD : Update/commit style merging and conflict resolution
+ with openstreetmap
+ * ADD : Delete node/segment
+ * FIX : Move trackpoints accessible from editor toolbar
+ * ADD : Layers
+ * ADD : Support for OSM ways
+
+v0.01 20 oct 2006
+ * ADD : Upload node/segments to OSM
+ * ADD : Download segment tags
+ * ADD : Edit node properties (long,lat)
+ * ADD : Edit segment properties (width,tags)
+
+v0.00 17 oct 2006
+ * ADD : Download node/segments from OSM
+ * ADD : Display node/segments/tracks
+ * ADD : Add segments
+ * ADD : Move nodes
+
+
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..37bb47a
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,705 @@
+cmake_minimum_required(VERSION 3.19.0)
+
+set(VCS_FALLBACK_VERSION 0.19.0)
+include(cmake/vcs.cmake)
+message(STATUS "Configuring Merkaartor ${VCS_VERSION}, commit: ${VCS_COMMIT}, dirty: ${VCS_DIRTY}.")
+
+# Set a default build type if none was specified
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ set(MERK_DEFAULT_BUILD_TYPE "Debug")
+ message(STATUS "Setting build type to '${MERK_DEFAULT_BUILD_TYPE}' as none was specified.")
+ set(CMAKE_BUILD_TYPE "${MERK_DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE)
+ # Set the possible values of build type for cmake-gui
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+endif()
+
+
+project(merkaartor VERSION ${VCS_VERSION})
+# TODO: Use configure_file() instead of definitions when qmake is deprecated.
+# Using definitions causes unnecessary rebuilds, as with each commit the hash
+# changes compile flags for each and every file. However, it is kept for qmake
+# compatibility.
+# Using configure_file() allows us to store the metadata in a .cpp file, thus
+# only rebuilding that one and linking.
+add_definitions(-DVERSION=${PROJECT_VERSION} -DREVISION=${VCS_DESCRIBE})
+add_definitions(-DPRODUCT=Merkaartor)
+add_definitions(-DSHARE_DIR=${CMAKE_INSTALL_PREFIX}/share/merkaartor)
+add_definitions(-DTRANSDIR_MERKAARTOR=${CMAKE_INSTALL_PREFIX}/share/merkaartor)
+
+enable_testing()
+
+# TODO: Add support for sanitizers
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+# Find includes in corresponding build directories
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+# Instruct CMake to run moc automatically when needed
+set(CMAKE_AUTOMOC ON)
+
+# Create code from a list of Qt designer ui files
+set(CMAKE_AUTOUIC ON)
+
+set(CMAKE_AUTORCC ON)
+
+set(CMAKE_AUTOUIC_SEARCH_PATHS
+${CMAKE_CURRENT_SOURCE_DIR}/src
+${CMAKE_CURRENT_SOURCE_DIR}/src/GPS
+${CMAKE_CURRENT_SOURCE_DIR}/src/Preferences
+${CMAKE_CURRENT_SOURCE_DIR}/src/Render
+${CMAKE_CURRENT_SOURCE_DIR}/src/PaintStyle
+${CMAKE_CURRENT_SOURCE_DIR}/src/ImportExport
+${CMAKE_CURRENT_SOURCE_DIR}/src/common
+${CMAKE_CURRENT_SOURCE_DIR}/src/Layers
+${CMAKE_CURRENT_SOURCE_DIR}/src/Utils
+${CMAKE_CURRENT_SOURCE_DIR}/src/QToolBarDialog
+${CMAKE_CURRENT_SOURCE_DIR}/src/NameFinder
+${CMAKE_CURRENT_SOURCE_DIR}/src/Interactions
+${CMAKE_CURRENT_SOURCE_DIR}/src/Sync
+${CMAKE_CURRENT_SOURCE_DIR}/src/Docks
+)
+
+# starting with Qt5.15 we have a lot of deprecation warnings,
+# likely to make porting to Qt6 easier.
+# as long as we require linking to older Qt versions those warnings
+# are clutter. Remove this define when we start porting to Qt6.
+add_definitions(-DQT_NO_DEPRECATED_WARNINGS)
+
+if (UNIX)
+ set(merkaartor_SRCS_PLATFORM
+ src/qextserialport/posix_qextserialport.cpp
+ 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp
+ )
+elseif (WIN32)
+ set(merkaartor_SRCS_PLATFORM
+ src/qextserialport/win_qextserialport.cpp
+ 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp
+ )
+endif()
+
+
+# Populate a CMake variable with the sources
+set(merkaartor_SRCS
+${merkaartor_SRCS_PLATFORM}
+src/Backend/MemoryBackend.cpp
+src/Backend/MemoryBackend.h
+src/GPS/qgps.h
+#src/GPS/GpsFix.cpp
+src/GPS/qgpsdevice.cpp
+src/GPS/qgpssatellitetracker.h
+src/GPS/SatelliteStrengthView.cpp
+src/GPS/qgpssatellitetracker.cpp
+src/GPS/SatelliteStrengthView.h
+#src/GPS/GpsFix.h
+src/GPS/qgpsdevice.h
+src/GPS/qgps.cpp
+src/GPS/qgpsmainwindowui.ui
+src/MainWindow.ui
+src/Features/Way.h
+src/Features/TrackSegment.cpp
+src/Features/Node.cpp
+src/Features/Feature.cpp
+src/Features/Relation.h
+src/Features/Way.cpp
+src/Features/TrackSegment.h
+src/Features/Features.h
+src/Features/Node.h
+src/Features/Feature.h
+src/Features/Relation.cpp
+src/Preferences/TMSPreferencesDialog.cpp
+src/Preferences/WMSPreferencesDialog.h
+src/Preferences/FilterList.cpp
+src/Preferences/MerkaartorPreferences.cpp
+src/Preferences/MerkaartorPreferences.h
+src/Preferences/BookmarksList.h
+src/Preferences/FilterPreferencesDialog.ui
+src/Preferences/PreferencesDialog.h
+src/Preferences/WmsServersList.cpp
+src/Preferences/FilterList.h
+src/Preferences/WMSPreferencesDialog.ui
+src/Preferences/WMSPreferencesDialog.cpp
+src/Preferences/FilterPreferencesDialog.cpp
+src/Preferences/ProjPreferencesDialog.ui
+src/Preferences/TmsServersList.h
+src/Preferences/TmsServersList.cpp
+src/Preferences/OsmServerWidget.ui
+src/Preferences/TMSPreferencesDialog.h
+src/Preferences/BookmarksList.cpp
+src/Preferences/FilterPreferencesDialog.h
+src/Preferences/TMSPreferencesDialog.ui
+src/Preferences/ProjectionsList.cpp
+src/Preferences/ProjPreferencesDialog.cpp
+src/Preferences/PreferencesDialog.ui
+src/Preferences/ProjPreferencesDialog.h
+src/Preferences/WmsServersList.h
+src/Preferences/ProjectionsList.h
+src/Preferences/PreferencesDialog.cpp
+src/Render/MapRenderer.h
+src/Render/NativeRenderDialog.ui
+src/Render/NativeRenderDialog.h
+src/Render/NativeRenderDialog.cpp
+src/Render/MapRenderer.cpp
+src/PaintStyle/Painter.cpp
+src/PaintStyle/MapCSSPaintstyle.cpp
+src/PaintStyle/MasPaintStyle.h
+src/PaintStyle/Painter.h
+src/PaintStyle/MapCSSPaintstyle.h
+src/PaintStyle/PaintStyleEditor.ui
+src/PaintStyle/PrimitivePainter.cpp
+src/PaintStyle/PrimitivePainter.h
+src/PaintStyle/PaintStyleEditor.h
+src/PaintStyle/MasPaintStyle.cpp
+src/PaintStyle/FeaturePainter.cpp
+src/PaintStyle/FeaturePainter.h
+src/PaintStyle/PaintStyleEditor.cpp
+src/PaintStyle/IPaintStyle.h
+src/MainWindow.cpp
+src/Commands/TrackSegmentCommands.cpp
+src/Commands/WayCommands.cpp
+src/Commands/NodeCommands.cpp
+src/Commands/TrackSegmentCommands.h
+src/Commands/NodeCommands.h
+src/Commands/FeatureCommands.cpp
+src/Commands/FeatureCommands.h
+src/Commands/RelationCommands.cpp
+src/Commands/DocumentCommands.cpp
+src/Commands/DocumentCommands.h
+src/Commands/WayCommands.h
+src/Commands/Command.cpp
+src/Commands/Command.h
+src/Commands/RelationCommands.h
+#src/Tools/QFatFs/QFatFs.h
+#src/Tools/QFatFs/QFat.cpp
+#src/Tools/QFatFs/QFatFile.cpp
+#src/Tools/QFatFs/QFatFs.cpp
+#src/Tools/QFatFs/QFat.h
+#src/Tools/QFatFs/QFatFile.h
+src/Tools/ActionsDialog.cpp
+#src/Tools/RegionMapWidget.cpp
+#src/Tools/RegionMapWidget.h
+src/Tools/ActionsDialog.h
+src/qextserialport/qextserialport.cpp
+src/qextserialport/qextserialport.h
+src/qextserialport/qextserialbase.cpp
+src/qextserialport/qextserialbase.h
+src/ImportExport/ImportNMEA.cpp
+#src/ImportExport/ImportExportPBF.h
+src/ImportExport/ImportNMEA.h
+src/ImportExport/ImportExportGdal.h
+src/ImportExport/IImportExport.cpp
+src/ImportExport/ImportExportOSC.h
+src/ImportExport/ImportOSM.h
+src/ImportExport/ExportOSM.cpp
+src/ImportExport/ExportDialog.ui
+src/ImportExport/ImportNGT.cpp
+src/ImportExport/ImportExportCSV.cpp
+src/ImportExport/ImportGPX.h
+src/ImportExport/ImportExportKML.h
+src/ImportExport/ImportExportKML.cpp
+src/ImportExport/ImportExportOSC.cpp
+src/ImportExport/ExportGPX.h
+src/ImportExport/ImportCSVDialog.cpp
+src/ImportExport/ImportCSVDialog.ui
+#src/ImportExport/fileformat.pb.h
+#src/ImportExport/osmformat.pb.cc
+#src/ImportExport/osmformat.pb.h
+#src/ImportExport/fileformat.pb.cc
+src/ImportExport/ImportNGT.h
+src/ImportExport/ImportCSVDialog.h
+src/ImportExport/ExportOSM.h
+src/ImportExport/ImportOSM.cpp
+src/ImportExport/ImportExportCSV.h
+#src/ImportExport/ImportExportPBF.cpp
+src/ImportExport/IImportExport.h
+src/ImportExport/ExportGPX.cpp
+src/ImportExport/ImportGPX.cpp
+src/ImportExport/ImportExportGdal.cpp
+src/MainWindow.h
+src/common/UploadMapDialog.ui
+src/common/GotoDialog.ui
+src/common/PropertiesDialog.ui
+src/common/GotoDialog.h
+src/common/MapTypedef.h
+src/common/RelationProperties.ui
+src/common/MapView.h
+src/common/GotoDialog.cpp
+src/common/TerraceDialog.h
+src/common/TerraceDialog.cpp
+src/common/TagModel.cpp
+src/common/Document.h
+src/common/Coord.h
+src/common/Painting.h
+src/common/FeatureManipulations.h
+src/common/MultiProperties.ui
+src/common/TerraceDialog.ui
+src/common/Document.cpp
+src/common/DownloadMapDialog.ui
+src/common/FeatureManipulations.cpp
+src/common/AboutDialog.ui
+src/common/MapView.cpp
+src/common/TagModel.h
+src/common/Coord.cpp
+src/common/Global.h
+src/common/Global.cpp
+src/common/Painting.cpp
+src/common/Projection.h
+src/common/Projection.cpp
+src/Layers/OsmRenderLayer.cpp
+src/Layers/LayerWidget.cpp
+src/Layers/ImageMapLayer.h
+src/Layers/OsmRenderLayer.h
+src/Layers/Layer.cpp
+src/Layers/LicenseDisplayDialog.ui
+src/Layers/ImageMapLayer.cpp
+src/Layers/LayerIterator.h
+src/Layers/Layer.h
+src/Layers/LayerWidget.h
+src/Layers/LayerWidget.ui
+src/Layers/FilterEditDialog.ui
+src/Layers/LayerPrivate.h
+src/Utils/ShortcutOverrideFilter.h
+src/Utils/SelectionDialog.cpp
+src/Utils/ProjectionChooser.h
+src/Utils/TagSelectorWidget.ui
+src/Utils/CheckBoxList.cpp
+src/Utils/SlippyMapWidget.cpp
+src/Utils/TagSelectorWidget.h
+src/Utils/CheckBoxList.h
+src/Utils/SlippyMapWidget.h
+src/Utils/Utils.h
+src/Utils/OsmLink.cpp
+src/Utils/ShortcutOverrideFilter.cpp
+src/Utils/TagSelectorWidget.cpp
+src/Utils/LineF.h
+src/Utils/SelectionDialog.ui
+src/Utils/TagSelector.h
+src/Utils/Utils.cpp
+src/Utils/PictureViewerDialog.h
+src/Utils/EditCompleterDelegate.cpp
+src/Utils/ProjectionChooser.cpp
+src/Utils/SvgCache.cpp
+src/Utils/MDiscardableDialog.cpp
+src/Utils/ProjectionChooser.ui
+src/Utils/PictureViewerDialog.ui
+src/Utils/PixmapWidget.h
+src/Utils/OsmLink.h
+src/Utils/EditCompleterDelegate.h
+src/Utils/PictureViewerDialog.cpp
+src/Utils/MDiscardableDialog.h
+src/Utils/SelectionDialog.h
+src/Utils/PixmapWidget.cpp
+src/Utils/TagSelector.cpp
+src/Utils/SvgCache.h
+src/Utils/RemoteControlServer.cpp
+src/QToolBarDialog/qttoolbardialog.h
+src/QToolBarDialog/qttoolbardialog.cpp
+src/QToolBarDialog/qttoolbardialog.ui
+src/NameFinder/namefinderwidget.ui
+src/NameFinder/httpquery.h
+src/NameFinder/namefindertablemodel.cpp
+src/NameFinder/xmlstreamreader.cpp
+src/NameFinder/NameFinderResult.h
+src/NameFinder/namefindertablemodel.h
+src/NameFinder/httpquery.cpp
+src/NameFinder/namefinderwidget.h
+src/NameFinder/xmlstreamreader.h
+src/NameFinder/namefinderwidget.cpp
+src/TagTemplate/TagTemplate.cpp
+src/TagTemplate/TagTemplate.h
+src/Interactions/ScaleInteraction.h
+src/Interactions/CreateAreaInteraction.cpp
+src/Interactions/Interaction.h
+src/Interactions/CreateAreaInteraction.h
+src/Interactions/EditInteraction.h
+src/Interactions/ScaleInteraction.cpp
+src/Interactions/CreateDoubleWayInteraction.cpp
+src/Interactions/EditInteraction.cpp
+src/Interactions/CreateDoubleWayInteraction.h
+src/Interactions/RotateInteraction.h
+src/Interactions/ZoomInteraction.h
+src/Interactions/CreateSingleWayInteraction.cpp
+src/Interactions/Interaction.cpp
+src/Interactions/ExtrudeInteraction.cpp
+src/Interactions/ZoomInteraction.cpp
+src/Interactions/RotateInteraction.cpp
+src/Interactions/CreateDoubleWayDock.ui
+src/Interactions/CreatePolygonInteraction.cpp
+src/Interactions/MoveNodeInteraction.h
+src/Interactions/MoveNodeInteraction.cpp
+src/Interactions/CreatePolygonInteraction.h
+src/Interactions/CreateNodeInteraction.cpp
+src/Interactions/CreateRoundaboutDock.ui
+src/Interactions/CreateRoundaboutInteraction.h
+src/Interactions/ExtrudeInteraction.h
+src/Interactions/BuildBridgeInteraction.h
+src/Interactions/CreateRoundaboutInteraction.cpp
+src/Interactions/CreateNodeInteraction.h
+src/Interactions/CreateSingleWayInteraction.h
+src/Interactions/BuildBridgeInteraction.cpp
+src/Sync/SyncListDialog.ui
+src/Sync/DirtyList.cpp
+src/Sync/DownloadOSM.h
+src/Sync/DirtyListExecutorOSC.cpp
+src/Sync/DirtyListExecutorOSC.h
+src/Sync/DownloadOSM.cpp
+src/Sync/DirtyList.h
+#src/QMapControl/mapcontrol.cpp
+src/QMapControl/WmscMapAdapter.cpp
+src/QMapControl/mapnetwork.cpp
+src/QMapControl/wmsmapadapter.h
+src/QMapControl/tilemapadapter.cpp
+src/QMapControl/wmsmapadapter.cpp
+#src/QMapControl/imagepoint.h
+src/QMapControl/imagemanager.cpp
+src/QMapControl/WmscMapAdapter.h
+src/QMapControl/tilemapadapter.h
+src/QMapControl/imagemanager.h
+#src/QMapControl/mapcontrol.h
+src/QMapControl/mapadapter.h
+src/QMapControl/mapadapter.cpp
+#src/QMapControl/imagepoint.cpp
+src/QMapControl/mapnetwork.h
+src/Docks/PropertiesDock.cpp
+src/Docks/FeaturesDock.h
+src/Docks/StyleDock.ui
+src/Docks/MinimumRoadProperties.ui
+src/Docks/InfoDock.h
+src/Docks/FeaturesDock.ui
+src/Docks/MinimumRelationProperties.ui
+src/Docks/PropertiesDock.h
+src/Docks/DirtyDock.h
+src/Docks/StyleDock.cpp
+src/Docks/GeoImageDock.cpp
+src/Docks/DirtyDock.ui
+src/Docks/GeoImageDock.h
+src/Docks/MDockAncestor.cpp
+src/Docks/MinimumTrackPointProperties.ui
+src/Docks/StyleDock.h
+src/Docks/PhotoLoadErrorDialog.ui
+src/Docks/DirtyDock.cpp
+src/Docks/InfoDock.cpp
+src/Docks/FeaturesDock.cpp
+src/Docks/LayerDock.cpp
+src/Docks/MDockAncestor.h
+src/Docks/LayerDock.h
+interfaces/IImageManager.cpp
+interfaces/IImageManager.h
+interfaces/IMerkMainWindow.h
+interfaces/IProjection.h
+interfaces/IProgressWindow.h
+interfaces/ILayer.h
+interfaces/IMapAdapterFactory.h
+interfaces/IFeature.h
+interfaces/IMapWatermark.h
+interfaces/IImageManager.cpp
+interfaces/IRenderer.h
+interfaces/IDocument.h
+interfaces/Interfaces.pri
+interfaces/IBackend.h
+interfaces/IMapAdapter.h
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
+3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
+./src/Utils/Utils.qrc
+./Icons/AllIcons.qrc
+./Icons/QToolBarDialog/qttoolbardialog.qrc
+./Templates/Templates.qrc
+./Styles/Styles.qrc
+
+)
+
+if (NOT APPLE)
+install( FILES ${CMAKE_SOURCE_DIR}/src/org.merkaartor.merkaartor.desktop DESTINATION share/applications )
+install( FILES ${CMAKE_SOURCE_DIR}/src/org.merkaartor.merkaartor.appdata.xml DESTINATION share/metainfo )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/8x8/merkaartor.png DESTINATION share/icons/hicolor/8x8/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/16x16/merkaartor.png DESTINATION share/icons/hicolor/16x16/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/22x22/merkaartor.png DESTINATION share/icons/hicolor/22x22/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/24x24/merkaartor.png DESTINATION share/icons/hicolor/24x24/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/32x32/merkaartor.png DESTINATION share/icons/hicolor/32x32/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/36x36/merkaartor.png DESTINATION share/icons/hicolor/36x36/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/40x40/merkaartor.png DESTINATION share/icons/hicolor/40x40/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/42x42/merkaartor.png DESTINATION share/icons/hicolor/42x42/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/48x48/merkaartor.png DESTINATION share/icons/hicolor/48x48/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/64x64/merkaartor.png DESTINATION share/icons/hicolor/64x64/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/72x72/merkaartor.png DESTINATION share/icons/hicolor/72x72/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/80x80/merkaartor.png DESTINATION share/icons/hicolor/80x80/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/96x96/merkaartor.png DESTINATION share/icons/hicolor/96x96/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/128x128/merkaartor.png DESTINATION share/icons/hicolor/128x128/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/192x192/merkaartor.png DESTINATION share/icons/hicolor/192x192/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/256x256/merkaartor.png DESTINATION share/icons/hicolor/256x256/apps )
+install( FILES ${CMAKE_SOURCE_DIR}/Icons/512x512/merkaartor.png DESTINATION share/icons/hicolor/512x512/apps )
+endif()
+
+set(MERKAARTOR_SHARE_FILES
+ ${CMAKE_SOURCE_DIR}/share/BookmarksList.xml
+ ${CMAKE_SOURCE_DIR}/share/Projections.xml
+ ${CMAKE_SOURCE_DIR}/share/TmsServersList.xml
+ ${CMAKE_SOURCE_DIR}/share/WmsServersList.xml
+)
+
+install( FILES ${MERKAARTOR_SHARE_FILES} DESTINATION share/merkaartor)
+set_source_files_properties(${MEKAARTOR_SHARE_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
+
+find_package(Qt5LinguistTools)
+set(TS_FILES
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_cs.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_de.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_en.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_es.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_fi.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_fr.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_hr.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_hu.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_id_ID.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_it.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_ja.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_nl.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_pl.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_pt_BR.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_ru.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_sv.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_uk.ts
+ ${CMAKE_SOURCE_DIR}/translations/merkaartor_zh_TW.ts
+)
+qt5_add_translation(QM_FILES
+ ${TS_FILES}
+)
+install( FILES ${QM_FILES} DESTINATION share/merkaartor/translations )
+
+find_program(LUPDATE lupdate)
+add_custom_target(update-translations COMMAND ${LUPDATE} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/plugins -source-language en -target-language en -ts ${CMAKE_SOURCE_DIR}/translations/merkaartor_en.ts)
+
+
+##############################################
+# Find 3rd party libraries, depending on options provided
+##############################################
+
+# We need GDAL and proj for core functionality
+set(PKGCONFIG_REQUIRED_LIBS gdal proj)
+
+option(ZBAR "Enable ZBar usage in MWalkingPapersBackground and Geoimage." OFF)
+option(GEOIMAGE "Enable Geoimage Dock (requires exiv2 library)." ON )
+option(GPSD "Enable GPS Dock (requires gpsd library)." OFF)
+option(WEBENGINE "Enable the use of QtWeb engine (not supported on all platforms)" OFF)
+option(EXTRA_TESTS "Enable extra tests that cannot be run automatically on CI build." ON )
+
+message(STATUS "Build options (use -DOPT=ON/OFF to enable/disable):")
+message(STATUS " * ZBAR ${ZBAR}")
+message(STATUS " * GEOIMAGE ${GEOIMAGE}")
+message(STATUS " * GPSD ${GPSD}")
+message(STATUS " * WEBENGINE ${WEBENGINE}")
+message(STATUS " * EXTRA_TESTS ${EXTRA_TESTS}")
+message(STATUS "")
+
+if (ZBAR)
+ list(APPEND PKGCONFIG_REQUIRED_LIBS zbar)
+ add_definitions(-DUSE_ZBAR=1) # MWalkingPapersBackground, Geoimage; actual macro is USE_ZBAR
+endif()
+
+if (GEOIMAGE)
+ list(APPEND PKGCONFIG_REQUIRED_LIBS exiv2)
+ add_definitions(-DGEOIMAGE=1)
+endif()
+
+if (GPSD)
+ list(APPEND PKGCONFIG_REQUIRED_LIBS gpsd)
+ add_definitions(-DUSE_GPS=1)
+endif()
+
+if (WEBENGINE)
+ add_definitions(-DUSEWEBENGINE=1) # Actual macro is USE_WEBKIT
+ # add_definitions(-DTHREADED_BROWSERIMAGEMANAGER=1) # TODO: Check if that even does something/works
+endif()
+
+
+# TODO: Check and remove or implement defines from code: PORTABLE, FRISIUS, NVIDIA_HACK, MOBILE, LIBPROXY, SYSTEM_QTSA
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(PKGCONFIG_DEPS REQUIRED ${PKGCONFIG_REQUIRED_LIBS})
+message(STATUS "pkg-config dependencies require the following flags:")
+message(STATUS " * LDFLAGS: ${PKGCONFIG_DEPS_LDFLAGS}")
+message(STATUS " * LDFLAGS_OTHER: ${PKGCONFIG_DEPS_LDFLAGS_OTHER}")
+message(STATUS " * CFLAGS: ${PKGCONFIG_DEPS_CFLAGS}")
+message(STATUS " * CFLAGS_OTHER: ${PKGCONFIG_DEPS_CFLAGS_OTHER}")
+message(STATUS " * LINK DIRECTORIES: ${PKGCONFIG_DEPS_LIBRARY_DIRS}")
+message(STATUS "")
+
+
+link_directories(${PKGCONFIG_DEPS_LIBRARY_DIRS})
+
+
+
+##############################################
+# Find Qt dependencies
+##############################################
+find_package(Qt5 COMPONENTS Svg Network Xml Core Gui Concurrent PrintSupport Widgets Test CONFIG REQUIRED)
+set(MERKAARTOR_LINK_LIBS Qt5::Svg Qt5::Network Qt5::Xml Qt5::Core Qt5::Gui Qt5::Concurrent Qt5::PrintSupport Qt5::Widgets ${PKGCONFIG_DEPS_LIBRARIES})
+
+##############################################
+# Create the Merkaartor binary
+##############################################
+if (APPLE)
+ set(MERKAARTOR_ICON_FILE "${CMAKE_SOURCE_DIR}/Icons/merkaartor.icns")
+ set_source_files_properties(${MERKAARTOR_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
+endif()
+
+if (WIN32)
+ set(MERKAARTOR_ICON_FILE "${CMAKE_SOURCE_DIR}/Icons/merkaartor-win32.rc")
+endif()
+
+add_executable(${PROJECT_NAME} WIN32 MACOSX_BUNDLE ${merkaartor_SRCS} src/Main.cpp ${MERKAARTOR_ICON_FILE} ${QM_FILES})
+target_link_libraries(merkaartor ${MERKAARTOR_LINK_LIBS} )
+target_compile_options(merkaartor PUBLIC ${PKGCONFIG_DEPS_CFLAGS})
+install( TARGETS merkaartor RUNTIME DESTINATION bin BUNDLE DESTINATION .)
+
+if (APPLE)
+ # Additionally, we need to find libssh and add that include, as exiv2 depends on it.
+ # Caused by: https://gitlab.kitware.com/cmake/cmake/-/issues/19120 (not fixed and probably won't be anytime soon)
+ #find_path(LIBSSH_INCLUDE_DIR NAMES libssh.h)
+ set(LIBSSH_INCLUDE_DIR "/usr/local/include")
+endif()
+
+set(MERKAARTOR_INCLUDE_DIRECTORIES
+ ${PKGCONFIG_DEPS_INCLUDE_DIRS}
+ ${LIBSSH_INCLUDE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/interfaces
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/GPS
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Backend
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Preferences
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Render
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/PaintStyle
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/ImportExport
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/common
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Layers
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Utils
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/QToolBarDialog
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/NameFinder
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Interactions
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Sync
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Docks
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Features
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Commands
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qextserialport
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/QMapControl
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/TagTemplate
+ ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication-2.6_1-opensource/src
+)
+target_include_directories( merkaartor PUBLIC ${MERKAARTOR_INCLUDE_DIRECTORIES})
+
+
+##############################################
+# Build plugins
+##############################################
+include(plugins/plugins.cmake)
+
+##############################################
+# Setup packaging
+##############################################
+set (CPACK_PACKAGE_NAME "merkaartor")
+set (CPACK_PACKAGE_VENDOR "merkaartor.org")
+set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Merkaartor, OpenStreetMap editor.")
+set (CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
+set (CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
+set (CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
+set (CPACK_PACKAGE_VERSION "${VCS_DESCRIBE}")
+set (CPACK_PACKAGE_INSTALL_DIRECTORY "Merkaartor")
+set (CPACK_PACKAGE_EXECUTABLES "merkaartor;Merkaartor")
+set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
+
+##############################################
+# Prepare deployment script
+##############################################
+configure_file("${PROJECT_SOURCE_DIR}/cmake/upload-artifacts.sh.in" "${PROJECT_BINARY_DIR}/upload-artifacts.sh" @ONLY)
+
+##############################################
+# Mac OS X specific deploy scripts
+##############################################
+if (APPLE)
+ find_program(MACDEPLOYQT macdeployqt)
+ message("Found macdeployqt: ${MACDEPLOYQT}")
+ configure_file("${PROJECT_SOURCE_DIR}/cmake/deploy-osx.cmake.in" "${PROJECT_BINARY_DIR}/deploy-osx.cmake" @ONLY)
+ set (CPACK_PRE_BUILD_SCRIPTS "${PROJECT_BINARY_DIR}/deploy-osx.cmake")
+ set (CPACK_GENERATOR "DragNDrop")
+ set (CPACK_DMG_BACKGROUND_IMAGE "${PROJECT_SOURCE_DIR}/cmake/CMakeDMGBackground.tif")
+ set (CPACK_DMG_DS_STORE "${PROJECT_SOURCE_DIR}/cmake/DS_Store.bin")
+ #set (CPACK_DMG_DS_STORE_SETUP_SCRIPT "${PROJECT_SOURCE_DIR}/cmake/CMakeDMGSetup.scpt")
+ set (MACOSX_BUNDLE_BUNDLE_NAME "merkaartor")
+ set (MACOSX_BUNDLE_BUNDLE_VERSION "${VCS_DESCRIBE}")
+ set (MACOSX_BUNDLE_COPYRIGHT 2021)
+ set (MACOSX_BUNDLE_GUI_IDENTIFIER "be.merkaartor")
+ set (MACOSX_BUNDLE_ICON_FILE "merkaartor.icns")
+ set (MACOSX_BUNDLE_INFO_STRING "Merkaartor, OpenStreetMap editor.")
+ set (MACOSX_BUNDLE_LONG_VERSION_STRING "${VCS_DESCRIBE} (${VCS_COMMIT})")
+ set (MACOSX_BUNDLE_SHORT_VERSION_STRING "${VCS_DESCRIBE} (short)")
+endif()
+
+##############################################
+# Windows specific deploy scripts
+##############################################
+if (WIN32)
+ set (CPACK_VERBATIM_VARIABLES ON)
+ set (CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/Icons/Merkaartor_48x48.ico")
+ set (CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/Icons/Merkaartor_installer.bmp")
+ string(REGEX REPLACE "/" "\\\\" CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}")
+ string(REGEX REPLACE "/" "\\\\" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}")
+ set (CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
+ set (CPACK_NSIS_URL_INFO_ABOUT "http://merkaartor.be")
+
+ # Workaround for NSIS bug in CMake that creates and checks only 32bit keys even for 64bit installers.
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/21960
+ # Will be fixed by PR:
+ # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5952
+ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/ModulesOverride")
+ set(CPACK_NSIS_REGISTRY_VIEW 64)
+ set(CPACK_NSIS_ENABLE_UNINSTALL_DONT_CHECK_32 ON)
+ # End of workaround
+
+ find_program(WINDEPLOYQT windeployqt)
+ find_program(CYGCHECK cygcheck)
+ configure_file("${PROJECT_SOURCE_DIR}/cmake/deploy-windows.cmake.in" "${CMAKE_BINARY_DIR}/deploy-windows.cmake" @ONLY)
+ set (CPACK_PRE_BUILD_SCRIPTS "${CMAKE_BINARY_DIR}/deploy-windows.cmake")
+
+ set (CPACK_GENERATOR "ZIP;NSIS")
+endif()
+
+include(CPack)
+
+##############################################
+# Tests
+##############################################
+
+# The test shall be placed in file "tests/.cpp" file, followed by required includes
+function(MERK_ADD_TEST test_name)
+ add_executable(${test_name} tests/${test_name}.cpp ${ARGN})
+ target_link_libraries(${test_name} ${MERKAARTOR_LINK_LIBS} Qt5::Test )
+ add_test(${test_name} ${test_name})
+ target_include_directories(${test_name} PUBLIC ${MERKAARTOR_INCLUDE_DIRECTORIES})
+endfunction()
+
+MERK_ADD_TEST(test-projection src/common/Projection.cpp src/common/Coord.cpp)
+
+# Additional tests that use the main executable
+if (EXTRA_TESTS)
+add_test(NAME "import-geojson" COMMAND ${PROJECT_NAME} --test-import ${CMAKE_SOURCE_DIR}/tests/data/sample.geojson)
+add_test(NAME "import-shapefile-point" COMMAND ${PROJECT_NAME} --test-import ${CMAKE_SOURCE_DIR}/tests/data/sample-shapefile/POINT.shp)
+add_test(NAME "import-shapefile-polygon" COMMAND ${PROJECT_NAME} --test-import ${CMAKE_SOURCE_DIR}/tests/data/sample-shapefile/POLYGON.shp)
+add_test(NAME "import-shapefile-polyline" COMMAND ${PROJECT_NAME} --test-import ${CMAKE_SOURCE_DIR}/tests/data/sample-shapefile/POLYLINE.shp)
+
+if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+# Use the offscreen platform for tests with GUI to avoid opening/closing the windows. However, the platform is only supported by Qt on Linux
+set_tests_properties(
+ import-geojson
+ import-shapefile-point
+ import-shapefile-polygon
+ import-shapefile-polyline
+ PROPERTIES ENVIRONMENT QT_QPA_PLATFORM=offscreen
+ )
+endif()
+endif()
diff --git a/COMPILE.md b/COMPILE.md
new file mode 100644
index 0000000..ea71127
--- /dev/null
+++ b/COMPILE.md
@@ -0,0 +1,207 @@
+# Compiling Merkaartor
+
+These are the instructions for compiling Merkaartor from git source. Here is the
+short version, given you have all the dependencies and are familiar with your
+build environment:
+
+```
+$ git clone https://github.com/openstreetmap/merkaartor.git && cd merkaartor
+$ mkdir build && cd build && cmake ..
+$ make -j8
+```
+
+And run it using:
+
+```
+$ ./merkaartor
+```
+
+If this is not enough, here are more detailed instructions:
+
+## Prerequisites
+
+You will need the following packages installed:
+
+ - Working C++ compiler
+ - Qt 5.9 or newer
+ - Proj 6.x or newer
+ - GDAL (2.0.0 or newer for GDAL exports)
+ - Exiv2 (for geoimage support)
+ - (For Windows Installer) NSIS-3
+ - CMake 3.19.0 or newer
+
+The OS specifics will be explained further down.
+
+### Linux
+
+Install the above packages using your package manager. For Debian/Ubuntu, this would
+look like this:
+
+```
+ $ sudo apt-get install build-essential libgdal-dev libproj-dev libexiv2-dev cmake
+```
+
+Or for Qt5:
+
+```
+ $ sudo apt-get install qt5-default libqt5xml5* libqt5network5* libqt5gui5* libqt5svg5* libqt5webkit5* libqt5quick5* qtdeclarative5-dev qttools5-dev qtbase5-dev qtchooser
+```
+
+### Windows (32bit/64bit)
+
+In both cases, you will need to download MSYS2 for your architecture, and
+install some packages from msys shell (msys2_shell.bat).
+
+For 32bit, they are (the w64 is not a bug!):
+
+```
+$ pacman -S base-devel \
+ msys/git \
+ mingw32/mingw-w64-i686-gcc \
+ mingw32/mingw-w64-i686-qt5 \
+ mingw32/mingw-w64-i686-gdal \
+ mingw32/mingw-w64-i686-proj \
+ mingw32/mingw-w64-i686-openjpeg2 \
+ mingw32/mingw-w64-i686-json-c \
+ mingw64/mingw-w64-i686-exiv2 \
+ mingw64/mingw-w64-i686-cmake
+```
+
+For 64bit, they are:
+
+```
+$ pacman -S base-devel \
+ msys/git \
+ mingw64/mingw-w64-x86_64-gcc \
+ mingw64/mingw-w64-x86_64-qt5 \
+ mingw64/mingw-w64-x86_64-gdal \
+ mingw64/mingw-w64-x86_64-proj \
+ mingw64/mingw-w64-x86_64-openjpeg2 \
+ mingw64/mingw-w64-x86_64-json-c \
+ mingw64/mingw-w64-x86_64-exiv2 \
+ mingw64/mingw-w64-x86_64-cmake
+```
+
+Done? Continue to the next step, but run a different msys shell, the mingw32 or
+mingw64, based on your architecture. Note that if you'll run mingw32 shell from
+64bit msys installtion, strange stuff will happen, so don't do it.
+
+### Mac OS X
+
+You will need functional xcode (or other c++ compiler), and libraries installed
+from [homebrew](http://brew.sh).
+
+```
+brew install gdal proj qt
+```
+
+If you want to use qt5, you need to force link it, as homebrew guys consider Qt4
+the default:
+
+```
+brew install qt5 gdal proj exiv2 cmake
+brew link --force qt5
+```
+
+You can do without linking, but you will need to manually supply some paths to
+the build environment.
+
+## Compilation
+
+### Clone the repository
+
+```
+$ git clone https://github.com/openstreetmap/merkaartor.git && cd merkaartor
+```
+
+> By default, this is the latest development version. If you want to use an older
+> one, you have to checkout the commit/tag:
+>
+> $ git checkout 0.17.0
+>
+> Please, use this only for testing (for example, if some feature does not
+> work, but it did in older release and you want to check which one), never
+> report bugs for older versions.
+
+### Run cmake
+
+```
+$ mkdir build && cd build && cmake ..
+$ make -jX
+```
+
+There are a few build options that can be passed to cmake to configure features
+compiled-in. See the cmake output for a full list (or use CMake GUI to
+configure it):
+
+```
+-- Build options (use -DOPT=ON/OFF to enable/disable):
+-- * ZBAR OFF
+-- * GEOIMAGE ON
+-- * GPSD OFF
+-- * WEBENGINE OFF
+```
+
+For example, compiling in support for GPSD would be:
+
+```
+cmake .. -DGPSD=ON
+```
+
+### Run qmake
+
+Note: qmake support is deprecatd and will be removed in the next release. Please use cmake instructions above whenever possible.
+
+```
+$ qmake -r
+```
+
+Note that you need the Qt4 or Qt5 version of qmake - running the Qt3 version
+will generate incorrect makefiles. If both are installed, take care to run the
+correct version. For example, on Fedora/Debian run
+
+```
+$ qmake-qt4
+```
+
+and on (K)ubuntu run
+
+```
+$ /usr/share/qt4/bin/qmake
+```
+
+There are some parameters you can pass to qmake to customize build:
+
+| Parameter | Meaning |
+| --- | ---
+| PREFIX= | base prefix for installation (unix only) |
+| TRANSDIR_MERKAARTOR= | where will the Merkaartor translations be installed |
+| TRANSDIR_SYSTEM= | where your global Qt translation directory is |
+| NODEBUG=1 | release target |
+| USEWEBENGINE=1 | enable use of WebEngine (required for some external plugins) |
+| SYSTEM_QTSA | use system copy of qtsingleapplication instead of internal |
+
+
+### Run make
+
+On Windows: $ make release
+On other platforms: $ make
+Debug build: $ make debug
+
+On most Windows installations, debug is the default and we need to specify
+the release manually. Sorry about that.
+
+### Done!
+
+If you are lucky, you'll find an executable in the binaries subdirectory.
+Otherwise, check our [github page](http://github.com/openstreetmap/merkaartor), especially check the issues and possibly
+report yours.
+
+## Packaging
+
+The project uses CPack to generate binary packages. In the build directory, invoke the `package` build target:
+
+```
+$ make package
+```
+
diff --git a/CREDITS b/CREDITS
new file mode 100644
index 0000000..b328a12
--- /dev/null
+++ b/CREDITS
@@ -0,0 +1,5 @@
+Merkaartor is re-using part of these great projects:
+
+Tango Desktop Project (http://tango.freedesktop.org/Tango_Desktop_Project) fir icons
+QMapControl by Kai Winter (http://medieninf.de/qmapcontrol/) for the original background map layers
+Qadastre by Pierre Ducroquet (http://gitorious.org/qadastre) for the frenc cadastre background
diff --git a/HACKING.md b/HACKING.md
new file mode 100644
index 0000000..1c77ff1
--- /dev/null
+++ b/HACKING.md
@@ -0,0 +1,92 @@
+# Hacking Merkaartor
+
+Here are some tips if you want to hack or debug Merkaartor.
+
+## Tag templates
+
+Tag templates are XML files under the ''Templates'' directory. See ''default.mat'' as a
+reference. Basically a `widget` tag specifies a choice in the ''Properties'' dialog,
+and `value` tags choices for the value. It's not pretty or easy to use.
+
+Before you start hacking, drop an email to the list. I think it's worth adopting
+JOSM presets instead, as we gain a pretty exhaustive database and people will have
+an easier time switching between Merkaartor and JOSM, which is always good!
+
+## Translations
+
+There is more information in the translations/README.md. However, if you just want to
+contribute to translations, either by translating an existing language or adding a
+new one, visit our Transifex page and start there. There are a few words on our
+web, http://merkaartor.be/p/docs/localization, together with a link to the
+Transifex page.
+
+## Rendering styles
+
+Rendering styles are stored in the ''Styles/'' directory, but they are not to be edited by hand. Use Merkaartor's
+style editor instead, and let it save for you.
+
+If you want to add a new style, do so freely. Keep changes to existing files to
+a minimum, so the overall look, feel, and rendering speed won't change much.
+
+I would be very happy if someone made a comprehensive style suited for editing
+POIs, yet easy to navigate.
+
+## Sanitizers
+
+Sanitizers can be enabled by the SANITIZE option:
+
+```
+qmake -r SANITIZE=1
+qmake -r SANITIZE=2
+qmake -r SANITIZE=custom_sanitizer
+```
+
+The option =1 enables the address and undefined sanitizers. The option =2
+enables the thread sanitizer. Enything else will be just passed to the compiler, so
+you can specify your own. It might be useful to run a compile with Clang instead
+of GCC for different options/implementations.
+
+It might complain about some stuff in other libraries (gdal, Qt), so keep in
+mind these are not our responsibilities for the most case. Usually all the bugs
+detected are severe and should be reported. Even running Merkaartor with
+a sanitizer enabled and reporting bugs is a huge benefit, though there is a severe
+performance hit involved.
+
+## Compiling with Clang
+
+You can compile Merkaartor with Clang, using standard Qt approach:
+
+```
+qmake -spec linux-clang
+```
+
+## Variable naming convention
+
+You might have noticed the strange naming convention for variables. They are
+often prefixed with a definite or indefinite article, like aLayer and theLayer.
+It's been in Merkaartor since the very beginning of the Git history.
+
+The exact meaning in Merkaartor is still a bit cloudy, and I don't expect
+anyone to keep this notation in new code, but it might be a good idea in some
+cases. However, I will not accept commits that try to change this notation just
+for the sake of changing.
+
+A possible representation was given by @PeterMortensen (see [issue #184 on github](https://github.com/openstreetmap/merkaartor/issues/184) for a bit more details)
+
+One example was in the commercial C++ framework Think Class Library (TCL),
+bundled with the THINK C compiler. TCL was similar to Qt, for creating
+GUI-based applications, etc. This was in the early 1990s for MacOS (before both
+Mac OS X and PowerPC).
+
+It used the definite or indefinite article prefix, the indefinite for parameter
+names of a function and the definite for scalar member variables (not class
+instances). It also used the "its" prefix for members that were class instances
+(this was before references in C++, so all access to class instances were
+through pointers). If I remember correctly, this was to indicate ownership
+(responsibility for destruction, etc.).
+
+The TCL framework also had the convention of "I" for second-level
+initialisation of objects after creation (possibly due to limitations in the
+compiler support of C++ features - I don't remember).
+
+
diff --git a/Icons/128x128/merkaartor.png b/Icons/128x128/merkaartor.png
new file mode 100644
index 0000000000000000000000000000000000000000..c85f7ea8f267fcf60e574c20c4931087cda600ed
GIT binary patch
literal 33958
zcmV*FKx)5