sampsapursiainen / zeffiro_interface

Interface for using finite elements in inverse problems with complex domains
GNU General Public License v3.0
23 stars 15 forks source link

Saving profile modifies the source code #207

Open mshavliuk opened 1 year ago

mshavliuk commented 1 year ago

Description

Whenever I make any changes and click “Save Profile” in the Mesh tool, it updates the source code of the app, which is tracked by git so the git pull will not work anymore unless I stash or discard changes. This looks like a flaw and prevents from saving profiles while updating the project.

Suggestion

I would suggest to store changed profiles similarly, as we handle saving projects - suggest user to store them as a separate file or embed them inside the project .mat file

Screenshots

https://user-images.githubusercontent.com/6589665/236896532-87be9610-1278-427c-ba9b-8c3d6264010f.mov

mshavliuk commented 1 year ago

Similar is applicable for all other profiles that could be modified from Settings menu

SeSodesa commented 1 year ago

If we want to keep the loading of available lead field functions dynamic like this, I think the process could be improved by generating the available menu items based on what is found in a certain folder (or folders), say m/forward_simulation/lead_field. The names of the menu items could be the file names without an extension, and underscores _ changed to spaces `. If the helper functions related to lead field construction are to be kept in that same folder, the loaded functions could be chosen based on whether there exists a.txt` file of the same name as the function, with a description of the function in the folder. My point is, it is a bit backwards to have to write a separate config file in some completely unrelated folder, that is also checked into the repository, when the information can already be parsed in some other manner from static text.

But I would also question the need for dynamic loading in this case. Lead field construction is such a central part of Zeffiro, that I think these menu items should be static. If there were a million functions, I might understand the need for dynamic loading based on what is already in some folder, but this is not (yet) the case.

mshavliuk commented 1 year ago

But I would also question the need for dynamic loading in this case. Lead field construction is such a central part of Zeffiro, that I think these menu items should be static. If there were a million functions, I might understand the need for dynamic loading based on what is already in some folder, but this is not (yet) the case.

I agree 👍, cutting off the unnecessary features is a good approach, which would allow to avoid overengineering and focus mental resources on core functionality.