Sorry Eric - I was incommunicado this weekend... but good to see we have time to discuss this, because it will be an important - and potentially invasive - change - a GOOD one, mind you, but has the potential to cause confusion and even breakage (if there is a bug)...
New Top-Level Tab
There should be a new, top-level tab called "Character Sets". By top-level, I mean in the main dialog box next to, say, Global Settings.
If/when the new
Simplified'Defaults'/'Advanced' GUI changes are done, it should actually be a primary Tab on the 'Advanced Settings' window, but yes, it will definitely need its own Tab.
It will contain a list of custom character sets with 3 columns--name, description (optional), and characters. Double-clicking on an item in the list open a new dialog where you can edit the existing name, description, and characters for that character set. The tab will also have a drop-down list of command just like the "Upload/Download" and "Accounts" tab. From this drop-down list, you can select "New set" (to create a new character set), copy, delete, and edit (edit does the same as double-clicking an item in the list). We can include some predefined character sets (along with a random feature) to model what PasswordMaker 1.7 already has. Note: you won't be able to delete any character set currently in use by an existing account.
All sounds good...
But, I'd go so far as to say you shouldn't be able to delete *any* of the Global character sets, only edit them. This is to avoid even the possibility of breakage. Editing them - and possibly (not really necessary though) the ability to enter a description should be enough.
Assigning Character Sets to Accounts
When creating/editing a PasswordMaker account (custom or default), the "Extended" tab--to be renamed Password Characteristics--will look similar to how it does now except the Characters field won't be editable. It will be a drop-down list of characters sets you've defined in the "Character Sets" tab. It might be annoying that there won't be a way to manage character sets from the Account-Specific Settings dialog box. I'm not sure how to deal with this.
I'll take this opportunity to renew my request (though never formalized as a separate FR) for a 'negative diff' feature - call it 'Excluded Characters' or something similar - that I think would solve this problem nicely...
Just create an Account Specific field that the user can enter any characters into. Any characters in this field will be SUBTRACTED from the chosen character set.
This will make it very easy to know exactly what characters are - and more importantly, are NOT - being used on any given Account.
Currently, if I modify the primary character set for any given account by simply deleting one or two illegal/problematic characters - it is *very* difficult to ever be sure exactly what characters are or are not being used - the only way to be sure is to copy-n-paste the original and the account version into two separate text files and closely examine them.
If I place a button there linking back to the new "Character Sets" tab, then the Account-Specific Settings dialog will have to be converted from modal to non-modal with some awkward way for the Character Sets tab to alert an open Account-Specific Settings dialog that character sets have been changed/added/deleted.
With the 'Excluded Characters' field, this is not a problem. If there is nothing in that field, then the Global character set is used as is. If there IS something in it, those characters are subtracted from the Global character set. You COULD show it in a different color, to make it very clear that it is a MODIFIED character set - this way, if the user accidentally entered a space (should spaces even be allowed?) into this field, the character set would display in red, warning them that something wasn't right.
Backward Compatibility
During the upgrade process to the new PasswordMaker release with this feature, all existing accounts' character sets will be analyzed. Any character set that isn't equal to a predefined character set will automatically appear as a new, editable character set in the "Character Sets" tab.
and
When editing an existing character set, what happens to the accounts which use that character set? Do they automatically start making use of the changes or do they have their own "copy" of the character set that doesn't get modified?
Currently, the 'Global' character sets (in the 'Defaults' account settings) are not shared, they are simply used as 'Defaults' for when a new Account is created. So, editing these does NOT affect current accounts in any way.
It sounds like you are proposing to change this so that the Global character sets are 'Shared'? If so, then I'd say a simpler idea would be the opposite - instead of saving potentially a LOT of copies of the pre-edited version for each Account that is linked to it, simply disallow the editing of a Global character set that has any Accounts linked to it, and only allow the creation of a NEW one. If there are no Accounts linked to it, then yes, PLEASE allow it to be edited.
This way, there is always only one copy of a Character Set, with the ability to modify them at the Account level through the use of the 'Excluded Characters' field - and later, the template/filters.
Should the list of character sets be organized into "folders" like we have for items in all other tabs? If so, why?
Hmmm... not sure what you mean by 'folders' here... ? If you mean managing them from a listbox, like the 'URL Patterns', then yes, I think so, simply because it would make working with them easier - but that would only be my personal preference, not extremely important.
Should you be allowed to delete pre-defined character sets if they're not in use by any account?
No, absolutely not - for stability reasons more than anything else - but that said, I definitely want the ability to edit them - this is one thing I do for security purposes. I always edit the main character set(s) in such a way that it is easy for me to reproduce from a clean/new RDF, but not easily recognizable.
Should you be allowed to edit the name and description of pre-defined character sets?
Not necessary...
Should the tab display "Used By Accounts" information for each character set; i.e., display the names of every account that uses a character set (can this be a feature added later or must it be in the initial release?)
I'd say this would be important for managing them, but I don't see a need for this just for the initial release, as long as it was planned on being added reasonably soon thereafter.
Thanks Eric!!!