Cerious Software Order Now!

ThumbsPlus Version 9 RC5
Release Notes

Build 3915 18 October 2012
Copyright ©2012, Cerious Software Inc.

Downloads
FAQ
Problem Reports

Primary Site (HTTP - 38 MB)

ThumbsPlus FAQ

Cerious Software forums
Report a problem


V9RC5
ThumbsPlus logo

RC5: giant strides toward blessèd release

Most reported bugs and crashes have been fixed.

The Help file is not complete, but well on its way. Comments on the overall format and aesethetics will be much appreciated. There are still broken links, but I've got a list of them. The View window has not yet received the attention that I've given the main window; I'll be working on that in the next few days.

More details are at RC5 (3915).

Important note about registration codes

RC5 requires version 9 registration codes. We have automatically sent new codes to all perpetual licensees, up-to-date corporate network licensees, and to everyone who purchased or upgraded a single-user standard, single-user professional, or home network license on or after 16 January 2012. If you did not receive a code that you believe you are entitled to, please contact orderdesk@cerious.com.

This page refers to ThumbsPlus 9 Beta 2 through 9 RC 5, builds 3795-3915

You can discuss ThumbsPlus with Cerious Software and other users on the Cerious forums in the ThumbsPlus Beta category. You may also submit problem reports to enter problems directly into our support database.

 


Page Contents


Installation notes

Licensing

New features

Python

Facebook

Other

Known issues

Problems fixed

  RC3 (3913) Beta 12 RC2 (3912) Beta 10 RC1 (3910)

 

Beta 9 (3909)

Beta 8 (3808)

Beta 7 (3807)

 

Beta 6 (3806)

Beta 5 (3805)

Beta 4 (3804)

 

 

Python scripting details

Command line options

Oh, and here's ThumbsPlus decked out in one of the skins available:

Screen shot


Installation notes


The installer includes the Digicam Plug-in Package, as we have not yet built a digicam installer that is compatible with version 9. This is also why it is so large.

If you wish select the old-style Everything in one folder installation option, be sure to install to a folder that does not require UAC (user access control). Most importantly, do not install in the C:\Windows, C:\Program Files or C:\Program Files (x86) folders (or their equivalents in other languages).

The installer occasionally hangs for 30-60 seconds before the user interface, as it checks that the correct versions of Microsoft C/C++ (MSVCRT) and MFC library runtimes are installed (and installs them if necessary). Note that due to Microsoft guidelines, these runtimes will not be uninstalled if you uninstall ThumbsPlus. This is generally fine, since thousands of products use them.

The beta installer does not uninstall version 8 or earlier, since you may want to use both simultaneously (version 8 for production work, version 9 for testing).

