The Latest Version is Still 1.5 Beta 2!!

There, hopefully that should catch a few eyes.  As many of you know, Quizo has decided to release a new version of his own branch, and I’ve been inundated with mail recently from people who’ve installed Quizo’s latest personal version and are now complaining to me that various things are broken.  Sigh…  It really saddens me that he’s continuing his own personal version, after he told me that he just doesn’t have the time for it.  If he does have time to work on this (and given how much his source code has changed since the previous release, he clearly does), then I really wish we could collaborate!  It’s very apparent that he has an incredibly deep understanding of the Windows shell, one that far surpasses my own.  But alas, if he doesn’t want to, I can’t do anything about that…

Anyway, I want to clarify where we stand as far as the next version goes.  In addition to the various bug fixes and minor improvements, there were three main things I wanted to accomplish with the next release: One is the options dialog, which I’m sure you’re all sick of hearing about by now; that’s complete.  Second was interprocess syncing.  Windows Explorer can run with each window as its own process.  Some people do this intentionally.  Sometimes it happens without users meaning for it to happen, since there is a bug (yes, another one…) that causes new process to start sometimes.  But either way, QTTB needs to support it, and the current infrastructure just wasn’t up to the task.  However, that’s also been finished now.

The third and final big thing was the Desktop Tool, a feature whose death has been greatly exaggerated.  For those who don’t know, the Desktop Tool brings QTTB features such as Subfolder Tips and Image Previews to the Desktop, introduces a handy menu accessed by double-clicking your wallpaper, and has a bunch of other nice stuff.  Previously, I had thought that this feature was dead due to Win7 removing access to a critical component, but Quizo found a way to get what’s needed using a method I hadn’t considered (and in retrospect, I should have seen that!  It’s obvious!)

Since my copy of the Desktop Tool source is a horrendous mess TODOs and huge chunks of commented-out code (plus which the original code was already mangled by a decompiler), I’ve decided to just copy/paste Quizo’s source for that particular component, which means any improvements he’s made will (hopefully) carry over.  Of course, this does not mean that I can just copy/paste the code and put a check in the box; I have to fix all the incompatibilities between our code.  Our code bases have diverged quite a bit by now, so this is going to take some doing.  But I’m making progress, and like I said, this is the last big thing.  Once this is done, I have a bunch of smaller things that need to be taken care of, but after that, I’ll kick it out.

And by the way, after this release, I will be marking the beta series as feature complete.  There will likely be a few missing pieces in the next release, but once those are filled in and any bugs squashed, I’ll finally shed the beta label.

Thank you all for your patience.

Options Dialog Finished

Hello everyone, remember me?

Wow, it’s certainly been a while since my last blog post.  I apologize for that, but honestly, I didn’t really feel like anything worth blogging about had happened, and I really didn’t want to make even more “sorry for the lack of updates, I’ve been busy”-type posts.  As an aside, let address something quickly:  I think I kind of assume people know this, but for anyone that doesn’t, please note that the blog is definitely not the way to judge whether the project is alive or dead.  The commit log is.  As you can see, I’ve been working on this project at a break-neck speed for the last couple months, and a few days ago I finally hit a milestone I feel is worth blogging about: The options dialog is complete.

This dialog has been such a massive undertaking, far bigger than I could have even remotely imagined.  The changes that it required were extensive and far-reaching.  And I’m sure some people are thinking “It’s just a dialog box!  Why is this important/time-consuming?”  I hope no one misunderstands this; I do know that nobody’s going to download this program just because it has a fancy options dialog.  What’s important to realize is that the dialog itself is simply the most visible part of a huge set of changes.  Many parts of the program have been re-coded from scratch, with performance improvements, increased stability, and simplifications made all over the place.  It’s certainly been a wild ride, and as difficult and time-consuming as it was, it’s been incredibly fun and an enormous learning experience.  Before this, I always kind of felt like I was just poking a few places in this enormous, enigmatic black-box.  But now, it truly does feel like it’s my program.

I don’t want to get anyone’s hopes up that the next release is coming tomorrow; there’s still a ways more to go, a few more features to implement, and more than few bugs to fix.  But, this is a very big milestone.

I know screenshots of an options dialog aren’t exactly super exciting, but I suppose I should include a few here:

Explorer in Windows 8

There’s an interesting post over at the Building Windows 8 blog today (a blog which, by the way, I am monitoring like a hawk).  They even mentioned us as one of several popular add-ons!

So, it seems the ribbon is here to stay.  Personally, I don’t mind it as long as it can be minimized, but I know many people hate it with an intense passion.  The Quick Access Toolbar looks very nice, a great return to form that makes our own button bar look outdated.  I highly doubt this will be possible, but would be so great to be able to put our own buttons on that thing.  I expect another build will be leaked after the BUILD conference in September…  I can’t wait to get my hands on it and see how hackable it is.

Thank you!

I’m honestly astounded at how fast the responses came in!  Thank you all so much for your support.  I’ve got at least one new developer now and possibly two.  I think that’s enough for now, but if things don’t work out with them I’ll ask again.  I’ll formally introduce them once we get the details hammered out.

I still need a web designer though!

Help Wanted

Hey, two updates in less than a week!  How about that…

I have to be honest.  I’m very disappointed in how much progress I’ve made this summer.  Other than my big France trip, I didn’t think I had that much to do, so I had anticipated making far more progress than was actually made.  I think it’s about time to face the facts here:  I just don’t have the amount of free time that this project deserves.  So, I think it’s long overdue that I start actively looking for some help.  There are two things I need: A web designer and a programmer.

This half-baked WordPress install is about the pinnacle of my web-design prowess, and this project deserves a better public face.  Someone who could help me build a nice new site with an FAQ page and a place to host the plugins would be much appreciated.

As for the programmer position, there are really only three requirements: C# experience, adequate free time, and a willingness to contribute.  If you meet these three requirements, I want you.   I do want someone who enjoys coding and considers themselves good at it, but don’t worry if you have no experience with shell coding in particular; there are still plenty of simple tasks that don’t require any special knowledge that I could really use someone to take off me.

If you can fill one or both of these roles, I want to hear from you.  Hit up the Contact link on the right.

For the rest of you, you needn’t worry that I’m going to just stop working on this project.  Even if I don’t find anyone else to help out, I’ll still chug along and things will eventually get done.  But I have so many big plans and ideas for new features, and I really would like to see them happen sooner than they otherwise would.

PS: To help filter spam, I’ve enabled comment filtering so that comments with URLs will be sent to the pending list, which I may or may not check frequently…  So if you want to post a URL, replace the http with hxxp or something.

Options Dialog Preview

Hello everyone; sorry once again for the massive gap between updates…  I’ve been busy with other things.  It seems that, in my absence, the comment spam has become a far more significant problem than it used to be.  Unfortunately, I can’t install an anti-spam filter due to SourceForge’s extremely limiting hosting policy. I think perhaps this is a sign that I need my own hosting already…  In any event, I’ll try to keep a better eye on the site.

Thanks to everyone who wrote in with name suggestions!  I’ve read them all now, and I saw several that I liked.  I’ll make a poll a little later to see what the most popular is.  I noticed that there were also many that thought that it should stay as QTTabBar, so I will make that a poll option as well.  To be honest, now that I’ve thought about how much work a name change would involve, that option is sounding a little bit appealing to me as well.  But, I’ll decide once I see how the poll turns out.

Anyway, although I have obviously not been checking the site nearly as much as I should have, a lot of work has been done on the program.  The new options dialog box is progressing nicely; here are some screenshots: Window, Tabs, Tooltips, Tweaks, General, Appearance

As you can see, it’s been… umm… let’s say “influenced”… by the options dialog for Microsoft Office.  I actually went through several styles before settling on that one.  I think Office’s options really hit a nice balance between aesthetics and functionality.  I especially like the bold section headers, which really let you find what you’re looking for quickly.

You might notice that there are a few options in these screenshots that hint at new features that are coming…

Fork and Rename

Whew, I’m finally back.  Paris is a lovely city to visit, but there’s no place like home!

