feat(gui): new SVG art for Friends/reload/folder icons, wxART_CLOSE for tab-close (#675) - #735
Conversation
|
Hello @LSalami, the refresh icon seems a bit odd, can you try a different prompt? |
|
Re: the reload icon looking off — fair, and worth explaining how it was made so you know what you're critiquing. It's not from an image-generation model; I hand-wrote the SVG (paths/gradients) directly, iterating on a rasterized preview until it looked reasonable to me at 16x16. Same for `friends`/`folder`/`folder_shared`. So "try a different prompt" doesn't quite apply mechanically, but the spirit is right — it's a best-effort placeholder, not polished work, and I flagged that explicitly in the PR description for exactly this reason. One alternative worth considering instead of me iterating on hand-drawn SVGs again: Lucide (ISC-licensed, so compatible with GPL — just needs an attribution note somewhere) has ready-made SVGs that map directly — `refresh-cw` for reload, `users`/`user` for Friends, `folder`/`folder-open` for the directory tree. Real, consistent, professionally-designed icons instead of my approximations. The tradeoff: Lucide's style is minimal outline/stroke (thin monochrome line, tintable), while the existing `src/icons/*.svg` set (from #487) is glossy/gradient — closer to small illustrations than pictograms (see `toolbar_messages.svg`). Mixing the two styles in the same icon set is a real inconsistency, just a different one than "hand-drawn placeholder next to polished gradient art." Given this is a visible design call rather than a correctness one, want me to:
|
|
So far we used our own artwork so I'd rather not add third-parties for just one icon. If it's ok with you, let's keep trying hand-drawing to make it look more like the original (use the green color, thicker arrow's body). Thanks. |
…eight got3nks (PR amule-org#735 review): the reload icon "seems a bit odd" -- fair, the first attempt was a thin single blue arc, nothing like the icon it replaced. Reconstructed the original amuleDlgImages(18) raster to check: it was a green double-arrow circular refresh symbol with a fairly thick stroke, not blue and not a single arc. Redrawn to match: green gradient, two opposing curved arrows forming a circle (matching the original's silhouette), thicker stroke, bigger arrowheads so they stay legible at 16x16 (the first attempt's arrowheads all but disappeared at native size). Went with hand-drawn over a third-party icon set (Lucide was suggested and considered) per got3nks: this project has used its own artwork throughout, and pulling in an external set for one icon isn't worth the inconsistency. Verified via a full amule build (macOS) and a visual check of the shared-files reload button.
|
Makes sense, agreed on keeping it in-house. Reconstructed the original raster (amuleDlgImages(18)) to check what I was actually replacing -- it's a green double-arrow circular refresh icon, thicker stroke than what I first drew. Redrawn to match: 25da39d. Screenshot of the shared-files reload button if useful, just say the word. |
|
Doesn't look very good.
We can wait for somebody to come up with a better SVG. @Zeyckler maybe? 😅 |
|
Wanted to check something before iterating on the hand-drawn version further: I ran the same brief (green, two curved arrows forming a full circle, thick uniform stroke) through Recraft (via the Higgsfield MCP tool available to me) to see how it compared. Result is up in 179c197 — GitHub should render the SVG diff inline here so you can look without pulling the branch: LSalami@179c1974a Worth being upfront about what this is: it's AI-generated, same as my hand-drawn attempt, just a different tool -- not a pre-existing third-party icon library like Lucide (no external attribution/license needed), but also not really "hand-drawn in-house" in the spirit of what you asked for either. Flagging that distinction explicitly rather than quietly swapping it in. My honest read comparing the two: the Recraft version has a cleaner, more uniform stroke and reads a bit better at actual 16x16 size than my hand-drawn one. But it's your call on whether that's worth it given the in-house preference. If you'd rather keep 25da39d (the hand-drawn one), just say so and I'll revert 179c197. |
|
This looks better, can you solve the conflicts? |
…ree, and tab-close icons to CamuleArtProvider Continues the icon-system cleanup scoped in amule-org#675, independent of amule-org#732/amule-org#733 (different files, no overlap). - amuleDlgImages(14)/(15): the small header icons in the Friends and Messages tabs. Friends gets a new "amule:friends" SVG; Messages reuses the existing "amule:toolbar_messages" art, requested at an explicit 16x16 so it doesn't inherit the toolbar's 32x32 natural size. - amuleDlgImages(18)/(30): the "reload list" buttons (shared files, ED2K server list, Kad node list) -- three call sites, one new "amule:reload" SVG (see below for its own history). - amuleSpecial(1)/(2): the shared-directory tree's folder icons get new "amule:folder"/"amule:folder_shared" SVGs -- same shape, tinted orange vs. red, matching how the original raw bitmaps only differed by colour. - amuleSpecial(3)/(4): the chat/search notebook tabs' close-on-hover icon, replaced with wx's own stock wxART_CLOSE for both states instead of a second bespoke asset (both were the same "X in a box" bitmap, differing only by a hover-highlight border colour). reload.svg's own history, per PR review: the first hand-drawn attempt (thin blue single arc) didn't match the original at all -- got3nks caught it, I reconstructed the original amuleDlgImages(18) raster to check (a thicker green double-arrow circle) and redrew closer to that, which still wasn't good enough. Final version is AI-vectorized via Recraft (through the Higgsfield MCP), which got3nks preferred over further hand-drawn iterations. src/icons/icon_data.c (the checked-in fallback used when Python3 is absent at configure time, per amule-org#487) regenerated via embed_icons.py to match. Rebased onto current master (picking up amule-org#732/amule-org#733/amule-org#739, which all touch the same amuleSpecial/amuleDlgImages functions) -- conflicts resolved by redoing the index deletions against the current tree rather than replaying the stale patch, since amule-org#725/amule-org#733 already moved the surrounding line numbers. Verified via a full amule build (macOS) and a visual check of every call site: Friends/Messages tab headers, the ED2K server-list and Kad node-list reload buttons, the shared-files reload button, and the Preferences > Directory shared-folder tree.
179c197 to
6503597
Compare
|
Conflicts resolved (rebased onto master, which now has #732/#733/#739 -- all touching the same amuleSpecial/amuleDlgImages functions). Redid the index deletions against the current tree rather than replaying the stale patch, since the line numbers had moved. Squashed to one commit: 6503597. Full build + visual check of every call site again post-rebase, all good. |
|
I built #735 for a visual round of tests. Folders and the close-tab glyphs look good; two notes on the new art:
Everything else looks good — folder / folder_shared and the tab-close X are fine. |
…-org#735 review) got3nks, testing amule-org#735: - reload: arrow bodies read too thin at 16px. Regenerated via Recraft with an explicit thicker/bolder-stroke prompt. - Messages panel header: reusing "amule:toolbar_messages" (the main toolbar's detailed gradient mascot bust) at 16x16 doesn't read as "messages" once shrunk that far from its 32x32 native size. Added a dedicated "amule:message" chat-bubble glyph instead, sized for legibility at 16x16 specifically, and pointed the Messages panel header at it instead of the toolbar art. Folder/folder_shared and the tab-close X were already approved as-is. Verified via a full amule build (macOS) and a visual check of both fixes: the shared-files reload button and the Messages panel header.
|
Both fixed in c3aeaea:
Verified both with a full build + visual check on my end. |
|
Merged, thanks @LSalami |

Continues the icon-system cleanup scoped in #675, independent of #732/#733 (different files, no overlap — can land in any order).
What's different about this one
Unlike #732/#733, these 8 raw-bitmap indices had no existing SVG equivalent in
src/icons/, so this PR adds new assets rather than just wiring up ones that already existed:amuleDlgImages(14)/(15): the small header icons in the Friends and Messages tabs. Friends gets a newamule:friendsSVG; Messages reuses the existingamule:toolbar_messagesart (same concept — requested at an explicit 16x16 so it doesn't inherit the toolbar's 32x32 natural size next to Friends' equally-sized icon).amuleDlgImages(18)/(30): the "reload list" buttons (shared files, ED2K server list, Kad node list) — three call sites, one newamule:reloadSVG.amuleSpecial(1)/(2): the shared-directory tree's folder icons — newamule:folder/amule:folder_sharedSVGs. Same shape, tinted orange vs. red, matching how the original raw bitmaps only differed by colour (checked by reconstructing the old raster data — see below).amuleSpecial(3)/(4): the chat/search notebook tabs' close-on-hover icon. Both were a bespoke "X in a box" bitmap differing only by a hover-highlight border colour — replaced with wx's own stockwxART_CLOSEfor both states instead of a second custom asset.On the new artwork: I reconstructed the old raw pixel/XPM data to PNG to see what each icon actually looked like before drawing a replacement (rather than guessing from the variable/index name alone). The existing
src/icons/*.svgset (from #487) is fairly elaborate — gradient, near-mascot-style illustrations. The 3 new SVGs here (friends,reload,folder/folder_shared) are simpler flat/gradient shapes; I did not attempt to match that more illustrative style. Flagging this explicitly for reviewers — these may be worth a real artist's pass later, this is a best-effort placeholder that's at least equivalent in spirit to what it replaces, not a claimed final design.Result
src/icons/icon_data.c(the checked-in fallback used when Python3 is absent at configure time, per #487) regenerated viaembed_icons.pyto match.Testing
clang-formatv18 (Docker, pinned) clean. Fullamulebuild verified on macOS. Visually checked every call site: Friends/Messages tab headers, the ED2K server-list and Kad node-list reload buttons, the shared-files reload button, and the Preferences > Directory shared-folder tree (screenshots on request). Did not visually exercise the chat/search tab close-on-hover icon specifically (wxART_CLOSE is wx's own stock resource, low risk) or thefolder_sharedred variant (needs an actual shared subdirectory to trigger).