diff options
| author | Mikko Syrjä <mikko@3d-system.fi> | 2019-03-10 00:23:41 +0200 |
|---|---|---|
| committer | Mikko Syrjä <mikko@3d-system.fi> | 2019-03-10 00:23:41 +0200 |
| commit | 75bc788c14e39f2d0643dae9818ca0eac2be72e0 (patch) | |
| tree | efedefc90b96297d4ff218072df1a9e46992b844 | |
| parent | f8c3caee56c821322e79f6540ffe98a8e920597f (diff) | |
| download | symedit-75bc788c14e39f2d0643dae9818ca0eac2be72e0.tar.gz symedit-75bc788c14e39f2d0643dae9818ca0eac2be72e0.zip | |
Initial file open and save support.
| -rw-r--r-- | help/eng/menu.rst | 5 | ||||
| -rw-r--r-- | help/fin/menu.rst | 5 | ||||
| -rw-r--r-- | locale/symedit.en_GB.ts | 192 | ||||
| -rw-r--r-- | locale/symedit.fi_FI.ts | 194 | ||||
| -rw-r--r-- | locale/symedit.ts | 32 | ||||
| -rw-r--r-- | main.qml | 39 | ||||
| -rw-r--r-- | symedit.cpp | 61 | ||||
| -rw-r--r-- | symedit.h | 5 |
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 <symbol>.</translation> + <translation>Read symbol from parameter <symbol>.</translation> </message> <message id="id_cli_language"> <source></source> @@ -343,11 +363,11 @@ <source></source> <translation>Application language abbreviation <language>.</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 <symboli>.</translation> + <translation>Lue symboli parametrista <symboli>.</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 <kieli>.</translation> + <translation>Sovelluksen kielen lyhenne <kieli>.</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> @@ -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; } @@ -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; |