So, let’s discuss the current situation.  As I said, Quizo did email me and we had a nice conversation which cleared up a number of misunderstandings.  I’m still waiting to hear back from him on a few issues, but here’s the short version of what’s known so far: Due to lack of free time and motivation, Quizo is, for the most part, finished developing QTTabbar.  He was working on a Win 7 compatible version last year, but never completely finished it.  At some point he realized that he would not have the free time to continue, and the recently released 2.0 Beta 2 is simply a cleaned-up version of his latest revision.  He was a little ambiguous as to if he ever plans to release a Beta 3 or above, but he very clearly stated that it was certainly not happening any time soon.  Quizo has agreed to direct users to my project as the version under active development, and the main website has recently been updated to reflect this.

He did have a few requests of me, which I plan to honor.  Mainly, that the internal identifiers and settings location of my project be changed, so that it doesn’t conflict with his version.  This will happen in the next release.

If we’re changing all the internal identifiers anyway, then I’d like to take the opportunity to change another thing: the name.  I undertook this project on the (admittedly presumptuous) assumption that Quizo was gone for good, so I thought of my version was a direct continuation rather than a fork.  But now that there’s this version 2.0 of the original project in the wild, there’s no longer any ambiguity: my project is now a full-blown fork whether I like it or not.  And that means having a different name to differentiate it is pretty much required.

To be honest, I’ve wanted to rename the project for a while now.  I never really liked the name QTTabBar: it’s a little awkward to say, and people are constantly assuming we must have some kind of association with that other Qt.  The two biggest reasons why I haven’t renamed the project are 1) respect to Quizo and 2) I was afraid we’d lose the name-recognition that QTTabBar has established.  But now that Quizo’s given me his blessing and has put a link on his site to my site, both those issues are addressed.

So what should the new name be?  I’m open to suggestions; many people have already done so, but let’s get a few more.  Post them below or email them to me using the Contact link on the right.  I mentioned the possibility of a name-change earlier, and someone suggested “QTabs” as a new name.  I rather like that one: it’s short, it’s catchy, it has some homage to Quzio in there, and we can keep the “QT” prefix that is in use everywhere.  I’m certainly not settled on it though, so feel free to propose a better one (or voice your support for that one).

It was a bit of a bumpy ordeal, but I think it will ultimately be for the better.  I hope to make some serious progress on this project in the coming months, including merging most of the new features of Quizo’s version into my own.

PS: To address some of the comments in the previous post, my assessment of Quizo’s version as “extremely buggy” was based on my own install of it.  It could be that there were conflicts between my version and his that caused the glitches that I encountered.  I certainly didn’t mean to disparage his obvious effort, and as I said, he solved a few problems that I couldn’t.  Looking through the now-public source will provide a great deal of insight, for which I am extremely grateful.

State of QTTabBar

Greetings from Paris!  I have very limited time, so I’ll be brief.  Yesterday QTTabBar was featured on LifeHacker, due to Quizo’s 2.0 version.  Ugh.  This is pretty much exactly what I was afraid of; it’s going to cause a lot of confusion.  I was going to save the full explanation for when I get back (and when I knew a little more; we’re still hammering out a few things) but now due to the LifeHacker posting, I have to post the basic details.  Again, full details will follow in a few days when I return home.

The bottom line is this: Quizo is NOT continuing QTTabBar.  The recently posted 2.0 was posted as a cleaned-up version of his latest revision, once he realized that he would not have time to work on it anymore.  It has very many bugs, and they are not going to be addressed any time soon, if ever.  He has agreed to place a link on the wikidot site directing users to my site as the version under active development, as well as clarification that his version is not.  Hopefully I can get him to do this sooner rather than later, in light of the current circumstances!

Quizo’s back

He’s uploaded a beta of his own 2.0 version on the original site.

On the one hand, he’s fixed a few things that I couldn’t, including the Desktop bar.  Plus the icons have a fresh coat of paint, and the options dialog (while still a little messy) appears to have been redesigned.  However, a lot of other stuff is broken.

I don’t know what this means for me.  Should our versions merge?  Would he even agree to that?  Should I just keep going and fork the project?  That Quizo released this without so much as a cursory email to me is pretty upsetting.  I have to wonder if he’s mad at me for taking over.

