« on: Today at 04:45 PM »
So what I've done so far:
What's left to be done:
- I've migrated the core clipboard capturing and pasting functions from using a single format (plaintext or image), to using a multi-format "blob" data structure.
- So when capturing it captures all formats in the clipboard and saves the collection (blob) of formats in the database.
- It has some basic options for what formats you want it to ignore, and tries to identify redundant formats that can be ignored, for example unicode/oemtext/dib bitmaps that are equivalent to other stored formats.
- It also handles plaintext and images specially; while preserving their order in the blob collection (if multiple formats found), it pulls out images to external png files with comments, and pulls out plaintext to sit in the database as a separate searchable field. In this way, I'm hoping to get the best of both worlds (multi-format support but more convenient access to plaintext and images and minimizing database size).
- Order of the multiple formats in a blob is preserved even in the case of images and plaintext, which may occasionally be important to some scenarios.
- A single checkbox in the option will toggle the program from capturing multiple formats vs the old pure-plaintext behavior of CHS, so if you don't want the new formats and prefer a leaner pure plaintext database you can still use CHS that way.
- Duplicate checking should be somewhat improved, and work for multiple-format blobs and images.
What's left to be done:
- Lots more testing -- I'm hoping to get some help with that from the forum.
- There are a bunch of ancillary things regarding copying+pasting that I might not have fully implemented in the new code (flashing clipboard icon on capture, dealing with stubborn situations where the clipboard is being used by another app, updating clip modification dates on pasting, etc.).
- There are a few functions that are specifically plaintext related, like when performing format presets, and pasting text using sendkeys, that I have not fully moved over, or that use some old code. I still have to go through and update all of those functions. They will will only work with plaintext, but I think the existence of multi-format blob data may confuse some of these functions.
- Similar behavior might be expected after manually editing a clip -- you will have changed the PLAINTEXT content of the clip, but not the unicode/richtext version, So I think what has to happen in such cases is a clearing of the unicode/richtext data in such cases.
- I want to add more features to help you see how much space is being used by the multi-format data, and to do some maintenance operations on it to keep your database lean (like functions for removing multi-format data from old clips, etc.).
- I would like to add more flexible rules for deciding which formats you want saved.. For example being able to specify a custom list of formats to keep or ignore, and maybe setting arbitrary limits on size, or based on the application running. I'm not sure the best way to do this that would satisfy experts and novices alike..
- Verify that the new image capture/pasting DIB format works in all cases.