Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch release Through [98e0b9d916] Excluding Merge-Ins

This is equivalent to a diff from a10f50f1a5 to 98e0b9d916

2021-06-01
08:39
Add tribute to freetype check-in: 7052f90ea7 user: fifr tags: release
08:33
Always store relative file paths in the document files. check-in: 98e0b9d916 user: fifr tags: release
08:18
GNUmakefile: update arch variable defaulting to i486 (emulator) check-in: 64c32d17c5 user: fifr tags: release
2021-05-31
08:14
Always store relative file paths in the document files. Closed-Leaf check-in: d320c00e3f user: fifr tags: relative-paths
2019-05-28
17:33
Merge release check-in: e5548fe31b user: fifr tags: trunk
17:33
Merge trunk check-in: 0330d27349 user: fifr tags: release
17:32
Add spec file again (it contains custom changes) check-in: a10f50f1a5 user: fifr tags: trunk
17:27
Merge release check-in: e3236fe969 user: fifr tags: trunk
17:21
Remove rpm/*.spec. check-in: 6a2e5fc76c user: fifr tags: trunk

Changes to CMakeLists.txt.
1
2
3
4
5
6
7

8
9
10
11
12
13
14
cmake_policy(SET CMP0048 NEW)

cmake_minimum_required(VERSION 3.0)

set(FOTOKOPIERER_VERSION 0.2)
set(PODOFO_VERSION 0.9.6)
set(OPENCV_VERSION 3.4.0)


project(fotokopierer VERSION ${FOTOKOPIERER_VERSION} LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)




|


>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cmake_policy(SET CMP0048 NEW)

cmake_minimum_required(VERSION 3.0)

set(FOTOKOPIERER_VERSION 0.2.5)
set(PODOFO_VERSION 0.9.6)
set(OPENCV_VERSION 3.4.0)
set(FREETYPE_VERSION 2.9.1)

project(fotokopierer VERSION ${FOTOKOPIERER_VERSION} LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  FOTOKOPIERER_AUTHOR="Frank Fischer"
  FOTOKOPIERER_VERSION="${FOTOKOPIERER_VERSION}"
  PODOFO_VERSION="${PODOFO_VERSION}"
  OPENCV_VERSION="${OPENCV_VERSION}"
  )

if (SAILFISH_FOUND)
  set(OpenCV_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/opencv-${OPENCV_VERSION})
  set(PODOFO_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/podofo-${PODOFO_VERSION})

  include(ExternalProject)

  # configure OpenCV
  set(OpenCV_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/opencv)

  ExternalProject_Add(opencv







|
|







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
  FOTOKOPIERER_AUTHOR="Frank Fischer"
  FOTOKOPIERER_VERSION="${FOTOKOPIERER_VERSION}"
  PODOFO_VERSION="${PODOFO_VERSION}"
  OPENCV_VERSION="${OPENCV_VERSION}"
  )

if (SAILFISH_FOUND)
  set(OpenCV_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/opencv-${OPENCV_VERSION}-${CMAKE_SYSTEM_PROCESSOR})
  set(PODOFO_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/podofo-${PODOFO_VERSION}-${CMAKE_SYSTEM_PROCESSOR})

  include(ExternalProject)

  # configure OpenCV
  set(OpenCV_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/opencv)

  ExternalProject_Add(opencv
91
92
93
94
95
96
97

98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
    -DBUILD_opencv_stitching=OFF
    -DBUILD_opencv_superres=OFF
    -DBUILD_opencv_ts=OFF
    -DBUILD_opencv_video=OFF
    -DBUILD_opencv_videoio=OFF
    -DBUILD_opencv_videostab=OFF
    -DBUILD_opencv_world=OFF

    -DWITH_JASPER=OFF
    -DWITH_OPENEXR=OFF
    -DWITH_WEBP=OFF)

  list(INSERT CMAKE_PREFIX_PATH 0 ${OpenCV_PREFIX})
  find_package(OpenCV QUIET COMPONENTS core imgproc)

  if (NOT OpenCV_FOUND)
    add_custom_target(opencv-3rdparty ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS opencv)
  else()
    add_custom_target(opencv-3rdparty)
  endif ()

  # We must use our own freetype library
  set(FREETYPE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/freetype-2.9.1)
  set(FREETYPE_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/freetype)
  ExternalProject_Add(freetype-3rdparty
    DOWNLOAD_DIR ${PROJECT_SOURCE_DIR}/3rdparty
    URL "https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz"
    URL_HASH SHA256=ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce
    SOURCE_DIR ${FREETYPE_SOURCE_DIR}
    PREFIX ${FREETYPE_PREFIX}







>














|







92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
    -DBUILD_opencv_stitching=OFF
    -DBUILD_opencv_superres=OFF
    -DBUILD_opencv_ts=OFF
    -DBUILD_opencv_video=OFF
    -DBUILD_opencv_videoio=OFF
    -DBUILD_opencv_videostab=OFF
    -DBUILD_opencv_world=OFF
    -DENABLE_PRECOMPILED_HEADERS=OFF
    -DWITH_JASPER=OFF
    -DWITH_OPENEXR=OFF
    -DWITH_WEBP=OFF)

  list(INSERT CMAKE_PREFIX_PATH 0 ${OpenCV_PREFIX})
  find_package(OpenCV QUIET COMPONENTS core imgproc)

  if (NOT OpenCV_FOUND)
    add_custom_target(opencv-3rdparty ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS opencv)
  else()
    add_custom_target(opencv-3rdparty)
  endif ()

  # We must use our own freetype library
  set(FREETYPE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/3rdparty/freetype-${FREETYPE_VERSION}-${CMAKE_SYSTEM_PROCESSOR})
  set(FREETYPE_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/freetype)
  ExternalProject_Add(freetype-3rdparty
    DOWNLOAD_DIR ${PROJECT_SOURCE_DIR}/3rdparty
    URL "https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz"
    URL_HASH SHA256=ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce
    SOURCE_DIR ${FREETYPE_SOURCE_DIR}
    PREFIX ${FREETYPE_PREFIX}
205
206
207
208
209
210
211
212



qt5_use_modules(${TARGET} Core Gui Multimedia Quick)
target_link_libraries(${TARGET} ${SAILFISH_LDFLAGS} ${OpenCV_LIBS} ${PODOFO_LIBRARIES})

install(TARGETS ${TARGET} RUNTIME DESTINATION bin)
# install(DIRECTORY qml DESTINATION share/${TARGET})
# install(DIRECTORY translations DESTINATION share/${TARGET} FILES_MATCHING PATTERN "*.qm")
install(FILES ${TARGET}.desktop DESTINATION share/applications)
install(FILES ${TARGET}.png DESTINATION share/icons/hicolor/86x86/apps)










|
>
>
>
207
208
209
210
211
212
213
214
215
216
217
qt5_use_modules(${TARGET} Core Gui Multimedia Quick)
target_link_libraries(${TARGET} ${SAILFISH_LDFLAGS} ${OpenCV_LIBS} ${PODOFO_LIBRARIES})

install(TARGETS ${TARGET} RUNTIME DESTINATION bin)
# install(DIRECTORY qml DESTINATION share/${TARGET})
# install(DIRECTORY translations DESTINATION share/${TARGET} FILES_MATCHING PATTERN "*.qm")
install(FILES ${TARGET}.desktop DESTINATION share/applications)
install(FILES icons/86x86/${TARGET}.png DESTINATION share/icons/hicolor/86x86/apps)
install(FILES icons/108x108/${TARGET}.png DESTINATION share/icons/hicolor/108x108/apps)
install(FILES icons/128x128/${TARGET}.png DESTINATION share/icons/hicolor/128x128/apps)
install(FILES icons/172x172/${TARGET}.png DESTINATION share/icons/hicolor/172x172/apps)
Changes to GNUmakefile.
1
2



3
4

5



6
7
8
9

10
11
12
13
14
15
16
17
18









19


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

46
47
48


49
50
51
52
53
54
55
target = harbour-fotokopierer




arch := i486
#arch := armv7hl

sfos_version := 3.0.3.9



device := jolla

sdk_dir := $(HOME)/SailfishOS
projects_root := $(HOME)/JollaProjekte


mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
current_dir := $(dir $(mkfile_path))
mer_root_dir := $(subst $(HOME)/JollaProjekte,/home/src1,$(current_dir))

mersdk_target := SailfishOS-$(sfos_version)-$(arch)
mersdk_device := Sailfish OS Emulator $(sfos_version)
mersdk_ssh := ssh -p 2222 -i $(sdk_dir)/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost
mersdk_mb2 := cd $(mer_root_dir) && mb2 -t $(mersdk_target)









mersdk_sb2 := cd $(mer_root_dir)/rpmbuilddir-arm && sb2 -t $(mersdk_target)



TRANSLATIONS = de

.PHONY: all build buildall clean install rpm run
all: compile

reformat:
	clang-format -i --style=file src/*xx

installdeps:
	$(mersdk_ssh) '$(mersdk_mb2) installdeps'

build: reformat lrelease
	$(mersdk_ssh) '$(mersdk_mb2) build'

compile: reformat lrelease
	$(mersdk_ssh) '$(mersdk_sb2) make'

make:
	$(mersdk_ssh) '$(mersdk_mb2) make'

install:
	$(mersdk_ssh) '$(mersdk_mb2) install'

rpm: lrelease
	$(mersdk_ssh) '$(mersdk_mb2) rpm'


deploy:
	$(mersdk_ssh) '$(mersdk_mb2) --device "$(mersdk_device)" deploy --pkcon'



.PHONY: install-jolla copy-jolla run-jolla
rpm-jolla: rpm
	scp RPMS/harbour-fotokopierer*.armv7hl.rpm $(device):

install-jolla:
	scp rpmbuilddir-arm/harbour-fotokopierer $(device):


>
>
>


>
|
>
>
>


<

>



|

<
<

|
>
>
>
>
>
>
>
>
>
|
>
>

|

|






|


|


|

|
|


|


|
>

|
<
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14

15
16
17
18
19
20
21


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

65
66
67
68
69
70
71
72
73
target = harbour-fotokopierer

sdk_dir := $(HOME)/SailfishOS
sfdk := $(sdk_dir)/bin/sfdk

arch := i486
#arch := armv7hl
#arch := aarch64

# Select the latest available target for the given architecture
target := $(shell $(sfdk) tools list | awk -F' ' '/$(arch)/ { print $$2 }' | tail -n1)

device := jolla


projects_root := $(HOME)/JollaProjekte
emu_dir := $(sdk_dir)/vmshare/ssh/private_keys/Sailfish_OS-Emulator-latest

mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
current_dir := $(dir $(mkfile_path))
mer_root_dir := $(current_dir)



mersdk_ssh := ssh -p 2222 -i $(sdk_dir)/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost

ifeq ($(arch),i486)
  build_dir := rpmbuilddir-i386
else
ifeq ($(arch),armv7hl)
  build_dir := rpmbuilddir-arm
else
  build_dir := rpmbuilddir-$(arch)
endif
endif

emu_ssh := ssh -p 2223 -i $(emu_dir)/nemo nemo@localhost
emu_ssh_root := ssh -p 2223 -i $(emu_dir)/root root@localhost

TRANSLATIONS = de sv

.PHONY: all build buildall clean install rpm run deploy-emu
all: compile

reformat:
	clang-format -i --style=file src/*xx

installdeps:
	sf

build: reformat lrelease
	$(sfdk) -c "target=$(target)" build

compile: reformat lrelease
	$(sfdk) -c "target=$(target)" build-shell make -C $(build_dir) -j4

.PHONY: make
make: compile

install:
	$(sfdk) -c "target=$(target)" make-install

rpm: lrelease
	touch rpm/*.yaml
	$(sfdk) -c "target=$(target)" package

deploy-emu: all rpm

	scp -P 2223 -i $(emu_dir)/nemo RPMS/* nemo@localhost:
	$(emu_ssh_root) 'rpm --reinstall /home/nemo/$(target)-*.i486.rpm'

.PHONY: install-jolla copy-jolla run-jolla
rpm-jolla: rpm
	scp RPMS/harbour-fotokopierer*.armv7hl.rpm $(device):

install-jolla:
	scp rpmbuilddir-arm/harbour-fotokopierer $(device):
74
75
76
77
78
79
80




	@printf "    <file>%s</file>\n" $(TRANSLATIONS:%="translations/harbour-fotokopierer-%.qm") >> $@
	@echo "  </qresource>" >> $@
	@echo "</RCC>" >> $@

snapshot_version := $(shell fossil info | awk '/^checkout:/ {print "1%{?dist}.fossil+" substr($$2, 1, 8)}')
snapshot:
	sed -ie 's/^Release: 1%{?dist}.*$$/Release: ${snapshot_version}/' rpm/harbour-fotokopierer.yaml











>
>
>
>
92
93
94
95
96
97
98
99
100
101
102
	@printf "    <file>%s</file>\n" $(TRANSLATIONS:%="translations/harbour-fotokopierer-%.qm") >> $@
	@echo "  </qresource>" >> $@
	@echo "</RCC>" >> $@

snapshot_version := $(shell fossil info | awk '/^checkout:/ {print "1%{?dist}.fossil+" substr($$2, 1, 8)}')
snapshot:
	sed -ie 's/^Release: 1%{?dist}.*$$/Release: ${snapshot_version}/' rpm/harbour-fotokopierer.yaml

clean:
	$(sfdk) build-shell make -C $(build_dir) clean
	rm -rf 3rdparty/*-$(arch)
Changes to README.md.
1
2
3
4
5
6
7
8
9
10




11
12
13
14
15
16
17
# Fotokopierer

## Introduction

Fotokopierer is a document scanning application for [Sailfish OS](https://sailfishos.org) and the Desktop.

## Author

Frank Fischer <frank-fischer@shadow-soft.de>





## Contact

Talk with the developers in [#fotokopierer][IRC] on [Freenode](http://freenode.net)

## License

Licensed under GNU GPLv3










>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Fotokopierer

## Introduction

Fotokopierer is a document scanning application for [Sailfish OS](https://sailfishos.org) and the Desktop.

## Author

Frank Fischer <frank-fischer@shadow-soft.de>

planetos (Icons)

Åke Engelbrektson (Swedish translation)

## Contact

Talk with the developers in [#fotokopierer][IRC] on [Freenode](http://freenode.net)

## License

Licensed under GNU GPLv3
Changes to common.qrc.
1
2
3
4
5
6
7
8







9
10
<RCC>
  <qresource>
	 <file>qml/common/CutImageView.qml</file>
	 <file>qml/common/CornerMarker.qml</file>
	 <file>qml/common/DragDelegate.qml</file>
	 <file>icons/brightness.svg</file>
	 <file>icons/contrast.svg</file>
	 <file>icons/harbour-fotokopierer.svg</file>







  </qresource>
</RCC>








>
>
>
>
>
>
>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<RCC>
  <qresource>
	 <file>qml/common/CutImageView.qml</file>
	 <file>qml/common/CornerMarker.qml</file>
	 <file>qml/common/DragDelegate.qml</file>
	 <file>icons/brightness.svg</file>
	 <file>icons/contrast.svg</file>
	 <file>icons/harbour-fotokopierer.svg</file>
	 <file>icons/icon-m-special.svg</file>
	 <file>icons/icon-m-bw.svg</file>
	 <file>icons/icon-m-color.svg</file>
	 <file>icons/icon-m-ctrl.svg</file>
	 <file>icons/icon-m-gray.svg</file>
	 <file>icons/icon-m-size-auto.svg</file>
	 <file>icons/icon-m-size-max.svg</file>
  </qresource>
</RCC>
Changes to harbour-fotokopierer.desktop.
1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Entry]
Type=Application
X-Nemo-Application-Type=silica-qt5
Icon=harbour-fotokopierer
Exec=harbour-fotokopierer
Name=fotokopierer
# translation example:
# your app name in German locale (de)
#
# Remember to comment out the following line, if you do not want to use
# a different app name in German locale (de).
#Name[de]=fotokopierer





|






1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Entry]
Type=Application
X-Nemo-Application-Type=silica-qt5
Icon=harbour-fotokopierer
Exec=harbour-fotokopierer
Name=Fotokopierer
# translation example:
# your app name in German locale (de)
#
# Remember to comment out the following line, if you do not want to use
# a different app name in German locale (de).
#Name[de]=fotokopierer
Deleted harbour-fotokopierer.png.

cannot compute difference between binary files

Added icons/108x108/harbour-fotokopierer.png.

cannot compute difference between binary files

Added icons/128x128/harbour-fotokopierer.png.

cannot compute difference between binary files

Added icons/172x172/harbour-fotokopierer.png.

cannot compute difference between binary files

Added icons/86x86/harbour-fotokopierer.png.

cannot compute difference between binary files

Changes to icons/harbour-fotokopierer.svg.

cannot compute difference between binary files

Added icons/icon-m-bw.svg.
















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="icon-m-bw.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata19"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs17">
	
	

		
		
		
	</defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview15"
   showgrid="false"
   inkscape:zoom="5.3135169"
   inkscape:cx="50.012399"
   inkscape:cy="20.06409"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />
<rect
   y="0"
   x="0"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-add_3_" />
<rect
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-acknowledge_1_"
   x="0"
   y="0" /><path
   style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 32 7.2402344 A 24.759623 24.759623 0 0 0 17.447266 11.96875 A 24.759623 24.759623 0 0 0 8.453125 24.349609 A 24.759623 24.759623 0 0 0 8.453125 39.650391 A 24.759623 24.759623 0 0 0 17.447266 52.03125 A 24.759623 24.759623 0 0 0 32 56.759766 L 32 53.488281 A 21.487709 21.487709 0 0 1 30.662109 53.421875 A 21.487709 21.487709 0 0 0 32 53.488281 L 32 44.564453 A 12.563853 12.563853 0 0 1 24.615234 42.164062 A 12.563853 12.563853 0 0 1 20.050781 35.882812 A 12.563853 12.563853 0 0 1 20.050781 28.117188 A 12.563853 12.563853 0 0 1 24.615234 21.835938 A 12.563853 12.563853 0 0 1 32 19.435547 L 32 10.511719 A 21.487709 21.487709 0 0 0 30.662109 10.578125 A 21.487709 21.487709 0 0 1 32 10.511719 L 32 7.2402344 z M 29.542969 10.666016 A 21.487709 21.487709 0 0 0 28.496094 10.824219 A 21.487709 21.487709 0 0 1 29.542969 10.666016 z M 27.439453 11.015625 A 21.487709 21.487709 0 0 0 26.386719 11.285156 A 21.487709 21.487709 0 0 1 27.439453 11.015625 z M 25.369141 11.576172 A 21.487709 21.487709 0 0 0 24.345703 11.949219 A 21.487709 21.487709 0 0 1 25.369141 11.576172 z M 23.363281 12.337891 A 21.487709 21.487709 0 0 0 22.375 12.816406 A 21.487709 21.487709 0 0 1 23.363281 12.337891 z M 21.449219 13.294922 A 21.487709 21.487709 0 0 0 20.490234 13.884766 A 21.487709 21.487709 0 0 1 21.449219 13.294922 z M 19.369141 14.615234 L 19.369141 14.617188 A 21.487709 21.487709 0 0 0 18.310547 15.470703 A 21.487709 21.487709 0 0 1 19.369141 14.615234 z M 17.470703 16.185547 A 21.487709 21.487709 0 0 0 16.724609 16.921875 A 21.487709 21.487709 0 0 1 17.470703 16.185547 z M 15.974609 17.705078 A 21.487709 21.487709 0 0 0 15.291016 18.529297 A 21.487709 21.487709 0 0 1 15.974609 17.705078 z M 14.625 19.378906 A 21.487709 21.487709 0 0 0 14.029297 20.263672 A 21.487709 21.487709 0 0 1 14.625 19.378906 z M 13.453125 21.175781 A 21.487709 21.487709 0 0 0 12.953125 22.105469 A 21.487709 21.487709 0 0 1 13.453125 21.175781 z M 12.458984 23.095703 A 21.487709 21.487709 0 0 0 12.072266 24.029297 A 21.487709 21.487709 0 0 1 12.458984 23.095703 z M 11.205078 26.691406 A 21.487709 21.487709 0 0 0 10.955078 27.730469 A 21.487709 21.487709 0 0 1 11.205078 26.691406 z M 10.779297 28.791016 A 21.487709 21.487709 0 0 0 10.632812 29.857422 A 21.487709 21.487709 0 0 1 10.779297 28.791016 z M 10.564453 30.931641 A 21.487709 21.487709 0 0 0 10.527344 32 A 21.487709 21.487709 0 0 1 10.564453 30.931641 z M 10.564453 33.068359 A 21.487709 21.487709 0 0 0 10.632812 34.142578 A 21.487709 21.487709 0 0 1 10.564453 33.068359 z M 10.779297 35.208984 A 21.487709 21.487709 0 0 0 10.955078 36.269531 A 21.487709 21.487709 0 0 1 10.779297 35.208984 z M 11.205078 37.308594 A 21.487709 21.487709 0 0 0 11.564453 38.640625 A 21.487709 21.487709 0 0 1 11.205078 37.308594 z M 12.072266 39.970703 A 21.487709 21.487709 0 0 0 12.458984 40.904297 A 21.487709 21.487709 0 0 1 12.072266 39.970703 z M 12.953125 41.894531 A 21.487709 21.487709 0 0 0 13.453125 42.824219 A 21.487709 21.487709 0 0 1 12.953125 41.894531 z M 14.029297 43.736328 A 21.487709 21.487709 0 0 0 14.625 44.621094 A 21.487709 21.487709 0 0 1 14.029297 43.736328 z M 15.291016 45.470703 A 21.487709 21.487709 0 0 0 15.974609 46.294922 A 21.487709 21.487709 0 0 1 15.291016 45.470703 z M 16.712891 47.064453 A 21.487709 21.487709 0 0 0 17.484375 47.824219 A 21.487709 21.487709 0 0 1 16.712891 47.064453 z M 18.287109 48.509766 A 21.487709 21.487709 0 0 0 19.371094 49.384766 A 21.487709 21.487709 0 0 1 18.287109 48.509766 z M 20.501953 50.123047 A 21.487709 21.487709 0 0 0 21.449219 50.705078 A 21.487709 21.487709 0 0 1 20.501953 50.123047 z M 22.375 51.183594 A 21.487709 21.487709 0 0 0 23.363281 51.662109 A 21.487709 21.487709 0 0 1 22.375 51.183594 z M 24.345703 52.050781 A 21.487709 21.487709 0 0 0 25.369141 52.423828 A 21.487709 21.487709 0 0 1 24.345703 52.050781 z M 26.380859 52.712891 A 21.487709 21.487709 0 0 0 27.445312 52.984375 A 21.487709 21.487709 0 0 1 26.380859 52.712891 z M 28.490234 53.173828 A 21.487709 21.487709 0 0 0 29.544922 53.333984 A 21.487709 21.487709 0 0 1 28.490234 53.173828 z "
   id="path2699-3-2" /><path
   style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 32 7.2402344 L 32 10.511719 L 32 19.435547 A 12.563853 12.563853 0 0 1 39.384766 21.835938 A 12.563853 12.563853 0 0 1 43.949219 28.117188 A 12.563853 12.563853 0 0 1 43.949219 35.882812 A 12.563853 12.563853 0 0 1 39.384766 42.164062 A 12.563853 12.563853 0 0 1 32 44.564453 L 32 53.488281 L 32 56.759766 A 24.759623 24.759623 0 0 0 46.552734 52.03125 A 24.759623 24.759623 0 0 0 46.554688 52.03125 A 24.759623 24.759623 0 0 0 55.548828 39.650391 A 24.759623 24.759623 0 0 0 55.548828 24.349609 A 24.759623 24.759623 0 0 0 46.554688 11.96875 A 24.759623 24.759623 0 0 0 46.552734 11.96875 A 24.759623 24.759623 0 0 0 32 7.2402344 z M 33.337891 10.578125 A 21.487709 21.487709 0 0 1 34.458984 10.666016 A 21.487709 21.487709 0 0 0 33.337891 10.578125 z M 35.5 10.824219 A 21.487709 21.487709 0 0 1 36.560547 11.015625 A 21.487709 21.487709 0 0 0 35.5 10.824219 z M 37.619141 11.287109 A 21.487709 21.487709 0 0 1 38.625 11.574219 A 21.487709 21.487709 0 0 0 37.619141 11.287109 z M 39.679688 11.957031 A 21.487709 21.487709 0 0 1 40.628906 12.335938 A 21.487709 21.487709 0 0 0 39.679688 11.957031 z M 41.626953 12.816406 A 21.487709 21.487709 0 0 1 42.558594 13.300781 A 21.487709 21.487709 0 0 0 41.626953 12.816406 z M 43.5 13.876953 A 21.487709 21.487709 0 0 1 44.630859 14.615234 A 21.487709 21.487709 0 0 0 43.5 13.876953 z M 45.6875 15.466797 A 21.487709 21.487709 0 0 1 46.517578 16.175781 A 21.487709 21.487709 0 0 0 45.6875 15.466797 z M 47.310547 16.958984 A 21.487709 21.487709 0 0 1 48.013672 17.691406 A 21.487709 21.487709 0 0 0 47.310547 16.958984 z M 48.730469 18.554688 A 21.487709 21.487709 0 0 1 49.373047 19.376953 A 21.487709 21.487709 0 0 0 48.730469 18.554688 z M 49.970703 20.263672 A 21.487709 21.487709 0 0 1 50.546875 21.175781 A 21.487709 21.487709 0 0 0 49.970703 20.263672 z M 51.056641 22.125 A 21.487709 21.487709 0 0 1 51.533203 23.076172 A 21.487709 21.487709 0 0 0 51.056641 22.125 z M 51.943359 24.068359 A 21.487709 21.487709 0 0 1 52.435547 25.359375 A 21.487709 21.487709 0 0 0 51.943359 24.068359 z M 52.785156 26.650391 A 21.487709 21.487709 0 0 1 53.050781 27.751953 A 21.487709 21.487709 0 0 0 52.785156 26.650391 z M 53.21875 28.767578 A 21.487709 21.487709 0 0 1 53.367188 29.861328 A 21.487709 21.487709 0 0 0 53.21875 28.767578 z M 53.435547 30.912109 A 21.487709 21.487709 0 0 1 53.474609 32 A 21.487709 21.487709 0 0 0 53.435547 30.912109 z M 53.435547 33.087891 A 21.487709 21.487709 0 0 1 53.367188 34.138672 A 21.487709 21.487709 0 0 0 53.435547 33.087891 z M 53.21875 35.232422 A 21.487709 21.487709 0 0 1 53.050781 36.25 A 21.487709 21.487709 0 0 0 53.21875 35.232422 z M 52.796875 37.308594 A 21.487709 21.487709 0 0 1 52.435547 38.640625 A 21.487709 21.487709 0 0 1 51.943359 39.931641 A 21.487709 21.487709 0 0 0 52.435547 38.640625 A 21.487709 21.487709 0 0 0 52.796875 37.308594 z M 51.533203 40.923828 A 21.487709 21.487709 0 0 1 51.056641 41.875 A 21.487709 21.487709 0 0 0 51.533203 40.923828 z M 50.546875 42.824219 A 21.487709 21.487709 0 0 1 49.970703 43.736328 A 21.487709 21.487709 0 0 0 50.546875 42.824219 z M 49.373047 44.623047 A 21.487709 21.487709 0 0 1 48.730469 45.445312 A 21.487709 21.487709 0 0 0 49.373047 44.623047 z M 48.013672 46.308594 A 21.487709 21.487709 0 0 1 47.322266 47.029297 A 21.487709 21.487709 0 0 0 48.013672 46.308594 z M 46.505859 47.835938 A 21.487709 21.487709 0 0 1 45.714844 48.509766 A 21.487709 21.487709 0 0 0 46.505859 47.835938 z M 44.630859 49.384766 A 21.487709 21.487709 0 0 1 43.5 50.123047 A 21.487709 21.487709 0 0 0 44.630859 49.384766 z M 42.558594 50.699219 A 21.487709 21.487709 0 0 1 41.626953 51.183594 A 21.487709 21.487709 0 0 0 42.558594 50.699219 z M 40.628906 51.664062 A 21.487709 21.487709 0 0 1 39.679688 52.042969 A 21.487709 21.487709 0 0 0 40.628906 51.664062 z M 38.625 52.425781 A 21.487709 21.487709 0 0 1 37.619141 52.712891 A 21.487709 21.487709 0 0 0 38.625 52.425781 z M 36.560547 52.984375 A 21.487709 21.487709 0 0 1 35.5 53.175781 A 21.487709 21.487709 0 0 0 36.560547 52.984375 z M 34.458984 53.333984 A 21.487709 21.487709 0 0 1 33.337891 53.421875 A 21.487709 21.487709 0 0 0 34.458984 53.333984 z "
   id="path2699-5-4-4-6-4" /></svg>
Added icons/icon-m-color.svg.




















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="a-icon-m-col.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata19"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
   id="defs17">
	
	

		
		
		
	</defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview15"
   showgrid="false"
   inkscape:zoom="7.5144477"
   inkscape:cx="28.785212"
   inkscape:cy="31.350712"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />
<rect
   y="0"
   x="0"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-add_3_" />
<rect
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-acknowledge_1_"
   x="0"
   y="0" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#ed008c;fill-opacity:1;stroke:#ed008c;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 42.164061,39.385658 a 12.563853,12.563853 0 0 1 -6.28125,4.564453 l 2.757813,8.486328 1.009766,3.113281 a 24.759622,24.759622 0 0 0 12.380859,-8.996094 l -2.646484,-1.921875 a 21.487708,21.487708 0 0 1 -0.851563,1.056641 21.487709,21.487709 0 0 0 0.851563,-1.056641 z m 5.660157,7.132812 a 21.487708,21.487708 0 0 1 -0.769531,0.779297 21.487709,21.487709 0 0 0 0.769531,-0.779297 z m -1.527344,1.50586 a 21.487708,21.487708 0 0 1 -0.826172,0.685546 21.487709,21.487709 0 0 0 0.826172,-0.685546 z m -1.675781,1.351562 a 21.487708,21.487708 0 0 1 -0.884766,0.595703 21.487709,21.487709 0 0 0 0.884766,-0.595703 z m -1.796875,1.171875 a 21.487708,21.487708 0 0 1 -0.949219,0.509766 21.487709,21.487709 0 0 0 0.949219,-0.509766 z m -1.900391,0.986328 a 21.487708,21.487708 0 0 1 -0.992187,0.410156 21.487709,21.487709 0 0 0 0.992187,-0.410156 z"
   id="path2699" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#69207a;fill-opacity:1;stroke:#69207a;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 44.564452,32.000892 a 12.563853,12.563853 0 0 1 -2.400391,7.384766 l 7.21875,5.246093 2.648438,1.921875 A 24.759623,24.759623 0 0 0 56.759765,32.000892 H 53.48828 a 21.487709,21.487709 0 0 1 -0.06641,1.341797 21.487709,21.487709 0 0 0 0.06641,-1.341797 z m 8.769531,2.457031 a 21.487709,21.487709 0 0 1 -0.158203,1.046875 21.487709,21.487709 0 0 0 0.158203,-1.046875 z m -0.349609,2.103516 a 21.487709,21.487709 0 0 1 -0.271484,1.058594 21.487709,21.487709 0 0 0 0.271484,-1.058594 z m -0.558594,2.064453 a 21.487709,21.487709 0 0 1 -0.382812,1.054688 21.487709,21.487709 0 0 0 0.382812,-1.054688 z m -0.759765,2.001953 a 21.487709,21.487709 0 0 1 -0.492188,1.017578 21.487709,21.487709 0 0 0 0.492188,-1.017578 z m -0.960938,1.921875 a 21.487709,21.487709 0 0 1 -0.578125,0.94336 21.487709,21.487709 0 0 0 0.578125,-0.94336 z"
   id="path2699-5" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#00188e;fill-opacity:1;stroke:#00188e;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 52.031249,17.448158 -2.646484,1.921875 a 21.487709,21.487709 0 0 1 0.738281,1.130859 21.487709,21.487709 0 0 0 -0.738281,-1.130859 l -7.220704,5.246093 a 12.563853,12.563853 0 0 1 2.400391,7.384766 h 8.923828 3.271485 A 24.759623,24.759623 0 0 0 52.031249,17.448158 Z m -1.332031,3.99414 a 21.487709,21.487709 0 0 1 0.484375,0.931641 21.487709,21.487709 0 0 0 -0.484375,-0.931641 z m 0.964843,1.929688 a 21.487709,21.487709 0 0 1 0.378907,0.949218 21.487709,21.487709 0 0 0 -0.378907,-0.949218 z m 0.761719,2.003906 a 21.487709,21.487709 0 0 1 0.28711,1.005859 21.487709,21.487709 0 0 0 -0.28711,-1.005859 z m 0.558594,2.064453 a 21.487709,21.487709 0 0 1 0.191406,1.056641 21.487709,21.487709 0 0 0 -0.191406,-1.056641 z m 0.349609,2.103516 a 21.487709,21.487709 0 0 1 0.08789,1.115234 21.487709,21.487709 0 0 0 -0.08789,-1.115234 z"
   id="path2699-5-4" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#01bcf1;fill-opacity:1;stroke:#01bcf1;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 39.65039,8.4520636 -1.009766,3.1132814 a 21.487709,21.487709 0 0 1 1.291016,0.492188 21.487709,21.487709 0 0 0 -1.291016,-0.492188 l -2.757813,8.486328 a 12.563853,12.563853 0 0 1 6.28125,4.564453 l 7.220704,-5.246093 2.646484,-1.921875 A 24.759623,24.759623 0 0 0 39.65039,8.4520636 Z m 1.273437,4.0156254 a 21.487709,21.487709 0 0 1 0.951172,0.476562 21.487709,21.487709 0 0 0 -0.951172,-0.476562 z m 1.900391,0.986328 a 21.487709,21.487709 0 0 1 0.912109,0.576172 21.487709,21.487709 0 0 0 -0.912109,-0.576172 z m 1.796875,1.171875 a 21.487709,21.487709 0 0 1 0.849609,0.666016 21.487709,21.487709 0 0 0 -0.849609,-0.666016 z m 1.675781,1.351562 a 21.487709,21.487709 0 0 1 0.757813,0.726563 21.487709,21.487709 0 0 0 -0.757813,-0.726563 z m 1.527344,1.50586 a 21.487709,21.487709 0 0 1 0.708984,0.830078 21.487709,21.487709 0 0 0 -0.708984,-0.830078 z"
   id="path2699-5-4-4" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#00b294;fill-opacity:1;stroke:#00b294;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 31.648437,7.2430792 a 24.759623,24.759623 0 0 0 -7.298829,1.2109375 l 1.009766,3.1113283 a 21.487709,21.487709 0 0 1 1.332031,-0.359375 21.487709,21.487709 0 0 0 -1.332031,0.359375 l 2.757813,8.486328 a 12.563853,12.563853 0 0 1 7.765624,0 L 38.640624,11.565345 39.65039,8.4540167 A 24.759623,24.759623 0 0 0 31.648437,7.2430792 Z m 0.65625,3.2714848 a 21.487709,21.487709 0 0 1 0.783203,0.05078 21.487709,21.487709 0 0 0 -1.087891,-0.03906 21.487709,21.487709 0 0 1 0.304688,-0.01172 z m -1.392579,0.05078 a 21.487709,21.487709 0 0 0 -1.050781,0.06836 21.487709,21.487709 0 0 1 1.050781,-0.06836 z m 3.226563,0.06836 a 21.487709,21.487709 0 0 1 1.070312,0.146485 21.487709,21.487709 0 0 0 -1.070312,-0.146485 z m -5.347656,0.146485 a 21.487709,21.487709 0 0 0 -1.060547,0.175781 21.487709,21.487709 0 0 1 1.060547,-0.175781 z m 7.478515,0.175781 a 21.487709,21.487709 0 0 1 1.039063,0.25 21.487709,21.487709 0 0 0 -1.039063,-0.25 z"
   id="path2699-5-4-4-4" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#e91023;fill-opacity:1;stroke:#e91023;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 28.117187,43.950111 -2.757813,8.486328 a 21.487709,21.487709 0 0 0 1.332031,0.359375 21.487709,21.487709 0 0 1 -1.332031,-0.359375 l -1.009766,3.111328 a 24.759623,24.759623 0 0 0 15.300782,0 l -1.009766,-3.111328 -2.757813,-8.486328 a 12.563853,12.563853 0 0 1 -7.765624,0 z m 9.191406,8.845703 a 21.487709,21.487709 0 0 1 -1.039063,0.25 21.487709,21.487709 0 0 0 1.039063,-0.25 z m -9.578125,0.25 a 21.487709,21.487709 0 0 0 1.060547,0.175781 21.487709,21.487709 0 0 1 -1.060547,-0.175781 z m 7.478515,0.175781 a 21.487709,21.487709 0 0 1 -1.070312,0.146485 21.487709,21.487709 0 0 0 1.070312,-0.146485 z m -5.347656,0.146485 a 21.487709,21.487709 0 0 0 1.050781,0.06836 21.487709,21.487709 0 0 1 -1.050781,-0.06836 z m 3.226563,0.06836 a 21.487709,21.487709 0 0 1 -1.087891,0.03906 21.487709,21.487709 0 0 0 1.087891,-0.03906 z"
   id="path2699-6" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#ff8b00;fill-opacity:1;stroke:#ff8b00;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 21.835937,39.385658 -7.220704,5.246093 a 21.487709,21.487709 0 0 0 0.863282,1.070313 21.487709,21.487709 0 0 1 -0.863282,-1.070313 l -2.646484,1.921875 a 24.759623,24.759623 0 0 0 12.380859,8.994141 l 1.009766,-3.111328 2.757813,-8.486328 a 12.563853,12.563853 0 0 1 -6.28125,-4.564453 z m -5.660157,7.130859 a 21.487709,21.487709 0 0 0 0.759766,0.771484 21.487709,21.487709 0 0 1 -0.759766,-0.771484 z m 1.529297,1.509766 a 21.487709,21.487709 0 0 0 0.824219,0.683593 21.487709,21.487709 0 0 1 -0.824219,-0.683593 z m 1.673828,1.349609 a 21.487709,21.487709 0 0 0 0.884766,0.595703 21.487709,21.487709 0 0 1 -0.884766,-0.595703 z m 1.796875,1.171875 a 21.487709,21.487709 0 0 0 0.949219,0.509766 21.487709,21.487709 0 0 1 -0.949219,-0.509766 z m 1.900391,0.986328 a 21.487709,21.487709 0 0 0 0.992187,0.410156 21.487709,21.487709 0 0 1 -0.992187,-0.410156 z"
   id="path2699-5-2" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#fff100;fill-opacity:1;stroke:#fff100;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="m 7.240233,32.000892 a 24.759623,24.759623 0 0 0 4.728516,14.552734 l 2.646484,-1.921875 7.220704,-5.246093 a 12.563853,12.563853 0 0 1 -2.400391,-7.384766 h -8.923828 a 21.487709,21.487709 0 0 0 0.06641,1.337891 21.487709,21.487709 0 0 1 -0.06641,-1.337891 z m 3.425782,2.457031 a 21.487709,21.487709 0 0 0 0.158203,1.046875 21.487709,21.487709 0 0 1 -0.158203,-1.046875 z m 0.349609,2.103516 a 21.487709,21.487709 0 0 0 0.269531,1.052734 21.487709,21.487709 0 0 1 -0.269531,-1.052734 z m 0.560547,2.070312 a 21.487709,21.487709 0 0 0 0.373047,1.023438 21.487709,21.487709 0 0 1 -0.373047,-1.023438 z m 0.761719,2.00586 a 21.487709,21.487709 0 0 0 0.478515,0.988281 21.487709,21.487709 0 0 1 -0.478515,-0.988281 z m 0.957031,1.914062 a 21.487709,21.487709 0 0 0 0.589844,0.958985 21.487709,21.487709 0 0 1 -0.589844,-0.958985 z"
   id="path2699-5-4-9" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#80bb01;fill-opacity:1;stroke:#80bb01;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 11.968749,17.448158 A 24.759623,24.759623 0 0 0 7.240233,32.000892 h 3.271485 8.923828 a 12.563853,12.563853 0 0 1 2.400391,-7.384766 l -7.220704,-5.246093 a 21.487709,21.487709 0 0 0 -0.738281,1.130859 21.487709,21.487709 0 0 1 0.738281,-1.130859 z m 1.332031,3.99414 a 21.487709,21.487709 0 0 0 -0.484375,0.931641 21.487709,21.487709 0 0 1 0.484375,-0.931641 z m -0.964843,1.929688 a 21.487709,21.487709 0 0 0 -0.378907,0.949218 21.487709,21.487709 0 0 1 0.378907,-0.949218 z m -0.761719,2.003906 a 21.487709,21.487709 0 0 0 -0.28711,1.005859 21.487709,21.487709 0 0 1 0.28711,-1.005859 z m -0.558594,2.064453 a 21.487709,21.487709 0 0 0 -0.191406,1.056641 21.487709,21.487709 0 0 1 0.191406,-1.056641 z m -0.349609,2.103516 a 21.487709,21.487709 0 0 0 -0.08789,1.115234 21.487709,21.487709 0 0 1 0.08789,-1.115234 z"
   id="path2699-5-4-4-8" /><path
   inkscape:connector-curvature="0"
   style="opacity:1;fill:#009e49;fill-opacity:1;stroke:#009e49;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 24.349608,8.4540167 A 24.759623,24.759623 0 0 0 11.968749,17.448158 l 2.646484,1.921875 7.220704,5.246093 a 12.563853,12.563853 0 0 1 6.28125,-4.564453 l -2.757813,-8.486328 a 21.487709,21.487709 0 0 0 -1.291016,0.492188 21.487709,21.487709 0 0 1 1.291016,-0.492188 z m -1.273437,4.0136723 a 21.487709,21.487709 0 0 0 -0.951172,0.476562 21.487709,21.487709 0 0 1 0.951172,-0.476562 z m -1.900391,0.986328 a 21.487709,21.487709 0 0 0 -0.912109,0.576172 21.487709,21.487709 0 0 1 0.912109,-0.576172 z m -1.796875,1.171875 a 21.487709,21.487709 0 0 0 -0.849609,0.666016 21.487709,21.487709 0 0 1 0.849609,-0.666016 z m -1.675781,1.351562 a 21.487709,21.487709 0 0 0 -0.757813,0.726563 21.487709,21.487709 0 0 1 0.757813,-0.726563 z m -1.527344,1.50586 a 21.487709,21.487709 0 0 0 -0.708984,0.830078 21.487709,21.487709 0 0 1 0.708984,-0.830078 z"
   id="path2699-5-4-4-4-8" /></svg>
Added icons/icon-m-ctrl.svg.
















































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="icon-m-ctrl.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata15"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs13"><inkscape:path-effect
   effect="spiro"
   id="path-effect884"
   is_visible="true" /><marker
   inkscape:stockid="TriangleInM"
   orient="auto"
   refY="0.0"
   refX="0.0"
   id="TriangleInM"
   style="overflow:visible"
   inkscape:isstock="true"><path
     id="path980"
     d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
     style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
     transform="scale(-0.4)" /></marker><marker
   inkscape:stockid="TriangleOutM"
   orient="auto"
   refY="0.0"
   refX="0.0"
   id="TriangleOutM"
   style="overflow:visible"
   inkscape:isstock="true"><path
     id="path989"
     d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
     style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
     transform="scale(0.4)" /></marker><marker
   inkscape:stockid="TriangleInS"
   orient="auto"
   refY="0.0"
   refX="0.0"
   id="TriangleInS"
   style="overflow:visible"
   inkscape:isstock="true"><path
     id="path983"
     d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
     style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
     transform="scale(-0.2)" /></marker><marker
   inkscape:stockid="Arrow2Send"
   orient="auto"
   refY="0.0"
   refX="0.0"
   id="Arrow2Send"
   style="overflow:visible;"
   inkscape:isstock="true"><path
     id="path877"
     style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
     d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
     transform="scale(0.3) rotate(180) translate(-2.3,0)" /></marker><inkscape:path-effect
   effect="spiro"
   id="path-effect840"
   is_visible="true" /><inkscape:path-effect
   effect="spiro"
   id="path-effect833"
   is_visible="true" />
	
	
	
</defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview11"
   showgrid="false"
   inkscape:zoom="3.6875"
   inkscape:cx="-47.103774"
   inkscape:cy="55.174602"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />
<rect
   y="0"
   x="0"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-battery_1_" />
<rect
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-call-recording-off_1_"
   x="-31.18644"
   y="-8.1355934" /><rect
   y="5.9209433"
   x="9.803196"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-battery_1_-3" /><path
   inkscape:connector-curvature="0"
   id="path1868-5"
   d="M 36.544968,32 A 2.9761507,2.9761507 0 0 1 39.521119,29.023849 2.9761507,2.9761507 0 0 1 42.49727,32 2.9761507,2.9761507 0 0 1 39.521119,34.976151 2.9761507,2.9761507 0 0 1 36.544968,32 Z"
   style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
   style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 18.385198,32 H 45.614802"
   id="path891"
   inkscape:connector-curvature="0" /><path
   inkscape:connector-curvature="0"
   id="path1868-5-2"
   d="M 29.023849,41.661017 A 2.9761507,2.9761507 0 0 1 32,38.684866 2.9761507,2.9761507 0 0 1 34.976151,41.661017 2.9761507,2.9761507 0 0 1 32,44.637169 2.9761507,2.9761507 0 0 1 29.023849,41.661017 Z"
   style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
   style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 18.385198,41.661017 H 45.614802"
   id="path891-1"
   inkscape:connector-curvature="0" /><path
   inkscape:connector-curvature="0"
   id="path1868-5-8"
   d="m 24.544968,22.338983 a 2.9761507,2.9761507 0 0 1 2.976151,-2.976151 2.9761507,2.9761507 0 0 1 2.976151,2.976151 2.9761507,2.9761507 0 0 1 -2.976151,2.976151 2.9761507,2.9761507 0 0 1 -2.976151,-2.976151 z"
   style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
   style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 18.385198,22.338983 H 45.614802"
   id="path891-5"
   inkscape:connector-curvature="0" /><ellipse
   style="opacity:0.6;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   id="path933"
   cx="32"
   cy="32"
   rx="21.887222"
   ry="22.562901" /></svg>
Added icons/icon-m-gray.svg.




































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="icon-m-gray.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata19"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs17">
	
	

		
		
		
	</defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview15"
   showgrid="false"
   inkscape:zoom="7.5144478"
   inkscape:cx="63.030056"
   inkscape:cy="40.199112"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />
<rect
   y="0"
   x="0"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-add_3_"
   transform="matrix(0,1,1,0,0,0)" />
<rect
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-acknowledge_1_"
   x="0"
   y="0"
   transform="matrix(0,1,1,0,0,0)" /><path
   style="opacity:1;fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 31.648438 7.2421875 A 24.759623 24.759623 0 0 0 24.349609 8.453125 L 25.359375 11.564453 A 21.487709 21.487709 0 0 1 26.691406 11.205078 A 21.487709 21.487709 0 0 0 25.359375 11.564453 L 28.117188 20.050781 A 12.563853 12.563853 0 0 1 35.882812 20.050781 L 38.640625 11.564453 L 39.650391 8.453125 A 24.759623 24.759623 0 0 0 31.648438 7.2421875 z M 32.304688 10.513672 A 21.487709 21.487709 0 0 1 33.087891 10.564453 A 21.487709 21.487709 0 0 0 32 10.525391 A 21.487709 21.487709 0 0 1 32.304688 10.513672 z M 30.912109 10.564453 A 21.487709 21.487709 0 0 0 29.861328 10.632812 A 21.487709 21.487709 0 0 1 30.912109 10.564453 z M 34.138672 10.632812 A 21.487709 21.487709 0 0 1 35.208984 10.779297 A 21.487709 21.487709 0 0 0 34.138672 10.632812 z M 28.791016 10.779297 A 21.487709 21.487709 0 0 0 27.730469 10.955078 A 21.487709 21.487709 0 0 1 28.791016 10.779297 z M 36.269531 10.955078 A 21.487709 21.487709 0 0 1 37.308594 11.205078 A 21.487709 21.487709 0 0 0 36.269531 10.955078 z "
   id="path2699-3" /><path
   style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 24.349609 8.453125 A 24.759623 24.759623 0 0 0 11.96875 17.447266 L 14.615234 19.369141 A 21.487709 21.487709 0 0 1 15.478516 18.298828 A 21.487709 21.487709 0 0 0 14.615234 19.369141 L 21.835938 24.615234 A 12.563853 12.563853 0 0 1 28.117188 20.050781 L 25.359375 11.564453 L 24.349609 8.453125 z M 24.068359 12.056641 A 21.487709 21.487709 0 0 0 23.076172 12.466797 A 21.487709 21.487709 0 0 1 24.068359 12.056641 z M 22.125 12.943359 A 21.487709 21.487709 0 0 0 21.175781 13.453125 A 21.487709 21.487709 0 0 1 22.125 12.943359 z M 20.263672 14.029297 A 21.487709 21.487709 0 0 0 19.378906 14.625 A 21.487709 21.487709 0 0 1 20.263672 14.029297 z M 18.529297 15.291016 A 21.487709 21.487709 0 0 0 17.705078 15.974609 A 21.487709 21.487709 0 0 1 18.529297 15.291016 z M 16.935547 16.712891 A 21.487709 21.487709 0 0 0 16.175781 17.484375 A 21.487709 21.487709 0 0 1 16.935547 16.712891 z "
   id="path2699-5-8" /><path
   style="opacity:1;fill:#666666;fill-opacity:1;stroke:#666666;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 11.96875 17.447266 A 24.759623 24.759623 0 0 0 7.2402344 32 L 10.511719 32 A 21.487709 21.487709 0 0 1 10.578125 30.662109 A 21.487709 21.487709 0 0 0 10.511719 32 L 19.435547 32 A 12.563853 12.563853 0 0 1 21.835938 24.615234 L 14.615234 19.369141 L 11.96875 17.447266 z M 13.884766 20.490234 A 21.487709 21.487709 0 0 0 13.294922 21.449219 A 21.487709 21.487709 0 0 1 13.884766 20.490234 z M 12.816406 22.375 A 21.487709 21.487709 0 0 0 12.337891 23.363281 A 21.487709 21.487709 0 0 1 12.816406 22.375 z M 11.949219 24.345703 A 21.487709 21.487709 0 0 0 11.576172 25.369141 A 21.487709 21.487709 0 0 1 11.949219 24.345703 z M 11.285156 26.386719 A 21.487709 21.487709 0 0 0 11.015625 27.439453 A 21.487709 21.487709 0 0 1 11.285156 26.386719 z M 10.824219 28.496094 A 21.487709 21.487709 0 0 0 10.666016 29.542969 A 21.487709 21.487709 0 0 1 10.824219 28.496094 z "
   id="path2699-5-4-7" /><path
   style="opacity:1;fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 7.2402344 32 A 24.759623 24.759623 0 0 0 11.96875 46.552734 L 14.615234 44.630859 A 21.487709 21.487709 0 0 1 13.876953 43.5 A 21.487709 21.487709 0 0 0 14.615234 44.630859 L 21.835938 39.384766 A 12.563853 12.563853 0 0 1 19.435547 32 L 10.511719 32 L 7.2402344 32 z M 10.578125 33.341797 A 21.487709 21.487709 0 0 0 10.666016 34.457031 A 21.487709 21.487709 0 0 1 10.578125 33.341797 z M 10.824219 35.503906 A 21.487709 21.487709 0 0 0 11.015625 36.560547 A 21.487709 21.487709 0 0 1 10.824219 35.503906 z M 11.287109 37.619141 A 21.487709 21.487709 0 0 0 11.574219 38.625 A 21.487709 21.487709 0 0 1 11.287109 37.619141 z M 11.957031 39.679688 A 21.487709 21.487709 0 0 0 12.335938 40.628906 A 21.487709 21.487709 0 0 1 11.957031 39.679688 z M 12.816406 41.626953 A 21.487709 21.487709 0 0 0 13.300781 42.558594 A 21.487709 21.487709 0 0 1 12.816406 41.626953 z "
   id="path2699-5-4-4-6" /><path
   style="opacity:1;fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 21.835938 39.384766 L 14.615234 44.630859 L 11.96875 46.552734 A 24.759623 24.759623 0 0 0 24.349609 55.548828 L 25.359375 52.435547 A 21.487709 21.487709 0 0 1 24.068359 51.943359 A 21.487709 21.487709 0 0 0 25.359375 52.435547 L 28.117188 43.949219 A 12.563853 12.563853 0 0 1 21.835938 39.384766 z M 15.490234 45.714844 A 21.487709 21.487709 0 0 0 16.164062 46.505859 A 21.487709 21.487709 0 0 1 15.490234 45.714844 z M 16.957031 47.308594 A 21.487709 21.487709 0 0 0 17.703125 48.023438 A 21.487709 21.487709 0 0 1 16.957031 47.308594 z M 18.529297 48.708984 A 21.487709 21.487709 0 0 0 19.378906 49.375 A 21.487709 21.487709 0 0 1 18.529297 48.708984 z M 20.263672 49.970703 A 21.487709 21.487709 0 0 0 21.175781 50.546875 A 21.487709 21.487709 0 0 1 20.263672 49.970703 z M 22.125 51.056641 A 21.487709 21.487709 0 0 0 23.076172 51.533203 A 21.487709 21.487709 0 0 1 22.125 51.056641 z "
   id="path2699-5-4-4-4-0" /><path
   style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 39.650391 8.4511719 L 38.640625 11.564453 L 35.882812 20.050781 A 12.563853 12.563853 0 0 1 42.164062 24.615234 L 49.384766 19.369141 A 21.487709 21.487709 0 0 0 48.533203 18.3125 A 21.487709 21.487709 0 0 1 49.384766 19.369141 L 52.03125 17.447266 A 24.759623 24.759623 0 0 0 39.650391 8.4511719 z M 39.931641 12.056641 A 21.487709 21.487709 0 0 1 40.923828 12.466797 A 21.487709 21.487709 0 0 0 39.931641 12.056641 z M 41.875 12.943359 A 21.487709 21.487709 0 0 1 42.824219 13.453125 A 21.487709 21.487709 0 0 0 41.875 12.943359 z M 43.736328 14.029297 A 21.487709 21.487709 0 0 1 44.621094 14.625 A 21.487709 21.487709 0 0 0 43.736328 14.029297 z M 45.470703 15.291016 A 21.487709 21.487709 0 0 1 46.296875 15.976562 A 21.487709 21.487709 0 0 0 45.470703 15.291016 z M 47.054688 16.703125 A 21.487709 21.487709 0 0 1 47.824219 17.482422 A 21.487709 21.487709 0 0 0 47.054688 16.703125 z "
   id="path2699-6-7" /><path
   style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 52.03125 17.447266 L 49.382812 19.369141 L 42.164062 24.615234 A 12.563853 12.563853 0 0 1 44.564453 32 L 53.488281 32 A 21.487709 21.487709 0 0 0 53.421875 30.658203 A 21.487709 21.487709 0 0 1 53.488281 32 L 56.759766 32 A 24.759623 24.759623 0 0 0 52.03125 17.447266 z M 50.126953 20.507812 A 21.487709 21.487709 0 0 1 50.705078 21.451172 A 21.487709 21.487709 0 0 0 50.126953 20.507812 z M 51.173828 22.355469 A 21.487709 21.487709 0 0 1 51.666016 23.373047 A 21.487709 21.487709 0 0 0 51.173828 22.355469 z M 52.042969 24.320312 A 21.487709 21.487709 0 0 1 52.425781 25.375 A 21.487709 21.487709 0 0 0 52.042969 24.320312 z M 52.712891 26.380859 A 21.487709 21.487709 0 0 1 52.984375 27.439453 A 21.487709 21.487709 0 0 0 52.712891 26.380859 z M 53.175781 28.496094 A 21.487709 21.487709 0 0 1 53.333984 29.542969 A 21.487709 21.487709 0 0 0 53.175781 28.496094 z "
   id="path2699-5-2-6" /><path
   style="opacity:1;fill:#e3e4e5;fill-opacity:1;stroke:#e5e5e5;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 44.564453 32 A 12.563853 12.563853 0 0 1 42.164062 39.384766 L 49.384766 44.630859 A 21.487709 21.487709 0 0 0 50.123047 43.5 A 21.487709 21.487709 0 0 1 49.384766 44.630859 L 52.03125 46.552734 A 24.759623 24.759623 0 0 0 56.759766 32 L 53.488281 32 L 44.564453 32 z M 53.421875 33.341797 A 21.487709 21.487709 0 0 1 53.333984 34.457031 A 21.487709 21.487709 0 0 0 53.421875 33.341797 z M 53.175781 35.503906 A 21.487709 21.487709 0 0 1 52.984375 36.560547 A 21.487709 21.487709 0 0 0 53.175781 35.503906 z M 52.712891 37.619141 A 21.487709 21.487709 0 0 1 52.425781 38.625 A 21.487709 21.487709 0 0 0 52.712891 37.619141 z M 52.042969 39.679688 A 21.487709 21.487709 0 0 1 51.664062 40.628906 A 21.487709 21.487709 0 0 0 52.042969 39.679688 z M 51.183594 41.626953 A 21.487709 21.487709 0 0 1 50.699219 42.558594 A 21.487709 21.487709 0 0 0 51.183594 41.626953 z "
   id="path2699-5-4-9-6" /><path
   style="opacity:1;fill:#c8cbcc;fill-opacity:1;stroke:#cccccc;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 42.164062 39.384766 A 12.563853 12.563853 0 0 1 35.882812 43.949219 L 38.640625 52.435547 A 21.487709 21.487709 0 0 0 39.931641 51.943359 A 21.487709 21.487709 0 0 1 38.640625 52.435547 L 39.650391 55.548828 A 24.759623 24.759623 0 0 0 52.03125 46.552734 L 49.384766 44.630859 L 42.164062 39.384766 z M 48.533203 45.6875 A 21.487709 21.487709 0 0 1 47.824219 46.517578 A 21.487709 21.487709 0 0 0 48.533203 45.6875 z M 47.054688 47.296875 A 21.487709 21.487709 0 0 1 46.296875 48.023438 A 21.487709 21.487709 0 0 0 47.054688 47.296875 z M 45.470703 48.708984 A 21.487709 21.487709 0 0 1 44.621094 49.375 A 21.487709 21.487709 0 0 0 45.470703 48.708984 z M 43.736328 49.970703 A 21.487709 21.487709 0 0 1 42.824219 50.546875 A 21.487709 21.487709 0 0 0 43.736328 49.970703 z M 41.875 51.056641 A 21.487709 21.487709 0 0 1 40.923828 51.533203 A 21.487709 21.487709 0 0 0 41.875 51.056641 z "
   id="path2699-5-4-4-8-7" /><path
   style="opacity:1;fill:#acb0b2;fill-opacity:1;stroke:#b2b2b2;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 28.117188 43.949219 L 25.359375 52.435547 A 21.487709 21.487709 0 0 0 26.691406 52.794922 A 21.487709 21.487709 0 0 1 25.359375 52.435547 L 24.349609 55.546875 A 24.759623 24.759623 0 0 0 39.650391 55.546875 L 38.640625 52.435547 L 35.882812 43.949219 A 12.563853 12.563853 0 0 1 28.117188 43.949219 z M 37.308594 52.794922 A 21.487709 21.487709 0 0 1 36.269531 53.044922 A 21.487709 21.487709 0 0 0 37.308594 52.794922 z M 27.730469 53.044922 A 21.487709 21.487709 0 0 0 28.791016 53.220703 A 21.487709 21.487709 0 0 1 27.730469 53.044922 z M 35.208984 53.220703 A 21.487709 21.487709 0 0 1 34.138672 53.367188 A 21.487709 21.487709 0 0 0 35.208984 53.220703 z M 29.861328 53.367188 A 21.487709 21.487709 0 0 0 30.912109 53.435547 A 21.487709 21.487709 0 0 1 29.861328 53.367188 z M 33.087891 53.435547 A 21.487709 21.487709 0 0 1 32 53.474609 A 21.487709 21.487709 0 0 0 33.087891 53.435547 z "
   id="path2699-5-4-4-4-8-0" /></svg>
Added icons/icon-m-size-auto.svg.


























































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="a-icon-m-size-auto.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata13"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs11" /><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview9"
   showgrid="false"
   inkscape:zoom="4"
   inkscape:cx="25.65383"
   inkscape:cy="1.8944402"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />




<path
   style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   id="path859-9"
   transform="scale(-1,1)"
   d="m -22.757216,22.403341 a 13.159282,13.096117 0 0 1 2.621343,14.795011 13.159282,13.096117 0 0 1 -13.073267,7.511625 13.159282,13.096117 0 0 1 -11.563983,-9.656759"
   sodipodi:type="arc"
   sodipodi:start="5.4977871"
   sodipodi:end="2.8797933"
   sodipodi:ry="13.096117"
   sodipodi:rx="13.159282"
   sodipodi:cy="31.663694"
   sodipodi:cx="-32.062233"
   sodipodi:open="true" /><path
   sodipodi:type="inkscape:offset"
   inkscape:radius="0"
   inkscape:original="M -50.111328 -63.154297 C -50.451119 -63.154296 -50.742188 -62.863227 -50.742188 -62.523438 C -50.742188 -61.940941 -50.936526 -56.69922 -57.052734 -56.699219 C -57.392524 -56.699219 -57.683595 -56.408149 -57.683594 -56.068359 C -57.683595 -55.72857 -57.392524 -55.4375 -57.052734 -55.4375 C -50.936527 -55.4375 -50.742188 -50.193823 -50.742188 -49.611328 L -50.742188 -49.5625 C -50.693638 -49.222709 -50.451121 -48.980466 -50.111328 -48.980469 C -49.77154 -48.980469 -49.480469 -49.271537 -49.480469 -49.611328 C -49.480469 -50.242365 -49.286131 -55.4375 -43.169922 -55.4375 C -42.830133 -55.4375 -42.539062 -55.728571 -42.539062 -56.068359 C -42.441983 -56.359608 -42.732763 -56.65039 -43.121094 -56.650391 C -49.237305 -56.650388 -49.431641 -61.892114 -49.431641 -62.474609 L -49.431641 -62.523438 C -49.431641 -62.863227 -49.722996 -63.154299 -50.111328 -63.154297 z M -50.0625 -59.513672 C -49.480006 -58.105974 -48.362719 -56.796195 -46.615234 -56.019531 C -48.459803 -55.194329 -49.480007 -53.834055 -50.0625 -52.523438 C -50.644998 -53.931135 -51.762279 -55.242867 -53.509766 -56.019531 C -51.665194 -56.796191 -50.644995 -58.203055 -50.0625 -59.513672 z "
   style="opacity:0.6;fill:#ffffff;stroke-width:2.16682863;stroke-miterlimit:4;stroke-dasharray:none"
   id="path6-1-6"
   d="m -50.111328,-63.154297 c -0.339791,10e-7 -0.63086,0.29107 -0.63086,0.630859 0,0.582497 -0.194338,5.824218 -6.310546,5.824219 -0.33979,0 -0.630861,0.29107 -0.63086,0.63086 -10e-7,0.339789 0.29107,0.630859 0.63086,0.630859 6.116207,0 6.310546,5.243677 6.310546,5.826172 v 0.04883 c 0.04855,0.339791 0.291067,0.582034 0.63086,0.582031 0.339788,0 0.630859,-0.291068 0.630859,-0.630859 0,-0.631037 0.194338,-5.826172 6.310547,-5.826172 0.339789,0 0.63086,-0.291071 0.63086,-0.630859 0.09708,-0.291249 -0.193701,-0.582031 -0.582032,-0.582032 -6.116211,3e-6 -6.310547,-5.241723 -6.310547,-5.824218 v -0.04883 c 0,-0.339789 -0.291355,-0.630861 -0.679687,-0.630859 z m 0.04883,3.640625 c 0.582494,1.407698 1.699781,2.717477 3.447266,3.494141 -1.844569,0.825202 -2.864773,2.185476 -3.447266,3.496093 -0.582498,-1.407697 -1.699779,-2.719429 -3.447266,-3.496093 1.844572,-0.77666 2.864771,-2.183524 3.447266,-3.494141 z"
   transform="matrix(0.92295592,0,0,0.92305972,89.855807,77.763477)" /><path
   style="opacity:0.6;fill:#ffffff;stroke-width:1.99999976;stroke-miterlimit:4;stroke-dasharray:none"
   id="path6-1-4-2"
   d="m 31.107708,10.194025 c 0,0.732464 -0.244127,7.324636 -7.93413,7.324637 -0.427221,0 -0.793414,0.366231 -0.793414,0.793503 0,0.427269 0.366193,0.7935 0.793414,0.7935 7.690002,0 7.93413,6.592173 7.93413,7.324635 0,0.06105 0,0.06105 0,0.06105 0.06105,0.427272 0.36619,0.732464 0.793417,0.732461 0.427223,0 0.793411,-0.366232 0.793411,-0.793502 0,-0.793503 0.244127,-7.324638 7.934132,-7.324638 0.427222,0 0.793414,-0.366231 0.793414,-0.7935 0.122061,-0.366233 -0.244127,-0.732463 -0.732383,-0.732464 -7.690007,4e-6 -7.934135,-6.592171 -7.934135,-7.324633 v -0.06104 c 0,-0.4272703 -0.366189,-0.7935021 -0.854446,-0.7934995 -0.427224,9e-7 -0.793413,0.3662327 -0.793413,0.7935035 z m 5.1877,8.179178 c -2.319207,1.037656 -3.600875,2.746737 -4.333253,4.394783 -0.732382,-1.77012 -2.136113,-3.418163 -4.333254,-4.394785 2.319209,-0.976618 3.600874,-2.746739 4.333254,-4.394784 0.73238,1.770121 2.136112,3.418164 4.333253,4.394786 z"
   inkscape:connector-curvature="0" /><path
   id="path821-7"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 10.374031,20.872246 5.14e-4,-10.557302 10.562083,-0.0051"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-5"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 53.939567,20.872249 53.939053,10.314947 43.37697,10.309884"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-3"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 10.374031,42.575415 5.14e-4,10.557302 10.562083,0.005"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-5-8"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 53.939567,42.575412 -5.14e-4,10.557302 -10.562083,0.005"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /></svg>
Added icons/icon-m-size-max.svg.


































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="a-icon-m-size-max.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata13"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs11"><inkscape:path-effect
     effect="spiro"
     id="path-effect1053"
     is_visible="true" /><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker2215"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path2213"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker2115"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path2113"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker2009"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path2007"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="DiamondS"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path919"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="SquareS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker1829"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path1827"
       d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="SquareS"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="SquareS"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path910"
       d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="Arrow2Sstart"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="Arrow2Sstart"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path864"
       style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
       transform="scale(0.3) translate(-2.3,0)" /></marker><marker
     inkscape:stockid="Arrow2Lstart"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="Arrow2Lstart"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path852"
       style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
       transform="scale(1.1) translate(1,0)" /></marker><marker
     inkscape:stockid="DiamondSend"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="DiamondSend"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path937"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.2) translate(-6,0)" /></marker><marker
     inkscape:stockid="DiamondM"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker1493"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path1491"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.4)" /></marker><marker
     inkscape:stockid="DiamondM"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="marker1124"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path1122"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.4)" /></marker><marker
     inkscape:stockid="DiamondM"
     orient="auto"
     refY="0.0"
     refX="0.0"
     id="DiamondM"
     style="overflow:visible"
     inkscape:isstock="true"><path
       id="path916"
       d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
       style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
       transform="scale(0.4)" /></marker><marker
     inkscape:stockid="DiamondM"
     orient="auto"
     refY="0"
     refX="0"
     id="DiamondM-7"
     style="overflow:visible"
     inkscape:isstock="true"><path
       inkscape:connector-curvature="0"
       id="path916-5"
       d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000003pt;stroke-opacity:1"
       transform="scale(0.4)" /></marker><marker
     inkscape:stockid="DiamondM"
     orient="auto"
     refY="0"
     refX="0"
     id="marker1124-9"
     style="overflow:visible"
     inkscape:isstock="true"><path
       inkscape:connector-curvature="0"
       id="path1122-6"
       d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000003pt;stroke-opacity:1"
       transform="scale(0.4)" /></marker><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0"
     refX="0"
     id="marker2115-7"
     style="overflow:visible"
     inkscape:isstock="true"><path
       inkscape:connector-curvature="0"
       id="path2113-8"
       d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000003pt;stroke-opacity:1"
       transform="scale(0.2)" /></marker><marker
     inkscape:stockid="DiamondS"
     orient="auto"
     refY="0"
     refX="0"
     id="marker2215-5"
     style="overflow:visible"
     inkscape:isstock="true"><path
       inkscape:connector-curvature="0"
       id="path2213-7"
       d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000003pt;stroke-opacity:1"
       transform="scale(0.2)" /></marker><inkscape:path-effect
     effect="spiro"
     id="path-effect1053-7"
     is_visible="true" /><inkscape:path-effect
     effect="spiro"
     id="path-effect1053-75"
     is_visible="true" /><inkscape:path-effect
     effect="spiro"
     id="path-effect1053-75-6"
     is_visible="true" /><inkscape:path-effect
     effect="spiro"
     id="path-effect1053-2"
     is_visible="true" /></defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview9"
   showgrid="false"
   inkscape:zoom="4"
   inkscape:cx="-5.0916483"
   inkscape:cy="22.018159"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1"
   showguides="false" />




<path
   id="path821-7"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 10.374031,20.872246 5.14e-4,-10.557302 10.562083,-0.0051"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-5"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 53.939567,20.872249 53.939053,10.314947 43.37697,10.309884"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-3"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 10.374031,42.575415 5.14e-4,10.557302 10.562083,0.005"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><path
   id="path821-7-5-8"
   style="opacity:1;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="m 53.939567,42.575412 -5.14e-4,10.557302 -10.562083,0.005"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="ccc" /><ellipse
   style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   id="path859-9"
   cx="-32.26049"
   cy="31.561718"
   rx="13.159282"
   ry="13.096117"
   transform="scale(-1,1)" /><path
   style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;opacity:0.6"
   d="M 41.614309,22.639693 53.143557,11.11044"
   id="path1049"
   inkscape:connector-curvature="0" /><path
   style="opacity:0.6;fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 22.531693,22.639693 11.002445,11.11044"
   id="path1049-7"
   inkscape:connector-curvature="0" /><path
   style="opacity:0.6;fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 41.614309,41.193494 53.143557,52.722747"
   id="path1049-5"
   inkscape:connector-curvature="0" /><path
   style="opacity:0.6;fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
   d="M 22.531693,41.193494 11.002445,52.722747"
   id="path1049-7-9"
   inkscape:connector-curvature="0" /></svg>
Added icons/icon-m-special.svg.














































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="Layer_1"
   x="0px"
   y="0px"
   width="64px"
   height="64px"
   viewBox="0 0 64 64"
   style="enable-background:new 0 0 64 64;"
   xml:space="preserve"
   sodipodi:docname="icon-m-special.svg"
   inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
   id="metadata19"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
   id="defs17">
	
	

		
		
		
	</defs><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1920"
   inkscape:window-height="1055"
   id="namedview15"
   showgrid="false"
   inkscape:zoom="2.6567585"
   inkscape:cx="65.536411"
   inkscape:cy="3.8477871"
   inkscape:window-x="1920"
   inkscape:window-y="0"
   inkscape:window-maximized="1"
   inkscape:current-layer="Layer_1" />
<rect
   y="0"
   x="0"
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-add_3_" />
<rect
   height="64"
   width="64"
   style="opacity:0;fill:#ffffff"
   id="icon-m-acknowledge_1_"
   x="0"
   y="0" /><path
   style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 32 7.2402344 A 24.759623 24.759623 0 0 0 17.447266 11.96875 A 24.759623 24.759623 0 0 0 8.453125 24.349609 A 24.759623 24.759623 0 0 0 8.453125 39.650391 A 24.759623 24.759623 0 0 0 17.447266 52.03125 A 24.759623 24.759623 0 0 0 32 56.759766 L 32 53.488281 A 21.487709 21.487709 0 0 1 30.662109 53.421875 A 21.487709 21.487709 0 0 0 32 53.488281 L 32 44.564453 A 12.563853 12.563853 0 0 1 24.615234 42.164062 A 12.563853 12.563853 0 0 1 20.050781 35.882812 A 12.563853 12.563853 0 0 1 20.050781 28.117188 A 12.563853 12.563853 0 0 1 24.615234 21.835938 A 12.563853 12.563853 0 0 1 32 19.435547 L 32 10.511719 A 21.487709 21.487709 0 0 0 30.662109 10.578125 A 21.487709 21.487709 0 0 1 32 10.511719 L 32 7.2402344 z M 29.542969 10.666016 A 21.487709 21.487709 0 0 0 28.496094 10.824219 A 21.487709 21.487709 0 0 1 29.542969 10.666016 z M 27.439453 11.015625 A 21.487709 21.487709 0 0 0 26.386719 11.285156 A 21.487709 21.487709 0 0 1 27.439453 11.015625 z M 25.369141 11.576172 A 21.487709 21.487709 0 0 0 24.345703 11.949219 A 21.487709 21.487709 0 0 1 25.369141 11.576172 z M 23.363281 12.337891 A 21.487709 21.487709 0 0 0 22.375 12.816406 A 21.487709 21.487709 0 0 1 23.363281 12.337891 z M 21.449219 13.294922 A 21.487709 21.487709 0 0 0 20.490234 13.884766 A 21.487709 21.487709 0 0 1 21.449219 13.294922 z M 19.369141 14.615234 L 19.369141 14.617188 A 21.487709 21.487709 0 0 0 18.310547 15.470703 A 21.487709 21.487709 0 0 1 19.369141 14.615234 z M 17.470703 16.185547 A 21.487709 21.487709 0 0 0 16.724609 16.921875 A 21.487709 21.487709 0 0 1 17.470703 16.185547 z M 15.974609 17.705078 A 21.487709 21.487709 0 0 0 15.291016 18.529297 A 21.487709 21.487709 0 0 1 15.974609 17.705078 z M 14.625 19.378906 A 21.487709 21.487709 0 0 0 14.029297 20.263672 A 21.487709 21.487709 0 0 1 14.625 19.378906 z M 13.453125 21.175781 A 21.487709 21.487709 0 0 0 12.953125 22.105469 A 21.487709 21.487709 0 0 1 13.453125 21.175781 z M 12.458984 23.095703 A 21.487709 21.487709 0 0 0 12.072266 24.029297 A 21.487709 21.487709 0 0 1 12.458984 23.095703 z M 11.205078 26.691406 A 21.487709 21.487709 0 0 0 10.955078 27.730469 A 21.487709 21.487709 0 0 1 11.205078 26.691406 z M 10.779297 28.791016 A 21.487709 21.487709 0 0 0 10.632812 29.857422 A 21.487709 21.487709 0 0 1 10.779297 28.791016 z M 10.564453 30.931641 A 21.487709 21.487709 0 0 0 10.527344 32 A 21.487709 21.487709 0 0 1 10.564453 30.931641 z M 10.564453 33.068359 A 21.487709 21.487709 0 0 0 10.632812 34.142578 A 21.487709 21.487709 0 0 1 10.564453 33.068359 z M 10.779297 35.208984 A 21.487709 21.487709 0 0 0 10.955078 36.269531 A 21.487709 21.487709 0 0 1 10.779297 35.208984 z M 11.205078 37.308594 A 21.487709 21.487709 0 0 0 11.564453 38.640625 A 21.487709 21.487709 0 0 1 11.205078 37.308594 z M 12.072266 39.970703 A 21.487709 21.487709 0 0 0 12.458984 40.904297 A 21.487709 21.487709 0 0 1 12.072266 39.970703 z M 12.953125 41.894531 A 21.487709 21.487709 0 0 0 13.453125 42.824219 A 21.487709 21.487709 0 0 1 12.953125 41.894531 z M 14.029297 43.736328 A 21.487709 21.487709 0 0 0 14.625 44.621094 A 21.487709 21.487709 0 0 1 14.029297 43.736328 z M 15.291016 45.470703 A 21.487709 21.487709 0 0 0 15.974609 46.294922 A 21.487709 21.487709 0 0 1 15.291016 45.470703 z M 16.712891 47.064453 A 21.487709 21.487709 0 0 0 17.484375 47.824219 A 21.487709 21.487709 0 0 1 16.712891 47.064453 z M 18.287109 48.509766 A 21.487709 21.487709 0 0 0 19.371094 49.384766 A 21.487709 21.487709 0 0 1 18.287109 48.509766 z M 20.501953 50.123047 A 21.487709 21.487709 0 0 0 21.449219 50.705078 A 21.487709 21.487709 0 0 1 20.501953 50.123047 z M 22.375 51.183594 A 21.487709 21.487709 0 0 0 23.363281 51.662109 A 21.487709 21.487709 0 0 1 22.375 51.183594 z M 24.345703 52.050781 A 21.487709 21.487709 0 0 0 25.369141 52.423828 A 21.487709 21.487709 0 0 1 24.345703 52.050781 z M 26.380859 52.712891 A 21.487709 21.487709 0 0 0 27.445312 52.984375 A 21.487709 21.487709 0 0 1 26.380859 52.712891 z M 28.490234 53.173828 A 21.487709 21.487709 0 0 0 29.544922 53.333984 A 21.487709 21.487709 0 0 1 28.490234 53.173828 z "
   id="path2699-3-2" /><path
   style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.30754316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   d="M 32 7.2402344 L 32 10.511719 L 32 19.435547 A 12.563853 12.563853 0 0 1 39.384766 21.835938 A 12.563853 12.563853 0 0 1 43.949219 28.117188 A 12.563853 12.563853 0 0 1 43.949219 35.882812 A 12.563853 12.563853 0 0 1 39.384766 42.164062 A 12.563853 12.563853 0 0 1 32 44.564453 L 32 53.488281 L 32 56.759766 A 24.759623 24.759623 0 0 0 46.552734 52.03125 A 24.759623 24.759623 0 0 0 46.554688 52.03125 A 24.759623 24.759623 0 0 0 55.548828 39.650391 A 24.759623 24.759623 0 0 0 55.548828 24.349609 A 24.759623 24.759623 0 0 0 46.554688 11.96875 A 24.759623 24.759623 0 0 0 46.552734 11.96875 A 24.759623 24.759623 0 0 0 32 7.2402344 z M 33.337891 10.578125 A 21.487709 21.487709 0 0 1 34.458984 10.666016 A 21.487709 21.487709 0 0 0 33.337891 10.578125 z M 35.5 10.824219 A 21.487709 21.487709 0 0 1 36.560547 11.015625 A 21.487709 21.487709 0 0 0 35.5 10.824219 z M 37.619141 11.287109 A 21.487709 21.487709 0 0 1 38.625 11.574219 A 21.487709 21.487709 0 0 0 37.619141 11.287109 z M 39.679688 11.957031 A 21.487709 21.487709 0 0 1 40.628906 12.335938 A 21.487709 21.487709 0 0 0 39.679688 11.957031 z M 41.626953 12.816406 A 21.487709 21.487709 0 0 1 42.558594 13.300781 A 21.487709 21.487709 0 0 0 41.626953 12.816406 z M 43.5 13.876953 A 21.487709 21.487709 0 0 1 44.630859 14.615234 A 21.487709 21.487709 0 0 0 43.5 13.876953 z M 45.6875 15.466797 A 21.487709 21.487709 0 0 1 46.517578 16.175781 A 21.487709 21.487709 0 0 0 45.6875 15.466797 z M 47.310547 16.958984 A 21.487709 21.487709 0 0 1 48.013672 17.691406 A 21.487709 21.487709 0 0 0 47.310547 16.958984 z M 48.730469 18.554688 A 21.487709 21.487709 0 0 1 49.373047 19.376953 A 21.487709 21.487709 0 0 0 48.730469 18.554688 z M 49.970703 20.263672 A 21.487709 21.487709 0 0 1 50.546875 21.175781 A 21.487709 21.487709 0 0 0 49.970703 20.263672 z M 51.056641 22.125 A 21.487709 21.487709 0 0 1 51.533203 23.076172 A 21.487709 21.487709 0 0 0 51.056641 22.125 z M 51.943359 24.068359 A 21.487709 21.487709 0 0 1 52.435547 25.359375 A 21.487709 21.487709 0 0 0 51.943359 24.068359 z M 52.785156 26.650391 A 21.487709 21.487709 0 0 1 53.050781 27.751953 A 21.487709 21.487709 0 0 0 52.785156 26.650391 z M 53.21875 28.767578 A 21.487709 21.487709 0 0 1 53.367188 29.861328 A 21.487709 21.487709 0 0 0 53.21875 28.767578 z M 53.435547 30.912109 A 21.487709 21.487709 0 0 1 53.474609 32 A 21.487709 21.487709 0 0 0 53.435547 30.912109 z M 53.435547 33.087891 A 21.487709 21.487709 0 0 1 53.367188 34.138672 A 21.487709 21.487709 0 0 0 53.435547 33.087891 z M 53.21875 35.232422 A 21.487709 21.487709 0 0 1 53.050781 36.25 A 21.487709 21.487709 0 0 0 53.21875 35.232422 z M 52.796875 37.308594 A 21.487709 21.487709 0 0 1 52.435547 38.640625 A 21.487709 21.487709 0 0 1 51.943359 39.931641 A 21.487709 21.487709 0 0 0 52.435547 38.640625 A 21.487709 21.487709 0 0 0 52.796875 37.308594 z M 51.533203 40.923828 A 21.487709 21.487709 0 0 1 51.056641 41.875 A 21.487709 21.487709 0 0 0 51.533203 40.923828 z M 50.546875 42.824219 A 21.487709 21.487709 0 0 1 49.970703 43.736328 A 21.487709 21.487709 0 0 0 50.546875 42.824219 z M 49.373047 44.623047 A 21.487709 21.487709 0 0 1 48.730469 45.445312 A 21.487709 21.487709 0 0 0 49.373047 44.623047 z M 48.013672 46.308594 A 21.487709 21.487709 0 0 1 47.322266 47.029297 A 21.487709 21.487709 0 0 0 48.013672 46.308594 z M 46.505859 47.835938 A 21.487709 21.487709 0 0 1 45.714844 48.509766 A 21.487709 21.487709 0 0 0 46.505859 47.835938 z M 44.630859 49.384766 A 21.487709 21.487709 0 0 1 43.5 50.123047 A 21.487709 21.487709 0 0 0 44.630859 49.384766 z M 42.558594 50.699219 A 21.487709 21.487709 0 0 1 41.626953 51.183594 A 21.487709 21.487709 0 0 0 42.558594 50.699219 z M 40.628906 51.664062 A 21.487709 21.487709 0 0 1 39.679688 52.042969 A 21.487709 21.487709 0 0 0 40.628906 51.664062 z M 38.625 52.425781 A 21.487709 21.487709 0 0 1 37.619141 52.712891 A 21.487709 21.487709 0 0 0 38.625 52.425781 z M 36.560547 52.984375 A 21.487709 21.487709 0 0 1 35.5 53.175781 A 21.487709 21.487709 0 0 0 36.560547 52.984375 z M 34.458984 53.333984 A 21.487709 21.487709 0 0 1 33.337891 53.421875 A 21.487709 21.487709 0 0 0 34.458984 53.333984 z "
   id="path2699-5-4-4-6-4" /><path
   style="opacity:1;fill:#ff0000;stroke-width:1.99999964;stroke-miterlimit:4;stroke-dasharray:none"
   id="path6-1-4-2"
   d="m 23.618358,12.449201 c 0.732464,0 7.324635,0.24412 7.324638,7.934132 0,0.427219 0.366237,0.793413 0.793501,0.793413 0.427272,0 0.7935,-0.366198 0.7935,-0.793413 0,-7.690005 6.592173,-7.934132 7.324637,-7.934132 h 0.06104 c 0.427272,-0.06104 0.732461,-0.366198 0.732461,-0.793417 0,-0.427223 -0.366236,-0.79341 -0.793504,-0.79341 -0.7935,0 -7.324637,-0.24412 -7.324637,-7.934135 0,-0.427223 -0.366236,-0.793414 -0.7935,-0.793414 -0.366236,-0.122078 -0.732465,0.24412 -0.732465,0.732386 4e-6,7.690008 -6.59217,7.934135 -7.324632,7.934135 h -0.06104 c -0.42727,0 -0.793502,0.366199 -0.793499,0.854445 1e-6,0.427223 0.366232,0.793414 0.793503,0.793414 z"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="csssscssscsssccc" /><path
   style="opacity:1;fill:#0000ff;stroke-width:1.99999964;stroke-miterlimit:4;stroke-dasharray:none"
   id="path6-1-4-2-5"
   d="m 40.827533,49.549865 c 0.732465,0 7.324638,0.244119 7.324641,7.934131 0,0.427219 0.366237,0.793415 0.793501,0.793415 0.427272,0 0.7935,-0.366199 0.7935,-0.793415 0,-7.690004 6.592173,-7.934131 7.324638,-7.934131 h 0.06104 c 0.427272,-0.06104 0.732461,-0.366199 0.732461,-0.793418 0,-0.427222 -0.366236,-0.793409 -0.793504,-0.793409 -0.7935,0 -7.324637,-0.24412 -7.324637,-7.934136 0,-0.427222 -0.366237,-0.793413 -0.793501,-0.793413 -0.366236,-0.122079 -0.732465,0.24412 -0.732465,0.732385 4e-6,7.690008 -6.592172,7.934136 -7.324633,7.934136 h -0.06104 c -0.427271,0 -0.793504,0.366198 -0.7935,0.854445 0,0.427222 0.366236,0.793413 0.793504,0.793413 z"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="csssscssscsssccc" /><path
   style="opacity:1;fill:#008000;stroke-width:1.99999964;stroke-miterlimit:4;stroke-dasharray:none"
   id="path6-1-4-2-9"
   d="m 4.3975708,44.75553 c 0.7324641,0 7.3246352,0.24412 7.3246382,7.934131 0,0.427219 0.366237,0.793414 0.793501,0.793414 0.427272,0 0.7935,-0.366199 0.7935,-0.793414 0,-7.690004 6.592172,-7.934131 7.324636,-7.934131 h 0.06104 c 0.427272,-0.06104 0.732461,-0.366198 0.732461,-0.793417 0,-0.427223 -0.366236,-0.79341 -0.793504,-0.79341 -0.793501,0 -7.324636,-0.24412 -7.324636,-7.934135 0,-0.427223 -0.366236,-0.793414 -0.793501,-0.793414 -0.366236,-0.122079 -0.732465,0.24412 -0.732465,0.732386 4e-6,7.690008 -6.5921713,7.934135 -7.3246327,7.934135 h -0.061039 c -0.4272699,0 -0.7935015,0.366198 -0.7934989,0.854445 8e-7,0.427223 0.3662324,0.793414 0.7935035,0.793414 z"
   inkscape:connector-curvature="0"
   sodipodi:nodetypes="csssscssscsssccc" /></svg>
Changes to qml/sfos/pages/AboutPage.qml.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019, 2020 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
            PageHeader {
                title: qsTr("About %1").arg(Fotokopierer.ApplicationName)
            }

            Image {
                fillMode: Image.PreserveAspectFit
                source: Qt.resolvedUrl("/icons/harbour-fotokopierer.svg")
                width: 2/3 * parent.width

                anchors.horizontalCenter: parent.horizontalCenter
            }

            Label {
                id: apptitle

                width: parent.width







|
>







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
            PageHeader {
                title: qsTr("About %1").arg(Fotokopierer.ApplicationName)
            }

            Image {
                fillMode: Image.PreserveAspectFit
                source: Qt.resolvedUrl("/icons/harbour-fotokopierer.svg")
                width: Math.min(2/3 * parent.width, 2/3 * parent.height)
                height: width
                anchors.horizontalCenter: parent.horizontalCenter
            }

            Label {
                id: apptitle

                width: parent.width
59
60
61
62
63
64
65



































66
67
68
69
70
71
72

                horizontalAlignment: Text.AlignHCenter
                wrapMode: Text.WordWrap

                text: qsTr("A camera scanning application for SailfishOS by %1")
                    .arg(Fotokopierer.Author)
            }




































            Separator {
                width: parent.width
                horizontalAlignment: Qt.AlignHCenter
            }

            Label {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

                horizontalAlignment: Text.AlignHCenter
                wrapMode: Text.WordWrap

                text: qsTr("A camera scanning application for SailfishOS by %1")
                    .arg(Fotokopierer.Author)
            }

            Label {
                width: parent.width

                anchors.topMargin: Theme.fontSizeLarge
                horizontalAlignment: Text.AlignHCenter
                wrapMode: Text.WordWrap

                text: (qsTr("Icons by %1").arg("planetos"))
            }

            Separator {
                width: parent.width
                horizontalAlignment: Qt.AlignHCenter
            }

            Label {
                width: parent.width

                horizontalAlignment: Text.AlignHCenter
                anchors.topMargin: Theme.fontSizeLarge
                font.pixelSize: Theme.fontSizeLarge

                text: "Translations"
            }

            Label {
                width: parent.width

                anchors.topMargin: Theme.fontSizeLarge
                horizontalAlignment: Text.AlignHCenter
                wrapMode: Text.WordWrap

                text: "Åke Engelbrektson (%1)".arg(qsTr("Swedish"))
            }

            Separator {
                width: parent.width
                horizontalAlignment: Qt.AlignHCenter
            }

            Label {
Deleted qml/sfos/pages/CameraPage.qml.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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  <http://www.gnu.org/licenses/>
 */

