DrewNaylor / guinget

Unofficial GUI for Microsoft's Windows Package Manager (winget). Kinda like Synaptic, but for Windows. Not associated with either Microsoft or the Synaptic project, and Microsoft does not endorse this software.
Apache License 2.0
135 stars 3 forks source link

winget now has the ability to pin package versions, so I should add menu items to pin, unpin, and list pinned packages. #168

Open DrewNaylor opened 1 year ago

DrewNaylor commented 1 year ago

This'll probably be designed like Synaptic, much like most of the rest of the UI. Pinning packages will be done separately from marking packages for install/uninstall/etc.

DrewNaylor commented 1 year ago

Actually, the way I can do this is by having "Pin package..." and "Unpin package..." items in the package context menu and the menubar menu, which both open a window listing the package the user is requesting to pin or unpin and its version with a button to confirm.

There can also be a "View>Pinned packages..." window that displays the packages that are pinned and allows the user to manually pin packages by typing their ID and Version into textboxes. Getting the list in a usable way will require the PowerShell commandlets so I can properly show them in a DataGridView. We'll also allow unpinning multiple packages at once in that window.

I'm not allowing pinning multiple packages at once because I don't know what would happen if you pin multiple versions of the same package. If someone wants it, maybe I could add that into the main system with the "Action" column. This is supposed to be an advanced UI like Synaptic is, after all, so I would hope users know what they're doing. I'm still going to ensure it's easy for beginners to use it, unlike programs that are more egotistical and like "oh, you don't understand where to start? too bad. get gud."