To top it off, this happened at the worst possible time for me; I’m leaving for a trip to France in two days to attend an academic conference.  And now here I am with my head spinning off.  I really just don’t have time to deal with this right now.  I guess all I can do for now is wait to see how things play out while I’m away, and see if I can get any kind of communication going with Quizo.

EDIT: Thanks everyone for the encouraging comments.  Quizo did send me an email and it looks like everything will work out.  I’ll post the full details when I return from my trip.  Au revoir!

QTTabBar 1.5.0.0 Beta 2 Released

EDIT: IMPORTANT!!! If you have not done so already, you MUST manually uninstall Alpha 5 via the Programs & Features window (Add/Remove Programs on XP) before installing this release.  Alpha 5’s installer was misconfigured so it will not uninstall automatically.

EDIT2: If you install Beta 2 and get an error when you launch Explorer, or it fails to overwrite Beta 1, it’s most likely because you haven’t manually uninstalled Alpha 5!

Okay, okay, so that whole “within a week or so” thing I said almost a month ago turned out to be slightly inaccurate.  Thanks for your patience everyone; Beta 2 is ready for download.

I said in a previous post that fixing the Automation bug was a great learning experience for me, and that the experience was providing a lot of insight on other problems.  Well, that’s the reason for the delay: every time I thought I was ready to release it, I thought to myself, “Let me just take a look at one more problem and see if my newfound knowledge applies…”

As a result, the changelog for this release is particularly juicy, with some really major fixes in it.  But the one I’m most excited about (other than the Automation bug fix of course) is massively improved Explorer instance capturing!  It’s not perfect in all cases yet, but for programs that launch Explorer windows The Right Way™, QTTabBar captures them without having to let the window open half-way first.  Which means you’ll be looking at your files even faster than you would be without QTTabBar, since you don’t have to wait for a new window to be created! Seriously, before you install Beta 2, press Windows+E on your keyboard and note how much time it takes before you get a useable Explorer window.  Then install Beta 2, try again, and marvel.

In addition, programs that are supposed to open a folder and select a file now work as expected (again though, only if they’re doing it the officially Microsoft-sanctioned way).  Folders launched the wrong way will still need to be opened half-way before I can do anything about them; I’m still looking for a better way to capture these windows.

Incidentally, launching folders the wrong way will launch additional explorer.exe processes, so it’s bad even outside the context of QTTabBar.  (If you see a new window open half-way before QTTabBar captures it, check your Task Manager, and you’ll see you have multiple explorer.exe’s running!)  So, if your favorite program is opening Explorer windows the wrong way, send the developer an email and tell them to fix it!  For any programmers reading this wondering what the right way is, it’s to call ShellExecute with the target folder (by itself, not after “explorer.exe”) as the lpFile parameter.  To open a folder and select a file, the correct way is to use the SHOpenFolderAndSelectItems function.

Anyway, I’m really happy with this release.  I hope you all will be too.  Unless this release contains a show-stopping bug, I’m probably going to let this one sit for a while so I can work on the new Options dialog for Beta 3.

Happy tabbing!

======= 1.5.0.0 Beta 2 =======
Bugs Fixed:
Fixed scrolling lag buildup when using the ItemsView.
Fixed massive memory leak (!)
Fixed navigation on Homegroup Libraries.
Refined Windows searches no longer show up in the navigation history.
Clearing the Search bar now navigates back, instead of navigating to Libraries.
Middle-clicking on the Navigation Pane now respects the relevant option.
Fixed various problems occuring when Explorer is in single-click mode.
Fixed extension deselect when renaming .zip and .url files on XP.
IFilter-based Plugins, such as Megimo Loader, are no longer unloaded when the Options dialog is closed.
Support for systems with only .NET 4 and not .NET 3.5.
Support for both the x64 and x86 versions of Explorer on Vista x64.

New Features:
Capturing new Explorer instances is now MUCH smoother in most cases, and supports selecting items.
Middle-clicking on Vista and 7’s Breadcrumb Bar will open the target folder in a new tab.