aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikko Syrjä <mikko@3d-system.fi>2019-03-10 00:23:41 +0200
committerMikko Syrjä <mikko@3d-system.fi>2019-03-10 00:23:41 +0200
commit75bc788c14e39f2d0643dae9818ca0eac2be72e0 (patch)
treeefedefc90b96297d4ff218072df1a9e46992b844
parentf8c3caee56c821322e79f6540ffe98a8e920597f (diff)
downloadsymedit-75bc788c14e39f2d0643dae9818ca0eac2be72e0.tar.gz
symedit-75bc788c14e39f2d0643dae9818ca0eac2be72e0.zip
Initial file open and save support.
-rw-r--r--help/eng/menu.rst5
-rw-r--r--help/fin/menu.rst5
-rw-r--r--locale/symedit.en_GB.ts192
-rw-r--r--locale/symedit.fi_FI.ts194
-rw-r--r--locale/symedit.ts32
-rw-r--r--main.qml39
-rw-r--r--symedit.cpp61
-rw-r--r--symedit.h5
8 files changed, 327 insertions, 206 deletions
diff --git a/help/eng/menu.rst b/help/eng/menu.rst
index a7e0606..8cc4a70 100644
--- a/help/eng/menu.rst
+++ b/help/eng/menu.rst
@@ -23,6 +23,11 @@ xxx
xxx
+Save as
+^^^^^^^
+
+xxx
+
|exit image| Exit
^^^^^^^^^^^^^^^^^
diff --git a/help/fin/menu.rst b/help/fin/menu.rst
index a79e17d..e37a181 100644
--- a/help/fin/menu.rst
+++ b/help/fin/menu.rst
@@ -23,6 +23,11 @@ xxx
xxx
+Tallenna nimellä
+^^^^^^^^^^^^^^^^
+
+xxx
+
|exit image| Lopeta
^^^^^^^^^^^^^^^^^^^
diff --git a/locale/symedit.en_GB.ts b/locale/symedit.en_GB.ts
index b77be70..197b567 100644
--- a/locale/symedit.en_GB.ts
+++ b/locale/symedit.en_GB.ts
@@ -5,319 +5,339 @@
<name></name>
<message id="id_application_title">
<source></source>
- <translation type="unfinished">Symbol Editor</translation>
+ <translation>Symbol Editor</translation>
</message>
<message id="id_menu_file">
<source></source>
- <translation type="unfinished">File</translation>
+ <translation>File</translation>
</message>
<message id="id_menu_file_open">
<source></source>
- <translation type="unfinished">Open...</translation>
+ <translation>Open...</translation>
</message>
<message id="id_menu_file_save">
<source></source>
- <translation type="unfinished">Save...</translation>
+ <translation>Save...</translation>
+ </message>
+ <message id="id_menu_file_save_as">
+ <source></source>
+ <translation>Save as...</translation>
</message>
<message id="id_menu_file_exit">
<source></source>
- <translation type="unfinished">Exit</translation>
+ <translation>Exit</translation>
</message>
<message id="id_menu_edit">
<source></source>
- <translation type="unfinished">Edit</translation>
+ <translation>Edit</translation>
</message>
<message id="id_menu_edit_undo">
<source></source>
- <translation type="unfinished">Undo</translation>
+ <translation>Undo</translation>
</message>
<message id="id_menu_edit_redo">
<source></source>
- <translation type="unfinished">Redo</translation>
+ <translation>Redo</translation>
</message>
<message id="id_menu_edit_cut">
<source></source>
- <translation type="unfinished">Cut</translation>
+ <translation>Cut</translation>
</message>
<message id="id_menu_edit_copy">
<source></source>
- <translation type="unfinished">Copy</translation>
+ <translation>Copy</translation>
</message>
<message id="id_menu_edit_paste">
<source></source>
- <translation type="unfinished">Paste</translation>
+ <translation>Paste</translation>
</message>
<message id="id_menu_edit_rotate_right">
<source></source>
- <translation type="unfinished">Rotate Right</translation>
+ <translation>Rotate Right</translation>
</message>
<message id="id_menu_edit_rotate_left">
<source></source>
- <translation type="unfinished">Rotate Left</translation>
+ <translation>Rotate Left</translation>
</message>
<message id="id_menu_edit_raise_item">
<source></source>
- <translation type="unfinished">Raise Item</translation>
+ <translation>Raise Item</translation>
</message>
<message id="id_menu_edit_lower_item">
<source></source>
- <translation type="unfinished">Lower Item</translation>
+ <translation>Lower Item</translation>
</message>
<message id="id_menu_edit_delete_item">
<source></source>
- <translation type="unfinished">Delete Item</translation>
+ <translation>Delete Item</translation>
</message>
<message id="id_menu_view">
<source></source>
- <translation type="unfinished">View</translation>
+ <translation>View</translation>
</message>
<message id="id_menu_view_zoom_in">
<source></source>
- <translation type="unfinished">Zoom In</translation>
+ <translation>Zoom In</translation>
</message>
<message id="id_menu_view_zoom_out">
<source></source>
- <translation type="unfinished">Zoom Out</translation>
+ <translation>Zoom Out</translation>
</message>
<message id="id_menu_view_zoom_all">
<source></source>
- <translation type="unfinished">Maximum</translation>
+ <translation>Maximum</translation>
</message>
<message id="id_menu_view_grid">
<source></source>
- <translation type="unfinished">Show Grid</translation>
+ <translation>Show Grid</translation>
</message>
<message id="id_menu_view_preview">
<source></source>
- <translation type="unfinished">Preview</translation>
+ <translation>Preview</translation>
</message>
<message id="id_menu_tool">
<source></source>
- <translation type="unfinished">Tool</translation>
+ <translation>Tool</translation>
</message>
<message id="id_menu_tool_select">
<source></source>
- <translation type="unfinished">Select</translation>
+ <translation>Select</translation>
</message>
<message id="id_menu_tool_line">
<source></source>
- <translation type="unfinished">Line</translation>
+ <translation>Line</translation>
</message>
<message id="id_menu_tool_rect_corner">
<source></source>
- <translation type="unfinished">Rectangle Corner</translation>
+ <translation>Rectangle Corner</translation>
</message>
<message id="id_menu_tool_rect_center">
<source></source>
- <translation type="unfinished">Rectangle Center</translation>
+ <translation>Rectangle Center</translation>
</message>
<message id="id_menu_tool_circle_corner">
<source></source>
- <translation type="unfinished">Circle Corner</translation>
+ <translation>Circle Corner</translation>
</message>
<message id="id_menu_tool_circle_radius">
<source></source>
- <translation type="unfinished">Circle Radius</translation>
+ <translation>Circle Radius</translation>
</message>
<message id="id_menu_tool_circle_center">
<source></source>
- <translation type="unfinished">Circle Center</translation>
+ <translation>Circle Center</translation>
</message>
<message id="id_menu_tool_arc_semi">
<source></source>
- <translation type="unfinished">Semicircle</translation>
+ <translation>Semicircle</translation>
</message>
<message id="id_menu_tool_arc_quarter">
<source></source>
- <translation type="unfinished">Quarter Circle</translation>
+ <translation>Quarter Circle</translation>
</message>
<message id="id_menu_tool_text">
<source></source>
- <translation type="unfinished">Text</translation>
+ <translation>Text</translation>
</message>
<message id="id_menu_help">
<source></source>
- <translation type="unfinished">Help</translation>
+ <translation>Help</translation>
</message>
<message id="id_menu_help_contents">
<source></source>
- <translation type="unfinished">Contents</translation>
+ <translation>Contents</translation>
</message>
<message id="id_menu_help_about">
<source></source>
- <translation type="unfinished">About</translation>
+ <translation>About</translation>
</message>
<message id="id_tooltip_edit_undo">
<source></source>
- <translation type="unfinished">Undo edit</translation>
+ <translation>Undo edit</translation>
</message>
<message id="id_tooltip_edit_redo">
<source></source>
- <translation type="unfinished">Redo edit</translation>
+ <translation>Redo edit</translation>
</message>
<message id="id_tooltip_edit_cut">
<source></source>
- <translation type="unfinished">Cut symbol</translation>
+ <translation>Cut symbol</translation>
</message>
<message id="id_tooltip_edit_copy">
<source></source>
- <translation type="unfinished">Copy symbol</translation>
+ <translation>Copy symbol</translation>
</message>
<message id="id_tooltip_edit_paste">
<source></source>
- <translation type="unfinished">Paste symbol</translation>
+ <translation>Paste symbol</translation>
</message>
<message id="id_tooltip_edit_rotate_right">
<source></source>
- <translation type="unfinished">Rotate right</translation>
+ <translation>Rotate right</translation>
</message>
<message id="id_tooltip_edit_rotate_left">
<source></source>
- <translation type="unfinished">Rotate left</translation>
+ <translation>Rotate left</translation>
</message>
<message id="id_tooltip_edit_raise_item">
<source></source>
- <translation type="unfinished">Raise item</translation>
+ <translation>Raise item</translation>
</message>
<message id="id_tooltip_edit_lower_item">
<source></source>
- <translation type="unfinished">Lower item</translation>
+ <translation>Lower item</translation>
</message>
<message id="id_tooltip_delete_item">
<source></source>
- <translation type="unfinished">Delete item</translation>
+ <translation>Delete item</translation>
</message>
<message id="id_tooltip_zoom_all">
<source></source>
- <translation type="unfinished">Maximum zoom</translation>
+ <translation>Maximum zoom</translation>
</message>
<message id="id_tooltip_zoom_preview">
<source></source>
- <translation type="unfinished">Preview symbol</translation>
+ <translation>Preview symbol</translation>
</message>
<message id="id_tooltip_tool_select">
<source></source>
- <translation type="unfinished">Select item</translation>
+ <translation>Select item</translation>
</message>
<message id="id_tooltip_tool_line">
<source></source>
- <translation type="unfinished">Draw line</translation>
+ <translation>Draw line</translation>
</message>
<message id="id_tooltip_tool_rect_corner">
<source></source>
- <translation type="unfinished">Rectangle corner</translation>
+ <translation>Rectangle corner</translation>
</message>
<message id="id_tooltip_tool_rect_center">
<source></source>
- <translation type="unfinished">Rectangle center</translation>
+ <translation>Rectangle center</translation>
</message>
<message id="id_tooltip_tool_circle_corner">
<source></source>
- <translation type="unfinished">Circle corner</translation>
+ <translation>Circle corner</translation>
</message>
<message id="id_tooltip_tool_circle_radius">
<source></source>
- <translation type="unfinished">Circle radius</translation>
+ <translation>Circle radius</translation>
</message>
<message id="id_tooltip_tool_circle_center">
<source></source>
- <translation type="unfinished">Circle center</translation>
+ <translation>Circle center</translation>
</message>
<message id="id_tooltip_tool_text">
<source></source>
- <translation type="unfinished">Draw text</translation>
+ <translation>Draw text</translation>
</message>
<message id="id_toolbar_snap_grid">
<source></source>
- <translation type="unfinished">Snap Grid</translation>
+ <translation>Snap Grid</translation>
</message>
<message id="id_toolbar_fill_item">
<source></source>
- <translation type="unfinished">Fill Item</translation>
+ <translation>Fill Item</translation>
</message>
<message id="id_toolbar_fill_none">
<source></source>
- <translation type="unfinished">0 No fill</translation>
+ <translation>0 No fill</translation>
</message>
<message id="id_toolbar_fill_back">
<source></source>
- <translation type="unfinished">1 Background</translation>
+ <translation>1 Background</translation>
</message>
<message id="id_toolbar_fill_area">
<source></source>
- <translation type="unfinished">2 Fill area</translation>
+ <translation>2 Fill area</translation>
</message>
<message id="id_toolbar_line_width">
<source></source>
- <translation type="unfinished">Line Width</translation>
+ <translation>Line Width</translation>
</message>
<message id="id_toolbar_text_size">
<source></source>
- <translation type="unfinished">Text Size</translation>
+ <translation>Text Size</translation>
</message>
<message id="id_toolbar_alignment">
<source></source>
- <translation type="unfinished">Alignment</translation>
+ <translation>Alignment</translation>
</message>
<message id="id_toolbar_align_top_right">
<source></source>
- <translation type="unfinished">1 Top right</translation>
+ <translation>1 Top right</translation>
</message>
<message id="id_toolbar_align_top_center">
<source></source>
- <translation type="unfinished">2 Top center</translation>
+ <translation>2 Top center</translation>
</message>
<message id="id_toolbar_align_top_left">
<source></source>
- <translation type="unfinished">3 Top left</translation>
+ <translation>3 Top left</translation>
</message>
<message id="id_toolbar_align_base_right">
<source></source>
- <translation type="unfinished">4 Base right</translation>
+ <translation>4 Base right</translation>
</message>
<message id="id_toolbar_align_base_center">
<source></source>
- <translation type="unfinished">5 Base center</translation>
+ <translation>5 Base center</translation>
</message>
<message id="id_toolbar_align_base_left">
<source></source>
- <translation type="unfinished">6 Base left</translation>
+ <translation>6 Base left</translation>
</message>
<message id="id_toolbar_align_bottom_right">
<source></source>
- <translation type="unfinished">7 Bottom right</translation>
+ <translation>7 Bottom right</translation>
</message>
<message id="id_toolbar_align_bottom_center">
<source></source>
- <translation type="unfinished">8 Bottom center</translation>
+ <translation>8 Bottom center</translation>
</message>
<message id="id_toolbar_align_bottom_left">
<source></source>
- <translation type="unfinished">9 Bottom left</translation>
+ <translation>9 Bottom left</translation>
</message>
<message id="id_toolbar_align_middle_right">
<source></source>
- <translation type="unfinished">10 Middle right</translation>
+ <translation>10 Middle right</translation>
</message>
<message id="id_toolbar_align_middle_center">
<source></source>
- <translation type="unfinished">11 Middle center</translation>
+ <translation>11 Middle center</translation>
</message>
<message id="id_toolbar_align_middle_left">
<source></source>
- <translation type="unfinished">12 Middle left</translation>
+ <translation>12 Middle left</translation>
</message>
<message id="id_toolbar_text_field">
<source></source>
- <translation type="unfinished">Text</translation>
+ <translation>Text</translation>
</message>
- <message id="id_dialog_about">
+ <message id="id_dialog_open_file">
+ <source></source>
+ <translation>Open File</translation>
+ </message>
+ <message id="id_dialog_save_file">
+ <source></source>
+ <translation>Save File</translation>
+ </message>
+ <message id="id_dialog_symbol_files">
+ <source></source>
+ <translation>Symbol files (*.txt)</translation>
+ </message>
+ <message id="id_dialog_all_files">
+ <source></source>
+ <translation>All files (*)</translation>
+ </message>
+ <message id="id_dialog_about">
<source></source>
- <translation type="unfinished">About Program</translation>
+ <translation>About Program</translation>
</message>
<message id="id_dialog_about_text">
<source></source>
- <translation type="unfinished">Symbol editor for 3D-Win</translation>
+ <translation>Symbol editor for 3D-Win</translation>
</message>
<message id="id_tooltip_tool_semi_radius">
<source></source>
@@ -333,7 +353,7 @@
</message>
<message id="id_cli_symbol_description">
<source></source>
- <translation>Read symbol from parameter &lt;symbol&gt;.</translation>
+ <translation>Read symbol from parameter &lt;symbol&gt;.</translation>
</message>
<message id="id_cli_language">
<source></source>
@@ -343,11 +363,11 @@
<source></source>
<translation>Application language abbreviation &lt;language&gt;.</translation>
</message>
- <message id="id_cli_transfer_file">
- <source></source>
- <translation>Symbol file is transfer file.</translation>
- </message>
- <message id="id_cli_symbol_file_name">
+ <message id="id_cli_transfer_file">
+ <source></source>
+ <translation>Symbol file is transfer file.</translation>
+ </message>
+ <message id="id_cli_symbol_file_name">
<source></source>
<translation>Symbol file name.</translation>
</message>
diff --git a/locale/symedit.fi_FI.ts b/locale/symedit.fi_FI.ts
index 6fc8a18..2ba3bf0 100644
--- a/locale/symedit.fi_FI.ts
+++ b/locale/symedit.fi_FI.ts
@@ -5,319 +5,339 @@
<name></name>
<message id="id_application_title">
<source></source>
- <translation type="unfinished">Symbolieditori</translation>
+ <translation>Symbolieditori</translation>
</message>
<message id="id_menu_file">
<source></source>
- <translation type="unfinished">Tiedosto</translation>
+ <translation>Tiedosto</translation>
</message>
<message id="id_menu_file_open">
<source></source>
- <translation type="unfinished">Avaa...</translation>
+ <translation>Avaa...</translation>
</message>
<message id="id_menu_file_save">
<source></source>
- <translation type="unfinished">Tallenna...</translation>
+ <translation>Tallenna...</translation>
+ </message>
+ <message id="id_menu_file_save_as">
+ <source></source>
+ <translation>Tallenna nimellä...</translation>
</message>
<message id="id_menu_file_exit">
<source></source>
- <translation type="unfinished">Lopeta</translation>
+ <translation>Lopeta</translation>
</message>
<message id="id_menu_edit">
<source></source>
- <translation type="unfinished">Muokkaa</translation>
+ <translation>Muokkaa</translation>
</message>
<message id="id_menu_edit_undo">
<source></source>
- <translation type="unfinished">Kumoa</translation>
+ <translation>Kumoa</translation>
</message>
<message id="id_menu_edit_redo">
<source></source>
- <translation type="unfinished">Tee uudelleen</translation>
+ <translation>Tee uudelleen</translation>
</message>
<message id="id_menu_edit_cut">
<source></source>
- <translation type="unfinished">Leikkaa</translation>
+ <translation>Leikkaa</translation>
</message>
<message id="id_menu_edit_copy">
<source></source>
- <translation type="unfinished">Kopioi</translation>
+ <translation>Kopioi</translation>
</message>
<message id="id_menu_edit_paste">
<source></source>
- <translation type="unfinished">Liitä</translation>
+ <translation>Liitä</translation>
</message>
<message id="id_menu_edit_rotate_right">
<source></source>
- <translation type="unfinished">Käännä oikealle</translation>
+ <translation>Käännä oikealle</translation>
</message>
<message id="id_menu_edit_rotate_left">
<source></source>
- <translation type="unfinished">Käännä vasemmalle</translation>
+ <translation>Käännä vasemmalle</translation>
</message>
<message id="id_menu_edit_raise_item">
<source></source>
- <translation type="unfinished">Nosta kohdetta</translation>
+ <translation>Nosta kohdetta</translation>
</message>
<message id="id_menu_edit_lower_item">
<source></source>
- <translation type="unfinished">Alenna kohdetta</translation>
+ <translation>Alenna kohdetta</translation>
</message>
<message id="id_menu_edit_delete_item">
<source></source>
- <translation type="unfinished">Poista kohde</translation>
+ <translation>Poista kohde</translation>
</message>
<message id="id_menu_view">
<source></source>
- <translation type="unfinished">Näytä</translation>
+ <translation>Näytä</translation>
</message>
<message id="id_menu_view_zoom_in">
<source></source>
- <translation type="unfinished">Lähennä</translation>
+ <translation>Lähennä</translation>
</message>
<message id="id_menu_view_zoom_out">
<source></source>
- <translation type="unfinished">Loitonna</translation>
+ <translation>Loitonna</translation>
</message>
<message id="id_menu_view_zoom_all">
<source></source>
- <translation type="unfinished">Maksimi</translation>
+ <translation>Maksimi</translation>
</message>
<message id="id_menu_view_grid">
<source></source>
- <translation type="unfinished">Ruudukko</translation>
+ <translation>Ruudukko</translation>
</message>
<message id="id_menu_view_preview">
<source></source>
- <translation type="unfinished">Esikatselu</translation>
+ <translation>Esikatselu</translation>
</message>
<message id="id_menu_tool">
<source></source>
- <translation type="unfinished">Työkalut</translation>
+ <translation>Työkalut</translation>
</message>
<message id="id_menu_tool_select">
<source></source>
- <translation type="unfinished">Valitse</translation>
+ <translation>Valitse</translation>
</message>
<message id="id_menu_tool_line">
<source></source>
- <translation type="unfinished">Viiva</translation>
+ <translation>Viiva</translation>
</message>
<message id="id_menu_tool_rect_corner">
<source></source>
- <translation type="unfinished">Suorakulmio kulmista</translation>
+ <translation>Suorakulmio kulmista</translation>
</message>
<message id="id_menu_tool_rect_center">
<source></source>
- <translation type="unfinished">Suorakulmio keskeltä</translation>
+ <translation>Suorakulmio keskeltä</translation>
</message>
<message id="id_menu_tool_circle_corner">
<source></source>
- <translation type="unfinished">Ympyrä kulmista</translation>
+ <translation>Ympyrä kulmista</translation>
</message>
<message id="id_menu_tool_circle_radius">
<source></source>
- <translation type="unfinished">Ympyrä halkaisija</translation>
+ <translation>Ympyrä halkaisija</translation>
</message>
<message id="id_menu_tool_circle_center">
<source></source>
- <translation type="unfinished">Ympyrä keskeltä</translation>
+ <translation>Ympyrä keskeltä</translation>
</message>
<message id="id_menu_tool_arc_semi">
<source></source>
- <translation type="unfinished">Puoliympyrä</translation>
+ <translation>Puoliympyrä</translation>
</message>
<message id="id_menu_tool_arc_quarter">
<source></source>
- <translation type="unfinished">Neljännesympyrä</translation>
+ <translation>Neljännesympyrä</translation>
</message>
<message id="id_menu_tool_text">
<source></source>
- <translation type="unfinished">Teksti</translation>
+ <translation>Teksti</translation>
</message>
<message id="id_menu_help">
<source></source>
- <translation type="unfinished">Ohje</translation>
+ <translation>Ohje</translation>
</message>
<message id="id_menu_help_contents">
<source></source>
- <translation type="unfinished">Sisältö</translation>
+ <translation>Sisältö</translation>
</message>
<message id="id_menu_help_about">
<source></source>
- <translation type="unfinished">Tietoja</translation>
+ <translation>Tietoja</translation>
</message>
<message id="id_tooltip_edit_undo">
<source></source>
- <translation type="unfinished">Kumoa toiminto</translation>
+ <translation>Kumoa toiminto</translation>
</message>
<message id="id_tooltip_edit_redo">
<source></source>
- <translation type="unfinished">Tee toiminto uudelleen</translation>
+ <translation>Tee toiminto uudelleen</translation>
</message>
<message id="id_tooltip_edit_cut">
<source></source>
- <translation type="unfinished">Leikkaa symboli</translation>
+ <translation>Leikkaa symboli</translation>
</message>
<message id="id_tooltip_edit_copy">
<source></source>
- <translation type="unfinished">Kopioi symboli</translation>
+ <translation>Kopioi symboli</translation>
</message>
<message id="id_tooltip_edit_paste">
<source></source>
- <translation type="unfinished">Liitä symboli</translation>
+ <translation>Liitä symboli</translation>
</message>
<message id="id_tooltip_edit_rotate_right">
<source></source>
- <translation type="unfinished">Käännä oikealle</translation>
+ <translation>Käännä oikealle</translation>
</message>
<message id="id_tooltip_edit_rotate_left">
<source></source>
- <translation type="unfinished">Käännä vasemmalle</translation>
+ <translation>Käännä vasemmalle</translation>
</message>
<message id="id_tooltip_edit_raise_item">
<source></source>
- <translation type="unfinished">Nosta kohdetta</translation>
+ <translation>Nosta kohdetta</translation>
</message>
<message id="id_tooltip_edit_lower_item">
<source></source>
- <translation type="unfinished">Alenna kohdetta</translation>
+ <translation>Alenna kohdetta</translation>
</message>
<message id="id_tooltip_delete_item">
<source></source>
- <translation type="unfinished">Poista kohde</translation>
+ <translation>Poista kohde</translation>
</message>
<message id="id_tooltip_zoom_all">
<source></source>
- <translation type="unfinished">Maksimizoomaus</translation>
+ <translation>Maksimizoomaus</translation>
</message>
<message id="id_tooltip_zoom_preview">
<source></source>
- <translation type="unfinished">Symbolin esikatselu</translation>
+ <translation>Symbolin esikatselu</translation>
</message>
<message id="id_tooltip_tool_select">
<source></source>
- <translation type="unfinished">Valitse kohde</translation>
+ <translation>Valitse kohde</translation>
</message>
<message id="id_tooltip_tool_line">
<source></source>
- <translation type="unfinished">Piirrä viiva</translation>
+ <translation>Piirrä viiva</translation>
</message>
<message id="id_tooltip_tool_rect_corner">
<source></source>
- <translation type="unfinished">Suorakulmio kulmista</translation>
+ <translation>Suorakulmio kulmista</translation>
</message>
<message id="id_tooltip_tool_rect_center">
<source></source>
- <translation type="unfinished">Suorakulmio keskeltä</translation>
+ <translation>Suorakulmio keskeltä</translation>
</message>
<message id="id_tooltip_tool_circle_corner">
<source></source>
- <translation type="unfinished">Ympyrä kulmista</translation>
+ <translation>Ympyrä kulmista</translation>
</message>
<message id="id_tooltip_tool_circle_radius">
<source></source>
- <translation type="unfinished">Ympyrä halkasija</translation>
+ <translation>Ympyrä halkasija</translation>
</message>
<message id="id_tooltip_tool_circle_center">
<source></source>
- <translation type="unfinished">Ympyrä keskeltä</translation>
+ <translation>Ympyrä keskeltä</translation>
</message>
<message id="id_tooltip_tool_text">
<source></source>
- <translation type="unfinished">Piirrä teksti</translation>
+ <translation>Piirrä teksti</translation>
</message>
<message id="id_toolbar_snap_grid">
<source></source>
- <translation type="unfinished">Tartunta</translation>
+ <translation>Tartunta</translation>
</message>
<message id="id_toolbar_fill_item">
<source></source>
- <translation type="unfinished">Täyttö</translation>
+ <translation>Täyttö</translation>
</message>
<message id="id_toolbar_fill_none">
<source></source>
- <translation type="unfinished">0 Ei täyttöä</translation>
+ <translation>0 Ei täyttöä</translation>
</message>
<message id="id_toolbar_fill_back">
<source></source>
- <translation type="unfinished">1 Taustaväri</translation>
+ <translation>1 Taustaväri</translation>
</message>
<message id="id_toolbar_fill_area">
<source></source>
- <translation type="unfinished">2 Alueen täyttö</translation>
+ <translation>2 Alueen täyttö</translation>
</message>
<message id="id_toolbar_line_width">
<source></source>
- <translation type="unfinished">Viivan leveys</translation>
+ <translation>Viivan leveys</translation>
</message>
<message id="id_toolbar_text_size">
<source></source>
- <translation type="unfinished">Tekstin koko</translation>
+ <translation>Tekstin koko</translation>
</message>
<message id="id_toolbar_alignment">
<source></source>
- <translation type="unfinished">Asemointi</translation>
+ <translation>Asemointi</translation>
</message>
<message id="id_toolbar_align_top_right">
<source></source>
- <translation type="unfinished">1 Ylhäällä oikealla</translation>
+ <translation>1 Ylhäällä oikealla</translation>
</message>
<message id="id_toolbar_align_top_center">
<source></source>
- <translation type="unfinished">2 Ylhäällä keskellä</translation>
+ <translation>2 Ylhäällä keskellä</translation>
</message>
<message id="id_toolbar_align_top_left">
<source></source>
- <translation type="unfinished">3 Ylhäällä vasemmalla</translation>
+ <translation>3 Ylhäällä vasemmalla</translation>
</message>
<message id="id_toolbar_align_base_right">
<source></source>
- <translation type="unfinished">4 Alareunassa oikealla</translation>
+ <translation>4 Alareunassa oikealla</translation>
</message>
<message id="id_toolbar_align_base_center">
<source></source>
- <translation type="unfinished">5 Alareunassa keskellä</translation>
+ <translation>5 Alareunassa keskellä</translation>
</message>
<message id="id_toolbar_align_base_left">
<source></source>
- <translation type="unfinished">6 Alareunassa vasemmalla</translation>
+ <translation>6 Alareunassa vasemmalla</translation>
</message>
<message id="id_toolbar_align_bottom_right">
<source></source>
- <translation type="unfinished">7 Alhaalla oikealla</translation>
+ <translation>7 Alhaalla oikealla</translation>
</message>
<message id="id_toolbar_align_bottom_center">
<source></source>
- <translation type="unfinished">8 Alhaalla keskellä</translation>
+ <translation>8 Alhaalla keskellä</translation>
</message>
<message id="id_toolbar_align_bottom_left">
<source></source>
- <translation type="unfinished">9 Alhaalla vasemmalla</translation>
+ <translation>9 Alhaalla vasemmalla</translation>
</message>
<message id="id_toolbar_align_middle_right">
<source></source>
- <translation type="unfinished">10 Puolivälissä oikealla</translation>
+ <translation>10 Puolivälissä oikealla</translation>
</message>
<message id="id_toolbar_align_middle_center">
<source></source>
- <translation type="unfinished">11 Puolivälissä keskellä</translation>
+ <translation>11 Puolivälissä keskellä</translation>
</message>
<message id="id_toolbar_align_middle_left">
<source></source>
- <translation type="unfinished">12 Puolivälissä vasemmalla</translation>
+ <translation>12 Puolivälissä vasemmalla</translation>
</message>
<message id="id_toolbar_text_field">
<source></source>
- <translation type="unfinished">Teksti</translation>
+ <translation>Teksti</translation>
</message>
- <message id="id_dialog_about">
+ <message id="id_dialog_open_file">
+ <source></source>
+ <translation>Avaa tiedosto</translation>
+ </message>
+ <message id="id_dialog_save_file">
+ <source></source>
+ <translation>Tallenna tiedosto</translation>
+ </message>
+ <message id="id_dialog_symbol_files">
+ <source></source>
+ <translation>Symbolitiedostot (*.txt)</translation>
+ </message>
+ <message id="id_dialog_all_files">
+ <source></source>
+ <translation>Kaikki tiedostot (*)</translation>
+ </message>
+ <message id="id_dialog_about">
<source></source>
- <translation type="unfinished">Tietoja ohjelmasta</translation>
+ <translation>Tietoja ohjelmasta</translation>
</message>
<message id="id_dialog_about_text">
<source></source>
- <translation type="unfinished">3D-Win symbolieditori</translation>
+ <translation>3D-Win symbolieditori</translation>
</message>
<message id="id_tooltip_tool_semi_radius">
<source></source>
@@ -333,7 +353,7 @@
</message>
<message id="id_cli_symbol_description">
<source></source>
- <translation>Lue symboli parametrista &lt;symboli&gt;.</translation>
+ <translation>Lue symboli parametrista &lt;symboli&gt;.</translation>
</message>
<message id="id_cli_language">
<source></source>
@@ -341,13 +361,13 @@
</message>
<message id="id_cli_language_description">
<source></source>
- <translation>Sovelluksen kielen lyhenne &lt;kieli&gt;.</translation>
+ <translation>Sovelluksen kielen lyhenne &lt;kieli&gt;.</translation>
</message>
- <message id="id_cli_transfer_file">
- <source></source>
- <translation>Symbolitiedosto on siirtotiedosto.</translation>
- </message>
- <message id="id_cli_symbol_file_name">
+ <message id="id_cli_transfer_file">
+ <source></source>
+ <translation>Symbolitiedosto on siirtotiedosto.</translation>
+ </message>
+ <message id="id_cli_symbol_file_name">
<source></source>
<translation>Symbolitiedoston nimi.</translation>
</message>
diff --git a/locale/symedit.ts b/locale/symedit.ts
index bf67612..3348176 100644
--- a/locale/symedit.ts
+++ b/locale/symedit.ts
@@ -15,6 +15,10 @@
<source></source>
<translation type="unfinished"></translation>
</message>
+ <message id="id_menu_file_save_as">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
<message id="id_menu_file_exit">
<source></source>
<translation type="unfinished"></translation>
@@ -235,7 +239,23 @@
<source></source>
<translation type="unfinished"></translation>
</message>
- <message id="id_dialog_about">
+ <message id="id_dialog_open_file">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_dialog_save_file">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_dialog_symbol_files">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_dialog_all_files">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_dialog_about">
<source></source>
<translation type="unfinished"></translation>
</message>
@@ -343,11 +363,11 @@
<source></source>
<translation type="unfinished"></translation>
</message>
- <message id="id_cli_transfer_file">
- <source></source>
- <translation type="unfinished"></translation>
- </message>
- <message id="id_cli_symbol_file_name">
+ <message id="id_cli_transfer_file">
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="id_cli_symbol_file_name">
<source></source>
<translation type="unfinished"></translation>
</message>
diff --git a/main.qml b/main.qml
index 43d06bf..32b64c9 100644
--- a/main.qml
+++ b/main.qml
@@ -36,7 +36,8 @@ ApplicationWindow
{
title: qsTrId("id_menu_file")
MenuItem { text: qsTrId("id_menu_file_open"); shortcut: "Ctrl+O"; onTriggered: open() }
- MenuItem { text: qsTrId("id_menu_file_save"); shortcut: "Ctrl+S"; onTriggered: save() }
+ MenuItem { text: qsTrId("id_menu_file_save"); shortcut: "Ctrl+S"; onTriggered: save(false) }
+ MenuItem { text: qsTrId("id_menu_file_save_as"); shortcut: "Ctrl+Shift+S"; onTriggered: save(true) }
MenuSeparator { }
MenuItem { text: qsTrId("id_menu_file_exit"); shortcut: "F4"; onTriggered: Qt.quit() }
}
@@ -272,19 +273,19 @@ ApplicationWindow
FileDialog
{
id: filedialog
- title: "Please choose a file"
- folder: shortcuts.home
+ title: (selectExisting ? qsTrId("id_dialog_open_file") : qsTrId("id_dialog_save_file"))
+ nameFilters: [ qsTrId("id_dialog_symbol_files"), qsTrId("id_dialog_all_files") ]
onAccepted:
{
-// console.log("You chose: " + fileDialog.fileUrls)
-// Qt.quit()
- }
- onRejected:
- {
-// console.log("Canceled")
-// Qt.quit()
+ if ( selectExisting )
+ {
+ manager.open(fileUrl)
+ symbol = manager.getSymbol()
+ }
+ else // save
+ manager.save(fileUrl)
+ editor.update()
}
-// Component.onCompleted: visible = true
}
Dialog
@@ -297,7 +298,6 @@ ApplicationWindow
text: qsTrId("id_dialog_about_text")
horizontalAlignment: Text.AlignHCenter
}
-
standardButtons: StandardButton.Ok
}
@@ -345,14 +345,21 @@ ApplicationWindow
function open()
{
+ filedialog.selectExisting = true
+ filedialog.folder = manager.getTextSetting("Directory")
filedialog.open()
-// manager.open(true);
- editor.update()
}
- function save()
+ function save(ask)
{
- //##
+ if ( ask )
+ {
+ filedialog.selectExisting = false
+ filedialog.folder = manager.getTextSetting("Directory")
+ filedialog.open()
+ }
+ else
+ manager.save("")
}
function zoom(dir)
diff --git a/symedit.cpp b/symedit.cpp
index 8bb523c..9b14525 100644
--- a/symedit.cpp
+++ b/symedit.cpp
@@ -1,9 +1,9 @@
#include <QGuiApplication>
#include <QClipboard>
#include <QSettings>
-//#include <QFileDialog>
#include <QDesktopServices>
-#include <QUrl>
+#include <QTextStream>
+#include <QFile>
#include "symedit.h"
@@ -21,6 +21,7 @@ SymEditSettings::SymEditSettings()
IntValues.emplace("Tool", 1);
TextValues.emplace("TextValue", "");
+ TextValues.emplace("Directory", "");
}
//! Load settings.
@@ -33,13 +34,14 @@ void SymEditSettings::Load()
Size.setWidth(settings.value("window/width", 500).toInt());
Size.setHeight(settings.value("window/height", 500).toInt());
+ TextValues.at("Directory") = settings.value("application/directory").toString();
+
IntValues.at("FillItem") = settings.value("editor/fill", 0).toInt();
IntValues.at("Alignment") = settings.value("editor/align", 9).toInt();
IntValues.at("LineWidth") = settings.value("editor/width", 1).toInt();
IntValues.at("TextSize") = settings.value("editor/size", 1).toInt();
IntValues.at("SnapGrid") = settings.value("editor/snap", 5).toInt();
IntValues.at("Tool") = settings.value("editor/tool", 1).toInt();
-
TextValues.at("TextValue") = settings.value("editor/text").toString();
}
@@ -53,13 +55,14 @@ void SymEditSettings::Save() const
settings.setValue("window/width", Size.width());
settings.setValue("window/height", Size.height());
+ settings.setValue("application/directory", TextValues.at("Directory"));
+
settings.setValue("editor/fill", IntValues.at("FillItem"));
settings.setValue("editor/align", IntValues.at("Alignment"));
settings.setValue("editor/width", IntValues.at("LineWidth"));
settings.setValue("editor/size", IntValues.at("TextSize"));
settings.setValue("editor/snap", IntValues.at("SnapGrid"));
settings.setValue("editor/tool", IntValues.at("Tool"));
-
settings.setValue("editor/text", TextValues.at("TextValue"));
}
@@ -87,7 +90,9 @@ SymEditManager::SymEditManager(const QString& filename, const QString& symbol)
if ( !FileName.isEmpty() )
{
- //## load file
+ QUrl fileurl;
+ fileurl.fromLocalFile(FileName);
+ open(fileurl);
}
if ( !symbol.isEmpty() )
@@ -435,16 +440,54 @@ bool SymEditManager::raiseItem(int dir)
}
//! Open symbol file.
-bool SymEditManager::open(QString filename)
+/*!
+ \param fileurl File name as URL.
+ \return True for success.
+*/
+bool SymEditManager::open(QUrl fileurl)
{
- //##
+ QString filestring = fileurl.toString();
+ int index = filestring.lastIndexOf('/') + 1;
+ QString directory = filestring.left(index);
+ setTextSetting("Directory", directory);
+
+ QString filename = fileurl.toLocalFile();
+ QFile file(filename);
+ if ( file.open(QIODevice::ReadOnly | QIODevice::Text) )
+ {
+ QTextStream input(&file);
+ Symbol.Load(input.readLine());
+ FileName = filename;
+ return true;
+ }
return false;
}
//! Save symbol file.
-bool SymEditManager::save(QString filename)
+/*!
+ \param fileurl File name as URL.
+ \return True for success.
+*/
+bool SymEditManager::save(QUrl fileurl)
{
- //##
+ QString filename = FileName;
+ if ( !fileurl.isEmpty() )
+ {
+ QString filestring = fileurl.toString();
+ int index = filestring.lastIndexOf('/') + 1;
+ QString directory = filestring.left(index);
+ setTextSetting("Directory", directory);
+ filename = fileurl.toLocalFile();
+ }
+
+ QFile file(filename);
+ if ( file.open(QIODevice::WriteOnly | QIODevice::Text) )
+ {
+ QTextStream output(&file);
+ output << getSymbol();
+ FileName = filename;
+ return true;
+ }
return false;
}
diff --git a/symedit.h b/symedit.h
index 8dda3e8..89223f0 100644
--- a/symedit.h
+++ b/symedit.h
@@ -6,6 +6,7 @@
#include <QPoint>
#include <QSize>
#include <QTranslator>
+#include <QUrl>
#include <deque>
@@ -80,8 +81,8 @@ public:
Q_INVOKABLE void rotateSymbol(int dir);
Q_INVOKABLE bool raiseItem(int dir);
- Q_INVOKABLE bool open(QString filename);
- Q_INVOKABLE bool save(QString filename);
+ Q_INVOKABLE bool open(QUrl fileurl);
+ Q_INVOKABLE bool save(QUrl fileurl);
Q_INVOKABLE bool undo(bool undo);
Q_INVOKABLE void help(QString topic) const;