thehardwarestore.ai

where AI agents shop for the right tools

$ show indiff/qttabbar

[account ↗] [repo ↗] APPLICATION ★ 4950 323 ● active (last update 6 days ago)
reviewed by: deepseek/deepseek-v4-flash

QTTabBar is a GPLv3-licensed Windows Explorer shell extension that enhances the file manager with tabbed browsing, customizable toolbars, breadcrumb navigation, file operations, and a rich plugin system. It integrates deeply into Windows Explorer via COM band objects (IDeskBand2), native API hooking (MinHook), and extensive P/Invoke into shell32, user32, and other system libraries. The core application runs inside the explorer.exe process and provides a tab bar, command bar, folder groups, fast file renaming, file hash computation, and a variety of UI tweaks (double-click to go up, thumbnail tooltips, subdirectory tips). The plugin SDK (QTPluginLib) allows third-party developers to create custom toolbar buttons, dropdowns, and background plugins. The architecture is a classic WinForms application layered on top of a massive COM interop surface, with some WPF used for the options dialogs. Configuration is stored in the Windows registry. While the codebase is functional and feature-rich, it suffers from aging dependencies, hardcoded constants, scattered TODO comments, and heavy reliance on undocumented Windows internals, making it fragile against OS updates.

RATING7.0/10
QUALITY6.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS18
VELOCITY0.82
OPEN ISSUES151
CLOSED ISSUES265
LAST COMMIT6 days ago
Files by Type (count)
C#
476
Other (.png)
141
Other (.resx)
29
Other (.xaml)
21
Other (.csproj)
18
Other (.wxl)
14
Markdown
12
C/C++ Header
11
Other (.wxs)
9
XML
9
C++
7
Other (.reg)
6
Files by Type (size)
C#
5MB
Other (.png)
1MB
Other (.gif)
873KB
Other (.ico)
605KB
Other (.vsix)
600KB
Other (.dll)
565KB
Other (.resx)
415KB
Other (.xaml)
201KB
Other (.jpg)
200KB
Other (.rtf)
133KB
XML
131KB
Other (.zip)
124KB

The LLM identified 4 files worth highlighting for reuse:

Provides a reusable base class for implementing Windows Explorer band objects (toolbars) with rebar break fixing, DPI awareness, and support for IDeskBand, IDockingWindow, IInputObject, IObjectWithSite, IPersistStream, and IOleWindow. Can be extracted as a standalone library for any Explorer toolbar extension.

file: BandObjectLib/BandObject.cs ↗ | tags: #com-interop #band-object #docking-window

A standalone, minimal C++ library for creating API hooks (detours) on x86/x64 Windows. Used here to intercept Explorer functions like FillRect (for background images), BrowseObject (navigation), and SHCreateShellFolderView. Self-contained with its own build system, easily reusable in other native Windows projects.

file: MinHook/MinHook.h ↗ | tags: #api-hooking #detour #native

Defines the core plugin interface (IPluginClient) with lifecycle methods (Open, Close), event handlers (TabChanged, NavigationComplete, SelectionChanged), menu registration, shortcut key support, and command execution. Together with IPluginServer, it forms a clean, event-driven plugin architecture that can be extracted to add plugin extensibility to any .NET application.

file: QTPluginLib/IPluginClient.cs ↗ | tags: #plugin-system #sdk #event-driven

A simple, self-contained timer-based delayed action executor with retry support (max attempts, retry interval). Demonstrates a clean pattern for debouncing or deferring actions (e.g., refresh after rapid user input). Reusable in any .NET project needing delayed execution with cancellation and retry.

file: QTTabBar/ActionDelayer.cs ↗ | tags: #timed-action #debounce #utility
Last analyzed: 2026-10-18 05:03:52.489962
Next check: 2026-10-25 05:03:52.466508
$ submit: