Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Support multiple open items #782

Closed
wants to merge 29 commits into from

Conversation

mvasilak
Copy link
Contributor

@mvasilak mvasilak commented Oct 16, 2023

Adds support for multiple open items.

  • Keep track of open items in order of most recently opened
  • Show in items navigation bar button that restores last item and shows count of currently open items
  • Save/restore state of open items
  • Add support for PDF items
  • Add support for note items
  • Show in presented item navigation bar button menu that allows to quickly switch to another open item
  • Allow user to change order of presented open items

In consideration

  • Support separate open items for multiple windows
  • Opening an already opened item in another window, should switch to that

@mvasilak mvasilak self-assigned this Oct 18, 2023
@mvasilak mvasilak requested a review from michalrentka October 18, 2023 16:26
@mvasilak
Copy link
Contributor Author

@michalrentka this is ready for a first look. Things to keep in mind:

  • I tried not to upset existing architecture a lot, hence at the time being I refrained from using something like child view controllers to switch between open items.
  • Instant presentation solution using screenshot window might be a bit extreme. I'll investigate if it can be done in a more elegant way, e.g. using custom transitions.
  • In practice cold switch between items seems adequate, but we may need to consider hot switch of view controllers kept in memory, if there are UX issues.

Next steps could be keeping separate open items for separate windows, support for notes or other items, customization of the menu, or new UI (e.g. tabs) that makes use of this facility.

@mvasilak mvasilak force-pushed the multiple-open-items branch from 98c1c67 to 19ffa89 Compare October 18, 2023 20:57
@michalrentka
Copy link
Contributor

Looks good to me so far 👍. Just one comment regarding the ReadItemGloballyDbRequest which I think is not necessary.

@mvasilak mvasilak force-pushed the multiple-open-items branch 4 times, most recently from 9e9dbad to 5a8fdc5 Compare October 30, 2023 17:13
@mvasilak mvasilak requested a review from michalrentka November 1, 2023 21:09
@mvasilak
Copy link
Contributor Author

mvasilak commented Nov 1, 2023

@michalrentka ready for another look. New additions:

  • User order is maintained in the bar buttom menu (not editable at the time being, it is always the order of first time item is opened).
  • Support for notes.

@mvasilak mvasilak force-pushed the multiple-open-items branch from f3a2e38 to b802ad7 Compare November 29, 2023 09:26
@mvasilak mvasilak force-pushed the multiple-open-items branch from b802ad7 to 0fc4799 Compare December 2, 2023 06:33
@mvasilak
Copy link
Contributor Author

mvasilak commented Dec 4, 2023

@michalrentka ready for another look. New additions:

  • Validation of open items on app restoration.
  • Observing for current open items deletion, in order to validate/update open items list.
  • Support for different open items per different app scene.

Up next, UI improvements, initially using a popover instead of the simple menu for switching open items.

@mvasilak mvasilak force-pushed the multiple-open-items branch from 0fc4799 to 4a1acf5 Compare December 4, 2023 14:53
@mvasilak mvasilak closed this Jan 3, 2024
@mvasilak mvasilak deleted the multiple-open-items branch January 3, 2024 12:36
@mvasilak
Copy link
Contributor Author

mvasilak commented Jan 3, 2024

Due to many changes when rebasing, this PR is closed to use a new branch.

@mvasilak mvasilak mentioned this pull request Jan 3, 2024
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants