Tool Others Vambropy [v1.16.2]: VaM packages & user content database, management, and a complement to VarBrowser

doggava

Newbie
Dec 16, 2021
53
16
Feature has been added to upcoming* version. It supports + - and * advanced filters, so you could do *cloth for pure clothing packages or +cloth -morp +appe -sce for exactly what filtering you need. The filters don't have to be exact, cloth or clothing or clo does the same thing. This feature has been added based on your feedback. Thanks, and keep them coming ;)



Feature added to upcoming* version. Pressing A on uninstalled packages directly installs and sets auto-install for the package. Added based on your feedback.



This is one of the big feature of the upcoming* version. The UI has been completely redesigned for content density and simplicity. 90%+ of the height of the window is used for the packages table. Also, the font size can be adjusted trough a settings panel.

View attachment 4920569



There was a bug where the table wasn't refreshed after an operation, and it gave the impression nothing happened even though the packages were installed/uninstalled in the background. New version fixes that by forcing a table refresh after an operation. Also, there is the new status column at the left side of the table (S) that indicates the status with text. The status column is exempt from highlight coloring and even when selecting groups it remains clear to read status.
The status column currently indicates I for auto-installed packages and here the color is the differentiator (blue in this case). Need feedback if the status name should be changed to A for auto-installed.

Here is multi group selections using ctrl+clickdrag.
View attachment 4920594

Upcoming* = Only if commondi32 wants to merge the new UI to the main Vambropy app. The issue is that the code complexity has increased by at least 3X for the UI part. It's a complete refactoring of the UI code using new libraries and code style. The reason for the refactor is that it adds a massive performance boost to the UI (remember when I benchmarked the column sorting and said is wicked fast at 680ms? well... with the new UI it's instant).

doggava Your feedback already changed the app functionality in a big way. Maybe you'll be interested in beta testing the next version since you already are actively using it. I'm working on the app almost daily (after work), and don't have the time to test every single function after I make a change. You should continue providing feedback either way, as it will likely end up in the app.

This is how my UI modification is looking: the inbuilt image preview can be custom size or it can be detached and moved to second screen or hidden

View attachment 4920646 View attachment 4920647 View attachment 4920648

Many new themes have been added, with a focus on information density and making use of all available pixels.

View attachment 4920653
Thanks for the kind words - it's great tool you have here, so I am glad to help you guys out as much as I can!

I have been travelling past few weeks, but can't wait for future updates. Let me know if theres some beta stuff to test as well.
 

commondi32

Newbie
Jul 16, 2020
59
49
Thanks for the kind words - it's great tool you have here, so I am glad to help you guys out as much as I can!

I have been travelling past few weeks, but can't wait for future updates. Let me know if theres some beta stuff to test as well.
Thanks doggava! This new update has smoother packages and dependencies section management, with better menus with disabled options (on single selection). I think it can helps the user by remembering what can be done with specific items.
I could not get to work keyboard selection with cursor keys yet. Anyway mouse selection works very nice at the moment with Shift and Ctrl modifiers. (i.e. Click on an item, scrolling and then click on another with Shift pressed, very useful).
And the database updaters (all deps usage count and new old dep versions) are pretty quick and truly in background now.
 

commondi32

Newbie
Jul 16, 2020
59
49
I have a question about the symlinks for older dependencies, because I have tried with some scenes referencing old missing plugin versions, however the new version plugin was loaded. Maybe I have a plugin fixing this or VaM does it. I have not tested it fully. Does some plugin allow to automatically use new version of a plugin when the specified one is not found?
 

commondi32

Newbie
Jul 16, 2020
59
49
wtf! lol I think it is related with the threads in the compiled version, when it access the root window in this case for displaying the bad package message window it fires up all new processes. If you start it from source (python vambrpoy.pyw) it should start ok. I'm fixing it soon, reverting back to ThreadPoolExecutor.
 

commondi32

Newbie
Jul 16, 2020
59
49
Can you implement a function to disable toggle keys completely, so pressing A wouldnt change any vars that are already blue to white, or when pressing I to let them change from white to orange. I would like to bind the the off/opposite action keys seperately.
I was thinking about using ctrl+key instead for all single key hotkeys. I have found myself typing in the browser view thinking that I was in the entry filter, for example, which leads to accidentally doing something unintended with the selected item(s). Also, maybe redirecting focus to package entry filter when typing text in the packages view? if I could make it work... That, along with the filter groups and disabled items in menus would be less confusing, I think.

Btw, what is the best way to see all uninstalled (orange, green) clothing in the tool?
I added a filter button in dependencies for it, 'Uninst+Repos'. Will try getting some more space and add it to packages too.

Also, could you create a functionality that would uninstall all older version vars and give the option to link all missing older version vars to its latest version instead. This could be done by e.g. creating a symlink with the old version name, but linking to its latest version instead. So in essense you would, as a result, you would have in your Addonpackages folder many plugin symlinks with old version numbers pointing to only single latest var version.
I have a question about the symlinks for older dependencies, because I have tried with some scenes referencing old missing plugin versions, however the new version plugin was loaded. Maybe I have a plugin fixing this or VaM does it. I have not tested it fully. Does some plugin allow to automatically use new version of a plugin when the specified one is not found?
I have tried more scenes verifying that VaM uses latest version of plugins if the fixed version dependency is not found. So I see no point in creating symlinks to the latest version named as old versions. Because, by doing that, 1) VaM actually thinks there are multiple versions and scans the same file again multiple times. And 2) If a scene fails, VaM's packages section* or Vambropy would not easily show the problem, as it is good to try to get the scene working by installing the real exact version required first, in my opinion.

* VaM's packages section turns very slow when it has many packages in it. I used it mostly when I needed to re-scan the packages. I usually use Vambropy to install, then back to VaM and re-scan packages, also I use a Keybindings' hotkey for re-scanning the packages and avoid activating that window, in order to use the ones installed by Vambropy during the session.

So... I think a fake version would make things worse, in fact. The point of this app is to have better control on those situations. The new 'update old' menu option updates the database with older versions on exact dependencies and allows to easily pinpoint them, also to keep in mind that if a scene fails, installing the older exact versions could be a solution.
In addition, the new 'Ignore' menu option that allows to ignore and remove from dependencies' view those impossible-to-find or bad-named missing dependencies, helps in avoiding to try to download the same failing versions again, for example.
After adding these features, I have found some misnamed dependencies and I fixed them by creating a copy from the correct named versions, or by finding another file that provides the same morphs needed, and make a copy with that name. Also found dependencies sitting there that were not really needed when I looked into the actual scene's .json file
(Vambropy currently scans meta.json for dependency, but an option could be added to re-scan dependencies from the content's .jsons. The function is already written for the User content update anyway, not big deal adapting it for zips. It would take time to scan, some minutes maybe, but at the same time it would probably prevent to download/install unneeded deps).