import QtQuick 2.0
import QtQuick.Layouts 1.0
import QtMultimedia 5.6
import Sailfish.Silica 1.0
import Fotokopierer 1.0

Page {
    id: page

    property Page destination

    signal addPage()

    CutPage { id: cutpage }

    ColorizePage {
        id: colpage

        acceptDestination: destination
        acceptDestinationAction: PageStackAction.Pop

        onAccepted: addPage()
    }

    PageHeader {
        id: header
        title: qsTr("New Picture")
    }

    Camera {
        id: camera

        viewfinder {
            resolution: Qt.size(640, 480)
        }

        imageCapture {
            resolution: Qt.size(4000, 3000)
            onImageCaptured: {
                //photoPreview.source = preview
                console.log("image captured: " + preview)
            }
            onImageSaved: {
                console.log("save image: " + path)
                Scanner.loadFile(path)
                pageStack.push(cutpage)
                pageStack.pushAttached(colpage)
            }
        }

        focus {
            focusMode: Camera.FocusContinuous
            focusPointMode: Camera.FocusPointCenter
        }

        flash.mode: Camera.FlashOff

        imageProcessing {
            sharpeningLevel: 1
        }

        exposure {
            exposureCompensation: -1.0
            exposureMode: Camera.ExposurePortrait
        }
    }

    Rectangle {
        anchors.top: header.bottom
        anchors.bottom: buttons.top
        anchors.left: parent.left
        anchors.right: parent.right

        VideoOutput {
            anchors.fill: parent

            fillMode: VideoOutput.Stretch

            focus: visible
            source: camera
        }
    }

    DockedPanel {
        id: buttons
        open: true

        width: parent.width
        height: Theme.iconSizeLarge
        dock: Dock.Bottom

        Row {
            anchors.fill: parent

            IconButton {
                width: parent.width / 3
                icon.source:
                camera.flash.mode == Camera.FlashOff ?
                    "image://theme/icon-camera-flash-off" :
                    camera.flash.mode == Camera.FlashAuto ?
                    "image://theme/icon-camera-flash-automatic" :
                    "image://theme/icon-camera-flash-on"
                onClicked: {
                    if (camera.flash.mode == Camera.FlashOff) {
                        camera.flash.mode = Camera.FlashOn
                    } else if (camera.flash.mode == Camera.FlashOn) {
                        camera.flash.mode = Camera.FlashAuto
                    } else {
                        camera.flash.mode = Camera.FlashOff
                    }
                }
            }

            IconButton {
                width: parent.width / 3
                icon.source: "image://theme/icon-camera-shutter-release"
                onClicked: {
                    camera.imageCapture.capture()
                }
            }
        }
    }
}
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































































































































































































































