If you encounter problems during the installation, please send us the Thumbs9Install.log from your user TEMP folder along with your problem report. (If you're not sure where this is, hit Win+R, enter %TEMP%, and hit enter, and Explorer will open it for you). The Win key has the Windows logo (Win logo) and is usually between the Ctrl and Alt keys.. If your keyboard doesn't have one, consult the documentation for your keyboard and version of windows, or run the command START %TEMP% from a command prompt.


Licensing


In early betas, you may use your version 8 license information to register (Help - Enter Registration). We will email all pre-release and perpetual license holders new codes as soon as we release a beta that requires them.

All single-user and home network users who ordered or upgraded ThumbsPlus on or after 15 January 2012 will receive version 9 at no additional charge.

Concurrent license users who are up-to-date with their annual support contracts will receive version 9 automatically and at no additional charge when it is released. Those with out-of-date support contracts may upgrade at $50.00 per user (or $40.00 during the current pre-release sale).


New features


Facebook

Facebook tree snapshotYou can use ThumbsPlus to log in to your Facebook account, where you can browse and update your photo albums, and even thumbnail and view your friends' albums and photos.

Facebook login screenshot


Python

There are many improvements and additions to the Python scripting capabilities. We're working on sample scripts that will be included with version 9, and will announce them on the forums as they become available. See the section below on Python scripting for more info.

Several of the new features in ThumbsPlus 9 depend on Python (including Facebook access),, and in the future we will be moving more and more high-level functions to Python. Of course, the core image processing, database, and many other internal functions will remain written in C++ and C (and even a bit of assembly language for some important speed optimizations).

We're looking forward to see what kinds of functions our users can contribute as well!

Other new features

I'm currently building this list, Known Issues, and Problems Fixed by viewing all source changes


Known issues


Facebook

ThumbsPlus caches facebook query results internally, and compresses, saves and restores them between sessions. This can take a lot of memory, so I will be changing the cache so it uses a local disk file instead. This will also eliminate the time required to load and save the cache. The cache file is called Thumbs9.fbcache and is located in your preferences folder, which you can open from Start menu - All Programs - ThumbsPlus - Utilities - View Preferences Folder.

Downloaded files are cached in a subfolder of your TEMP folder (%TEMP%\Tp_Fb). This cache is not currently pruned. You can remove all of the files anytime; ThumbsPlus will re-download them if you make thumbnails or view them.

The Keep me logged in to ThumbsPlus option on the Facebook login window does not work when restarting ThumbsPlus.


Problems fixed


Note: there are an enormous number of changes listed here without regard to extent, and dozens of individual changes can be a part of a "fixed XYZ" (especially in early builds,) so this list is not exhaustive. Some items will not make sense to many people, but I generated the original list from my source control system and haven't culled or proofread it extensively (which may actually make it more interesting to a few people...).

Please ignore typoes, the minimal formatting, stupid words, and bad grammar.

9.0 RC3 build 3913

RC3 is not yet the official version 9, but I think it's better than a beta. It's very close — and RC3 will hopefully be the last crop of major changes and fixes. Note that "major problems" from a user's point of view are not always major issues for developers, so if you find a show-stopper for you, it may be something very simple here! Be sure to report it.

  • Help file is not completed, but has had major work done. Comments on the overall format and aesethetics will be much appreciated. There are still broken links, but I've got a list of them. The View window has not yet received the attention that I've given the main window; I'll be working on that in the next few days.
  • I believe that the problems with Windows Runtime and Windows SxS (side by side assemblies) are fixed. Feedback needed if either are still occurring.
  • I have done considerable testing on Windows 8 without finding any serious incompatibilities. There are a couple of installation changes I will likely make because of the atrocious horrible annoying playtoy Metro interface.
  • I finally got VS building and IA pulling the correct name and version of the slide show stub (tpslide.sef), so Build Slide Show should now work for everyone (rather than just me!). The .sef is rather larger than I would like (~1MB), so I may work on trimming it down by a few hundred KB. Or I might leave that for a service release.
  • Enormous amount of help file changes, including much better modularity and consistent (and easily modifiable) formatting styles.
  • Cleaned up some ancient gnarly confusing code.
  • Fixed several weird memory errors causing occasional bizarre behavior and crashes.
  • Added option to display tree in Vista format (with triangles) or old format (+/-)
  • Fixed an odd problem (crash) when doing a random, recursive slideshow.
  • Added option to enable network names to match even if the labels don't (VMATCH_NONETLABEL).
  • Fixed some missing and mangled icons.
  • Added option to turn Vista/7 style tree on and off, rather than forcing it.
  • The db user thread now quits if it sees the shutdown flag.
  • Fixed weird crash (80000003) and odd behaviour when multiple dialogs activefrom different windows.
  • Fixed problem with next/previous in view window (missing menus &c.)
  • Found a few missed translation loci.
  • Removed beta number from version string (for screenshots and now for RC3 :)
  • Updated key for storing first run time (allow new eval period)
  • Changed some log messages from Verbose to Very Verbose
  • Fixed cross-thread alloc/free for batch process file list
  • Fixed Autoview button in color adjust to toggle between adjusted and original view
  • Fixed user fields not showing up in sort drop-downs on main window thumbnail pane
  • Fixed problem where image tips not selected but were showing anyway
  • Updated many button icons
  • Updated panel icons
  • Added icons for quick convert functions (for each file type)
  • Fixed edges of thumbnail decoration images
  • Fixed several crashes
  • Fixed center of % icons to be opaque for readability
  • Fixed problem with view window next/previous when option to open all selected files is on
  • Increased timeout for recognizing other users are hung/crashed
  • Fixed crash when connect to data source failed.
  • Updated About screen
  • Added code to extract toolbar icons to files (for use in building Help)
  • Updated a bunch of toolbar icons
  • Fixed multi-threaded image filtering (FilterThread()) to use TEMPX heap since released by main thread.
  • Fixed memory problem in photo mosaic (hidden feature)
  • Fixed occasional memory leak when saving jpeg comments
  • Restored ability to turn on/off thumbnails in file list.
  • Changed selected thumbnails to display highlight color when selected, regardless of whether the thumbnail view has focus. This is a vast improvement for color schemes where the selected item color for non-focused panes is too similar to the normal color.
  • General code cleanup
  • Fixed numberus tpyo'es
  • Cleaned up some unused command IDs
  • Added some system information (O/S, processor, etc.) to the log file
  • Changed some log file formatting
  • Fixed some missing and misassigned keyboard accelerators in View window.
  • Fixed several annoying UI problems (a few incorrect default accelerators, empty fly-out menus)
  • Improved appearance of decorations
  • Removed "autoscroll partial thumbnails" option, which was not doing anything.
  • Added ability to align thumbmails left/bottom and text to left in large, small and custom thumbnail views. Set in Preferences - Thumbnail View.
  • Updated a few toolbar and menu icons
  • Added filetype icons for quick converts
  • Fixed crash in Find Similar
  • Fixed found lists and galleries not being saved in path history for tree (back/forward)
  • Moved building file list status back to status line. (Need something nicer painted in thumbnail area during RefryFileList.)
  • Changed log message type from Error to Message for program calls to display messages to user (DoMessage()).
  • Implemented new animated cursors for busy loops
  • Added CVS headers
  • Updated thumbnail decorations (adornments)
  • Fixed ability to start T+ minimized
  • Fixed ability to load raw images (not to be confused with raw CAMERA image).
  • Began work to improve raw loading capabilities
  • Changed default extension for raw raster to .rawimg to avert confusion withLeica and other digicam .RAW files.
  • Fixed overlap of text item with group box on Disks & Folders tab of Preferences

9.0 Beta 12 (RC2) build 3912

  • Fixed problem expanding network domains and workgroups
  • Fixed pre-RTL code to work with either static or dynamic links to MFC and CRT
  • Changed memory and logging to use safer xxprintfs and avoid scanfs prior to CRT startup
  • Added python module to handle general database functions. This is for merging multiple databases and direct import from v4-7 databases rather than having to convert.
  • Fixed memory logging for freeing memory
  • Fixed memory overrun (and subsequent crashes) in when removing selected thumbnails
  • Fixed thumbnail view not being updated properly when removing selected thumbnails
  • Fixed memory leak for TIFF CMYK files without a color profile (was loading default and not freeing it)
  • Fixed failure to release from the right heap when TPfree() specified the wrong one.
  • Changed so that selecting files using the menu sets focus to the file list.
  • Fixed some copy/paste problems with alpha channel (more to do though)
  • Significant help file fixes
  • Several UI updates for consistency
  • Marked strings as N_ or X_ for translation (all remaining projects)
  • Fixed crash when attempting to use skins
  • Fixed problems with plug-in options menu.
  • Made optimization options more aggressive and consistent
  • Implemented renewed authenticode signatures
  • Fixed problem enumerating color profiles (empty list)
  • Modified startup so that the startup window is temporarily hidden when messages are displayed (currently catches all TP message windows and task dialogs and CWinApp::DoMessageBox()
  • Improved appearance of thumbnail decorations
  • Fixed Thumbnail View preferences tab to include missing items (rating, MD5, date taken)
  • Updated some cursors, including the drag and drop cursors
  • Made the hourglass cursors easier to see on busy backgrounds
  • Made "show decorations" a thumbview flag so that it can be set separately for each display mode (large, small, report, etc.)
  • Added and updated several toolbar icons
  • Made debug menu disabled by default; enable using Options - Preferences - Advanced or command line option -debug:menu
  • Added Preferences button to thumbnail view (file list) toolbar
  • Added Clear button to Python command/console pane
  • Fixed hourglass cursors for better visibility
  • Restored the Thumbnail - Annotate function on the menu (however, for multiple files, Modify File Info is usually the better choice).

9.0 Beta 10 (RC1) build 3910

  • Fixed problems with pasting certain versions of Windows DIBs
  • Fixed chicken-and-egg problem with early logging and thread memory buffer initialization
  • Made thread ring buffers statically allocated (related to chicken-and-egg issue)
  • Updated slide stub files to include additional icons/buttons
  • Added all plug-ins to version 9 beta 10 installation
  • Incorporated latest DCRAW (9.16)
  • Change conversion dialogs to non-topmost and child of main window.
  • Fixed TD4 and server database conversions
  • Fixed XMP library debug build for correct MSVC runtime
  • Marked strings as N_ or X_ for translation (thumbsc project)
  • Removed some dead code (file stamps)
  • Fixed Build Slide Show
  • Minor reorg of cswrt to enable slide show to link w/o MFC or CodeJock.
  • Removed apparently useless calls to CTPViewCtrl::SetOnSizeState in tpviewmodule (enter/exit sizemove)
  • Eliminated some unnecessary redrawing in OnExitSizeMove
  • Added missing DoingAbort() call to new Remove Selected code.
  • Implemented faster remove selected (by using thumbnail ids already in the file entry table).
  • Changed file lists to use a flags dword rather than separate bools. Also added a sort flag.
  • Added routine to format 64bit unsigneds on ring buffer.
  • Ignore SetViewTitle when is preview window or during shutdown
  • Tried some changes for improved Access performance, but as usual they fubared things
  • Don't log all critical section detail unless very verbose
  • Removed function name from whences (too much stuff)
  • Fixed debug memory strategy sentinel stamping/checking during realloc
  • Added check for thread id during free and realloc (see if there's much cross-thread action)
  • Removed path from whences when output
  • Segregated heaps so I can find which ones are used cross-thread
  • Fixed filelist count in logs
  • Initial work on internal performance monitor
  • Fixed some direct calls to LogProgramAction that weren't passing a format string.
  • Modified the error message reporting for plugin.c to avoid multiple Unicode conversions
  • Fixes for extremely long whences because of long function names in STL [Later remove function name from whences]
  • Changed all string copies in thumbslog to truncate rather than report invalid parameter
  • Fixed memory heap dump code to use correct MEMBLK sizes
  • Fixed spurious log messages from empty string passed to CswStrReplace
  • Fixed a thread handle leak
  • Changed invalid parameter logging/checking to avoid stack overflow
  • Use STL CswAllocator for hash tables and lookups
  • Some memory management tweaks and improved overhead calculations
  • Eliminated accidental extra memory allocation in release memory config (was allocating the debug size, which is much greater)
  • Improved handling of application exit while still in startup (avoiding crashes)
  • Build and implemented CSW memory allocator for STL
  • Fixed thread heap name output
  • Added own entry point to run before MSC runtime initialization (ThumbsPlusRealEntry) for early memory initialization
  • Split memory initialization so the important bits happen before RTL initialzation
  • Avoid building TPViewControl twice when order requires database columns (see AddFileEntry())
  • Changed logger to perform minimal logging before RTL initialization
  • Replaced some CRT startup code in order to be able to take control after all atexit()s (see init.c and _csw_wcrtexew.c),
  • Added cppmemory.cpp to provide CSW memory allocator for new/delete
  • Fixed not clearing file or folder histories on exit when desired.
  • Fixed problem with very long IPTC/XMP keywords.
  • Fixed several crashes in view window

9.0 Beta 9 build 3909

  • Update version and build info for beta 9
  • Enabled updating of XMP fields based on image info and database info (i.e., annotation, keywords, user fields)
  • UI icon updates
  • Fixed memory leak in showlistthumb/realshowlistthumb
  • Current thumbnail view mode now highlighted
  • Fixed problem where individual or selected groups of thumbnails were not being updated on the screen after they were removed.
  • Fixed crash when log functions pass null whence
  • Fixed tree problem where some network paths where not correctly handled
  • Fixed several cut/paste problems
  • Fixed memory leak for view window status bars (pvp)
  • Mostly fixed cut/paste from 48 and 16 bpp images, still some minor probs with 16-bit.
  • Restoring from full-screen wasn't always displaying correctly.
  • Fixed more general problem wherein some resizings of the view window would not properly size and position the paint window.
  • Fixed problem where T+ wasn't saving the expanded folder list on shutdown.
  • Limited the saved expanded folder list to 500 elements.
  • Log information when registering window classes, including failure messages.
  • Added checking for ESC during tree expansions - especially useful for expand all (*)
  • Changed TPWaitCursor logging to very verbose
  • Enlarged Edit Favorites dialog and added a Sort button
  • Fixed weird problem with overlays on tree icons (sometimes did not display properly)
  • Moved tree data allocation to his own heap

9.0 Beta 8 builds 3888 and 3808

  • Hope to have worked around problem with dragging being interrupted by not allow drags to non-tree, non-thumbnail areas to view files.
  • Fixed "Untitled" showing up on title bar. (InitInstance calls SetMainTitle() at the end)
  • Favorite folders now marked in folder tree
  • Folder icons now in multiple sizes for better appearance
  • Updated folder icons (treemisc)
  • Added missing item (fXempRotatePortrait or
  • Fixed query for producing user list (added parens)
  • Fixed crash when trying to view task properties right as a task is ending
  • Fixed bug in modified FullPathName; needs further testing!
  • Fixed some task weirdness and crashes
  • Made Back and Forward drop-downs functional in tree toolbar
  • Improved found file list speed
  • Fixed sort by combos not always working
  • Made thumbnail and tree pane toolbars non-customizable.
  • Restored Assign User Fields to Thumbnail menu (needs icon)
  • Embiggened Assign User Fields dialog
  • Fixed FileList problem when growing after initial build
  • Put Assign User Fields (Ctrl+U) back on the menu
  • Keep 2 levels of doing "what" for log (maybe used more in the future)
  • Cleaned up some doing code
  • Fixed right-click non-current folder with "show child folders"
  • Changed RefryFileList to log callers
  • Changed RefryFileList to process several of the refresh flags instead of just a bool for changing folder
  • Removed "allocating only x bytes" warnings unless verbosity set
  • Fixed problem checking doinglevel >0 after already incremented
  • Made DoingStart and DoingDone log whence called
  • Fixed right-click non-current folder with "show child folders"
  • Fixed bad thumbnail painting when switching to/from display modes without thumbnails.
  • Removed old win95 code w/r/t mouse wheel
  • Cleaned up some code in tpviewctl
  • Changed version to 9 beta 8
  • Tested Boost for hash_map (unordered_map), but was a bit slower than VC STL.
  • Changed parent window for task "show errors" to avoid having to wait on other Doings.
  • Improved filelist verbose logging
  • Fixed memory bug with which T+ never used a mapped file for large allocations.
  • Fixed problem modifying file list after creating (due to bad implementation of previous performance optimization)
  • Improved performance of file list building from O(n^2) to O(n)
  • Fixed enumration of clipboard files
  • Fixed problem displaying any animated GIF files after the first shown in a folder.
  • Fixed problem where images would not load in a folder after aborting the load of any image.
  • Removed preallocation of 32mb for large heap (usually goes to virtual memory or mapped file for large blocks)
  • Fixed bad internal settings for batch file set listing
  • More icon and button updates
  • Replaced and updated lots of toolbar buttons
  • Updated thumbnail decorations and resized to 16x16
  • ThumbsPlus now correctly reads alpha channel from 32-bit BMP files
  • Fixed copying and pasting images with alpha channel
  • Update about screen
  • Updated ThumbsHash
  • Fixed reversal of gallery and found list tree icons
  • New tree icons and overlays
  • Fixed problem with zoom command constants in view window

9.0 Beta 7 build 3807

  • Only build view file list for 3000 or less files (slowness problem)
  • Updated thumbshash for v9 codes
  • Removed redundant Window - Show menu
  • Added some versbose log stuff to time creating file lists
  • Fixed problem with file history overwriting database history
  • Changed location combo to sort and drop-down count to max items1
  • Disabled the show delay in the Doing window as it was causing some problems. Did implement it separately kind of for redrawing the file list.
  • Temporarily disabled db monitor stuff to see if that's causing some other shit
  • Fixed crash when sorting by user fields
  • More UI fixes
  • Main window user interface work
  • Standardized display of <<null>>, <<invalid>> and <<empty>>
  • Now always hides Windows SxS tree. Giant mess that.
  • Wrote a better performing "is file on path" for filtering filesystem calls by tree, and made it available in CSW runtime.
  • Fixed problem with crashes when thread ends while TaskInfo dialog shown
  • Change DLG_MSGPOPUP to POPUP rather than CHILD
  • Fixed problem in AddOfflineEntry that would abort enumeration when folder thumbnails in database
  • Extension() was returning the filename if < 4 chars with no dots or slashes; now returns "."
  • Added fLogAllExceptions option (log:allexcept) to log from first-chance handler
  • Fixed log initialization to switch from default heap to thread heap in main thread
  • Moved ring string buffer to memory.c and made it available publicly (rather just in measures.c)
  • Fixed handling of Windows folder (was making thumbnails even if disabled)
  • Fixed inconsistencies displaying and thumbnailing hidden/system files
  • Added some checking for reasonable pathhist counts
  • Improved database error reporting
  • Fixed database performance counters (were not properly bracketing the function because of C reordering of operations)
  • Fixed handling of files with color tables in polyimage.c
  • Fixed problem in CreateFileList() selecting starting file position when resolve links is false.
  • Fixed problem not yielding (DoingAbort) during EnumFileList.

9.0 Beta 6 build 3806

  • Changed some Trace and Memory log messages to verbose
  • Added progress display for Redraw File List (sorting).
  • Changed progress (doing) to only display if the task takes longer than 4/10 sec. [Retracted later]
  • Disable Automatically Make Thumbnails in Safe mode
  • Restore Access using only a shared hdbc because of locking problems
  • Fix enumration of Zip and FB to work with new EDF routines
  • Fix some thread list stuff
  • Commonized and improved building of popup menus
  • File - Open With - Add Program now checks for an existing file
  • Code changes for upcoming 64-bit release
  • More changes to simplify translation
  • Fixed problem making 1 thumbnail (was not doing the right one)
  • Removed dead code
  • Changed Ole MakeThumbs command (without a file) to scan the folder in a background task
  • Fixed digicam plugin to be compatible with latest runtime macros
  • Fixed problem with View Synched
  • Made some changes to TIFF processing to avoid buffer overruns in LZW
  • Fixed some problems with new database code
  • Multiple fixes and changes for file lists, ring buffers, file enum, etc.
  • Fixed a couple of problems with new file list and enum folder calls
  • Working on problem with new file enumration and list building
  • New refry methods for efficiency and new features
  • General code cleanup
  • Better reporting of memory probs
  • Improved (a bit too much) leak detection for thread heap (esp main thread). Needs to recognize permanant vs. temporary thread heap allocations.
  • Now dumps thread heaps on exit to show leaks
  • More work trying to intercept memory allocations from DLLs and other modules (still no joy)
  • Modified formated numbers and dates to use a thread-local ring buffers rather than passing bunches of pointers/lengths around.
  • Fixed some heap dump formatting issues
  • Got back into code to trap memory allocations from other libraries and DLLs to enable tracking through CSW runtime (cswmemsys.dll)
  • Renamed memory_csw.c to memory_csw.inc
  • Fixed some plug-in build issues with the new runtime

9.0 Beta 5 build 3805

  • Removed flogger options from ReleaseDll project builds
  • Updated version to 9 beta 5
  • Got XMP working much better, including /lang, arrays, and structures. Still needs validataion and proper date handling.
  • Fix problem attempting to load extremely large files using Polyimage
  • Allow multiple connection handles to Access databases [Retracted later]
  • Fixed the irritating view window sizing problem
  • Changed to save whence on non-debug memory routines
  • Database statistics gathering now occurs in a background thread.
  • ThreadAbort() replaces PumpThreadMessages() and does not run during DoingAbort() (threads were suspending at unwanted places).
  • Made some run-time call names more consistent
  • Fixed problem with assert()s during shutdown (closing tree windows)
  • Fixed several memory problems
  • Fixed bad computation of elapsed time for threads
  • Fixed crashes and bad handling of UDFs
  • Changed some projects to flog in the debug build
  • Began work on fixing up threadlst.c
  • Fixed problem with freeing VirtualAlloc'd memory control blocks
  • Corrected display of database 'delete' counters as 'other' (and vice versa)
  • Fixed memory leak of virtualalloc control blocks
  • Added VirtualAlloc method for large memory blocks.
  • Fixed some counting in tpdbsql.c
  • Improved some memory diagnostics
  • Minor code cleanup
  • Improved startup window display and keep it up longer
  • Renamed fShutdown to fShuttingDown to match fStartingUp
  • Improved performance of removing thumbnails from volumes, folders, and paths
  • Worked on task and memory issues.
  • Fixed memory leak building the file list fo a view window.
  • General code cleanup
  • Kind of fixed property items not staying expanded, but needs more work.
  • Debug-mode memory leaks now report if the thread that allocated the memory was the main thread.
  • Improved feedback when building file list
  • Worked on Task Properties status window
  • Improved some buffer allocation size in thumbsql
  • Moved DOING_ constants to constants.h where they belong (were in runtime.h, but the Doing... functions were not).
  • Fixed some weird compile problems with freetype and thumbsql.
  • More stuff with database buffers and some fixes
  • Fixed buffer length calculation in DBPathPrepare
  • Began some work on better handling of variable thumbnail data items in ThumbsSql (to work in place of or along with the THUMBVAR implemented nailvar.c
  • Switched to secure CRT functions throughout ThumbsSql
  • Made Debug/DebugDLL and Release/ReleaseDLL for all projects within thumbsplus, for easier handing of changes to build options
  • Designed Task Properties window and worked on UI changes for the batch metadata editor
  • XMP editor work
  • Improved display of icons and thumbnails smaller than the thumbnail size when scaled.
  • Fixed leading semicolon in keyword lists
  • Fixed problem loading thumbnails as images (was using compressed size instead of computed size)
  • Enabled link-time code generation for most modules
  • Cleaned up some thumbvar allocataion/release code
  • Improved performance considerably
  • Fixed a problem where giant gobs of memory were being allocated from the thread heaps because of a typo.
  • Fixed minor problems with heap leak reporting and function logging.
  • Separated debug/debugdll and release/releasedll builds for some projects that tpslide.sef needs (they have to link statically)
  • Lots of work on build slide show (tpslide.sef)
  • Thumbvar stuff
  • Adding log of task time to the log
  • More changes to use THUMBVAR
  • Renamed some critical sections
  • Fixed some buffer size errors when logging heaps
  • Thumbnail variable length stuff (nailvar.c)
  • Cleaned up some memory stuf
  • Fixed zillions of WM_USER+n that should have been WM_APP+n
  • Changed defines for WM_USER_SOMETHING to WM_THUMBS_SOMETHING.
  • Reworking the way variable-length data is handled with thumbnails (still in progress).
  • Mo memory work
  • Background task handling cleanup and performance improvements
  • Removed Flogger options from release builds (except ThumbsSql)
  • Some improved error reporting
  • Removed reduntant deletion of connection critical section
  • Freed background db connections when closing or failing to open
  • Fixing task list malfunctions when killing/terminating tasks
  • Fixes to critical section debug code
  • Removed some unnecessary critical sections in database
  • Implemented debugging versions of critical section routines
  • Added link to check for updates on the "betainfo" line.
  • Fixed thumbnail tooltips appearing above other windows (like About)
  • Fixed spelling of "VirtualMemory" as a section header
  • Fixed some drive type mistakes (and made DRIVE_INTERNET more usable)
  • Prettied up the About screen and added links
  • Removed expiration for betas > 5 because it was causing so much confusion
  • Fixed memory leak of user structure in dbuser
  • Consistified some stringizing macros
  • Fixed bug in error reporting for invalid stack size
  • Removed FLOPT_MAINTHREAD from hard-coded flogger options
  • Improved output for dumped memory (more bytes output, output both mem block and mem buffer for heaps
  • Set up flogging for release builds of thumbs9, thumbsview, thumbssql, thumbspy, thumbsformat, thumbsc, cswrt (probably should disable before offical release)
  • Improved memory usages, especially tls, by using thread-specific heaps
  • Additional logging for thread heaps
  • Changed all _declspec(thread) to thread_
  • Changed all _declspec(thread) to thread_
  • Fixed failure to exit on some fatal crashes
  • Ensured use of CRT malloc() in ThumbsCreateThread/ThumbsThreadWrapper in case called before TP heaps initialized
  • Slight memory and thread log changes
  • Set minimum stack overflow thread size to 32KB
  • Changed some stack sizes for background threads
  • Reorganized exception handling code
  • Added checking for hung window in key crash thread
  • Display better stack traces (including source file+line number now)
  • Store stack trace in memory block (when using the csw debug memory strategy)
  • Fixed FILELIST memory leak in threadlst.c
  • Made checking version of TSIZE() in debug build (checks for <= 4 characters)
  • Made separate TSIZEs for different types; TSIZE() = int, TSIZEU() = unsigned int, TSIZES() = short
  • Redefined assert() with _ASSERT() so it will use the CRT debug selection
  • Changed a bunch of tiny strings ( < 10 characters) to 10 or 20
  • Removed InterlockedIncrement64 so will run on XP. Need some other form of synchronization
  • Removed flogger property sheets from release builds
  • Flogging Flixes

9.0 Beta 4 build 3804

  • Minor fixes for startup
  • Updated version number, set new trial period, set beta expiration date
  • Fixed some error logging in hfstuff
  • Modified the memory dump at the end to list Permanent items just so I remember what they are.
  • Fixed problem with file, database or folder name on command line
  • Turned off whole-program optimization
  • Fixed up vsprops files
  • Added ability to add symbol names to stack trace
  • Better log output for VM and Heaps
  • Fixed some buglets from hfstuff changes
  • Made FileOpen() in filename.c a bit more efficient
  • Code cleanup
  • Fixes and improvements in thumbsbug (improved default subject and detail)
  • Fixes and improvements to hfstuff
  • JPEG memory allocations are now done on own heap
  • Fixed some thumbsbug stuff and prettied it up a bit
  • Set the prerelease flag in VERSIONINFO for beta builds
  • Cleaned up Open File dialog filters to be consistent
  • Fixed a couple of problems and prettified some things in hfstuff.c
  • Modified memory handling/logging to recognize the C runtime heap
  • Fixed a problem in plug_digicam where it was not correctly reading the desired time format from regional settings
  • Memory dump changes
  • Began work on function wrapper for stat collection and performance ideas
  • Function logging work
  • Fixed some character is... functions for unicode
  • Function logging stuff and some bug fixes
  • Fixed ODBC initialization problem introduced during code cleanup that was causing poor performance with multiple threads.
  • Added database performance measurements to Statistics dialog
  • Got rid of a bunch of old SQLite3 code (not used with ODBC driver)
  • Memory and logging changes and fixins
  • Fixed GIF comments
  • Fixed debug memory allocator/deallocator on menu
  • Fixed assert and/or crash when TDBOpen() failed
  • Fixed tabs
  • Fixed some SQL schema syntax errors
  • Additional memory statistics (allocation sizes)
  • Clean up some memory code
  • realloc'ed to a larger size
  • Fixed some database queries and scripts
  • Fixed some memory log messages to include handle
  • Fixes for strange asserts() in MFC
  • Minor code cleanups and bug fixes
  • Command line, Startup, Shutdown and Log improvements
  • Log and thread goodness
  • Minor logging and database changes
  • Fixed some logging nits
  • Minor fixes
  • Added user list function (just to logs and console for now)
  • Moved the SQL and ODBC tracing to command line options rather than INI entries
  • Restored the exit when unable to verify license
  • Miscellaneous fixes and stuff.
  • Turned on thread explosion for testing
  • Fixed some 388 tests so they'll only test non-Access dbs
  • Turned off optimization for tpdbsql so can follow the stack when 388 occurs.
  • Modified all projects to use defaults for optimization
  • Turned off whole program optimization; was seeing weird stacks when the 388 error occured
  • Removed some obsolete MBCS code in pcon->stmt
  • Turned off optimizations in tpdbsql just in case related to bug 388 from hell
  • Some fixes for exception catching and logging, especially stack overflow
  • Got rid of thread logger, not working and causing crashes.
  • Fixed some project build settings
  • Fixed SetThreadName to only raise the VC exception if in the debugger
  • Fixed some build settings in runtime, plugins, &c
  • More reworking, runtime and memory handling changes/improvements.
  • Renamed TPmemory_norm.h to TPmemory_norm.inc
  • Renamed TPmemory_debug.h to TPmemory_debug.inc
  • Improved build times by compiling with /MP4.
  • Shaping up a bunch of old code and improve bug-busting infrastructure
  • Code cleanup and solution rebuilding because of problem in thumbsplus9.sln or .suo
  • Dead code removal
  • Begin attempt to get DoingStart() etc. to have >1 thing going on better than the current nesting
  • Fix crash in shutdown caused by a refry callback during. There may be other places that fShutdown should be checked, directly or indirectly.
  • Prevent some stuff from running when shutdown has begun (i.e., UI updates)
  • Log and memory fixins
  • Got rid of an error trying to color transform 16bps gray images. (It may be possible, but I don't have any 16bps gray-compatible profiles to test with.)
  • Allow for multiple log files for multiple simultaneous instances
  • Made the console available system wide, using -log:console on the command line
  • Added ability (LOP_MULTI) for multiple log files for multiple simultaneous instances.
  • Some minor projects fixes
  • Marked more strings for localization, and fixed some bad macros
  • Cleaned up some log messages
  • Reorganized memory.c; made some functions inline rather than as macros
  • Got thumbslog showing system and RTL errors properly (SYSERROR_LOG... and RTLERROR_LOG...)
  • Cleaned up some memory messages
  • Allow for a retry when memory allocation fails (probably should do a count with a delay, which could be fairly long in background threads)
  • Some string clean-up and X_ marking for translation
  • Don't use IPP when sizing very small; an occasional crash occured
  • Cleaned up some number/date formatting code
  • Fixed FITS and Olympus Confocal metadata
  • Change thread exit message to verbose rather than trace
  • Working on fileinfo and metadata, esp XMP
  • Also returned FITS and Olympus metadata times
  • Fixed thread race condition when returning static strings in profile.c
  • Fix logging on startup when set in INI
  • Some logging fixes
  • Facebook fb_stat() now fails for unrecognized extensions

9.0 Beta build 3799

  • Dozens of bug fixes, performance improvements, and memory handling enhancements.
  • Improved detection of memory leaks in both debug and release builds.
  • Fixed some project setting discrepancies that were causing unusual crashes.
  • Improved crash handling, especially for stack overflow crashes.
  • Added new command line options (documentation pending).
  • Because of its size (especially the winsxs tree), ThumbsPlus now skips the Windows folder unless enabled in Options - Preferences - Disks and Folders.
  • Fixed problem with -repair command line option (which repairs the current database before opening it, and is available as an option on the Start Menu: Start - All Programs - ThumbsPlus - Utilities - ThumbsPlus 9 (Database Repair).
  • Prevents checking for updates when run in safe mode using the command line option -safe, or from the Start Menu: Start - All Programs - ThumbsPlus - Utilities - ThumbsPlus 9 (Safe Mode).
  • Fixed crash on exit when running on Windows XP.
  • Fixed version number (was showing 90 instead of 9.0 in some places.
  • Updated build number and beta expiration date
  • Use new key for installation expiration
  • Pre beta3 cleanup
  • Added $Header line at bof and $History at eof
  • Memory strategery and general project cleanup
  • Project settings, memory handling, runtime stuff
  • Stamping files and improving performance of various memory stratgeries
  • It's code cleanup day!
  • Improving memory size checking etc
  • Project property clean-up time
  • Project tweaking and minor bug fixes
  • Consolidation and adjustments to project files.
  • Improved command line handling
  • Miscellaneous minor bug fixes
  • Unpinned $/ThumbsPlus/Debug Build Dynamic.vsprops
  • Pinned $/ThumbsPlus/Debug Build Dynamic.vsprops to version 5
  • Fixed some memory and logging issues
  • Fixed problem with folder recursion when fThreadExplode is set
  • Disabled bare malloc debug memory strategy in release build (since the _dbg calls are not available)
  • Fixed build problem for tpsndrdr.ax in ReleaseDll build
  • Improved code in threadlst.c
  • Fixed some tree memory leaks
  • More memory work
  • Clean up some shutdown stuff to avoid apparent memory leaks
  • Memory module and some other cswrt fixes
  • Added ability to ignore Windows folder (ignore by default)
  • Improved some error handling (debug break) for release builds running in debugger
  • Cleaned up some memory and logging stuff
  • Some reorganization of info files
  • Added TIFF heap to T+ runtime heaps (rather than its own CreateHeap, etc.)
  • Changed ApplyTransform()s to log the file when TranslateBitmapBits() failes
  • Memory and log improvements, more debug menu items
  • Exception handling improvements (detect/reset stack overflow in most cases)
  • Got multi-threaded tree/disk scan working (explode mode). Probably best just for Internet sources.
  • Added MemoryCompactAllHeaps()
  • Provide more information in DumpHeap()
  • Added call to CancelSynchronousIo() when killing task threads
  • Skip auto update when running in safe mode
  • Fixed problem with -repair command line option
  • Added thread id to memory allocator info
  • Memory strategery changes
  • Changed some libraries to not use whole program optimization
  • More memory and exception goodness
  • Memory handling for better debuging
  • Changed memory logging to only show base of allocating file rather than entire __FILE__
  • Changed title of Facebook login window
  • Fixed crash on exit on Windows XP (windows heap manager allocates memory on heaps, had to skip when checking for leaks)
  • Also avoid crash if _vstprintfnsdfasdf() raises an exception during error logging.
  • The installer now displays a message when it is checking the Microsoft runtime versions to see if they need to be updated. For some users, this check was causing a long delay (sometimes several minutes) with no visible window.
  • Builds 3795 and 3796 used the Version 8 SP1 installation/first run date for determining whether the trial period had expired. Build 3797 correctly uses its own first run date.
  • I changed log name to ThumbsPlus9.log to prevent problems when running version 8 and version 9 simultaneously.
  • Better handling of offline Facebook files
  • Performance improvements for displaying ~ >10000 thumbnails in a folder, tree, gallery or found list
  • Changed log name to thumbslog9.log in case of running v8 and v9 at the same time
  • Prevent initial file list from building until after InitDirTree finishes (by using PostMessage vs. SendMessage in tree.c)
  • Final fixes and changes for build 3795 (b2)
  • Fixed some logging and output window formatting problems.
  • Fixed a bunch of release build settings and dependencies
  • Memory handling fixes
  • More facebook fixes and improvements
  • Python and Facebook fixes and improvements
  • Updated build number
  • Update build configurations for thumbspy.lib
  • Fixed memory leak in handling Real/On/ShowListThumb()
  • Display the preview window tab atop the python window by default.
  • Fixed problem with thumbnails not showing as they were being made
  • Fixed build number and removed SP1
  • Fixed thumbspy build for releasedll
  • Changed some logging defaults and console colors
  • Fixed some XMP stuff and got _tp_meta module going bar refreshes
  • Fixed some console and logging problems and improved performance
  • Prepping for beta installer
  • Further logging improvements and fixes
  • Console and log improvements
  • Fixed SizeCallback() for SizePath() to increment the total correctly.
  • Fixed handling of return from get_fb_stat
  • Fixed memory leak in ShowListThumb()
  • Set more library release builds for whole program optimization (link-time code generation)
  • Fixed some build properties
  • Picked some facebook, python and build configuration nits
  • Got facebook connection and object caches working right, and persistent. May want to put MB limits on local files, deleting the least-recently-accessed.
  • Added a "thread explosion" option that starts a thread for every subfolder when recursing (needs INI entry and place to set option)
  • Added timeouts in facebook.py; perhaps I should somehow wrap it (thread?) so that I'm not modifying a FB file.
  • Improved view window startup speed
  • New build configurations to make building and testing dynamic/static MFC and MSVCRT easier
  • Implemented vsprops for main 4 configurations
  • Improved viewing performance (view window commandbars and status creation especially)
  • Version 8 to 9 dosey-do
  • More preparization for v9
  • Heavy lifting in preparation for v9
  • Numerous facebook/python fixes
  • Code cleanup: split thumbspy.c, separating the _tp groups into their own source files
  • Fixed some nagging log issues
  • More python work and fixes
  • Fixed problem with funky returns for blobs (negative lengths)
  • Numerous fixes to various python files and thumbspy.c
  • Fixed ability to put commands on menus
  • Fixed thumbnail export (pass1, need json and xml now)
  • Changed some startup order to fix issues
  • More python and logging fixes & enhancements
  • Many memory management, logging and python enhancements
  • Python, memory managemant and logging improvements
  • Fixed memory when reading blobs using _tp_db calls (sql_getdata_binary)
  • Update dcraw and digicam copyrights and dates
  • Removed skinning (and dependency on Codejock) from thumbsbug
  • Fixed release build include paths for python.h
  • Changed debug build to link with MFC and CRT dlls rather than static
  • Improved python console GUI window behavior
  • Various tweaks to python startup, shutdown, restart and debugger handling
  • Now support pythonwin (pywin) editor and debugger
  • Improved python console GUI window behavior
  • General cleanup and fixes for python initialization
  • GetWorkerThread was somtimes returning NULL, but many callers weren't checking. Added a check and assert
  • Major changes for string (filename, path) size
  • Fixed some possible column size problems for strings and file names
  • Fixed column size problem with the XMP column
  • Changed DATETIME fields from char(32) to varchar(32) in schema/SQL Server
  • Fixed internal length of DATETIME from 24 to 32 bytes
  • Fixes to latest changes to thumbsfb (a beginning for handling more branches than 'albums' and 'friends')
  • Getting database schema ready for generating database creation scripts. Working for SQL Server 200x.
  • Removed excessive output to Python console when loading files from URLs
  • Improved exception handling when loading files from URLs
  • Fixed some database issues with \ vs. / for paths
  • Digicam Plug-in version 4.6 (update to dcraw 9.12)
  • Fixed crash restarting Python
  • Fixed crash moving to parent folder when at root
  • Changed usercancelled exception to not print exception info when caught properly
  • FileStat fixes for FB & other URLs
  • CreateFileList fixed for some issues and more internet friendly
  • Avoid calling FileStat in several places (view UI update, view status bar, etc.) for URLs
  • Fixed problem where dragging a tiny bit in the tree could cause the wait_cursor depth to be off (and T+ would seem to hang)
  • Fixed problem cancelling facebook file and folder listings (python enum callback now sees FALSE returns from C callback and raises TpFpUserCancelled)
  • No longer tries to output to console edit window from background threads
  • Fixed problem with ViewFiles not passing VIEW_BUILDLIST_YES for main window views
  • Fix missing variable in release build
  • Minor code cleanup
  • Made exit statuses mostly unique (EXIT_* and FORCE_PROCESS_EXIT defined in runtime.h)
  • Will allow Python debuggers to attach if set in Thumbs8.ini [Python]-LoadDebugger='name'
  • Fixed some Python startup issues
  • Replaced a couple of on-the-fly ansi/unicode conversions to use %S in the format string instead
  • More facebook and Python fixes and goodies, but enum is partially broken
  • More internal debugging options implemented
  • I was finally able to compile _ssl too, may revisit runing python27_d.dll if needed
  • Cleaned up TPYShutdown and TPYRestart
  • Additional Python and Facebook changes and fixes; checking in to make sure SC is up to date. Don't want to lose any work!
  • Implemented interface to debuggers (WingIDE and WinPDB)
  • Implemented recursion in enumerating Facebook folders/files
  • Other minor code cleanup
  • Project and folder rearrangement
  • More fb
  • More and better pythoning.
  • Code cleanup and better python initialization
  • Lots more facebook stuff done
  • Improved CreateFileList to be more useful and fixed a possible crash
  • Fixed more facebook problems
  • More and more python and facebook work
  • Fixed VPM to use temp files
  • Python now initialized for threads that need it (no locking was occurring before and they'd step all over each other)
  • Changed ThumbsStartThread to ThumbsCreateThread because I kept looking for Create instead of Start
  • Removed some memory constraints and obsolete options from Advanced Preferences
  • Fixed virtual private memory for very large files and removed the search for drives with the most free space. Default to TEMP right now, later will be configurable.
  • More Facbook/http loading work, including better display names for tree.
  • Worked on problem calling python commands from threads
  • Fixed a spurious message saying that _thumbs.pyd Python initialization failed.
  • Reduced the update frequency and method for the database indicators to avoid message floods
  • Fixed icon handle (and associated GDI objects) leak
  • Hopefully improved message queue flooding when several background threads are running.
  • Reorganization for some Python stuff.
  • Yay fb login! On to using graph API...
  • Finished moving crt and mfc to DLLs - must remember to distribute properly!!
  • Fixed problem with Ctrl/Alt arrows and page not getting processed as accelerators.
  • Added digicam/digiraw .tp_plugcfg files to attachments (should do .tpi's for older plugins too)
  • Fixed some build settings and parameters
  • Working on crash following backup,
  • Logged caught exceptions in additional places
  • Turned off COM exception handling
  • Combined COM and OLE initializations into a callable function, for future use of the IGlobalOptions (prevent COM from handling exceptions internally)
  • Replaced all CoInitialize/OleInitialize lines with a call to ComOleInitialize() in cppsubs.cpp

Using Python for scripting and customizing ThumbsPlus 9


Some information is now in the help file, and will be updated significantly before release.


Command line options


A much more complete list is in the updated Help file for RC3.


ThumbsPlus and Cerious are registered trademarks of Cerious Software Inc.
Microsoft, Windows and Vista are registered trademarks of Microsoft Corporation.

 
     Top of Page
The contents of this web site (text and graphics) are copyright ©1997-2011, Cerious Software Inc.
Cerious and ThumbsPlus are registered trademarks of Cerious Software, Inc.
Please send comments or suggestions about our web site to: hostmaster@cerious.com.
For ordering support, please email orderdesk@cerious.com.
For technical support, please email support@cerious.com.
Site Map