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

Outline Pane does not permit rearranging headings #185

Closed
johnblommers opened this issue Apr 16, 2020 · 5 comments · Fixed by #538
Closed

Outline Pane does not permit rearranging headings #185

johnblommers opened this issue Apr 16, 2020 · 5 comments · Fixed by #538
Assignees
Labels
potential feature Request: May be considered later
Projects

Comments

@johnblommers
Copy link

First of all I really like the new Outline pane and see considerable potential there. It would be great if the headings could be dragged around to reorganize the manuscript. We can do that in the Tree view already.

This is missed opportunity. The reason I'd like this is because I refer to the synopsis field when arranging scenes and chapters. Having to revert to the Tree View, locate the scene I'm working with, drag it to where it needs to go, and returning to the Outline pane is a high-friction activity.

Consider moving the functionality of the Treeview into the Outline pane?

@vkbo vkbo self-assigned this Apr 16, 2020
@vkbo vkbo added the potential feature Request: May be considered later label Apr 16, 2020
@vkbo
Copy link
Owner

vkbo commented Apr 16, 2020

As always, thanks for your detailed feedback.

The dragging and dropping in the tree view is just a matter of organising the order of the files, which are already distinct entities. The headers are not, and dragging and dropping in the Outline implies moving sections from file to file. This is a much more invasive piece of code, and needs a lot of testing to ensure text isn't accidentally lost.

novelWriter is written in a way that it is fairly difficult to actually lose text unless there is an underlying file system issue, and even then it tries very hard to ensure everything is written to disk. Even when splitting and merging files, it makes copies. I am a bit reluctant to permanently modify files and divert from that underlying safety. I will consider it as a potential future feature.

I do plan to add a details pane at the bottom of the Outline view where all the details of a single heading comes up as clickable links. Qt does not make it easy to do that directly in the tree view. This will make it possible to navigate from the Outline to the respective files.

The Outline view can, however, never replace the project tree view as the Outline doesn't show project notes, only novel files.

What I will do soon, though, is add a few features that will make it easier to see where you are in the project. I've noticed that when I work on my own novel, I often forget where in the tree the file I'm editing belongs. I don't necessarily keep the file headers the same as the file names. I want to add an option to highlight the file that has focus (either in editor pane, view pane, or outline) in the project tree. This would make it easier to follow. I'm also considering adding a bar at the top of the editor and view panes showing the full project path to the current file.

@johnblommers
Copy link
Author

I really like the direction you're taking novelWriter. It's a terrific open source contribution for writing novels and I'm compelled to support development efforts by testing and commenting.

My novel structures are such that each scene maps directly into a file. I have a draft novel with H2 and H3 headings for chapter and scene. Ironically my chapter files contain just a heading because that's how novelWriter subdivided the imported Markdown file. Scene and chapter file names correspond directly to the heading. So to me it makes sense that scenes can be dragged around in the outline view.

But you are absolutely right in pointing out that, in general, the outline view is not the same thing at all as the tree view. Nevertheless I think it's worth your considering to add drag and drop rearranging in the outline view because it's intuited by the interface and it's what novelists do when restructuring the novel during the story edit phase.

Perhaps changing the name Tree view to File Tree view might further distinguish it from Outline view.

And I concur with your idea:

I'm also considering adding a bar at the top of the editor and view panes showing the full project path to the current file.

@vkbo
Copy link
Owner

vkbo commented Apr 16, 2020

I really like the direction you're taking novelWriter. It's a terrific open source contribution for writing novels and I'm compelled to support development efforts by testing and commenting.

Glad to hear it!

My novel structures are such that each scene maps directly into a file. I have a draft novel with H2 and H3 headings for chapter and scene. Ironically my chapter files contain just a heading because that's how novelWriter subdivided the imported Markdown file.

The single file with just the chapter heading may seem a bit redundant, especially compared to other applications that use the folders for this purpose, but I decided to go that direction because it adds a number of options:

  • If you write on a multi-POV story switching chapters often, with multiple locations and characters, like for instance in "A Song of Ice and Fire", or "The Expanse" series, you may want to add the POV, char, location, etc metadata in that file instead.
  • It is, of course, also the correct location for the chapter synopsis.
  • It allows for adding text to a chapter before the first scene, which many authors do. Like for instance in "Dune".

Scene and chapter file names correspond directly to the heading.

That's only because the split function has nothing else to go by when naming the files. I don't keep my file names and headers in sync when writing a project from scratch.

So to me it makes sense that scenes can be dragged around in the outline view. But you are absolutely right in pointing out that, in general, the outline view is not the same thing at all as the tree view. Nevertheless I think it's worth your considering to add drag and drop rearranging in the outline view because it's intuited by the interface and it's what novelists do when restructuring the novel during the story edit phase.

This is exactly the feature that caused me to write this application in the first place. As it is now, as long as you split scenes per file, you can absolutely do that in the project tree. If you keep multiple scenes per file, you cannot.

The outline is intended to be a view, that is, read only. Right now it looks a lot like just a file tree, and I've thought about making it look different to avoid the inclination to try and drag and drop stuff. That's why I initially wanted to make the Outline a pure graphical representation. It's a visualisation tool. I may drop the tree as the canvas if I can find a better way to do this. The key feature of the latest merge was the collection of the data behind the view anyway.

I'll continue working on this over the weekend, and will probably add some more of the things we've discussed.

@vkbo vkbo added this to the Visualisation Tools for Story Elements milestone Dec 11, 2020
@vkbo
Copy link
Owner

vkbo commented Dec 21, 2020

Re-reading the older issues and suggestions, I gave this another thought.

While allowing to rearrange sections within files and between files like would be implied here is something I'm reluctant to do due to the risk of corrupting files, perhaps there is a partial solution. Either by default, or by an optional setting, selecting a heading in the Outline panel could highlight the file that contains it in the project tree. It would thus be fairly trivial for the user to re-arrange files (provided a scene breakdown of the files) by the synopsis and other meta data. You'd have to do the drag'n'drop in the tree next to the outline, but that's a minor inconvenience. It would be straight forward to have the outline update on such a drag'n'drop event, showing the immediate result of the action.

@vkbo vkbo linked a pull request Jan 2, 2021 that will close this issue
@vkbo vkbo added this to In Progress in Release 1.1 Jan 2, 2021
@vkbo
Copy link
Owner

vkbo commented Jan 3, 2021

A "Novel" tab in the project tree panel has been added in the dev branch. With this PR (#538) various updates to the Outline view and have been added so that the Project or Novel tree (depending which is visible) are updated in sync with the Outline, and vice versa. Selecting a heading in the Outline will highlight it in the project tree, and rearranging documents in the project tree will immediately be reflected in the Outline view.

This, at least in part, satisfies the suggestion to be able to rearrange headers. As mentioned, altering the content of files via drag and drop will probably not be implemented. At least not at the current time.

@vkbo vkbo closed this as completed Jan 3, 2021
Release 1.1 automation moved this from In Progress to Done Jan 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
potential feature Request: May be considered later
Projects
No open projects
Release 1.1
  
Done
Development

Successfully merging a pull request may close this issue.

2 participants