nurpax / petmate

PETSCII editor with Electron/React/Redux
MIT License
182 stars 14 forks source link

Import/export settings handling #72

Closed nurpax closed 6 years ago

nurpax commented 6 years ago

Status

What's missing:

Description

Several export options require the user to specify some extra options for importing or exporting.

For example:

This points to some kind of a settings pane that triggers when the user selects "Export..." or "Import...".

Not sure if this settings pane should always open (for e.g., Export PNg...") or if we should have a separate "Export..." which would open the settings and then this settings screen could be used to select input/output format.

Here are the bugs that require this settings pane:

Filing this bug to gather some feedback on what's a good way to do this UI-wise. Currently there's a settings pane (https://www.youtube.com/watch?v=sFGjRimuBBM) for application preferences. I'd like to use to use a similar modal dialog for export/import options.

Some questions:

nurpax commented 6 years ago

Summoning @Esshahn, @Viza74 for comments.

Esshahn commented 6 years ago

Thank you for this summary! Here are some quick thoughts from my side:

Generally Specify the main export options in the menu, like

And then show a modal with specifications, like for image:

Reason

As for some of the other questions/topics above

.C import: load only one screen into currently selected screen, or append new screens for each frame in .c file (or maybe let user choose which frames to import).

I would keep this simple and always import all screens. It's much easier and less error prone to let the user delete screens after import and there's no quirky step in between (will the user decide based on screen number? Or position? Or name? Or thumbnails with checkboxes? -> It's too much)

.C export: export current screen only or some selection

Same here.

PRG: multiple screens slideshow.

Makes sense to offer e.g. switching screens with cursor keys. Was considering that for Spritemate as well

maybe SID music

Too much. Let the tool focus on what the tool should be doing

At least for import, separate menu item per format works better because then the open file dialog can filter by file extension.

I'd still recommend to not have import at all ;) A user should not care about the format they are about to load, it can be handled smartly by the app (file type, analyzing bytes etc.). All supported files should be accepted when loading a file (including proper filtering). This avoids confusion on user's side like "why isn't that file clickable? I want to load it now. Oh... maybe I need to cancel and click on import instead".

As for saving files, Export is a common and working metaphor, as the output format may be lossy (you can't go back from a PNG to a Petmate file for example) and a separation from normal saving is making sense therefore.

Should there be some "quick export" which just exports the currently selected screen, or should export always pop up the screen selector? (Maybe pre-fill the settings dialog for the currently selected screen?)

Some apps like Photoshop do this, e.g. "quick export as PNG". I'm not sure Petmate needs this as of right now, since I don't clearly see a workflow that's like 80% true for every user. Having said that, I do think it makes sense to check which export options can be simplified to they do not need an additional settings modal and therefore can be reduced to one click on the menu.

Hope that helps?

nurpax commented 6 years ago

Hope that helps?

Yes, this is great.

Also I now agree with your Open (or well, I will keep it Import for just the time being) with basically "no options, let the computer decide" philosophy.

nurpax commented 6 years ago

WIP export settings dialog: https://youtu.be/Q66c2vFPn6w

nurpax commented 6 years ago

@Esshahn I can't make my mind on import.

When importing multiple screens from let's say a .c file. Should the screens be imported so that we retain the existing screens before import and append new screens (one for each screen in the .c file) or should the whole editor state be reset to just the set of screens that came from the import (this would be like the current workspace load)?

It'd be simpler to just reset screens to an empty list and then load the screens from the file. But it feels like being able to append screens from a file could be handy too (especially as there's no real copy&paste support of say copy&pasting a screen from another Petmate window to the current window).

nurpax commented 6 years ago

Implemented "append new screen" import of multiple screens for .c PETSCII. Feels pretty good this way.