Bleargh. No internet in the apartment today, and a lot of changes I have not synced with my local computer, so I just worked on mybacklog which I have current code.
Because I didn't have internet, a lot of the games in my list would not be playable, as I have not installed them from the various services. So what better addition to make than a way to filter which games are actually installed?
For GoG, it was very simple. Each game in the database stores the path to the .exe file so you can launch the game from mybacklog. If a game doesn't have an .exe path? It's not installed - at least as far as mybacklog is concerned. 'Installed' in this case really means 'does mybacklog know how to run this game?' - which is about the best I can get I think, without some kind of gog galaxy support.
For steam, the definition of a game being 'installed' is a little bit more clear - but getting at the information is harder. I found that the file '\Steam\userdata\user_id\config\localconfig.vdf' does indeed contain information about steam apps that are installed. And I was already using and parsing this file for other purposes. After a little bit of plumbing, I was able to get a list of steam_ids for installed games, and then for each game in the db, I can just check if it's in that list or not.
Previously, I already had install/uninstall buttons from the UI, but they had no logic to them. Now armed with the install flag, not only can I limit the view to installed games, but I can disable/enable those buttons where appropriate. This does mean that when a game is already 'installed' according to the GoG logic, you will be unable to trigger a download. Very minor but I don't like closing off features. I'll leave it for now. Simplest solution - highlight download when it is uninstalled but default colors when installed so it doesn't draw your attention.
Additional: http://www.gog.com/wishlist/galaxy is a great spot to check for ideas of which direction I can go with MY launcher. Funny, someone mentioned a "sort by installed" filter already!
Some more anemone work, looks like I may need to add to the physics sim, as currently I'm really needing to bend my use of programmable forces just to shape the anemone, and if I use too much it'll break down so I have to be subtle, think instead I need programmable gravity direction, to achieve similar results without breaking down.