Skip to content

Commit

Permalink
Merge branch 'release-0.6.1' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
dg0yt committed Jan 10, 2016
2 parents 6421973 + ccd41bf commit 0101c68
Show file tree
Hide file tree
Showing 48 changed files with 24,502 additions and 9,541 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ set(Mapper_VERSION_MAJOR 0)
set(Mapper_VERSION_MINOR 6)
if(NOT Mapper_VERSION_PATCH)
# This can be configured when running cmake
set(Mapper_VERSION_PATCH 0)
set(Mapper_VERSION_PATCH 1)
endif()

set(MAPPER_VERSION_PRI "${PROJECT_SOURCE_DIR}/oo-mapper-version.pri")
Expand Down
48 changes: 44 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,46 @@
OpenOrienteering Mapper is an orienteering mapmaking program and provides a free alternative to existing commercial software. Its main advantages compared to it are:
# OpenOrienteering Mapper

- Open Source: the program is completely free, every programmer can improve it.
- Cross-platform: the program works on Android, Windows, Mac OS X and Linux.
![Mapper Screenshot](http://openorienteering.github.io/mapper-manual/pages/images/main_window.png)

While it is under continuous development and considered in beta state, it has been used to produce maps for classical orienteering, MTBO and radio orienteering races. All required functions for drawing maps are implemented and the program works very stable. So it can be considered ready for productive use, although it is like always a good idea to keep backups of your files. We are happy about feedback to the program.
OpenOrienteering Mapper is an orienteering mapmaking program and provides a free and open source alternative to existing commercial software. OpenOrienteering Mapper runs on Android, Windows, Mac OS X and Linux.

- [Manual](http://openorienteering.org/mapper-manual/)
- [Downloads](https://github.com/OpenOrienteering/mapper/releases)
- [Blog](http://openorienteering.github.io/)


## Contributing

### Writing Code

For building Mapper from source see [`INSTALL.md`](https://github.com/OpenOrienteering/mapper/blob/master/INSTALL.md). Pull requests are very welcome.

- [Ticket system](https://github.com/OpenOrienteering/mapper/issues)
- [API documentation](http://openorienteering.github.io/api-docs/mapper/)
- [Unstable Builds](http://openorienteering.github.io/news/2015/mapper-unstable-packages/)
- [Developer mailing list](https://lists.sourceforge.net/lists/listinfo/oorienteering-devel)
- [Developer wiki](https://github.com/OpenOrienteering/mapper/wiki)


### Translating

The translations for Mapper are stored in `translations/OpenOrienteering_lang.ts`. The easiest way to edit those files is by using [Qt Linguist for translation](http://doc.qt.io/qt-5/linguist-translators.html). The translations can also be edited with any XML editor.

Adding a new translation is done by making a new copy of `OpenOrienteering_template.ts` and replacing `template` in the file name with the relevant language code. The new file also has to be added to `translations/CMakeLists.txt`.

Some strings such as basic buttons and colors has its translation within the Qt Framework, for translating those see [Qt Localization](https://wiki.qt.io/Qt_Localization).


### Writing Documentation

The Mapper manual lives in its [own repository](https://github.com/OpenOrienteering/mapper-manual) witch contains all information for you to get started.


### Reporting Issues

Issues and possible improvements can be posted to our public [Ticket system](https://github.com/OpenOrienteering/mapper/issues), please make sure you provide all relevant information about your problem or idea.


## License

Mapper is licensed under the [GNU GENERAL PUBLIC LICENSE Version 3](https://www.gnu.org/licenses/gpl.html).
2 changes: 1 addition & 1 deletion android/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6.0" android:versionCode="2" package="org.openorienteering.mapper" android:installLocation="auto">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6.1" android:versionCode="2" package="org.openorienteering.mapper" android:installLocation="auto">
<application android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/long_app_name" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation"
android:name="org.openorienteering.mapper.MapperActivity"
Expand Down
98 changes: 71 additions & 27 deletions doc/manual/pages/edit_menu.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,78 @@ title: Edit Menu
authors:
- Peter Hoban
- Thomas Schoeps
- Kai Pastor
keywords: Menus
edited: 24 February 2013
edited: 10 Januar 2016
---

<table><tr><td width="40"><img class="small" src="../mapper-images/undo.png" width="32" height="32" border="0" alt="" /></td><td width="100"><h4>Undo</h4></td><td width="70"><h4>Ctrl+Z</h4></td><td width="400">
<p>This most important function reverses the last change made to the map. Repeating 'Undo' will undo earlier changes, one step at a time.<br/><br/>
<b>Attention</b>: while changes to map objects can be undone this way, not all map changes are covered by the undo system. This includes changes to colors, symbols or templates. Because of this, it is very advisable to make a backup of your map before making such changes.</p>
</td></tr>

<tr><td><img class="small" src="../mapper-images/redo.png" width="32" height="32" border="0" alt="" /></td><td><h4>Redo</h4></td><td><h4>Ctrl+Y</h4></td><td>
<p>When you have taken Undo too far this will reverse the process &#8212; again one step at a time.</p></td></tr>

<tr><td><img class="small" src="../mapper-images/cut.png" width="32" height="32" border="0" alt="" /></td><td><h4>Cut</h4></td><td><h4>Ctrl+X</h4></td><td>
<p>This removes the selected object(s) and moves them to the clipboard.</p></td></tr>

<tr><td><img class="small" src="../mapper-images/copy.png" width="32" height="32" border="0" alt="" /></td><td><h4>Copy</h4></td><td><h4>Ctrl+C</h4></td><td>
<p>This copies the selected object(s) to the clipboard.</p></td></tr>

<tr><td><img class="small" src="../mapper-images/paste.png" width="32" height="32" border="0" alt="" /></td><td><h4>Paste</h4></td><td><h4>Ctrl+V</h4></td><td>
<p>This inserts the map object(s) on the clipboard into the map. They will be centered at the view midpoint. <br/><br/>
<b>Note</b>: when copying ojects between different maps, their symbols and colors may be copied too in order to be able to display the objects in the new map in the same way as in the source map.</p></td></tr>

<tr><td></td><td><h4>Clear undo / redo history</h4></td><td><h4></h4></td><td>
<p>Clears the undo / redo history, i.e. all undo and redo steps will be deleted. This reduces the file size for map file formats where the last undo and redo steps are stored, e.g. the omap format.</p></td></tr>

<table>
<tr>
<td width="40"><img class="small" src="../mapper-images/undo.png" width="32" height="32" border="0" alt="" /></td>
<td width="100"><b>Undo</b></td>
<td width="70"><b>Ctrl+Z</b></td>
<td width="400">This most important function reverses the last change made to the map. Repeating 'Undo' will undo earlier changes, one step at a time.<br/>
<b>Attention:</b> While changes to map objects can be undone this way, not all map changes are covered by the undo system. This includes changes to colors, symbols or templates.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/redo.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Redo</b></td>
<td><b>Ctrl+Y, Ctrl+Shift+Z</b></td>
<td>When you have taken Undo too far this will reverse the process &#8212; again one step at a time.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/cut.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Cut</b></td>
<td><b>Ctrl+X</b></td>
<td>This removes the selected object(s) and moves them to the clipboard.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/copy.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Copy</b></td>
<td><b>Ctrl+C</b></td>
<td>This copies the selected object(s) to the clipboard.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/paste.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Paste</b></td>
<td><b>Ctrl+V</b></td>
<td>This inserts the map object(s) on the clipboard into the map. They will be centered at the view midpoint.<br/>
<b>Note:</b> When copying objects between different maps, their symbols and colors may be copied too in order to be able to display the objects in the new map in the same way as in the source map.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/delete.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Delete</b></td>
<td><b>Del</b></td>
<td>This action deletes the selected object(s).</td>
</tr>
<tr>
<td></td>
<td><b>Select all</b></td>
<td><b>Ctrl+A</b></td>
<td>This selects all objects in the current map part.</td>
</tr>
<tr>
<td></td>
<td><b>Select nothing</b></td>
<td><b>Ctrl+Shift+A</b></td>
<td>After this action, no object is selected.</td>
</tr>
<tr>
<td></td>
<td><b>Invert selection</b></td>
<td><b>Ctrl+I</b></td>
<td>This action inverts the selection in the current map part.</td>
</tr>
<tr>
<td></td>
<td><b>Select all objects with selected symbols</b></td>
<td></td>
<td>After this action, the selection consists of all objects in the current map part which have the selected symbol(s).</td>
</tr>
<tr>
<td></td>
<td><b>Clear undo / redo history</b></td>
<td></td>
<td>Clears the history of undo and redo steps, i.e. all undo and redo steps will be deleted. This reduces the file size for map file formats where the last undo and redo steps are stored, e.g. the omap format.</td>
</tr>
</table>


<h3>Editing tools</h3>
<p>OOMapper offers many editing tools which may be accessed through the <a href="tools_menu.md">Tools menu</a> or the <a href="toolbars.md">toolbars</a>.</p>

Binary file modified doc/manual/pages/images/grid_settings.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 6 additions & 3 deletions doc/manual/pages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ Contents {#index_contents}
[Map Screen](main_window.md){: .subpage} <br/>
Explanation of the main drawing window.

[Reference](reference.md){: .subpage} <br/>
Toolbar and menu items, including explanations for [all drawing tools](toolbars.md#drawing)

[Starting a new map](new_map.md){: .subpage} <br/>
First steps

Expand All @@ -25,15 +28,15 @@ Defining the relationship between map paper coordinates and real world coordinat
[Map grid](grid.md){: .subpage} <br />
Showing a helper grid in the map view.

[Reference](reference.md){: .subpage} <br/>
Toolbar and menu items, including explanations for [all drawing tools](toolbars.md#drawing)

[Templates](templates-index.md){: .subpage} <br/>
Working with templates

[Colors and Symbols](colors_symbols.md){: .subpage} <br/>
Modifying map colors and symbols

[Map Parts](map_parts.md){: .subpage} <br/>
Organizing objects in maps

[Tag Editor](tag_editor.md){: .subpage} <br/>
Attaching arbitrary key-value pairs to objects

Expand Down
86 changes: 69 additions & 17 deletions doc/manual/pages/map_menu.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,76 @@ title: Map Menu
authors:
- Peter Hoban
- Thomas Schoeps
- Kai Pastor
keywords: Menus
edited: 26 February 2013
edited: 10 January 2016
---

<table><tr><td width="40"> </td><td width="150"><h4>Georeferencing</h4></td><td width="70"><h4> </h4></td><td width="400">
<p>Opens the <a href="georeferencing.md">georeferencing dialog</a>. </p> </td></tr>

<tr><td width="40"> </td><td width="150"><h4>Configure grid...</h4></td><td width="70"><h4> </h4></td><td width="400">
<p>Shows the <a href="grid.md">grid configuration dialog</a>.</p></td></tr>

<tr><td width="40"> </td><td width="150"><h4>Change map scale...</h4></td><td width="70"><h4> </h4></td><td width="400">
<p>Shows a dialog to change the map scale.</p> </td></tr>

<tr><td width="40"> </td><td width="150"><h4>Rotate map...</h4></td><td width="70"><h4> </h4></td><td width="400">
<p>Shows a dialog to rotate the whole map.</p> </td></tr>

<tr><td width="40"> </td><td width="150"><h4>Map notes...</h4></td><td width="70"><h4> </h4></td><td width="400">
<p>Shows a text field where any text can be entered which will be saved in the map file, without appearing on the map itself. This can for example be used to store information about map revisions.</p> </td></tr>

<table>
<tr>
<td width="40"></td>
<td width="150"><b>Georeferencing...</b></td>
<td width="70"></td>
<td width="400">Opens the <a href="georeferencing.md">georeferencing dialog</a>.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/grid.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Configure grid...</b></td>
<td></td>
<td>Shows the <a href="grid.md">grid configuration dialog</a>.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/tool-scale.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Change map scale...</b></td>
<td></td>
<td>Shows a dialog to change the map scale.</td>
</tr>
<tr>
<td><img class="small" src="../mapper-images/tool-rotate.png" width="32" height="32" border="0" alt="" /></td>
<td><b>Rotate map...</b></td>
<td></td>
<td>Shows a dialog to rotate the whole map.</td>
</tr>
<tr>
<td></td>
<td><b>Map notes...</b></td>
<td></td>
<td>Shows a text field for entering additional text which will be saved in the map file, without appearing on the map itself. This can for example be used to store information about map revisions.</td>
</tr>
<tr>
<td></td>
<td><b>Add new part...</b></td>
<td></td>
<td>Opens a dialog for entering the name of a new map part which is to be created.</td>
</tr>
<tr>
<td></td>
<td><b>Rename current part...</b></td>
<td></td>
<td>Opens a dialog for changing the name of the current map part.</td>
</tr>
<tr>
<td></td>
<td><b>Remove current part</b></td>
<td></td>
<td>Removes the current map part and all objects it contains.</td>
</tr>
<tr>
<td></td>
<td><b>Move select objects to</b></td>
<td></td>
<td>Moves the selected objects to another map part.</td>
</tr>
<tr>
<td></td>
<td><b>Merge this part with</b></td>
<td></td>
<td>Moves the current part's objects to another map part, and then removes the current map part.</td>
</tr>
<tr>
<td></td>
<td><b>Merge all parts</b></td>
<td></td>
<td>Moves all other parts' objects to the current part, and then removes all other map parts.</td>
</tr>
</table>

26 changes: 26 additions & 0 deletions doc/manual/pages/map_parts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
title: Map Parts
authors:
- Kai Pastor
keywords: Map parts
edited: 10 January 2016
---

Map parts partition the map in different collections of objects which can be worked on independently.
This can be used to organize the work of different people in a map making team.
Map parts are also used to separate imported objects from existing map content.

Every map object belongs to a particular map part.
Selected objects may be moved to a different map part.
You may also move all objects of the current part to another one,
or merge all other parts into the current one in a single step.
See the [Map menu](map_menu.md) for actions which create and change map parts.

Only a single map part can be the "current" one.
It is the context where all selection, editing and drawing operations take place.
The current map part is displayed and selected in the map part toolbar.
This toolbar is not displayed as long as the map has only one part.

Other than templates, map parts are not drawn sequentially one after the other,
but simultaneously according to the symbols and colors.
All map parts share the map's colors and symbol sets.
2 changes: 1 addition & 1 deletion doc/manual/pages/view_menu.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Note that key F6 starts panning immediately.</td></tr>
<p>The coordinates of the cursor on the map are shown in the position box at the bottom right corner of the program window. Paper coordinates refer to positions on a paper print, from an arbitrary origin. If your map has been <a href="georeferencing.md">georeferenced</a>, additional coordinate systems will be available. Projected coordinates are meters of easting and northing. Latitude &amp; longitude may be expressed in decimal degrees or in degrees, minutes and seconds.</p>
<p>The coordinate system may also be selected by a right-click on the position box at the bottom right corner of your screen which will provide the same choices.<br/><br/></p></td></tr>

<tr><td></td><td><a name="fullscreen"><h4>Toggle Fullscreen</h4></a></td><td><h4>F11</h4></td><td>
<tr><td></td><td><a name="fullscreen"><h4>Toggle fullscreen mode</h4></a></td><td><h4>F11</h4></td><td>
<p>This toggle switches the display to full-screen mode and back.</p></td></tr>

<tr><td><img class="small" src="../mapper-images/window-new.png" width="32" height="32" border="0" alt="" /></td><td><h4>Tag editor</h4></td><td><h4>Ctrl+Shift+6</h4></td><td>
Expand Down
2 changes: 1 addition & 1 deletion oo-mapper-version.pri
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated in CMakeLists.txt, do not edit here.
Mapper_VERSION_MAJOR = 0
Mapper_VERSION_MINOR = 6
Mapper_VERSION_PATCH = 0
Mapper_VERSION_PATCH = 1
5 changes: 3 additions & 2 deletions packaging/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,6 @@ if(Mapper_PACKAGE_QT)
printsupport/cocoaprintersupport
printsupport/cupsprintersupport
printsupport/windowsprintersupport
sqldrivers/qsqlite.dll
CACHE INTERNAL "The plugins which need to be deployed"
)

# Cf. Qt5's qt_de.ts for dependencies - qt_de.ts would not load without them.
Expand Down Expand Up @@ -347,6 +345,9 @@ if(Mapper_PACKAGE_ASSISTANT)
if(APPLE)
set(FIXUP_ASSISTANT "Mapper.app/Contents/MacOS/Assistant")
endif()
list(APPEND MAPPER_QT_PLUGINS
sqldrivers/qsqlite
)

deploy_qt_translations(assistant qt_help)
endif(Mapper_PACKAGE_ASSISTANT)
Expand Down
20 changes: 20 additions & 0 deletions src/core/crs_template.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "crs_template.h"

#include <QStringBuilder>


// From crs_template_implementation.h/.cpp
Expand Down Expand Up @@ -75,6 +76,25 @@ CRSTemplate::~CRSTemplate()
delete param;
}

QString CRSTemplate::coordinatesName(const std::vector<QString>& values) const
{
Q_ASSERT(params.size() == values.size()
|| values.empty());

auto name = coordinates_name;

auto value = begin(values);
auto last_value = end(values);
for (auto key = begin(params), last = end(params);
key != last && value != last_value;
++key, ++value)
{
name.replace(QLatin1String("@") % (*key)->id() % QLatin1String("@"), *value);
}

return name;
}



// ### CRSTemplateRegistry ###
Expand Down

0 comments on commit 0101c68

Please sign in to comment.