Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Recent Objects (Catalog) / QSPresetObjectHistory is missing on Build > 3932 #1106

Closed
clarkewd opened this Issue · 17 comments

3 participants

clarkewd Rob McBroom Patrick Robertson
clarkewd

With QS Build 3932 the "Recent Objects (Catalog)" seemed to work fine but after upgrading to a newer build it seems broken.

When examining the catalog there are no items in the Contents of the Recent Objects catalog item:

Picture 6.png

Unchecking and rechecking the box makes the items show up:

Picture 7.png

but if that window is closed and reopened the same behavior recurs.

Furthermore my custom trigger is broken because I can no longer find the "Recent Objects (Catalog)" entry. It used to be selectable:

Screen Shot 2012-09-11 at 10.02.56 AM.png

And so I could set it as a trigger:

Picture 1.png

However now it seems to be missing:

Picture 8.png

I've tried clearing the cache and upgrading to the 3935 but still no luck.

I'm not going to rule out the fact that I'm doing something wrong but it sure looks like an issue.

Two Macbooks running ML - the one with B69 (3932) but the one with B70 (3934/3935) is having issues.

Rob McBroom
Owner

I can confirm this. You're not doing something wrong.

Patrick Robertson
Owner
clarkewd

If I roll back to 3932 and disable and then re-enable Proxy Objects it starts working again...

Rob McBroom
Owner

Well, now I don't know what to think. I tried debugging and it worked fine. Downloaded 3935 and tried that. Also fine. Went back to the build I'm using (which let me reproduce the problem earlier) and it was working all of a sudden.

Are you able to navigate through the history using ⌘[ and ⌘]?

clarkewd

holy crap - that is basically the most useful thing I've learned about QS in the past year. son of a... I can't believe I didn't know that already. Well, yes it works although the recent objects are still showing up blank again, even though they were working before.

Not sure why it says 1 of 195 at the bottom...

Screen shot 2012-09-11 at 2.00.56 PM.png

Also, now the proxy object catalog is looking funny:

Picture 1.png

Ok, now that I have viewed the catalog and I activate the recent objects catalog using a trigger the objects are showing up again...

Screen shot 2012-09-11 at 2.05.06 PM.png

Rob McBroom
Owner

holy crap - that is basically the most useful thing I've learned about QS in the past year. son of a... I can't believe I didn't know that already.

Yeah, it's pretty great. It's been a feature forever, but it was also broken for as long as I can remember. Thanks to @pjrobertson for getting it working. And just resign yourself to the fact that you will never know everything Quicksilver can do. Every time I think I do, I'm proven wrong.

As for Recent Commands, looking funny, that's a known problem. See #555.

So are you saying Recent Objects is working for you now?

clarkewd

Oops, I was looking at the wrong one. When I looked at it earlier it was just blank:

Image

I've rolled back QS because right now is not an ideal time for it to be broken and it is half-way working. I wouldn't call the issue fixed. If we can get the "latest download" proxy fixed in master I will download the updated version and see if the recent objects is broken or not.

clarkewd clarkewd closed this
clarkewd

Ok, just updated to 3935 again. Upon relaunch the Recent Objects (Catalog) is empty. If I go into preferences and select "Recent Objects" and click the refresh circle it will get a count next to it. Then I have to activate the trigger two times and then the recent objects will shows as a dropdown list. The objects are available with Cmd + [ & ] even when they do not show up in the drawer or the catalog.

Restarting Quicksilver starts this same cycle again.

Patrick Robertson
Owner

[Edit] Just seen you've closed this issue, is it OK now?

OK, so you're discussing 'Recent Items' (under 'User' in the catalog prefs) and not recent Objects?
I think a bit of misunderstanding on my part.

I can see all recent items immediately on relaunch, but their icons are just the generic question mark '?'.
If you want to try and get to the bottom of it, and you can now build Quicksilver, do you think you'd be able to do a git bisect (we can walk you through the steps)?

Thanks

clarkewd
  1. Sorry, typo - I am talking about "Recent Objects" from the Quicksilver catalog and not the "Recent Items" from the User catalog.
  2. I can do a git bisect if you like but I haven't change anything from Master.
  3. Console.app is not giving any errors when accessing these things - should I add in some NSLog statements to see if I can find where it is failing? Not sure where to start with that (yet) but that's how I found the problem in the Latest Download proxy object.
  4. I didn't intend to close the issue.
clarkewd clarkewd reopened this
Rob McBroom
Owner

Some things to keep in mind:

  1. Recent Objects don't persist across relaunches of Quicksilver. It will naturally be empty when you first start.
  2. It's a normal catalog entry in that it only updates periodically (every 10 minutes by default), so it could remain empty for at lest 10 minutes after launch.

That seems to explain the behavior you describe, though none of this is new, so I'm not sure why it didn't always appear this way to you.

We should probably alter the QSHistoryController to post notifications when things are added. Not sure how it would work, but maybe the notification would include the ID for the catalog entry and then the catalog rescanning code could go run objectsForEntry: on that guy? I guess we could look at how QSVoyeur does it.

clarkewd

To clarify, it's not that I want the objects to persist across relaunches ( which would be nice), the problem is that after re-launching objects are no longer showing up there after use.

Previously I could relaunch, then as I began to use objects they would immediately be added to the "Recent Objects" catalog and available for selection by arrowing into "Recent Objects (Catalog)"

I'm guessing you guys mostly use Command+ [ & ] to select your recent objects - that is nice but I also have a trigger set up - command+shift+space which opens the dropdown with the recent objects:

Image

That's nice because you can then use the keyboard to filter these and quickly select something fairly far back in the history.

Anyways, the problem with the new version is that the Recent Objects dropdown is still empty after relaunching quicksilver and then using objects for a few minutes. I know what you mean about the catalog being re-scanned but this use to work immediately - and if the command [ & ] work immediately for these objects then I don't know why they are no longer showing in the drop-down.

Does that help explain the issue?

Patrick Robertson
Owner

Unfortunately this hasn't helped me figure it out, but thanks for the detailed explanation!

Sounds like a git bisect is in order, if you're prepared to do it. Here's what you need to do.

  • Go to your Quicksilver directory in terminal.
  • If you are sure that things are working correctly in ß69 but not ß70, then run the following commands:
    • git pull --tags origin master
    • git bisect start B70-pre B69-final

At this point, git will go 'back and forth' between changes that have been made since ß69 and ß70.
Jump into Xcode, and build and run Quicksilver. Test your Recent Objects issue and see if it's broken.

If things do not work, type:

  • git bisect bad

If things DO work, type:

  • git bisect good

Then, re-build in Xcode and test again. Keep going through this process until git tells you that a specific commit it the bad one. Then you can get back to us and let us know exactly where the trouble all started!

Once you're done bisecting, type git bisect reset in Terminal to put everything back to normal.

Thanks for you help

Rob McBroom
Owner

Would fixing this be as simple as adding this to the end of QSHistoryController addObject:?

[[NSNotificationCenter defaultCenter] postNotificationName:QSCatalogSourceInvalidated object:@"QSPresetObjectHistory"];

Yes, I remain convinced that it’s always worked this way and we should be looking at how to fix it instead of what changed. :-)

Rob McBroom
Owner

Correction, the object in the notification should be @"QSHistoryObjectSource", but that gets all the entries for that source, which isn't specific enough. But something along those lines.

clarkewd

Thanks again for looking into it. I apologize that it might be a little while before I have a chance to do the git bitsect

Rob McBroom
Owner

I apologize that it might be a little while before I have a chance to do the git bitsect

Don’t bother. I’ve [hopefully] fixed it for good. :-)

Rob McBroom skurfer closed this in 5e5af1c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.