xournalpp
xournalpp copied to clipboard
Inserting vertical space could move content to next page
This is a new feature. When I add some extra vertical space the content scroll downs. However if I have alredy filled the page, the content rather than moving to the next page just disappear and get lost.
Solution I personally would like to have content pushed onto the next page, with the new page created in case we are already at the end of the document
Alternative Alternatively we could consider having a continous roll of paper rather than pages, and this would solve the issue
Also sounds like a bug to me; the content shouldn't just be "disappearing."
This is definitely a bug, but it is not easy to fix, as we can't really push parts of a stroke to the next page. This would mean we have to push the whole stroke which might break some layout.
Pushing the whole stroke to the next page would be an acceptable solution. Undo would be our friend in the cases the move wasn't wanted. or I'm of the opinion we should show/draw strokes that are off the page and even spilling over to other pages (but only when the page is selected - thus wouldn't be printed but stored off-page).. which would also be a solution for this case.
Drawing outside of the page is something hard to do. All the drawing algorithms would have to be changed. This will lead to drawing artifacts we want to avoid in any case.
BTW: In the long run I want to remove the "active" page system (there is another ticket for this) as it is a deprecated technology required for our old input system. Now it just makes things more complex than necessary.
Another thing I just thought about: What happens to strokes that don't fit into the next page as it has different dimensions?
Isn't it possible to forget about pages and write on canvas indefinitely?
On Sun, 2 Jun 2019, 08:49 Ulrich Huber, [email protected] wrote:
Drawing outside of the page is something hard to do. All the drawing algorithms would have to be changed. This will lead to drawing artifacts we want to avoid in any case.
BTW: In the long run I want to remove the "active" page system (there is another ticket for this) as it is a deprecated technology required for our old input system. Now it just makes things more complex than necessary.
Another thing I just thought about: What happens to strokes that don't fit into the next page as it has different dimensions?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xournalpp/xournalpp/issues/1186?email_source=notifications&email_token=ABZ5TC444TKBNN7RTP262DDPYNUPTA5CNFSM4HRNPQW2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWXPFQI#issuecomment-498004673, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZ5TC4NSZRXGPOGPXV6AKTPYNUPTANCNFSM4HRNPQWQ .
There is a ticket for that somewhere.
The user wouldn't necessarily have to be able to write off the page but being able to position already drawn objects off the page might be useful:
- as notes for a presentation that aren't seen by the audience etc,
- put aside notes/drawings for later but keep associated with a page.
- allow the vertical space to work without losing strokes.
Isn't it possible to forget about pages and write on canvas indefinitely?
I also think it would be good if you just forget about the 'page' concept while taking notes/drawing. Just have a canvas that extends infinitely (as much as needed) into all directions (at least down+right[configurable left?]) dividing the canvas into pages is only necessary for printing/exporting to pdf. This would also be easy if the canvas provides hints as to where the page divisions would be. The user can then take care not to have strokes crossing those lines.
ah. i just found https://github.com/xournalpp/xournalpp/issues/1174. having that would fix this automatically i guess
Problem is that we will have to continue to support multiple page documents. Otherwise we loose compatibility with Xournal, and all old files prior to the introduction of infinity canvas.
if i see it correctly, backwards compatibility in this case is about being able to read those files, right? Loading those files would be just a matter of inserting the page contents into the infinity canvas, each page being exactly one 'page hint' long. i don't think this would be too hard to do. Instead of keeping the discrete pages, you just append the contents
No the issue is writing output that has multiple pages. We have a ticket to add support for a paged fileformat and we want to keep compatibility to Xournal files. That is where problems actually arise.
- What to do if a stroke goes over multiple pages?
- What to do if an annotated image spans multiple pages? -...
Those documents simply can't be exported without a lot of complex work in the background that makes maintenance a pain. So the only good approach is to still provide paged documents to the users that actually want to be able to export to these formats.
Currently I see three possible solutions:
- When a stroke goes over multiple pages, just split it into two where the page breaks and keep the first part in the page above and the second in the page below. The same thing goes for an image. This obviously requires two pages to somehow communicate (like a global signal
StrokeReceived
). - The other possibility would be that if the stroke is marginally over the page border, then just push it to the next page entirely.
- Another option would be to change the size of the current page, so everything will be kept in the same page.
- I see problems with that, especially when splitting written text.
- This is better, but what about dots in Text or slightly crooked text.
- This is also bad, since printers mostly don't support those custom format's.
I think the content should only move to the next page if you can draw a complete horizontal line without hitting something. Everything below is moved to the next page, everything above is moved on the current page. But this would be a complex implementation. For now a fast bugfix would be to just block the moving if an element will be moved out of the page partially.
@Febbe I think those are fair points. About 2, what do you mean by dots in Text or slightly crooked text? All elements that have a bounding rect out of the page should just be pushed below. I don't see why there should be a problem with Text elements.
@daljit97 I mean self written text with Pen Strokes. For example the dot of "iäöü" also other written letters containing existing of 2 or more strokes can be splited into two half's. With slightly crooked text I mean text, not written horizontal.
@Febbe Ah I see. I think one solution that would work only for ruled pages would to be insert vertical space snapped to the lines.
I think there is simply no good solution for documents with multiple pages. We would essentially need to "understand" what strokes belong together to shift them appropriately. I'd make this a no-fix and refer people to the infinite pages as soon as they are available.
I would at least propose, that someone can fix it by blocking the horizontal space from moving elements out of the page. Everything else is to complex.
Same problem here, had to undo half a page, so I can restore the stuff that got deleted when creating vertical space without enough new pages down below.
@Febbe's strategy could be implemented in a nice way by modifying the tool so that:
- if the spacing is finalized and an element will be moved off the page, then the spacing will be cancelled.
- if the spacing is currently in progress and an element will be moved off if finalized, then all spaced elements will be drawn with a transparency filter applied.
I suppose another option is to clamp the spaced elements to the page boundaries, but in my personal experience, I usually "give up" on the vertical selection and switch to rectangle select instead.
if the spacing is finalized and an element will be moved off the page, then the spacing will be cancelled
I think this would be perfect for now. It may not be as smooth as everyone would it like to be, but at least you can't destroy your document without realizing it until later. ( I really had to tap "back" for 2 minutes so I could restore what I accidentally deleted that way..)
Anyone updates on this? Also would it be "possible" to create a simple plugin for this?
Anyone updates on this? Also would it be "possible" to create a simple plugin for this?
As long as only strokes and text elements have to be moved (at least no TexImages), it would be possible indeed to move things with a simple plugin.
if the spacing is finalized and an element will be moved off the page, then the spacing will be cancelled.
I'm trying to insert vetical space on xournalpp version 1.2.2 and it does nothing. Does that mean that this suggestion has been used? This seems strange for whom didn't get in touch with this discussion. Would be great at least to have a feedback that vertical space was not made because it would move something off the page.