Changes to qml/sfos/pages/ColorizePage.qml.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018-2020 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
58
59
60
61
62
63
64
65


66

67
68
69
70


71

72
73
74
75



76
77
78
79
80


81

82
83
84
85


86
87
88
89
90
91
92
93
        width: parent.width
        height: Theme.iconSizeLarge
        dock: Dock.Bottom

        RowLayout {
            id: buttonRow
            anchors { left: parent.left; right: parent.right }
            Button {


                text: "B/W"

                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.BlackAndWhite }
            }
            Button {


                text: "Gray"

                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.Gray }
            }
            Button {



                text: "Color"
                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.FullColor }
            }
            Button {


                text: "Magic"

                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.Colored }
            }
            Button {


                text: "Ctrl"
                Layout.fillWidth: true
                onClicked: { sliders.open = !sliders.open; buttons.open = !buttons.open }
            }
        }
    }

    DockedPanel {







|
>
>
|
>



|
>
>
|
>



|
>
>
>
|



|
>
>
|
>



|
>
>
|







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
        width: parent.width
        height: Theme.iconSizeLarge
        dock: Dock.Bottom

        RowLayout {
            id: buttonRow
            anchors { left: parent.left; right: parent.right }
            IconButton {
                icon.source: Qt.resolvedUrl("/icons/icon-m-bw.svg")
                icon.width: Theme.iconSizeMedium
                icon.height: Theme.iconSizeMedium
                icon.color: undefined
                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.BlackAndWhite }
            }
            IconButton {
                icon.source: Qt.resolvedUrl("/icons/icon-m-gray.svg")
                icon.width: Theme.iconSizeMedium
                icon.height: Theme.iconSizeMedium
                icon.color: undefined
                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.Gray }
            }
            IconButton {
                icon.source: Qt.resolvedUrl("/icons/icon-m-color.svg")
                icon.width: Theme.iconSizeMedium
                icon.height: Theme.iconSizeMedium
                icon.color: undefined
                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.FullColor }
            }
            IconButton {
                icon.source: Qt.resolvedUrl("/icons/icon-m-special.svg")
                icon.width: Theme.iconSizeMedium
                icon.height: Theme.iconSizeMedium
                icon.color: undefined
                Layout.fillWidth: true
                onClicked: { image.filter.colorMode = ColorizeFilter.Colored }
            }
            IconButton {
                icon.source: Qt.resolvedUrl("/icons/icon-m-ctrl.svg")
                icon.width: Theme.iconSizeMedium
                icon.height: Theme.iconSizeMedium
                Layout.fillWidth: true
                onClicked: { sliders.open = !sliders.open; buttons.open = !buttons.open }
            }
        }
    }

    DockedPanel {
Changes to qml/sfos/pages/CutPage.qml.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018-2020 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

                ListElement {
                    icon: "image://theme/icon-m-rotate-right"
                    name: "right"
                }

                ListElement {
                    // icon: "image://theme/icon-m-crop"
                    text: "auto"
                    name: "auto"
                }

                ListElement {
                    // icon: "image://theme/icon-m-display"
                    text: "max"
                    name: "all"
                }

                property var actions : {
                    "left": function () { cutview.rotateLeft() },
                    "right": function () { cutview.rotateRight() },
                    "auto": function () { cutview.selectAuto() },







|
<




|
<







74
75
76
77
78
79
80
81

82
83
84
85
86

87
88
89
90
91
92
93

                ListElement {
                    icon: "image://theme/icon-m-rotate-right"
                    name: "right"
                }

                ListElement {
                    icon: "/icons/icon-m-size-auto.svg"

                    name: "auto"
                }

                ListElement {
                    icon: "/icons/icon-m-size-max.svg"

                    name: "all"
                }

                property var actions : {
                    "left": function () { cutview.rotateLeft() },
                    "right": function () { cutview.rotateRight() },
                    "auto": function () { cutview.selectAuto() },
112
113
114
115
116
117
118
119


120
121
122
123
124
125
                    text: model.text || ""
                    onClicked: listModel.actions[name]()
                }

                IconButton {
                    visible: model.icon ? true : false
                    anchors.fill: parent
                    icon.source: model.icon || ""


                    onClicked: listModel.actions[name]()
                }
            }
        }
    }
}







|
>
>






110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
                    text: model.text || ""
                    onClicked: listModel.actions[name]()
                }

                IconButton {
                    visible: model.icon ? true : false
                    anchors.fill: parent
                    icon.source: Qt.resolvedUrl(model.icon) || ""
                    icon.width: Theme.iconSizeMedium
                    icon.height: Theme.iconSizeMedium
                    onClicked: listModel.actions[name]()
                }
            }
        }
    }
}
Changes to qml/sfos/pages/NewImagePage.qml.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26


27
28
29
30
31
32
33
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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  <http://www.gnu.org/licenses/>
 */


import QtQuick 2.0
import QtQuick.Layouts 1.0
import QtMultimedia 5.6
import Sailfish.Silica 1.0
import Sailfish.Pickers 1.0
import Fotokopierer 1.0

Page {
    id: page



    property var acceptDestination
    property var acceptDestinationAction
    property Page acceptDestinationInstance
    property Page acceptDestinationReplaceTarget

    property bool _haveResolution: false

|















>









>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
 * Copyright (c) 2018-2021 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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  <http://www.gnu.org/licenses/>
 */

import Nemo.Configuration 1.0
import QtQuick 2.0
import QtQuick.Layouts 1.0
import QtMultimedia 5.6
import Sailfish.Silica 1.0
import Sailfish.Pickers 1.0
import Fotokopierer 1.0

Page {
    id: page

    allowedOrientations: Orientation.Portrait

    property var acceptDestination
    property var acceptDestinationAction
    property Page acceptDestinationInstance
    property Page acceptDestinationReplaceTarget

    property bool _haveResolution: false
63
64
65
66
67
68
69







70
71
72
73
74
75
76
            return Theme.highlightColor;
        } else if (camera.lockStatus == Camera.Searching) {
            return Theme.secondaryColor;
        } else {
            return Theme.primaryColor;
        }
    }








    Component {
        id: picker
        ImagePickerPage {
            id: picker

            // Note that this property might become unsupported in future







>
>
>
>
>
>
>







66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
            return Theme.highlightColor;
        } else if (camera.lockStatus == Camera.Searching) {
            return Theme.secondaryColor;
        } else {
            return Theme.primaryColor;
        }
    }

    // from harbour-advanced-camera
    function strToSize(siz) {
        var w = parseInt(siz.substring(0, siz.indexOf("x")))
        var h = parseInt(siz.substring(siz.indexOf("x") + 1))
        return Qt.size(w, h)
    }

    Component {
        id: picker
        ImagePickerPage {
            id: picker

            // Note that this property might become unsupported in future
102
103
104
105
106
107
108









109
110
111
112
113
114
115
116




117
118
119


120
121
122
123
124
125
126
        }
    }

    PageHeader {
        id: header
        title: qsTr("New Picture")
    }










    Camera {
        id: camera

        cameraState: Camera.UnloadedState

        viewfinder {
            resolution: Qt.size(640, 480)




        }

        imageCapture {


            onImageCaptured: {
                //photoPreview.source = preview
                console.log("image captured: " + preview)
            }
            onImageSaved: {
                console.log("save image: " + path)








>
>
>
>
>
>
>
>
>







|
>
>
>
>



>
>







112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
        }
    }

    PageHeader {
        id: header
        title: qsTr("New Picture")
    }

    ConfigurationGroup {
        id: jollaCameraSettings
        path: "/apps/jolla-camera/primary/image"

        property string viewfinderResolution
        property string viewfinderResolution_16_9
        property string viewfinderResolution_4_3
    }

    Camera {
        id: camera

        cameraState: Camera.UnloadedState

        viewfinder {
            //resolution: Qt.size(640, 480)
            onResolutionChanged: {
                console.log("vfres: ", viewfinder.resolution)
                console.log("vfressup: ", camera.supportedViewfinderResolutions())
            }
        }

        imageCapture {
            resolution: Qt.size(640, 480)

            onImageCaptured: {
                //photoPreview.source = preview
                console.log("image captured: " + preview)
            }
            onImageSaved: {
                console.log("save image: " + path)

151
152
153
154
155
156
157
158
159
160








161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
            focusPointMode: Camera.FocusPointAuto
        }

        metaData.orientation: orientation

        onCameraStatusChanged: {
            if (cameraStatus == Camera.ActiveStatus && !_haveResolution) {
                var res = Fotokopierer.defaultResolution(imageCapture)
                if (res.width > 0) {
                    imageCapture.resolution = res








                    console.log("set resolution: " + res)
                }
                _haveResolution = true
            }
        }
    }

    Item {
        id: viewArea

        anchors.top: header.bottom
        anchors.bottom: buttons.top
        anchors.horizontalCenter: parent.horizontalCenter
        width: parent.width - 2 * Theme.iconSizeSmall

        VideoOutput {
            anchors.fill: parent

            visible: camera.cameraStatus == Camera.ActiveStatus && _haveResolution
            fillMode: VideoOutput.Stretch
            orientation: camera.orientation
            focus: visible
            source: camera
        }

        Rectangle {
            id: focusCircle
            visible: camera.cameraStatus == Camera.ActiveStatus







|

|
>
>
>
>
>
>
>
>
|


















|
|







176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
            focusPointMode: Camera.FocusPointAuto
        }

        metaData.orientation: orientation

        onCameraStatusChanged: {
            if (cameraStatus == Camera.ActiveStatus && !_haveResolution) {
                var res = Fotokopierer.defaultResolution(imageCapture, 16, 9)
                if (res.width > 0) {
                    imageCapture.setResolution(res)
                    if (jollaCameraSettings.viewfinderResolution_16_9) {
                        viewfinder.resolution = strToSize(jollaCameraSettings.viewfinderResolution_16_9)
                    } else if (jollaCameraSettings.viewfinderResolution) {
                        viewfinder.resolution = strToSize(jollaCameraSettings.viewfinderResolution)
                    } else {
                        viewfinder.resolution = Qt.size(Screen.height, Screen.width)
                    }
                } else {
                    console.log("Found no resolution: " + res)
                }
                _haveResolution = true
            }
        }
    }

    Item {
        id: viewArea

        anchors.top: header.bottom
        anchors.bottom: buttons.top
        anchors.horizontalCenter: parent.horizontalCenter
        width: parent.width - 2 * Theme.iconSizeSmall

        VideoOutput {
            anchors.fill: parent

            visible: camera.cameraStatus == Camera.ActiveStatus && _haveResolution
            fillMode: VideoOutput.PreserveAspectCrop
            orientation: 0
            focus: visible
            source: camera
        }

        Rectangle {
            id: focusCircle
            visible: camera.cameraStatus == Camera.ActiveStatus
Changes to rpm/harbour-fotokopierer.changes.
1
2
3
4
5
6
7
8
9
10

















11



12



13
14
15
16
17
18
19
# Rename this file as sample.changes to include changelog
# entries in your RPM file.
#
# Add new changelog entries following the format below.
# Add newest entries to the top of the list.
# Separate entries from eachother with a blank line.

# * date Author's Name <author's email> version-release
# - Summary of changes


















* Tue May 28 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-2



- Fix position of zoom




* Mon May 27 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-2
- Update translation

* Mon May 27 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-1
- Selection is rotated when the image is rotated
- Add mode for using full colors










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>

>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Rename this file as sample.changes to include changelog
# entries in your RPM file.
#
# Add new changelog entries following the format below.
# Add newest entries to the top of the list.
# Separate entries from eachother with a blank line.

# * date Author's Name <author's email> version-release
# - Summary of changes

* Mon May 31 2021 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.5-1
- fix some camera issues on Xperia 10 II
- first build for aarch64

* Tue Apr 21 2020 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.4-1
- New icons

* Sun Apr 19 2020 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.3-2
- Fix German translation file

* Sun Apr 19 2020 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.3-1
- Add Swedish translation

* Sat Apr 18 2020 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.2-1
- Fix wrong resolution and orientation in camera preview
- Add new icons by Tobias Planitzer

* Tue May 28 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.1-2
- Fix version number

* Tue May 28 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2.1-1
- Fix position of zoom

* Mon May 27 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-3
- Build against SailfishOS 3.0.2.8

* Mon May 27 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-2
- Update translation

* Mon May 27 2019 Frank Fischer <frank-fischer@shadow-soft.de> 0.2-1
- Selection is rotated when the image is rotated
- Add mode for using full colors
Changes to rpm/harbour-fotokopierer.spec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 
# Do NOT Edit the Auto-generated Part!
# Generated by: spectacle version 0.27
# 

Name:       harbour-fotokopierer

# >> macros
# << macros

Summary:    Document Scanner
Version:    0.2
Release:    2%{?dist}
Group:      Qt/Qt
License:    GPLv3+
URL:        https://fifr.spdns.de/fossils/harbour-fotokopierer
Source0:    %{name}-%{version}.tar.bz2
Source100:  harbour-fotokopierer.yaml
Requires:   sailfishsilica-qt5 >= 0.10.9
BuildRequires:  pkgconfig(sailfishapp) >= 1.0.2


|








|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 
# Do NOT Edit the Auto-generated Part!
# Generated by: spectacle version 0.32
# 

Name:       harbour-fotokopierer

# >> macros
# << macros

Summary:    Document Scanner
Version:    0.2.5
Release:    1%{?dist}
Group:      Qt/Qt
License:    GPLv3+
URL:        https://fifr.spdns.de/fossils/harbour-fotokopierer
Source0:    %{name}-%{version}.tar.bz2
Source100:  harbour-fotokopierer.yaml
Requires:   sailfishsilica-qt5 >= 0.10.9
BuildRequires:  pkgconfig(sailfishapp) >= 1.0.2
80
81
82
83
84
85
86
87
88
89
  --dir %{buildroot}%{_datadir}/applications             \
   %{buildroot}%{_datadir}/applications/*.desktop

%files
%defattr(-,root,root,-)
%{_bindir}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/86x86/apps/%{name}.png
# >> files
# << files







|


80
81
82
83
84
85
86
87
88
89
  --dir %{buildroot}%{_datadir}/applications             \
   %{buildroot}%{_datadir}/applications/*.desktop

%files
%defattr(-,root,root,-)
%{_bindir}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
# >> files
# << files
Changes to rpm/harbour-fotokopierer.yaml.
1
2
3
4
5
6
7
8
9
10
Name: harbour-fotokopierer
Summary: Document Scanner
Version: 0.2.1
Release: 1%{?dist}
# The contents of the Group field should be one of the groups listed here:
# http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS
Group: Qt/Qt
URL: https://fifr.spdns.de/fossils/harbour-fotokopierer
License: GPLv3+
# This must be generated before uploading a package to a remote build service.


|







1
2
3
4
5
6
7
8
9
10
Name: harbour-fotokopierer
Summary: Document Scanner
Version: 0.2.5
Release: 1%{?dist}
# The contents of the Group field should be one of the groups listed here:
# http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS
Group: Qt/Qt
URL: https://fifr.spdns.de/fossils/harbour-fotokopierer
License: GPLv3+
# This must be generated before uploading a package to a remote build service.
50
51
52
53
54
55
56
57
58
59
60
61
  - sailfishsilica-qt5 >= 0.10.9
  # - zlib  # warum darf ich das nicht? libz ist doch erlaubt ...

# All installed files
Files:
  - '%{_bindir}'
  - '%{_datadir}/applications/%{name}.desktop'
  - '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png'
  #- '%{_datadir}/%{name}'

# For more information about yaml and what's supported in Sailfish OS
# build system, please see https://wiki.merproject.org/wiki/Spectacle







|




50
51
52
53
54
55
56
57
58
59
60
61
  - sailfishsilica-qt5 >= 0.10.9
  # - zlib  # warum darf ich das nicht? libz ist doch erlaubt ...

# All installed files
Files:
  - '%{_bindir}'
  - '%{_datadir}/applications/%{name}.desktop'
  - '%{_datadir}/icons/hicolor/*/apps/%{name}.png'
  #- '%{_datadir}/%{name}'

# For more information about yaml and what's supported in Sailfish OS
# build system, please see https://wiki.merproject.org/wiki/Spectacle
Changes to src/Document.cxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018-2021 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
330
331
332
333
334
335
336
337

338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
        finfo.dir().removeRecursively();
        d.reset(new Data);
    }
}

bool Document::save() const
{
    QFileInfo finfo(d->doc.filename);


    if (!finfo.dir().exists()) {
        if (!finfo.dir().mkpath(QStringLiteral("."))) {
            qWarning() << tr("Cannot create path %1").arg(finfo.dir().path());
            return false;
        }
    }

    QFile file(d->doc.filename);
    if (!file.open(QIODevice::WriteOnly)) {
        qWarning() << tr("Can't write document file %1:%2").arg(d->doc.filename).arg(file.error());
        return false;
    }
    QJsonObject doc;

    doc[QStringLiteral("title")] = d->doc.title;
    doc[QStringLiteral("filename")] = d->doc.filename;
    doc[QStringLiteral("creationTime")] = d->doc.creation_time.toString(FilenameFormat);

    QJsonArray pages;
    for (auto& page : d->doc.pages) {
        QJsonObject p;
        if (!page->write(p)) {
            return false;
        }
        pages << p;
    }

    doc[QStringLiteral("pages")] = pages;

    if (file.write(QJsonDocument(doc).toJson()) < 0) {
        qWarning() << tr("Error writing document file:%1").arg(file.error());
        return false;
    }

    ensureNoMedia(QFileInfo(d->doc.filename).absolutePath());

    return true;
}

bool Document::load(const QString& filename)
{
    if (d->status != Ready) {







|
>

|
|
|












|





|












|







330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
        finfo.dir().removeRecursively();
        d.reset(new Data);
    }
}

bool Document::save() const
{
    QFileInfo doc_fileinfo(d->doc.filename);
    QDir docpath = doc_fileinfo.absoluteDir();

    if (!docpath.exists()) {
        if (!docpath.mkpath(QStringLiteral("."))) {
            qWarning() << tr("Cannot create path %1").arg(docpath.path());
            return false;
        }
    }

    QFile file(d->doc.filename);
    if (!file.open(QIODevice::WriteOnly)) {
        qWarning() << tr("Can't write document file %1:%2").arg(d->doc.filename).arg(file.error());
        return false;
    }
    QJsonObject doc;

    doc[QStringLiteral("title")] = d->doc.title;
    doc[QStringLiteral("filename")] = doc_fileinfo.fileName();
    doc[QStringLiteral("creationTime")] = d->doc.creation_time.toString(FilenameFormat);

    QJsonArray pages;
    for (auto& page : d->doc.pages) {
        QJsonObject p;
        if (!page->write(p, docpath)) {
            return false;
        }
        pages << p;
    }

    doc[QStringLiteral("pages")] = pages;

    if (file.write(QJsonDocument(doc).toJson()) < 0) {
        qWarning() << tr("Error writing document file:%1").arg(file.error());
        return false;
    }

    ensureNoMedia(doc_fileinfo.absolutePath());

    return true;
}

bool Document::load(const QString& filename)
{
    if (d->status != Ready) {
407
408
409
410
411
412
413


414
415
416
417
418







419
420
421
422
423
424

425
426
427
428
429

430
431
432
433
434
435

436
437
438
439
440
441

442
443
444
445
446
447
448
449
450

451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
        }));
}

Document::DocData Document::DocData::fromFile(Document* document, const QString& filename)
{
    auto tr = [](const char* source) { return QCoreApplication::translate("Document", source); };



    QFile file(filename);
    if (!file.open(QIODevice::ReadOnly)) {
        throw ReadError(tr("Can't open document file %1").arg(filename));
    }








    auto docdata = file.readAll();
    auto doc = QJsonDocument::fromJson(docdata);
    auto json = doc.object();

    auto title = json[QStringLiteral("title")];
    if (!title.isString() && !title.isNull()) {

        throw ReadError(tr("Could not read document title from document file %1").arg(filename));
    }

    auto creation_time = json[QStringLiteral("creationTime")];
    if (!creation_time.isString()) {

        throw ReadError(tr("Could not read creation time from document file %1").arg(filename));
    }
    auto ctime = QDateTime::fromString(creation_time.toString(), FilenameFormat);

    auto pages = json[QStringLiteral("pages")];
    if (!pages.isArray()) {

        throw ReadError(tr("Could not read pages from document file %1").arg(filename));
    }

    QVector<QSharedPointer<Page>> docpages;
    for (auto&& page : pages.toArray()) {
        if (!page.isObject()) {

            throw ReadError(tr("Could not read page from document file %1").arg(filename));
        }
        QSharedPointer<Page> p(new Page);

        connect(p.data(), &Page::thumbnailChanged, document, &Document::onThumbnailUpdated);
        connect(p.data(), &Page::statusChanged, document, &Document::onPageUpdated);
        connect(p.data(), &Page::error, document, &Document::error);

        if (!p->read(page.toObject())) {

            throw ReadError(tr("Error reading page from document file %1").arg(filename));
        }
        p->moveToThread(QCoreApplication::instance()->thread());
        docpages.push_back(p);
    }

    ensureNoMedia(QFileInfo(file).absolutePath());

    DocData d;
    d.title = title.isString() ? title.toString() : ctime.toString();
    d.filename = filename;
    d.creation_time = ctime;
    d.pages = docpages;
    return d;
}

void Document::onThumbnailUpdated()
{







>
>





>
>
>
>
>
>
>






>





>






>






>








|
>






|



|







408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
        }));
}

Document::DocData Document::DocData::fromFile(Document* document, const QString& filename)
{
    auto tr = [](const char* source) { return QCoreApplication::translate("Document", source); };

    qDebug() << "Load document " << filename;

    QFile file(filename);
    if (!file.open(QIODevice::ReadOnly)) {
        throw ReadError(tr("Can't open document file %1").arg(filename));
    }

    auto doc_fileinfo = QFileInfo(file);
    auto docpath = doc_fileinfo.absolutePath();
    auto docfile = doc_fileinfo.absoluteFilePath();

    qDebug() << "Document directory: " << docpath;
    qDebug() << "Document file: " << docfile;

    auto docdata = file.readAll();
    auto doc = QJsonDocument::fromJson(docdata);
    auto json = doc.object();

    auto title = json[QStringLiteral("title")];
    if (!title.isString() && !title.isNull()) {
        qDebug() << QStringLiteral("Could not read document title from document file %1").arg(filename);
        throw ReadError(tr("Could not read document title from document file %1").arg(filename));
    }

    auto creation_time = json[QStringLiteral("creationTime")];
    if (!creation_time.isString()) {
        qDebug() << QStringLiteral("Could not read creation time from document file %1").arg(filename);
        throw ReadError(tr("Could not read creation time from document file %1").arg(filename));
    }
    auto ctime = QDateTime::fromString(creation_time.toString(), FilenameFormat);

    auto pages = json[QStringLiteral("pages")];
    if (!pages.isArray()) {
        qDebug() << QStringLiteral("Could not read pages from document file %1").arg(filename);
        throw ReadError(tr("Could not read pages from document file %1").arg(filename));
    }

    QVector<QSharedPointer<Page>> docpages;
    for (auto&& page : pages.toArray()) {
        if (!page.isObject()) {
            qDebug() << QStringLiteral("Could not read page from document file %1").arg(filename);
            throw ReadError(tr("Could not read page from document file %1").arg(filename));
        }
        QSharedPointer<Page> p(new Page);

        connect(p.data(), &Page::thumbnailChanged, document, &Document::onThumbnailUpdated);
        connect(p.data(), &Page::statusChanged, document, &Document::onPageUpdated);
        connect(p.data(), &Page::error, document, &Document::error);

        if (!p->read(page.toObject(), docpath)) {
            qDebug() << QStringLiteral("Error reading page from document file %1").arg(filename);
            throw ReadError(tr("Error reading page from document file %1").arg(filename));
        }
        p->moveToThread(QCoreApplication::instance()->thread());
        docpages.push_back(p);
    }

    ensureNoMedia(docpath);

    DocData d;
    d.title = title.isString() ? title.toString() : ctime.toString();
    d.filename = docfile;
    d.creation_time = ctime;
    d.pages = docpages;
    return d;
}

void Document::onThumbnailUpdated()
{
Changes to src/FilterImage.cxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018, 2019, 2021 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
19
20
21
22
23
24
25


26
27
28
29
30
31
32

#include "Filter.hxx"
#include "Scanner.hxx"

#include <QtConcurrent/QtConcurrentRun>
#include <QtCore/QFutureWatcher>
#include <QtGui/QPainter>



struct FilterImage::Data {
    Filter* filter = nullptr;
    qreal painted_width = 0;
    qreal painted_height = 0;

    Scanner::FilterType filter_type = Scanner::FilterType::None;







>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#include "Filter.hxx"
#include "Scanner.hxx"

#include <QtConcurrent/QtConcurrentRun>
#include <QtCore/QFutureWatcher>
#include <QtGui/QPainter>

#include <functional>

struct FilterImage::Data {
    Filter* filter = nullptr;
    qreal painted_width = 0;
    qreal painted_height = 0;

    Scanner::FilterType filter_type = Scanner::FilterType::None;
Changes to src/Fotokopierer.cxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019, 2020 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126



127
128
129
130


131
132
133

134
135
136
137
138
139
140
141
}

QString Fotokopierer::opencvVersion() const
{
    return QStringLiteral(OPENCV_VERSION);
}

QSize Fotokopierer::defaultResolution(QObject* capture) const
{
    if (capture == nullptr) {
        return {};
    }

    auto captures = capture->findChildren<QCameraImageCapture*>();




    if (captures.count() > 0) {
        QSize resolution;
        for (auto&& r : captures[0]->supportedResolutions()) {


            if (r.width() * 3 == r.height() * 4 && r.width() > resolution.width() &&
                r.width() <= MaxResolutionWidth && r.height() <= MaxResolutionHeight) {
                resolution = r;

            }
        }

        return resolution;
    } else {
        return {};
    }
}







|






>
>
>




>
>
|
<

>








113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136

137
138
139
140
141
142
143
144
145
146
}

QString Fotokopierer::opencvVersion() const
{
    return QStringLiteral(OPENCV_VERSION);
}

QSize Fotokopierer::defaultResolution(QObject* capture, int desiredWidth, int desiredHeight) const
{
    if (capture == nullptr) {
        return {};
    }

    auto captures = capture->findChildren<QCameraImageCapture*>();
    auto desiredRatio = static_cast<double>(qMax(1, qMax(desiredWidth, desiredHeight))) /
                        static_cast<double>(qMax(1, qMin(desiredWidth, desiredHeight)));
    auto bestRatioDist = std::numeric_limits<double>::infinity();

    if (captures.count() > 0) {
        QSize resolution;
        for (auto&& r : captures[0]->supportedResolutions()) {
            auto ratio = static_cast<double>(r.width()) / static_cast<double>(r.height());
            auto ratioDist = ratio > desiredRatio ? ratio / desiredRatio : desiredRatio / ratio;
            if ((ratioDist < bestRatioDist + 1e-3 && r.width() > resolution.width()) || ratioDist < bestRatioDist - 1e-1) {

                resolution = r;
                bestRatioDist = ratioDist;
            }
        }

        return resolution;
    } else {
        return {};
    }
}
Changes to src/Fotokopierer.hxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2019, 2020 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
71
72
73
74
75
76
77






78
79
80
81

    QString licenseTitle() const;

    QString podofoVersion() const;

    QString opencvVersion() const;







    Q_INVOKABLE QSize defaultResolution(QObject* capture) const;
};

#endif







>
>
>
>
>
>
|



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

    QString licenseTitle() const;

    QString podofoVersion() const;

    QString opencvVersion() const;

    /// Return the resolution to be used.
    ///
    /// The resolution is the maximum resolution whose aspect ratio is a close
    /// as possible to the aspect ratio of the given width and height. In other
    /// words, `desiredWidth` and `desiredHeight` should be the dimensions of
    /// the target image.
    Q_INVOKABLE QSize defaultResolution(QObject* capture, int desiredWidth, int desiredHeight) const;
};

#endif
Changes to src/Page.cxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018-2021 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
52
53
54
55
56
57
58

59
60
61
62
63
64
65
66
67
68
69
70
71
72


73
74
75
76
77
78
79
    GeneratingError* clone() const override { return new GeneratingError(*this); }

    QString message() const { return message_; }

private:
    QString message_;
};

}  // namespace

struct Page::Data {
    QDateTime creation_time;
    QString original_path;
    QString result_path;
    QString thumbnail_path;
    QJsonObject settings;  ///< The filter settings for this page.

    QFutureWatcher<QString> result_thumbnail;
    QFutureWatcher<bool> generating;

    Status status = Ready;
};



Page::Page(QObject* parent)
    : QObject(parent), d(new Data)
{
    // TODO: For some reason, that I do not understand, the 'finished' signal is not emitted.
    // We send our own signals to replace them when the concurrent work task is
    // finished. This seems to work.







>














>
>







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
    GeneratingError* clone() const override { return new GeneratingError(*this); }

    QString message() const { return message_; }

private:
    QString message_;
};

}  // namespace

struct Page::Data {
    QDateTime creation_time;
    QString original_path;
    QString result_path;
    QString thumbnail_path;
    QJsonObject settings;  ///< The filter settings for this page.

    QFutureWatcher<QString> result_thumbnail;
    QFutureWatcher<bool> generating;

    Status status = Ready;
};

static bool fixPath(const QString& filePath, const QDir& docpath, QString& result);

Page::Page(QObject* parent)
    : QObject(parent), d(new Data)
{
    // TODO: For some reason, that I do not understand, the 'finished' signal is not emitted.
    // We send our own signals to replace them when the concurrent work task is
    // finished. This seems to work.
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328

329
330
331
332

333
334
335
336
337

338
339
340
341
342

343
344
345
346
347







348
349
350
351
352

353
354
355








356
357
358
359
360
361
362
363
364
365
366
367
368










































    scaled.save(scaled_filename);

    emit thumbnailFinished(scaled_filename);

    return scaled_filename;
}

bool Page::write(QJsonObject& json) const
{
    json[QStringLiteral("creationTime")] = d->creation_time.toString(FilenameFormat);
    json[QStringLiteral("originalPath")] = d->original_path;
    json[QStringLiteral("resultPath")] = d->result_path;
    if (!d->thumbnail_path.isEmpty()) {
        json[QStringLiteral("thumbnailPath")] = d->thumbnail_path;
    }
    json[QStringLiteral("filters")] = d->settings;

    return true;
}

bool Page::read(const QJsonObject& json)
{
    auto page_creation_time = json[QStringLiteral("creationTime")];
    if (!page_creation_time.isString()) {

        return false;
    }
    auto page_ctime = QDateTime::fromString(page_creation_time.toString(), FilenameFormat);
    if (page_ctime.isNull()) {

        return false;
    }

    auto page_original_path = json[QStringLiteral("originalPath")];
    if (!page_original_path.isString()) {

        return false;
    }

    auto page_result_path = json[QStringLiteral("resultPath")];
    if (!page_result_path.isString()) {

        return false;
    }

    auto page_thumbnail_path = json[QStringLiteral("thumbnailPath")];
    if (!page_thumbnail_path.isString() && !page_thumbnail_path.isUndefined()) {







        return false;
    }

    // Verify that the result file exist.
    if (!QFileInfo::exists(page_result_path.toString())) {

        return false;
    }









    setCreationTime(page_ctime);
    setOriginal(page_original_path.toString());
    setResult(page_result_path.toString());
    setThumbnail(page_thumbnail_path.toString());
    d->settings = json[QStringLiteral("filters")].toObject();

    return true;
}

QJsonObject Page::settings() const
{
    return d->settings;
}

















































|


|
|

|






|



>




>





>





>





>
>
>
>
>
>
>



|
|
>



>
>
>
>
>
>
>
>

|
|
|









>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
    scaled.save(scaled_filename);

    emit thumbnailFinished(scaled_filename);

    return scaled_filename;
}

bool Page::write(QJsonObject& json, const QDir& docpath) const
{
    json[QStringLiteral("creationTime")] = d->creation_time.toString(FilenameFormat);
    json[QStringLiteral("originalPath")] = docpath.relativeFilePath(d->original_path);
    json[QStringLiteral("resultPath")] = docpath.relativeFilePath(d->result_path);
    if (!d->thumbnail_path.isEmpty()) {
        json[QStringLiteral("thumbnailPath")] = docpath.relativeFilePath(d->thumbnail_path);
    }
    json[QStringLiteral("filters")] = d->settings;

    return true;
}

bool Page::read(const QJsonObject& json, const QDir& docpath)
{
    auto page_creation_time = json[QStringLiteral("creationTime")];
    if (!page_creation_time.isString()) {
        qDebug() << "Error: empty page creation time";
        return false;
    }
    auto page_ctime = QDateTime::fromString(page_creation_time.toString(), FilenameFormat);
    if (page_ctime.isNull()) {
        qDebug() << "Error: invalid page creation time";
        return false;
    }

    auto page_original_path = json[QStringLiteral("originalPath")];
    if (!page_original_path.isString()) {
        qDebug() << "Error: original image path is empty";
        return false;
    }

    auto page_result_path = json[QStringLiteral("resultPath")];
    if (!page_result_path.isString()) {
        qDebug() << "Error: result image path is empty";
        return false;
    }

    auto page_thumbnail_path = json[QStringLiteral("thumbnailPath")];
    if (!page_thumbnail_path.isString() && !page_thumbnail_path.isUndefined()) {
        qDebug() << "Error: thumbnail image path is invalid";
        return false;
    }

    QString pg_original_path;
    if (!fixPath(page_original_path.toString(), docpath, pg_original_path)) {
        qDebug() << "Error: original image does not exist";
        return false;
    }

    QString pg_result_path;
    if (!fixPath(page_result_path.toString(), docpath, pg_result_path)) {
        qDebug() << "Error: result image does not exist";
        return false;
    }

    QString pg_thumbnail_path;
    if (!page_thumbnail_path.isUndefined() &&
        !fixPath(page_thumbnail_path.toString(), docpath, pg_thumbnail_path)) {
        qDebug() << "Error: thumbnail does not exist, throw it away";
    }

    qDebug() << "Use orig: " << pg_original_path << " result: " << pg_result_path << " thumb: " << pg_thumbnail_path;

    setCreationTime(page_ctime);
    setOriginal(pg_original_path);
    setResult(pg_result_path);
    setThumbnail(pg_thumbnail_path);
    d->settings = json[QStringLiteral("filters")].toObject();

    return true;
}

QJsonObject Page::settings() const
{
    return d->settings;
}

/// Extract the correct absolute filename from the path in the stored json document.
///
/// Because of a bad design decision, old documents may store absolute
/// paths to all files. This is bad because documents cannot be moved
/// or copied easily. This function possibly converts absolute paths to paths
/// relative to the document directory. This works in most cases because by default
/// all images are stored directly in the document's directory.
bool fixPath(const QString& filePath, const QDir& docpath, QString& result)
{
    auto finfo = QFileInfo(filePath);

    if (finfo.isRelative()) {
        auto path = docpath.filePath(finfo.filePath());
        if (QFileInfo(path).exists()) {
            result = path;
            return true;
        }

        qDebug() << "Error: file at " << path << " does not exist";
    } else {
        if (finfo.exists()) {
            result = filePath;
            return true;
        }

        // This is actually a workaround because older versions of Fotokopierer stored
        // absolute file paths. However, this does not work well because the paths may be
        // different on different systems preventing moving a document from one system
        // to another.
        auto relative_path = docpath.filePath(QFileInfo(filePath).fileName());
        qDebug() << "Absolute file " << filePath << " does not exist, try relative path " << relative_path;
        if (QFileInfo(relative_path).exists()) {
            result = docpath.absoluteFilePath(relative_path);
            return true;
        }

        qDebug() << "Error: image at relative path " << relative_path << " does not exist";
    }

    return false;
}
Changes to src/Page.hxx.
1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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

|







