QuartzBuilder should use the previous app icon

QuartzBuilder should use the previous app icon which was added by the user. Ideally it would act like the image picker in iChat and when clicked pop open a grid of previously used app icons. As a stopgap you could have a reset button if you wanted users to be able to return to the QuartzBuilder icon.

dust's picture
Re: QuartzBuilder should use the previous app icon

i think there are more import things to be built than an icon image well drawer, like published parameters hud, maybe even viewer as hud, (aesthetics appeal for viewer hud (not necessary)) maybe even a 64 bit version with gestural event forwarding. i think the most important is a parameter screen. different apps need different icons and doing a drag and drop is well pretty simple, when you can browse through icons in cover flow or something then drop it on the builder + changing the default icon to be something of your own isn't hard.

PreviewAttachmentSize
Screen shot 2009-09-18 at 8.37.36 PM.png
Screen shot 2009-09-18 at 8.37.36 PM.png76.15 KB

cwright's picture
Re: QuartzBuilder should use the previous app icon

dust -- I just looked into gesture event stuff, and I think (haven't actually tested yet) I've added support for gesture events (in 32bit mode, and will still work on Leopard as well, just won't actually receive gestures). So you can expect that at least to be addressed in 1.2.

gtoledo3's picture
Re: QuartzBuilder should use the previous app icon

Quartz Builder does maintain the App Icon when building apps during the same "session".

Do you mean that you think it should maintain the same App Icon once one has been added, after starting and closing the app?

That's not a horrible idea, though I don't see a reason why it makes more sense than the current setup. It's more typical to use a different app icon for each application, so saving across sessions wouldn't seem to be the right approach.

If anything, I tend more towards the thought that the App Icon should revert back to the Quartz Builder default as soon as the app is successfully built if you've placed your own custom App Icon in the App Icon drop {shrugs}.

That said, I think the current arrangement is the best balance. If you open up Quartz Builder, you are more than likely working on a particular app, and trying some various arrangements out. The default operation of the App Icon persisting across builds, but not sessions, makes sense. You close Quartz Builder, and next time you open, you are more likely than not, working on a different app.

I happen to use the same App Icon for all (well, most) of my Quartz Builder stuff, but that's more because of the fact that they've all been fairly simple in function, so it seemed more fitting to label them all the same way, aesthetically speaking.

cwright's picture
Re: QuartzBuilder should use the previous app icon

I guess for me, I can see this being useful as a kind of Most-Recently-Used tool, which can save a bunch of time. Implementing it is perhaps more work than the other requests, but I don't see adding it as a loss in functionality at all.

gtoledo3's picture
Re: QuartzBuilder should use the previous app icon

Hmm. It seems so easy to just pick whatever app icon you want at any given time. It takes me 5 seconds to type in the name of an icon in Finder and drag it onto QB.

So then, if that was the change, then you would have to be able to switch back to the QB generic icon for scenarios where you wanted to build without the last icon you used, I'm speculating.

For what I've done to date it would be a time saver, because I almost always use the same icon. If a control panel was on board, I would probably wind up doing different app icons everytime around, as the apps would be more diverse in function I think.

Is setting up an icon to persist like that more difficult than doing the auto-nib/published param stuff?

cwright's picture
Re: QuartzBuilder should use the previous app icon

Icon persisting took about 6 lines of code (2 lines for user defaults, and 4 lines to handle what happens if it's not set, or if the file's no longer valid). took all of 3 minutes :)

This will be a new feature in 1.2. Fancier stuff (like selecting among the last N icons used) will not be present.

Regarding dragging from finder, I'm ok with that too, but I always end up just leaving crap on my desktop, and then my desktop's a nightmare (my in laws saw my desktop last night, and laughed because it's so ridiculously full of crap I'm in the middle of working on finishing up etc.) So this keeping one more icon off my desktop is worth it (to me, at least).

smokris's picture
Re: QuartzBuilder should use the previous app icon

Some additional possibilities I'm thinking about:

  1. Store the icon in the Composition. Next time you drag the Composition into QuartzBuilder, the icon (if any) will automatically be retrieved. (From the tests I've done, the Quartz Composer Editor does seem to preserve unknown plist keys, so subsequent edits of the Composition-with-icon-added won't kill the icon.)
  2. Automatically generate icons from the rendered output of the composition --- and provide a set of thumbnails from different times to choose from, like a typical web-video-upload community.

cwright's picture
Re: QuartzBuilder should use the previous app icon

These would be cool -- I'm a bit iffy on 1, just because it's not quite intuitive to drop files in there and we can't ensure that they're icns files, and we don't have a method to generate icns files from other images yet because I'm too lazy to look up how it's done. Once those things are in place (auto-conversion, etc), I'm all for it though.

2 could be cool, but it's a fair amount of work, and it chances instability (just generating the preview can cause QB to crash for some plugin-using compositions). I think that's reasonable for 1.3 or later (definitely on the drawing board, just not right this second).

smokris's picture
Re: QuartzBuilder should use the previous app icon

cwright wrote:
I'm a bit iffy on 1, just because it's not quite intuitive to drop files in there and we can't ensure that they're icns files, and we don't have a method to generate icns files from other images yet because I'm too lazy to look up how it's done.

Er, perhaps I didn't explain that clearly. I meant, keep the current workflow (open QuartzBuilder, drag a Composition in, drag an Icon in), but that when you drag the Icon into QuartzBuilder, the Icon would be automatically added to the Composition (embedded in a special plist key), and then next time you launch QuarzBuilder and drag the Composition in, the Icon (which is already guaranteed to be in ICNS format since QuartzBuilder accepted it in the first place) would be re-loaded, just as though you'd manually dropped it in the Icon imagewell.

This would fit my personal usecase well --- I am typically working on three or four separate QuartzBuilder apps, each with a different icon.

cwright's picture
Re: QuartzBuilder should use the previous app icon

Ahh, that makes sense --

the builder doesn't ever modify the source composition though (it loads it, flattens it, defangs it, strips unnecessary data, and then works on modifying that copy, before encrypting it at export), so doing the embed-on-load thing is kinda different.

I'll think about it.

gtoledo3's picture
Re: QuartzBuilder should use the previous app icon

Keep in mind that reverting to the generic icon needs to be easy.

It would equally be a pain in the butt to always have some old icon popping up, and not be able to easily revert to a generic working icon. This would especially be the case if the App icon reloads across sessions in a non-composition specific way. Then you would have to have the finished artwork for the icon before you do test builds, or you would have to compile the thing with an old, unrelated app icon.

At that point, it sounds like-

-A default Quartz Builder generic icns is being stored.

-Whatever you used last time is being stored.

-Icons possibly getting embedded into qtz's without the user necessarily desiring that (if one route is taken).

-Last used icon popping up automatically when user may want to roll with the generic (if another of the routes is taken).

This is all to avoid finding and dropping a single icns? :)

