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

Workspaces are read-only by default, introduce "Edit Mode" #16

Closed
wants to merge 24 commits into from

Conversation

hnesk
Copy link
Owner

@hnesk hnesk commented Oct 18, 2020

The Document class allows to modify a workspace in place. To mitigate accidental changes, before this PR all workspaces where cloned to a temporary directory when opening a workspace.
This PR introduces an "Edit Mode". When a workspace gets opened the workspace is displayed as-is in the current workspace location (via Document.load()). All editing capabilities are disabled, also saving.
By enabling "Edit Mode" the workspace gets cloned (Document.clone()) to a temporary workspace and all workspace editing actions and saving are enabled. Saving means cloning back to the original location. At exit all temporary workspaces are deleted. If there are unsaved changes, a confirmation dialog is shown, like the user is expecting from other applications
Solves:

  • clean temporary files clean temporary files #11
  • when not in "Edit Mode" there are no temporary files at all
  • opening a workspace should be faster (for larger workspaces), because there is no temporary clone
  • No more accidental lost modifications through a "Save changes?"-dialog, like in other applications.

bertsky and others added 12 commits October 15, 2020 23:58
- In the image view, instead of a fixed number of images
  (one for each page) configured in a horizontal box,
  show a fixed number of vertical boxes (one for each page)
  with a variable number of images (one for each image file
  of that pageId in the fileGrp, i.e. AlternativeImage).
- Re-use both VBox widgets (when reconfiguring page multiplier)
  and Image widgets (when changing to another page_id).
- If there are no image files, extract the current page image
  (as before).
- Keep the file references along with open images, and search
  the PAGE-XML for the respective AlternativeImage segments.
  Show their ID as tooltip, or fall back to the image file path.
- separate redrawing image widgets when config/page
  changed drom rescaling images
- add configurator widget for zoom level (log scale)
- track mouse wheel events, pass ctrl+wheel to scale
- fix image tooltip calculation for page_from_image case
Introduced Document._editable and @check_editable decorator
Avoided clones when not _editable
Cleanup ate exit after clones
@hnesk hnesk mentioned this pull request Oct 18, 2020
@bertsky
Copy link
Contributor

bertsky commented Oct 19, 2020

Currently testing this on a METS with unresolvable remote fileGrps. Now that clone was replaced by load on startup, there should not be a call to workspace_from_nothing into /tmp anymore, right?

@hnesk hnesk marked this pull request as ready for review October 22, 2020 06:04
@hnesk
Copy link
Owner Author

hnesk commented Oct 22, 2020

workspace_from_nothing() is not used any more

@hnesk hnesk closed this Oct 22, 2020
@bertsky
Copy link
Contributor

bertsky commented Oct 22, 2020

Fantastic – many thanks!!

@hnesk hnesk deleted the editable branch April 14, 2022 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants