phase1geo / Minder

Mind-mapping application for Elementary OS
GNU General Public License v3.0
1.02k stars 67 forks source link

Feature request :: Link to another mind map #405

Open neoscopio opened 3 years ago

neoscopio commented 3 years ago

Hi, Feature request: Link to another mind map, with option to open in same or another window. Great work. Thanks

phase1geo commented 3 years ago

I wouldn’t add support for opening in a different window (since Minder runs as a single windowed app), but rather open the other mindmap in a new tab or jump to the tab if it already exists.

phase1geo commented 3 years ago

Out of curiosity, how would you want this implemented? I could envision a couple of possibilities:

Your thoughts?

neoscopio commented 3 years ago

Well, that's more than I was suggesting, and more interesting too. My original thought was to do something like "add image", but browse for the minder file. An icon would be nice to identify those nodes. Selecting a node within another mind map is more powerful. I would go "no" for special syntax for user friendliness. If the map had some "note" describing it, that could be displayed before opening the map. Anyway, any of the options would ultimately work for me.

phase1geo commented 3 years ago

I have checked in support for this new functionality in the master branch.

To create a linked node to a node within a different mind map, open the map containing the node to link to, select it and use the new Control-y option. Then open the map containing the node that will contain the link, select it and use the 'y' command. The link will be displayed a bit differently for remote node links than for local node links. Hovering over the node link will display a tooltip displaying the linked nodes title and filename. Clicking on the node link will display the mind map containing the linked node (if the map is not currently loaded, it will be), select the linked node and make sure that it is visible within the canvas.

You can create a link to a node that is within the same mind map in the same way, if you wish. Otherwise, just using the 'y' option on a node will allow you to create a local node link in the same way as it did before.

Hopefully, that all makes sense. Give it a try and let me know if you have any issues.

neoscopio commented 3 years ago

Just tested it, it works, thanks!

It solves my need, so I can work with it as is.

Still some minor suggestions:

Not user friendly to have to open and select a node prior to linking. I do understand how this was probably easier to implement, but I think the "natural" path wold be press the new "CTRL-Y" and then allow to select the file (or just switch tabs if it open). The link would be on the first node, or if the user selects one and press Y, link it to that node.

If the file gets deleted or renamed, I think there should be a "file not found" if you try to follow the link.

If the linked node gets deleted, some warning should appear, not sure how and what, maybe after opening the new map.

Anyway, it works pretty well as is and I think it can be very useful. I'm thinking in using it to plan coordination on several projects, each one has it's own mindmap, but they are related, not only to the coordination "top down" map, but also between each other.

Some dependencies I needed to build not mentioned on the read me: libhandy-1-dev libjson-glib-dev

Also

$:~/Downloads/Minder-master$ ./app install-deps
./app: line 74: dpkg-checkbuilddeps:: command not found

Also

The icon for the property sidebar seems to be missing (a red "ø" one appears)

Thanks

michael-wenyon commented 3 years ago

I had to manually install all the dependencies listed plus; libhandy-1-dev On Debian bullseye, in order for the build to work.

phase1geo commented 3 years ago

I had to manually install all the dependencies listed plus; libhandy-1-dev On Debian bullseye, in order for the build to work.

I have added this dependency to the README.md file. I have also added the libjson-glib-dev dependency even though I'm not exactly sure why this dependency exists. It appears that it is installed by default in elementary OS (or at least when you install elementary-sdk or some other library that is required).

phase1geo commented 3 years ago

Not user friendly to have to open and select a node prior to linking. I do understand how this was probably easier to implement, but I think the "natural" path wold be press the new "CTRL-Y" and then allow to select the file (or just switch tabs if it open). The link would be on the first node, or if the user selects one and press Y, link it to that node.

I am going to reimplement the feature in a different way as follows:

Additionally, I will display two submenu items within the contextual menu to allow the user to link to a local node or a clipboard node (y) or link to a remote mindmap (Control-y).

phase1geo commented 3 years ago

If the file gets deleted or renamed, I think there should be a "file not found" if you try to follow the link.

I am adding a verification function that will check the validity of a node in another mindmap (without actually displaying the mindmap). That verification function will called (at some point) and will update the state of the node link indicator if there is an issue. I'm not sure at what point I will run the verification function, however.

phase1geo commented 3 years ago

BTW, in looking over my changes to provide the current support to this feature, I noticed an issue with node ID assignments when pasting nodes from the clipboard. If you use this feature, I would recommend that you avoid pasting nodes from the clipboard for now. I'll update this issue when I believe I have things working as intended.

michael-wenyon commented 3 years ago

have also added the libjson-glib-dev dependency

I did not have it installed before I made Minder, but just installed it now for good measure!

phase1geo commented 3 years ago

FYI, the issue that I mentioned above with copying/pasting nodes has now been resolved in the master branch.

neoscopio commented 1 year ago

Could you please reopen this? There are currently some issues with v1.14:

I cannot find a way to edit the (hyper)linked nodes I don't see any context menus for this, except for select->linked node If I press Ctrl-Y on a unlinked node, a black arrow shows up, but no dialog appears If I press Ctrl-Y on a linked node, the arrow turns black and the link is gone, but still no dialog appears

I'm guessing the dialog is the problem. I did manage to see a context menu to add a link (on a previously linked node) and then the dialog appeared with the current link editable, but I cannot find how I did it anymore.

Thanks

phase1geo commented 1 year ago

I will take a look at this in the 1.15.3 work that I'm in the process of completing.