To flip and take the "mega functional" route viewpoint, QB could put every icns you drop into a history that would be browsable and selectable, ala Coverflow, Bookmarks, or something slightly similar, like a Dock Stack coming off of the icon drop.

That would be my personal favorite hack... a stack type of thing coming off the Icon Drop that would look or at least work like a stack, show your last few used icons, with a Open In Finder type of tag to go back and open your whole history if you wanted to. It would also need an option to "flush" all of the icon files.

dust's picture
Re: QuartzBuilder should use the previous app icon

i don't know if your like me it usually takes a few builds to get my settings right in quartz builder so a recent app icon would be a good idea. i think the reason this happens is because if you click on "borderless" before the app name has loaded up it will revert back to default. its like i always go advanced settings click borderless then the app loads but forget that even though i all ready clicked borderless i need to do it again. don't know if anybody else has noticed this. im enclosing some pics. to repeat the issues which makes me make multiple builds hence needing a persistent app icon you would do the following.

1 drop app on QB 2 click advanced 3 click borderless 4 click app name 5 build app

note the advanced options get re-set and it is not borderless. obviously if you put number 4 into the number 2 position this doesn't happen.

so the screen shots illustrate the defaults being re loaded when the app name gets loaded.

gtoledo3's picture
Re: QuartzBuilder should use the previous app icon

Make sure to hit enter when you set the options...

Yeah, afaik, you have to load the composition, then make your settings. Loading the composition is step 1. This makes sense, because you might have entered in a height and width via the "Edit Information" when you are working on your actual composition, where width and height defaults are exposed.... so putting in a composition/qtz is going to "flush" whatever settings you had going on in Quartz Builder. In my opinion, it really has to do this, or you would just as likely compile a new qtz/app with the last settings you used via Advanced Settings, and it would ignore whatever you have going in in the actual qtz.

The App icon does persist, at least across builds (not opening and closing the app). I always leave Quartz Builder open until I've finished testing my settings in the built app, and am satisfied.


Some other thoughts on Icon-age:

Reverting back to a generic Quartz Builder icon is where it gets a little dicey interface wise, because you always have to look in a different place than you actually normally do your interaction with Icons once it's introduced (unless you actually were able to have something like a Stack fly out of the Icon drop when you press it, which seems unlikely). A glaring reset button hanging around the icon drop, wouldn't fit the norm, and look kind of tacky or crowded; it would be odd to devote a button just to resetting to a generic Icon default on the actual app interface, when one considers the weight of the function that the three buttons that are on there now carry.

Maybe you could tear away the saved icon and make it go "poof" to reveal the Quartz Builder generic app icon. That's another simple route that's a bit familiar to people. Actually... that would be kind of cool for "clearing" Quartz Builder in general.

Another pretty standard take, would be via a check mark setup in Preferences (currently not being used - possibly fitting if more actual behaviors of the way the app actually works where introduced). It might be even better as a simple part of the Quartz Builder drop down that could be checked/unchecked. As in "Save Last Used Icon" (check or uncheck). Unchecking it would "pop" the Quartz Builder generic icon back in.

I really like tangible stuff like tearing away a file to delete it, or pressing the App Icon field for a drawer/Stack of most recently used (I always forget if it's still called a stack when it's the "Square" like you get when you tab the Dock to the side of the screen... I'm almost certain it's not... I always brain fart on that one, but that would be amazing for choosing App Icons, coming off the side of the Quartz Builder interface). It's obvious that's the direction the OS is heading in (a slight aside.... is anyone else digging Dock Expose´ as much as me?... What a great refinement.)

cwright's picture
Re: QuartzBuilder should use the previous app icon

gtoledo3 wrote:
Make sure to hit enter when you set the options...

Ooh, that's a bug (QB should end field editing on export, so you don't need to press enter -- QuartzCrystal doesn't require enter, for example). Thanks for noting that.

gtoledo3 wrote:
Reverting back to a generic Quartz Builder icon is where it gets a little dicey interface wise, because you always have to look in a different place than you actually normally do your interaction with Icons once it's introduced. Maybe you could tear away the saved icon and make it go "poof" to reveal the Quartz Builder generic app icon.

