+ If user select the tag which already existed in current file → untag
+ Else: add tag.
+ "New tag" menu item allow traditional type-to-add method
+ "Edit tag database" menu item edit tag database in xyplorer.ini
+ "Clear all" remove all Label, Tag, Comments
+ Clipboard contain maximum 20 character and invalid characters are removed: ,|"<crlf>
Code: Select all
$Taglist = formatlist(getkey("TagsList", "Settings") . ", " . property("#tags") . ", ", "etsd", ",");
$Clipboard = replacelist( substr(<clipboard>, ,20), "<crlf>"",|;""");
$MenuItem = trim(popupmenu($Taglist . ",-,$Clipboard,-,&New tag,&Edit tag database,&Clear all",,,,,, ","));
if( $MenuItem == "&New tag") { #881};
Elseif( $MenuItem == "&Edit tag database") {setkey( input("Edit Tag database in xyplorer.ini",,getkey("TagsList", "Settings")), "TagsList", "Settings")};
Elseif ( $MenuItem == "&Clear all") {tag; #886; tag,,2};
Elseif( strpos(property("#tags"), $MenuItem) == -1) {tag $MenuItem,, 1};
Elseif ( $MenuItem != "") {tag $MenuItem,,1,2}