1
2
3
4
5
6
7
8
9
/*
 * Copyright (c) 2018-2021 Frank Fischer <frank-fischer@shadow-soft.de>
 *
 * 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
    void loadFromScanner(const QDir& dir, const Scanner* scanner);

    /// Initialize this page from the results of a Scanner.
    ///
    /// The page files reuse (and overwrite) the current files.
    void updateFromScanner(const Scanner* scanner);

    bool write(QJsonObject& json) const;

    bool read(const QJsonObject& json);

    /// Return the filter settings of this page.
    QJsonObject settings() const;

public slots:
    /// Delete all files associated with this page.
    void remove();







|

|







79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
    void loadFromScanner(const QDir& dir, const Scanner* scanner);

    /// Initialize this page from the results of a Scanner.
    ///
    /// The page files reuse (and overwrite) the current files.
    void updateFromScanner(const Scanner* scanner);

    bool write(QJsonObject& json, const QDir& docpath) const;

    bool read(const QJsonObject& json, const QDir& docpath);

    /// Return the filter settings of this page.
    QJsonObject settings() const;

public slots:
    /// Delete all files associated with this page.
    void remove();
Changes to translations.qrc.
1
2
3

4
5
<RCC>
  <qresource>
    <file>translations/harbour-fotokopierer-de.qm</file>

  </qresource>
</RCC>



>


1
2
3
4
5
6
<RCC>
  <qresource>
    <file>translations/harbour-fotokopierer-de.qm</file>
    <file>translations/harbour-fotokopierer-sv.qm</file>
  </qresource>
</RCC>
Changes to translations/harbour-fotokopierer-de.po.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191



192
193













































194
195
196
197


















198

199
200
201
202
203
204
205
206
207
208






209
210






211
212
213
214
215
216
217
218
219
220
221













222
223
224
225
226

227
228
229
230
231

232
233
234
235
236
237
238
239
240
241






242





























































243
244
245
246
247

248
249
250
251
















































































252

253
254
255
256
257
258

259
260
261
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Language: de_DE\n"
"X-Source-Language: en_US\n"
"X-Qt-Contexts: true\n"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/CameraPage.qml:44
msgctxt "CameraPage|"
msgid "New Picture"
msgstr "Neues Bild"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/ColorizePage.qml:39
msgctxt "ColorizePage|"
msgid "Colorize"
msgstr "Einfärben"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/CutPage.qml:40
msgctxt "CutPage|"
msgid "Cut & Rotate"
msgstr "Zuschneiden & Drehen"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no original image"
#~ msgstr "Seite kann nicht erstellt werden: Originalbild nicht gefunden"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no result image"
#~ msgstr "Seite kann nicht erstellt werden: Bild nicht gefunden"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr ""
#~ "Seite kann nicht erstellt werden: Fehler beim Speichern des Originalbildes"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr "Seite kann nicht erstellt werden: Fehler beim Speichern des Bildes"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:272
msgctxt "Document|"
msgid "Cannot add page, document is not ready"
msgstr "Seite kann nicht hinzugefügt werden, Dokument ist nicht bereit"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:341
#, qt-format
msgctxt "Document|"
msgid "Cannot create path %1"
msgstr "Pfad %1 kann nicht erstellt werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:348
#, qt-format
msgctxt "Document|"
msgid "Can't write document file %1:%2"
msgstr "Dokumentdatei %1 kann nicht geschrieben werden: %2"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:369
#, qt-format
msgctxt "Document|"
msgid "Error writing document file:%1"
msgstr "Fehler beim schreiben der Datei %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:381
#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:400
#, qt-format
msgctxt "Document|"
msgid "Cannot load document from '%1', another process is running"
msgstr ""
"Dokument kann nicht von %1 gelesen werden während ein anderer Prozess läuft"


#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:416
#, qt-format
msgctxt "Document|"
msgid "Can't open document file %1"
msgstr "Dokumentdatei %1 kann nicht geöffnet werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:425
#, qt-format
msgctxt "Document|"
msgid "Could not read document title from document file %1"
msgstr "Dokumenttitel kann nicht von Datei %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:430
#, qt-format
msgctxt "Document|"
msgid "Could not read creation time from document file %1"
msgstr "Erstellungszeit kann nicht von Datei %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:436
#, qt-format
msgctxt "Document|"
msgid "Could not read pages from document file %1"
msgstr "Seiten des Dokuments konnten nicht von %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:442
#, qt-format
msgctxt "Document|"
msgid "Could not read page from document file %1"
msgstr "Eine Seite konnte nicht von Dokument %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:451
#, qt-format
msgctxt "Document|"
msgid "Error reading page from document file %1"
msgstr "Fehler beim lesen der Dokumentdatei %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:502
msgctxt "Document|"
msgid "Cannot export to pdf, document is not ready"
msgstr "Pdf kann nicht exportiert werden, Dokument ist nicht bereit"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:558
msgctxt "Document|"
msgid "Error creating pdf-file"
msgstr "Fehler beim Erstellen der pdf-Datei"

#, qt-format
#~ msgctxt "DocumentDelegate|"
#~ msgid ""
#~ "Pages: %1\n"
#~ "%2"
#~ msgstr ""
#~ "Seiten: %1\n"
#~ "%2"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/DocumentDelegate.qml:128
#, qt-format
msgctxt "DocumentDelegate|"
msgid "Pages: %1"
msgstr "Seiten: %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:99
#, qt-format
msgctxt "DocumentPage|"
msgid "Page %1 of %2 (%3)"
msgstr "Seite %1 von %2 (%3)"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:109
msgctxt "DocumentPage|"
msgid "Delete page"
msgstr "Seite löschen"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:151
msgctxt "DocumentPage|"
msgid "Export to pdf"
msgstr "Pdf exportieren"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:157
msgctxt "DocumentPage|"
msgid "Rename"
msgstr "Umbenennen"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:253
#, qt-format
msgctxt "DocumentPage|"
msgid "Overwrite existing file <%1>?"
msgstr "Existierende Datei <%1> überschreiben?"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:77
msgctxt "DocumentsPage|"
msgid "Delete document"
msgstr "Dokument löschen"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:119
msgctxt "DocumentsPage|"
msgid "Documents"
msgstr "Dokumente"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:126
#, qt-format
msgctxt "DocumentsPage|"
msgid "About %1"
msgstr "Über %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/NewImagePage.qml:107
msgctxt "NewImagePage|"
msgid "New Picture"
msgstr "Neues Bild"

#, qt-format
#~ msgctxt "PageDelegate|"
#~ msgid ""
#~ "Page %1\n"
#~ "%2"
#~ msgstr ""
#~ "Seite %1\n"
#~ "%2"




#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/PageDelegate.qml:96
#, qt-format













































msgctxt "PageDelegate|"
msgid "Page %1"
msgstr "Seite %1"



















#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/CoverPage.qml:45

msgctxt "CoverPage|"
msgid "Take a new picture"
msgstr "Neues Bild aufnehmen"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/CoverPage.qml:78
#, qt-format
msgctxt "CoverPage|"
msgid "Pages: %2"
msgstr "Seiten: %2"







#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:35
#, qt-format






msgctxt "AboutPage|"
msgid "About %1"
msgstr "Über %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:63
#, qt-format
msgctxt "AboutPage|"
msgid "A camera scanning application for SailfishOS by %1"
msgstr "Eine Kamera-Scan Anwendung für SailfishOS von %1"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:79













msgctxt "AboutPage|"
msgid "Homepage"
msgstr "Homepage"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:90

msgctxt "AboutPage|"
msgid "Find me on Freenode: "
msgstr "Kontaktiere mich auf Freenode: "

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:109

msgctxt "AboutPage|"
msgid "This application uses"
msgstr "Dieses Programm verwendet"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:129
#, qt-format
msgctxt "AboutPage|"
msgid "Licensed under the %1"
msgstr "Lizensiert unter %1"







#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/RenamePage.qml:32





























































msgctxt "RenamePage|"
msgid "Enter new document title"
msgstr "Neuen Dokumenttitel eingeben"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/RenamePage.qml:38

msgctxt "RenamePage|"
msgid "Document title"
msgstr "Dokumenttitel"

















































































#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Page.cxx:145

msgctxt "Page|"
msgid "Page could not be created: error saving original image"
msgstr ""
"Seite kann nicht erstellt werden: Fehler beim Speichern des Originalbildes"

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Page.cxx:150

msgctxt "Page|"
msgid "Page could not be created: error saving result image"
msgstr "Seite kann nicht erstellt werden: Fehler beim Speichern des Bildes"





<
<
<


<
|
|
|

<
|
|
|

<
|
|
|

|



|



|




|



<
|
|
|

<

|
|
|

<

|
|
|

<

|
|
|

<
<

|
|
|
|
>

<

|
|
|

<

|
|
|

<

|
|
|

<

|
|
|

<

|
|
|

<

|
|
|

<
|
|
|

<
|
|
|


|







<

<
<
<
<
<
<
|
|
|

<
|
|
|

<
|
|
|

<
|
|
|

<

|
|
|

<
|
|
|

<
|
|
|

<

|
|
|

<
|
|
|


|







>
>
>
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>




|
|




>
>
>
>
>
>
|
|
>
>
>
>
>
>




|
|




|
>
>
>
>
>
>
>
>
>
>
>
>
>




|
>




|
>




|
|




>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




|
>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>





|
>



1
2
3
4
5



6
7

8
9
10
11

12
13
14
15

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

37
38
39
40

41
42
43
44
45

46
47
48
49
50

51
52
53
54
55


56
57
58
59
60
61
62

63
64
65
66
67

68
69
70
71
72

73
74
75
76
77

78
79
80
81
82

83
84
85
86
87

88
89
90
91
92

93
94
95
96

97
98
99
100
101
102
103
104
105
106
107
108
109

110






111
112
113
114

115
116
117
118

119
120
121
122

123
124
125
126

127
128
129
130
131

132
133
134
135

136
137
138
139

140
141
142
143
144

145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"



"X-Qt-Contexts: true\n"


#~ msgctxt "CameraPage~|"
#~ msgid "New Picture"
#~ msgstr "Neues Bild"


#~ msgctxt "ColorizePage~|"
#~ msgid "Colorize"
#~ msgstr "Einfärben"


#~ msgctxt "CutPage~|"
#~ msgid "Cut & Rotate"
#~ msgstr "Zuschneiden & Drehen"

#~ msgctxt "Document~|"
#~ msgid "Page could not be created: no original image"
#~ msgstr "Seite kann nicht erstellt werden: Originalbild nicht gefunden"

#~ msgctxt "Document~|"
#~ msgid "Page could not be created: no result image"
#~ msgstr "Seite kann nicht erstellt werden: Bild nicht gefunden"

#~ msgctxt "Document~|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr ""
#~ "Seite kann nicht erstellt werden: Fehler beim Speichern des Originalbildes"

#~ msgctxt "Document~|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr "Seite kann nicht erstellt werden: Fehler beim Speichern des Bildes"


#~ msgctxt "Document~|"
#~ msgid "Cannot add page, document is not ready"
#~ msgstr "Seite kann nicht hinzugefügt werden, Dokument ist nicht bereit"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Cannot create path %1"
#~ msgstr "Pfad %1 kann nicht erstellt werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Can't write document file %1:%2"
#~ msgstr "Dokumentdatei %1 kann nicht geschrieben werden: %2"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Error writing document file:%1"
#~ msgstr "Fehler beim schreiben der Datei %1"



#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Cannot load document from '%1', another process is running"
#~ msgstr ""
#~ "Dokument kann nicht von %1 gelesen werden während ein anderer Prozess "
#~ "läuft"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Can't open document file %1"
#~ msgstr "Dokumentdatei %1 kann nicht geöffnet werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Could not read document title from document file %1"
#~ msgstr "Dokumenttitel kann nicht von Datei %1 gelesen werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Could not read creation time from document file %1"
#~ msgstr "Erstellungszeit kann nicht von Datei %1 gelesen werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Could not read pages from document file %1"
#~ msgstr "Seiten des Dokuments konnten nicht von %1 gelesen werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Could not read page from document file %1"
#~ msgstr "Eine Seite konnte nicht von Dokument %1 gelesen werden"


#, qt-format
#~ msgctxt "Document~|"
#~ msgid "Error reading page from document file %1"
#~ msgstr "Fehler beim lesen der Dokumentdatei %1"


#~ msgctxt "Document~|"
#~ msgid "Cannot export to pdf, document is not ready"
#~ msgstr "Pdf kann nicht exportiert werden, Dokument ist nicht bereit"


#~ msgctxt "Document~|"
#~ msgid "Error creating pdf-file"
#~ msgstr "Fehler beim Erstellen der pdf-Datei"

#, qt-format
#~ msgctxt "DocumentDelegate~|"
#~ msgid ""
#~ "Pages: %1\n"
#~ "%2"
#~ msgstr ""
#~ "Seiten: %1\n"
#~ "%2"


#, qt-format






#~ msgctxt "DocumentPage~|"
#~ msgid "Page %1 of %2 (%3)"
#~ msgstr "Seite %1 von %2 (%3)"


#~ msgctxt "DocumentPage~|"
#~ msgid "Delete page"
#~ msgstr "Seite löschen"


#~ msgctxt "DocumentPage~|"
#~ msgid "Export to pdf"
#~ msgstr "Pdf exportieren"


#~ msgctxt "DocumentPage~|"
#~ msgid "Rename"
#~ msgstr "Umbenennen"


#, qt-format
#~ msgctxt "DocumentPage~|"
#~ msgid "Overwrite existing file <%1>?"
#~ msgstr "Existierende Datei <%1> überschreiben?"


#~ msgctxt "DocumentsPage~|"
#~ msgid "Delete document"
#~ msgstr "Dokument löschen"


#~ msgctxt "DocumentsPage~|"
#~ msgid "Documents"
#~ msgstr "Dokumente"


#, qt-format
#~ msgctxt "DocumentsPage~|"
#~ msgid "About %1"
#~ msgstr "Über %1"


#~ msgctxt "NewImagePage~|"
#~ msgid "New Picture"
#~ msgstr "Neues Bild"

#, qt-format
#~ msgctxt "PageDelegate~|"
#~ msgid ""
#~ "Page %1\n"
#~ "%2"
#~ msgstr ""
#~ "Seite %1\n"
#~ "%2"

#~ msgctxt "CoverPage~|"
#~ msgid "Take a new picture"
#~ msgstr "Neues Bild aufnehmen"

#, qt-format
#~ msgctxt "CoverPage~|"
#~ msgid "Pages: %2"
#~ msgstr "Seiten: %2"

#, qt-format
#~ msgctxt "AboutPage~|"
#~ msgid "About %1"
#~ msgstr "Über %1"

#, qt-format
#~ msgctxt "AboutPage~|"
#~ msgid "A camera scanning application for SailfishOS by %1"
#~ msgstr "Eine Kamera-Scan Anwendung für SailfishOS von %1"

#~ msgctxt "AboutPage~|"
#~ msgid "Homepage"
#~ msgstr "Homepage"

#~ msgctxt "AboutPage~|"
#~ msgid "Find me on Freenode: "
#~ msgstr "Kontaktiere mich auf Freenode: "

#~ msgctxt "AboutPage~|"
#~ msgid "This application uses"
#~ msgstr "Dieses Programm verwendet"

#, qt-format
#~ msgctxt "AboutPage~|"
#~ msgid "Licensed under the %1"
#~ msgstr "Lizensiert unter %1"

#~ msgctxt "RenamePage~|"
#~ msgid "Enter new document title"
#~ msgstr "Neuen Dokumenttitel eingeben"

#~ msgctxt "RenamePage~|"
#~ msgid "Document title"
#~ msgstr "Dokumenttitel"

#, qt-format
#~ msgctxt "DocumentDelegate~|"
#~ msgid "Pages: %1"
#~ msgstr "Seiten: %1"

#, qt-format
#~ msgctxt "PageDelegate~|"
#~ msgid "Page %1"
#~ msgstr "Seite %1"

#~ msgctxt "Page~|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr ""
#~ "Seite kann nicht erstellt werden: Fehler beim Speichern des Originalbildes"

#~ msgctxt "Page~|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr "Seite kann nicht erstellt werden: Fehler beim Speichern des Bildes"

#, qt-format
#~ msgctxt "AboutPage~|"
#~ msgid "Icons by %1"
#~ msgstr "Icons von %1"

#~ msgctxt "AboutPage~|"
#~ msgid "Swedish"
#~ msgstr "Schwedisch"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:45
#, fuzzy
msgctxt "CoverPage|"
msgid "Take a new picture"
msgstr "Neues Bild aufnehmen"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:78
#, fuzzy, qt-format
msgctxt "CoverPage|"
msgid "Pages: %2"
msgstr "Seiten: %2"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/DocumentDelegate.qml:128
#, fuzzy, qt-format
msgctxt "DocumentDelegate|"
msgid "Pages: %1"
msgstr "Seiten: %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/PageDelegate.qml:96
#, fuzzy, qt-format
msgctxt "PageDelegate|"
msgid "Page %1"
msgstr "Seite %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:35
#, fuzzy, qt-format
msgctxt "AboutPage|"
msgid "About %1"
msgstr "Über %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:64
#, fuzzy, qt-format
msgctxt "AboutPage|"
msgid "A camera scanning application for SailfishOS by %1"
msgstr "Eine Kamera-Scan Anwendung für SailfishOS von %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:75
#, fuzzy, qt-format
msgctxt "AboutPage|"
msgid "Icons by %1"
msgstr "Icons von %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:100
#, fuzzy
msgctxt "AboutPage|"
msgid "Swedish"
msgstr "Schwedisch"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:115
#, fuzzy
msgctxt "AboutPage|"
msgid "Homepage"
msgstr "Homepage"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:126
#, fuzzy
msgctxt "AboutPage|"
msgid "Find me on Freenode: "
msgstr "Kontaktiere mich auf Freenode: "

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:145
#, fuzzy
msgctxt "AboutPage|"
msgid "This application uses"
msgstr "Dieses Programm verwendet"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:165
#, fuzzy, qt-format
msgctxt "AboutPage|"
msgid "Licensed under the %1"
msgstr "Lizensiert unter %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/ColorizePage.qml:39
#, fuzzy
msgctxt "ColorizePage|"
msgid "Colorize"
msgstr "Einfärben"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/CutPage.qml:40
#, fuzzy
msgctxt "CutPage|"
msgid "Cut & Rotate"
msgstr "Zuschneiden & Drehen"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:99
#, fuzzy, qt-format
msgctxt "DocumentPage|"
msgid "Page %1 of %2 (%3)"
msgstr "Seite %1 von %2 (%3)"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:109
#, fuzzy
msgctxt "DocumentPage|"
msgid "Delete page"
msgstr "Seite löschen"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:151
#, fuzzy
msgctxt "DocumentPage|"
msgid "Export to pdf"
msgstr "Pdf exportieren"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:157
#, fuzzy
msgctxt "DocumentPage|"
msgid "Rename"
msgstr "Umbenennen"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:253
#, fuzzy, qt-format
msgctxt "DocumentPage|"
msgid "Overwrite existing file <%1>?"
msgstr "Existierende Datei <%1> überschreiben?"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:77
#, fuzzy
msgctxt "DocumentsPage|"
msgid "Delete document"
msgstr "Dokument löschen"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:119
#, fuzzy
msgctxt "DocumentsPage|"
msgid "Documents"
msgstr "Dokumente"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:126
#, fuzzy, qt-format
msgctxt "DocumentsPage|"
msgid "About %1"
msgstr "Über %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/NewImagePage.qml:109
#, fuzzy
msgctxt "NewImagePage|"
msgid "New Picture"
msgstr "Neues Bild"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:32
#, fuzzy
msgctxt "RenamePage|"
msgid "Enter new document title"
msgstr "Neuen Dokumenttitel eingeben"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:38
#, fuzzy
msgctxt "RenamePage|"
msgid "Document title"
msgstr "Dokumenttitel"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:272
#, fuzzy
msgctxt "Document|"
msgid "Cannot add page, document is not ready"
msgstr "Seite kann nicht hinzugefügt werden, Dokument ist nicht bereit"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:341
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Cannot create path %1"
msgstr "Pfad %1 kann nicht erstellt werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:348
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Can't write document file %1:%2"
msgstr "Dokumentdatei %1 kann nicht geschrieben werden: %2"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:369
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Error writing document file:%1"
msgstr "Fehler beim schreiben der Datei %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:381
#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:400
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Cannot load document from '%1', another process is running"
msgstr ""
"Dokument kann nicht von %1 gelesen werden während ein anderer Prozess läuft"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:416
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Can't open document file %1"
msgstr "Dokumentdatei %1 kann nicht geöffnet werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:425
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Could not read document title from document file %1"
msgstr "Dokumenttitel kann nicht von Datei %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:430
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Could not read creation time from document file %1"
msgstr "Erstellungszeit kann nicht von Datei %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:436
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Could not read pages from document file %1"
msgstr "Seiten des Dokuments konnten nicht von %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:442
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Could not read page from document file %1"
msgstr "Eine Seite konnte nicht von Dokument %1 gelesen werden"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:451
#, fuzzy, qt-format
msgctxt "Document|"
msgid "Error reading page from document file %1"
msgstr "Fehler beim lesen der Dokumentdatei %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:502
#, fuzzy
msgctxt "Document|"
msgid "Cannot export to pdf, document is not ready"
msgstr "Pdf kann nicht exportiert werden, Dokument ist nicht bereit"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:558
#, fuzzy
msgctxt "Document|"
msgid "Error creating pdf-file"
msgstr "Fehler beim Erstellen der pdf-Datei"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:144
#, fuzzy
msgctxt "Page|"
msgid "Page could not be created: error saving original image"
msgstr ""
"Seite kann nicht erstellt werden: Fehler beim Speichern des Originalbildes"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:149
#, fuzzy
msgctxt "Page|"
msgid "Page could not be created: error saving result image"
msgstr "Seite kann nicht erstellt werden: Fehler beim Speichern des Bildes"
Added translations/harbour-fotokopierer-sv.po.
























































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Language: de_DE\n"
"X-Source-Language: en_US\n"
"X-Qt-Contexts: true\n"

#~ msgctxt "CameraPage|"
#~ msgid "New Picture"
#~ msgstr "Ny bild"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/ColorizePage.qml:39
msgctxt "ColorizePage|"
msgid "Colorize"
msgstr "Färglägg"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/CutPage.qml:40
msgctxt "CutPage|"
msgid "Cut & Rotate"
msgstr "Klipp ut & rotera"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:272
msgctxt "Document|"
msgid "Cannot add page, document is not ready"
msgstr "Kan inte lägga till sida, dokumentet är inte klart"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:341
#, qt-format
msgctxt "Document|"
msgid "Cannot create path %1"
msgstr "Kan inte skapa sökvägen %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:348
#, qt-format
msgctxt "Document|"
msgid "Can't write document file %1:%2"
msgstr "Kan inte skriva dokumentfil %1: %2"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:369
#, qt-format
msgctxt "Document|"
msgid "Error writing document file:%1"
msgstr "Kunde inte skriva dokumentfil: %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:381
#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:400
#, qt-format
msgctxt "Document|"
msgid "Cannot load document from '%1', another process is running"
msgstr "Kan inte läsa in dokument från \"%1\", en annan process hindrar."

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:416
#, qt-format
msgctxt "Document|"
msgid "Can't open document file %1"
msgstr "Kan inte öppna dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:425
#, qt-format
msgctxt "Document|"
msgid "Could not read document title from document file %1"
msgstr "Kunde inte läsa titel från dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:430
#, qt-format
msgctxt "Document|"
msgid "Could not read creation time from document file %1"
msgstr "Kunde inte läsa tidsstämpel från dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:436
#, qt-format
msgctxt "Document|"
msgid "Could not read pages from document file %1"
msgstr "Kunde inte läsa sidor från dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:442
#, qt-format
msgctxt "Document|"
msgid "Could not read page from document file %1"
msgstr "Kunde inte läsa sida från dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:451
#, qt-format
msgctxt "Document|"
msgid "Error reading page from document file %1"
msgstr "Kunde inte läsa sida från dokumentfil %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:502
msgctxt "Document|"
msgid "Cannot export to pdf, document is not ready"
msgstr "Kan inte exportera till PDF, dokumentet är inte klart"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:558
msgctxt "Document|"
msgid "Error creating pdf-file"
msgstr "Kunde inte skapa PDF-fil"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:99
#, qt-format
msgctxt "DocumentPage|"
msgid "Page %1 of %2 (%3)"
msgstr "Sida %1 av %2 (%3)"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:109
msgctxt "DocumentPage|"
msgid "Delete page"
msgstr "Ta bort sidan"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:151
msgctxt "DocumentPage|"
msgid "Export to pdf"
msgstr "Exportera till PDF"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:157
msgctxt "DocumentPage|"
msgid "Rename"
msgstr "Byt namn"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:253
#, qt-format
msgctxt "DocumentPage|"
msgid "Overwrite existing file <%1>?"
msgstr "Vill du skriva över befintlig fil <%1>?"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:77
msgctxt "DocumentsPage|"
msgid "Delete document"
msgstr "Ta bort dokumentet"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:119
msgctxt "DocumentsPage|"
msgid "Documents"
msgstr "Dokument"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:126
#, qt-format
msgctxt "DocumentsPage|"
msgid "About %1"
msgstr "Om %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/NewImagePage.qml:109
msgctxt "NewImagePage|"
msgid "New Picture"
msgstr "Ny bild"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:45
msgctxt "CoverPage|"
msgid "Take a new picture"
msgstr "Ta en ny bild"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:78
#, qt-format
msgctxt "CoverPage|"
msgid "Pages: %2"
msgstr "Sidor: %2"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:35
#, qt-format
msgctxt "AboutPage|"
msgid "About %1"
msgstr "Om %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:64
#, qt-format
msgctxt "AboutPage|"
msgid "A camera scanning application for SailfishOS by %1"
msgstr "En kameraskanner för SailfishOS av %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:75
#, qt-format
msgctxt "AboutPage|"
msgid "Icons by %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:100
msgctxt "AboutPage|"
msgid "Swedish"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:115
msgctxt "AboutPage|"
msgid "Homepage"
msgstr "Hemsida"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:126
msgctxt "AboutPage|"
msgid "Find me on Freenode: "
msgstr "Hitta mig på Freenode: "

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:145
msgctxt "AboutPage|"
msgid "This application uses"
msgstr "Denna app använder"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:165
#, qt-format
msgctxt "AboutPage|"
msgid "Licensed under the %1"
msgstr "Licensierad under %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:32
msgctxt "RenamePage|"
msgid "Enter new document title"
msgstr "Ange ny dokumenttitel"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:38
msgctxt "RenamePage|"
msgid "Document title"
msgstr "Dokumenttitel"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/DocumentDelegate.qml:128
#, qt-format
msgctxt "DocumentDelegate|"
msgid "Pages: %1"
msgstr "Sidor: %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/PageDelegate.qml:96
#, qt-format
msgctxt "PageDelegate|"
msgid "Page %1"
msgstr "Sida %1"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:144
msgctxt "Page|"
msgid "Page could not be created: error saving original image"
msgstr "Sidan kunde inte skapas: Fel när originalbild sparades"

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:149
msgctxt "Page|"
msgid "Page could not be created: error saving result image"
msgstr "Sidan kunde inte skapas: Fel när resultatbild sparades"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no original image"
#~ msgstr "Sidan kunde inte skapas: Ingen originalbild"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no result image"
#~ msgstr "Sidan kunde inte skapas: Ingen resultatbild"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr "Sidan kunde inte skapas: Fel när originalbild sparades"

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr "Sidan kunde inte skapas: Fel när resultatbild sparades"

#, qt-format
#~ msgctxt "DocumentDelegate|"
#~ msgid ""
#~ "Pages: %1\n"
#~ "%2"
#~ msgstr ""
#~ "Sidor: %1\n"
#~ "%2"

#, qt-format
#~ msgctxt "PageDelegate|"
#~ msgid ""
#~ "Page %1\n"
#~ "%2"
#~ msgstr ""
#~ "Sida %1\n"
#~ "%2"
Changes to translations/harbour-fotokopierer.pot.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203











204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Language: de_DE\n"
"X-Source-Language: en_US\n"
"X-Qt-Contexts: true\n"

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/CameraPage.qml:44
msgctxt "CameraPage|"
msgid "New Picture"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/ColorizePage.qml:39
msgctxt "ColorizePage|"
msgid "Colorize"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/CutPage.qml:40
msgctxt "CutPage|"
msgid "Cut & Rotate"
msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no original image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no result image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:272
msgctxt "Document|"
msgid "Cannot add page, document is not ready"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:341
#, qt-format
msgctxt "Document|"
msgid "Cannot create path %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:348
#, qt-format
msgctxt "Document|"
msgid "Can't write document file %1:%2"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:369
#, qt-format
msgctxt "Document|"
msgid "Error writing document file:%1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:381
#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:400
#, qt-format
msgctxt "Document|"
msgid "Cannot load document from '%1', another process is running"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:416
#, qt-format
msgctxt "Document|"
msgid "Can't open document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:425
#, qt-format
msgctxt "Document|"
msgid "Could not read document title from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:430
#, qt-format
msgctxt "Document|"
msgid "Could not read creation time from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:436
#, qt-format
msgctxt "Document|"
msgid "Could not read pages from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:442
#, qt-format
msgctxt "Document|"
msgid "Could not read page from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:451
#, qt-format
msgctxt "Document|"
msgid "Error reading page from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:502
msgctxt "Document|"
msgid "Cannot export to pdf, document is not ready"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Document.cxx:558
msgctxt "Document|"
msgid "Error creating pdf-file"
msgstr ""

#, qt-format
#~ msgctxt "DocumentDelegate|"
#~ msgid ""
#~ "Pages: %1\n"
#~ "%2"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:99
#, qt-format
msgctxt "DocumentPage|"
msgid "Page %1 of %2 (%3)"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:109
msgctxt "DocumentPage|"
msgid "Delete page"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:151
msgctxt "DocumentPage|"
msgid "Export to pdf"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:157
msgctxt "DocumentPage|"
msgid "Rename"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentPage.qml:253
#, qt-format
msgctxt "DocumentPage|"
msgid "Overwrite existing file <%1>?"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:77
msgctxt "DocumentsPage|"
msgid "Delete document"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:119
msgctxt "DocumentsPage|"
msgid "Documents"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/DocumentsPage.qml:126
#, qt-format
msgctxt "DocumentsPage|"
msgid "About %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/NewImagePage.qml:107
msgctxt "NewImagePage|"
msgid "New Picture"
msgstr ""

#, qt-format
#~ msgctxt "PageDelegate|"
#~ msgid ""
#~ "Page %1\n"
#~ "%2"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/CoverPage.qml:45
msgctxt "CoverPage|"
msgid "Take a new picture"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/CoverPage.qml:78
#, qt-format
msgctxt "CoverPage|"
msgid "Pages: %2"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:35
#, qt-format
msgctxt "AboutPage|"
msgid "About %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:63
#, qt-format
msgctxt "AboutPage|"
msgid "A camera scanning application for SailfishOS by %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:79











msgctxt "AboutPage|"
msgid "Homepage"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:90
msgctxt "AboutPage|"
msgid "Find me on Freenode: "
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:109
msgctxt "AboutPage|"
msgid "This application uses"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/AboutPage.qml:129
#, qt-format
msgctxt "AboutPage|"
msgid "Licensed under the %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/RenamePage.qml:32
msgctxt "RenamePage|"
msgid "Enter new document title"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/pages/RenamePage.qml:38
msgctxt "RenamePage|"
msgid "Document title"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/DocumentDelegate.qml:128
#, qt-format
msgctxt "DocumentDelegate|"
msgid "Pages: %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/qml/sfos/PageDelegate.qml:96
#, qt-format
msgctxt "PageDelegate|"
msgid "Page %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Page.cxx:145
msgctxt "Page|"
msgid "Page could not be created: error saving original image"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/devel/src/Page.cxx:150
msgctxt "Page|"
msgid "Page could not be created: error saving result image"
msgstr ""










<
|
|
|

|




|




















|




|





|





|





|
|





|





|





|





|





|





|





|




|











|





|




|




|




|





|




|




|





|











|




|





|





|





|
>
>
>
>
>
>
>
>
>
>
>




|




|




|





|




|




|





|





|




|



1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Language: de_DE\n"
"X-Source-Language: en_US\n"
"X-Qt-Contexts: true\n"


#~ msgctxt "CameraPage|"
#~ msgid "New Picture"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/ColorizePage.qml:39
msgctxt "ColorizePage|"
msgid "Colorize"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/CutPage.qml:40
msgctxt "CutPage|"
msgid "Cut & Rotate"
msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no original image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: no result image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving original image"
#~ msgstr ""

#~ msgctxt "Document|"
#~ msgid "Page could not be created: error saving result image"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:272
msgctxt "Document|"
msgid "Cannot add page, document is not ready"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:341
#, qt-format
msgctxt "Document|"
msgid "Cannot create path %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:348
#, qt-format
msgctxt "Document|"
msgid "Can't write document file %1:%2"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:369
#, qt-format
msgctxt "Document|"
msgid "Error writing document file:%1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:381
#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:400
#, qt-format
msgctxt "Document|"
msgid "Cannot load document from '%1', another process is running"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:416
#, qt-format
msgctxt "Document|"
msgid "Can't open document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:425
#, qt-format
msgctxt "Document|"
msgid "Could not read document title from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:430
#, qt-format
msgctxt "Document|"
msgid "Could not read creation time from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:436
#, qt-format
msgctxt "Document|"
msgid "Could not read pages from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:442
#, qt-format
msgctxt "Document|"
msgid "Could not read page from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:451
#, qt-format
msgctxt "Document|"
msgid "Error reading page from document file %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:502
msgctxt "Document|"
msgid "Cannot export to pdf, document is not ready"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Document.cxx:558
msgctxt "Document|"
msgid "Error creating pdf-file"
msgstr ""

#, qt-format
#~ msgctxt "DocumentDelegate|"
#~ msgid ""
#~ "Pages: %1\n"
#~ "%2"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:99
#, qt-format
msgctxt "DocumentPage|"
msgid "Page %1 of %2 (%3)"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:109
msgctxt "DocumentPage|"
msgid "Delete page"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:151
msgctxt "DocumentPage|"
msgid "Export to pdf"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:157
msgctxt "DocumentPage|"
msgid "Rename"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentPage.qml:253
#, qt-format
msgctxt "DocumentPage|"
msgid "Overwrite existing file <%1>?"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:77
msgctxt "DocumentsPage|"
msgid "Delete document"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:119
msgctxt "DocumentsPage|"
msgid "Documents"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/DocumentsPage.qml:126
#, qt-format
msgctxt "DocumentsPage|"
msgid "About %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/NewImagePage.qml:109
msgctxt "NewImagePage|"
msgid "New Picture"
msgstr ""

#, qt-format
#~ msgctxt "PageDelegate|"
#~ msgid ""
#~ "Page %1\n"
#~ "%2"
#~ msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:45
msgctxt "CoverPage|"
msgid "Take a new picture"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/CoverPage.qml:78
#, qt-format
msgctxt "CoverPage|"
msgid "Pages: %2"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:35
#, qt-format
msgctxt "AboutPage|"
msgid "About %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:64
#, qt-format
msgctxt "AboutPage|"
msgid "A camera scanning application for SailfishOS by %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:75
#, qt-format
msgctxt "AboutPage|"
msgid "Icons by %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:100
msgctxt "AboutPage|"
msgid "Swedish"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:115
msgctxt "AboutPage|"
msgid "Homepage"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:126
msgctxt "AboutPage|"
msgid "Find me on Freenode: "
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:145
msgctxt "AboutPage|"
msgid "This application uses"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/AboutPage.qml:165
#, qt-format
msgctxt "AboutPage|"
msgid "Licensed under the %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:32
msgctxt "RenamePage|"
msgid "Enter new document title"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/pages/RenamePage.qml:38
msgctxt "RenamePage|"
msgid "Document title"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/DocumentDelegate.qml:128
#, qt-format
msgctxt "DocumentDelegate|"
msgid "Pages: %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/qml/sfos/PageDelegate.qml:96
#, qt-format
msgctxt "PageDelegate|"
msgid "Page %1"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:144
msgctxt "Page|"
msgid "Page could not be created: error saving original image"
msgstr ""

#: /home/fifr/JollaProjekte/fotokopierer/release/src/Page.cxx:149
msgctxt "Page|"
msgid "Page could not be created: error saving result image"
msgstr ""