I was thinking of something sort of radical, like the delete key ... er, wait, that already clears the icon (though it doesn't restore the default, it just makes it blank). :)

Tear-away sounds cool too, eventually (will have to make it a dragging source, that's a few new lines of code), not sure if it'll be a focal point for 1.2 though.

gtoledo3 wrote:
(a slight aside.... is anyone else digging Dock Expose´ as much as me?... What a great refinement.)

Seeing a coworker bust out Expose in Tiger was actually what made me want to buy my first mac back in 2007... Expose, and screen-zooming, and I was sold (those two features solved 90% of my quarrel with every other window manager on the planet).

The Snow Leopard refinements are even more exciting -- I just wish I was actually using SL more so I'd get used to them :/

gtoledo3's picture
Re: QuartzBuilder should use the previous app icon

Lol, at the Delete comment.. ah me.

Man, when I first saw Expose it totally floored me as well.

If you haven't used it yet, all you need to do is hold down on the icon of the App you want to "Expose" on the Dock, and all of those App windows Expose, and the others disappear!

On the focus/enter thing... I haven't personally had that be a problem recently, but given what Dust was describing, I figured I would mention that. I think you have that one fixed, or 10.6.1 is making it not crop up for me, one or the other.

The two refinements that are going to be the biggest bang for buck are:

-Handling for some kind of interface/published parameters (already been discussed ad infinitum).

-Optional multisampling in the Viewer.

I'm with you on Leopard... I kind of just pop back and forth, and see both during the course of the day. There is "intelligent" lasso effect editing in Snow Leopard Preview now, and that's pretty hard to argue with. Overall, there's a great deal of awesomeness. I reallly wish I just had those features available to me in my normal Leopard environment. I swear I've never felt like such a luddite before - save for the fact that I really like to have a hardware shuttle (stop/play/pause, jogwheel, etc) if I'm doing any kind of audio engineering.

On a pure hack/technical level, I do wonder how much of the current Snow Leopard QC stuff could work in Leopard without much ado (my inkling is much of it) - not that it really matters since everyone will wind up on Snow Leopard anyway.

cwright's picture
Re: QuartzBuilder should use the previous app icon

gtoledo3 wrote:
If you haven't used it yet, all you need to do is hold down on the icon of the App you want to "Expose" on the Dock, and all of those App windows Expose, and the others disappear!

Yep, I have -- and, it shows the window titles by default -- on Leopard it only shows the titles if you press cmd or something -- way not helpful when you have half a dozen source editors open (since the code all looks the same zoomed out).

gtoledo3 wrote:
The two refinements that are going to be the biggest bang for buck are:

-Handling for some kind of interface/published parameters (already been discussed ad infinitum).

-Optional multisampling in the Viewer.

Definitely -- multisampling is going in tomorrow morning (so it'll go live with 1.2, and have automagic fallback on non-supporting GPUs), and parameters are on the table after that (the difficult part with that is that I'm not well-versed in programatically creating UIs, so it takes a lot of trial and error and doc reading to get it figured out.)

usefuldesign.au's picture
Re: QuartzBuilder should use the previous app icon

cwright][quote=gtoledo3 wrote:
Seeing a coworker bust out Expose in Tiger was actually what made me want to buy my first mac back in 2007... Expose, and screen-zooming, and I was sold (those two features solved 90% of my quarrel with every other window manager on the planet).

Lucky for us :)

cwright's picture
Re: QuartzBuilder should use the previous app icon

dust wrote:
i don't know if your like me it usually takes a few builds to get my settings right in quartz builder so a recent app icon would be a good idea.

The reason it wipes the other settings is because it sets the Advance Settings values to whatever are embedded in the composition. (yes, in the composition).

Each advanced setting has a key/value pair in the Composition Info (shift-cmd-i, I think?) panel that you can set. If you set those accordingly, you'll never need to bother with the advanced settings panel in QB ever again (and each build will have the options you expect, etc).

So actually the icon is the black sheep, since it doesn't get modified when a new composition is dropped in...

dust's picture
Re: QuartzBuilder should use the previous app icon

thanks chris haven't actually been in setting in QC much, i should have checked it out by now seeing that i noticed this feature in cybero's video tutorial. maybe you have noticed maybe not but i rarely go into the plist settings in any of my comps, but it seems there are people of late using my source for there own needs so maybe it is a good idea to annotate and © etc..

cwright's picture
Re: QuartzBuilder should use the previous app icon

dust wrote:
maybe you have noticed maybe not but i rarely go into the plist settings in any of my comps, but it seems there are people of late using my source for there own needs so maybe it is a good idea to annotate and © etc..

It's a pretty rare thing, that's for sure. Simple enough (it's in the QC UI), but hard to draw attention to it -- perhaps the template composition should have some notes that indicate that? That'd hopefully help a little bit...