{"id":1546,"date":"2010-06-20T15:18:59","date_gmt":"2010-06-20T06:18:59","guid":{"rendered":"https:\/\/regex.info\/blog\/lightroom-goodies\/photosafe"},"modified":"2010-06-20T16:05:09","modified_gmt":"2010-06-20T07:05:09","slug":"photosafe","status":"publish","type":"page","link":"https:\/\/regex.info\/blog\/lightroom-goodies\/photosafe","title":{"rendered":"Jeffrey&#8217;s &#8220;PhotoSafe&#8221; Lightroom Plugin"},"content":{"rendered":"\n\n<style>\n  .with_lhs li { margin-left: 212px }\n\n  div.post_header { margin-left: 216px }\n  #navtab-holder {\n        color: #84F;\n        float:left;\n        position: relative;\n        background-color: black;\n        border-right: solid 2px #888888;\n        top: -44px;\n\n        width: 250px;\n        right: 60px;\n        margin-right: -30px; \/* the main page layout is based upon the unshifted width of the navtab-holder, so this compensates for the right:60px shift *\/\n\n  }\n  #navtab-holder a[href]:visited { color: #84F; text-decoration:none  }\n  #navtab-holder a[href]:link    { color: #84F; text-decoration:none }\n  div.navtab-topbottom {\n       width: 207px;\n       margin-left: 43px;\n       height: 10px;\n  }\n  #navtab-bottom {\n      border-bottom: solid 2px #888888;\n  }\n  div.navtab-list {\n    border: 3px solid #0B0;\n    background-color: #040;\n    padding-left: 10px;\n    margin-right: 10px;\n    -moz-border-radius:    15px;\n    -webkit-border-radius: 15px;\n  }\n\n  div.nav-header {\n      color:white;\n      padding-top: 15px;\n      padding-bottom: 3px;\n      text-align: left;\n      font-weight: bold;\n  }\n  div.sel {\n      margin: 0;\n      padding: 1px;\n  }\n  div.N {\n  }\n  div.post_container {\n    background-color: #181818;\n  }\n\n  div.Y {\n      border: solid 2px #888888;\n      border-right: none;\n      background-color: #181818;\n      font-weight: bold;\n      color: red;\n      overflow:visible;\n      position: relative;\n      z-index: 3;\n      width: 235px;\n      -moz-border-radius:    15px 0 0 15px;\n      -webkit-border-radius: 15px 0 0 15px;\n  }\n  div.sel + div.I { padding-top: 20px }\n  div.sel > div {\n      -moz-border-radius:    15px 0 0 15px;\n      -webkit-border-radius: 15px 0 0 15px;\n      padding: 2px 0 2px 10px;\n      margin: 0 0 5px 0;\n  }\n  div.N > div {\n      border: 2px solid black;\n  }\n  div.N > div {\n      margin-right: 20px;\n      background-color: #222;\n  }\n\n  div.Y + div.N > div { margin-top: 10px }\n\n  div.logo { width: 30px; display: inline-block }\n\n  #arrow {\n    display: inline-block;\n    width: 0px;\n    position:relative;\n    top:5px;\n    left:10px\n  }\n\n<\/style>\n\n\n<div id='navtab-holder'>\n<div class='navtab-topbottom' id='navtab-top'><\/div>\n\n<div class='nav-header' style='text-align:center; color:white'>My Lightroom Plugin for Adobe Photoshop Lightrooms&nbsp;<\/div>\n<div class='navtab-list'>\n<div class='nav-header'>Export &amp; Publish<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/zenfolio'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/zenfolio'><img noindex='1' width='24' height='19' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_zenfolio.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/zenfolio'>Zenfolio<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/smugmug'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/smugmug'><img noindex='1' width='14' height='15' style='margin-left: 5px' class='raw' src='\/i\/lr\/sm\/small_smugmug.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/smugmug'>SmugMug<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/flickr'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/flickr'><img noindex='1' width='24' height='12' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_flickr.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/flickr'>Flickr<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/google-drive'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/google-drive'><img noindex='1' width='19' height='19' style='margin-left: 3px' class='raw' src='\/i\/lr\/sm\/small_googledrive.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/google-drive'>Google Drive<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/ipernity'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/ipernity'><img noindex='1' width='14' height='18' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_ipernity.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/ipernity'>ipernity<\/a><\/div><\/div>\n<div class='nav-header'>Export Plugins<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/google-photos'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/google-photos'><img noindex='1' width='18' height='19' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_gphotos.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/google-photos'>Google Photos<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/tumblr'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/tumblr'><img noindex='1' width='19' height='19' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_tumblr.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/tumblr'>Tumblr<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/twitter'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/twitter'><img noindex='1' width='23' height='16' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/twitter_small.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/twitter'>Twitter<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/photobucket'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/photobucket'><img noindex='1' width='20' height='15' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/small_photobucket.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/photobucket'>Photobucket<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/order-prints-locally'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/order-prints-locally'>Order Prints Locally<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/expono'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/expono'>Expono<\/a><\/div><\/div>\n<div class='nav-header'>Other Publish Plugins<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/collection-publisher'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/collection-publisher'><img noindex='1' width='24' height='19' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/collection_publisher_small_icon.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/collection-publisher'>Collection Publisher<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/folder-publisher'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/folder-publisher'><img noindex='1' width='24' height='19' style='margin-left: 0' class='raw' src='\/i\/lr\/sm\/folder-publisher-icon-small.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/folder-publisher'>Folder Publisher<\/a><\/div><\/div>\n<div class='nav-header'>Export Add-Ons<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/metadata-wrangler'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/metadata-wrangler'>Metadata Wrangler<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/creative-commons'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/creative-commons'>Creative Commons<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/run-any-command'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/run-any-command'>Run Any Command<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/snapshot-on-export'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/snapshot-on-export'>Snapshot on Export<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/smart-preview-support'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/smart-preview-support'>Smart-Preview Support<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/crop-for-ipad'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/crop-for-ipad'>Crop for iPad and other Devices<\/a><\/div><\/div>\n<div class='nav-header'>Geoencoding Plugins<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/gps'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/gps'>Geoencoding Support<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/gps-proximity'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/gps-proximity'>Proximity Search<\/a><\/div><\/div>\n<div class='nav-header'>Utility Plugins<\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/data-explorer'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/data-explorer'>Data Explorer<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/smart-collection-sync'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/smart-collection-sync'>Smart Collection Sync<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/people-support'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/people-support'>People Support<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/folder-status'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/folder-status'>Folder Status<\/a><\/div><\/div>\n<div class='sel Y' onmouseover=\"this.style.borderColor=document.getElementById('post_guts').style.borderColor=document.getElementById('navtab-holder').style.borderColor=document.getElementById('navtab-top').style.borderColor=document.getElementById('navtab-bottom').style.borderColor= 'red'; this.style.backgroundColor = document.getElementById('post_guts').style.backgroundColor = '#333'\" onmouseout =\"this.style.borderColor=document.getElementById('post_guts').style.borderColor=document.getElementById('navtab-holder').style.borderColor=document.getElementById('navtab-top').style.borderColor=document.getElementById('navtab-bottom').style.borderColor= '#888888'; this.style.backgroundColor = document.getElementById('post_guts').style.backgroundColor = '#181818';\"><div><div class='logo'><img noindex='1' width='18' height='19' style='margin-left: 6px' class='raw' src='\/i\/lr\/sm\/photosafe-small.png'\/><\/div> PhotoSafe <div id='arrow'><img noindex='1' class='raw'  src='\/i\/s\/red-arrow-right.png' width='48' height='25'\/><\/div><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/collection-mechanic'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/collection-mechanic'>Collection Mechanic<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/bag-o-goodies'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/bag-o-goodies'>Bag-o-Goodies<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/timelapse-support'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/timelapse-support'>Timelapse Support<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/workflow-delete-options'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><div class='logo'><a href='\/blog\/lightroom-goodies\/workflow-delete-options'><img noindex='1' width='15' height='19' style='margin-left: 6px' class='raw' src='\/i\/lr\/sm\/workflow-delete-options-small.png'\/><\/a><\/div> <a href='\/blog\/lightroom-goodies\/workflow-delete-options'>Workflow Delete Options<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/metadata-viewer'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/metadata-viewer'>Metadata Viewer<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/bulk-develop'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/bulk-develop'>Bulk Develop Settings<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/metadata-presets'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/metadata-presets'>Metadata-Viewer Preset Builder<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/layers'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/layers'>Photoshop Layers<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/export-quality-tester'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/export-quality-tester'>JPEG Quality Tester<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/folder-watch'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/folder-watch'>Folder Watch<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/megapixel-sort'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/megapixel-sort'>Megapixel Sort<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/focal-length-sort'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/focal-length-sort'>Focal-length Sort<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/data-plot'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/data-plot'>Data Plot<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/extended-search'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/extended-search'>Extended Search<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/video-assets'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/video-assets'>Video-Asset Management<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/preview-extraction'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/preview-extraction'>Preview-Cache Image Extraction<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/sysinfo'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/sysinfo'>System Info<\/a><\/div><\/div>\n<div class='sel N'><div onclick=\"document.location='https:\/\/regex.info\/blog\/lightroom-goodies\/iphoto-collection-fixer'\" onmouseover=\"this.style.borderColor='white'\" onmouseout=\"this.style.borderColor='black'\"><a href='\/blog\/lightroom-goodies\/iphoto-collection-fixer'>iPhoto Collection Fixer<\/a><\/div><\/div>\n<\/div>\n<div style='margin-top:20px; margin-left:15px; margin-bottom:10px'>\n<b>Other Plugin Sources:<\/b>\n<br\/>&nbsp;&middot;&nbsp;<a href='http:\/\/www.photographers-toolbox.com\/products\/'>Photographer's Toolbox<\/a>\n<br\/>&nbsp;&middot;&nbsp;<a href='http:\/\/alloyphoto.com\/plugins\/'>alloy photo<\/a>\n<br\/>&nbsp;&middot;&nbsp;<a href='http:\/\/www.beardsworth.co.uk\/lightroom\/'>John Beardsworth<\/a>\n<br\/>&nbsp;&middot;&nbsp;<a href='http:\/\/www.capturemonkey.com\/'>Capture Monkey<\/a>\n<br\/>&nbsp;&middot;&nbsp;<a href='http:\/\/www.lightroom-plugins.com\/'>lightroom-plugins.com<\/a>\n<br\/>&nbsp;&middot;&nbsp;<a href='https:\/\/creative.adobe.com\/addons?pp=PSLR'>Adobe Addons<\/a>\n\n<\/div>\n\n<div class='navtab-topbottom' id='navtab-bottom'><\/div>\n<\/div>\n\n\n<div class='ic'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-locked.png\" width=\"730\" height=\"450\"\nclass=\"raw\"\nid=\"iphotosafe_locked\"\/><\/div>\n\n\n<div style='float:right; position:relative; border: solid 1px #444; margin: 0 auto; margin-left:2em; padding:20px; padding-top:5px; background-color: #000'>\n<center style='font-weight:bold; font-size:120%'>Quick Links<\/center>\n     &middot; <b>Latest Download<\/b>:\n<br\/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class='quiet' href='https:\/\/regex.info\/LightroomPlugins2\/releases\/photosafe-20220120.55.zip'><span style='padding:1px 3px; border:solid 1px orange; color:#888'>photosafe-<span style='color:orange; font-weight:bold'>20220120.55<\/span>.zip<\/span><\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog\/lightroom-goodies\/faq'>FAQ<\/a>\n<br\/>&middot; <a class='quiet' href='#history'>Version History<\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/LightroomPlugins2\/feeds\/photosafe.rss'>Update Log via RSS <img class='raw' src='https:\/\/regex.info\/i\/s\/feed-icon-14x14.png' width='14' height='14' style='position:relative;top:3px'\/><\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog\/lightroom-goodies\/plugin-installation\/'>Installation instructions<\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog\/lightroom-goodies\/register'>&#8220;Donationware&#8221; Registration Info<\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog\/lightroom-goodies\/' style='color:#F55'>More Lightroom Goodies<\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/LightroomPlugins2\/feeds\/all.rss'>All-Plugin Update Log via RSS <img class='raw' src='https:\/\/regex.info\/i\/s\/feed-icon-14x14.png' width='14' height='14' style='position:relative;top:3px'\/><\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog\/photo-tech\/'>My Photo-Tech Posts<\/a>\n<br\/>&middot; <a class='quiet' href='https:\/\/regex.info\/blog'>My Blog<\/a>\n<\/div>\n\n\n<p style='margin-top:0'>This plugin allows you to protect selected images\nand videos from removal from your Lightroom library. Attempts to delete a\nprotected image, whether purposeful or accidental, are met with a dialog as\nillustrated above.<\/p>\n\n<p>This plugin works in Lightroom Classic, and older versions as far back as\n<span class='nobr'>Lightroom 3<\/span> (though some features depend on the\nversion of Lightroom).<\/p>\n\n<p>The same download works for both Windows and Mac. <span class='nobr'>See the box<\/span> to the upper right for the download link (in orange) and installation instructions.<\/p>\n\n\n<style type=\"text\/css\">\n  .state { white-space: nowrap; color: #F88 }\n  div.post_guts td:first-child { font-weight: bold; padding-right:1em }\n  div.post_guts td p:first-child { margin-top: 0 }\n  div.post_guts p.h { font-weight:bold; font-size:130%; margin-top:70px }\n  div.warning {\n        background-image: url(http:\/\/regex.info\/i\/p\/warning.png);\n        background-repeat: no-repeat;\n        background-position: 20px 20px;\n        background-color: black;\n        border: solid 1px white;\n        margin:60px 50px;\n        padding-left: 120px;\n        padding-top: 15px;\n        padding-right: 2em;\n        min-height: 95px;\n  }\n  div.warning p:first-child { margin-top:0px }\n<\/style>\n\n<p class='h'>Overview<\/p>\n\n<p>I take a lot of photos because I have more luck than skill, and when I\nwant to reclaim some disk space, I'll go through old shoots to clean out\nthe extras. However, I never want to delete a photo that I've posted\nto <a href='\/blog'>my blog<\/a>; I've posted plenty\nof <a href='\/blog\/photostream\/main.html'>pretty\npictures<\/a> over the years, but more often I use photos to illustrate a\nstory (perhaps a <a href='\/blog\/2007-10-08\/598'>story\nabout bad photos<\/a>!), so some of the &#8220;<i>never want to\ndelete<\/i>&#8221; images look just like ones that I would naturally want to\nclear out.<\/p>\n\n<p>So, when doing these purges, I've had to take great care to not delete\nthese photos I want to keep. I've had mixed success, but some new features\nin Lightroom 3 allow me to create this plugin that lets me lock selected\nphotos against removal from the catalog.<\/p>\n\n<p>My <b>PhotoSafe<\/b> plugin allows you to create special collections in\nyour Lightroom library: images in these collections simply can't be removed\nfrom the library. You can continue edit the photo, export it, update its\nmetadata, and all the other things you normally might do, except delete\nit.<\/p>\n\n<!--\n<p class='h' id='install'>Video Tutorial<\/p>\n\n<p>David Marx over at <a href='thelightroomlab.com'>TheLightroomLab.com<\/a> has created a thorough video presentation\nabout this plugin:<\/p>\n\n<center>&#8220;<a href='http:\/\/thelightroomlab.com\/2011\/06\/using-the-photosafe-plugin-to-protect-important-photos-in-adobe-photoshop-lightroom-3\/'>Using the PhotoSafe Plugin to Protect Important Photos in Adobe Photoshop Lightroom 3<\/a>&#8221;<\/center>\n\n<p>He's a bit too kind in his praise for my work, but it's a very clear\npresentation on how to install and use the plugin. Thanks David!<\/p>\n-->\n\n\n<p class='h' id='install'>Installation<\/p>\n\n<p>First, download the plugin using the link in the upper-right corner of this page, and unzip it to a location on disk\nwhere you'll keep it.<\/p>\n\n<p style='margin-bottom:0'>Then follow the normal <a href='\/blog\/lightroom-goodies\/plugin-installation\/'>Lightroom plugin\ninstall instructions<\/a> to install and enable the plugin in your copy of Lightroom.<\/p>\n\n<p class='h' id='setup'>Initial Setup<\/p>\n\n<p>The plugin works via Lightroom's &#8220;Publish Service&#8221; system.\nAfter installing the plugin, you'll have a new PhotoSafe entry in the list\nof publish services at the bottom of Library's left-side panel. Click on\n&#8220;Set Up&#8221;....<\/p>\n\n<div class='ic'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-setup.png\" width=\"818\" height=\"462\"\nclass=\"raw\"\nid=\"iphotosafe_setup\"\/><\/div>\n\n<p>to bring up the Publishing Manager dialog. It has one section of\ninstruction that you don't need because you're reading this documentation,\nand one section of options that you can ignore for the moment, so just\nclick <b>save<\/b> to create the special &#8220;<i>Can't Be Deleted From\nLightroom<\/i>&#8221; collection in your library:<\/p>\n\n<div class='ic'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-newcollection.png\" width=\"292\" height=\"88\"\nclass=\"raw\"\nid=\"iphotosafe_newcollection\"\/><\/div>\n\n<p>It starts out empty, but you can add whatever images or videos to it\nthat you'd like to protect.<\/p>\n\n<p class='h' id='use'>Protecting Your Images from Removal<\/p>\n\n<p>I'd like to say \"any images added to the special collection are protected!&#8221;, and it's\n<i>almost<\/i> that simple, but there's one important consideration that\nfirst requires some background...<\/p>\n\n<p>The plugin makes use of Lightroom's &#8220;Publish&#8221; feature, which\nis normally intended for exporting copies of your photos out of Lightroom,\nsuch as with the built-in Flickr exporter,\nor <a href='\/blog\/lightroom-goodies\/flickr'>my\nmore-advanced Flickr exporter<\/a> (or any of the other Publish-enhanced\nplugins among <a href='\/blog\/lightroom-goodies\/'>my\nLightroom goodies<\/a>). PhotoSafe doesn't do any kind of exporting &mdash;\nit just protects photos from removal &mdash; but since it uses the Publish\nsystem, we have to understand some byproducts of the Publish system...<\/p>\n\n<div class='img_right' style='margin:0; padding:0; margin-left:2em' ><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-segmentedgrid.png\" width=\"550\" height=\"635\"\nclass=\"raw\"\nid=\"iphotosafe_segmentedgrid\"\/><\/div>\n\n<p>Photos in normal collections in your Lightroom library are\neither <span class='state'>in<\/span> the collection\nor <span class='state'>not in<\/span> the collection, but a photo in a\n<b>publish<\/b> collection &mdash; such as PhotoSafe's <i>Can't Be Deleted From Lightroom<\/i> collection &mdash; can actually\nbe in one of four states:<\/p>\n\n<ol>\n  <li><p><span class='state'>New Photos to Publish<\/span><\/p><\/li>\n  <li><p><span class='state'>Published Photos<\/span><\/p><\/li>\n  <li><p><span class='state'>Modified Photos to Re-Publish<\/span><\/p><\/li>\n  <li><p><span class='state'>Deleted Photos to Remove<\/span><\/p><\/li>\n<\/ol>\n\n<p>These differences are relevant in the context of keeping copies on a\nremote site up to date, but for our PhotoSafe needs, it's an unwelcome\ncomplication we have to deal with.<\/p>\n\n<p>The screenshot at the right shows the Library Grid while a publish\ncollection is selected, and the various &#8220;segments&#8221; showing the\nphotos that happen to be in the various states.<\/p>\n\n<p>Pressing the &#8220;<b>Publish<\/b>&#8220; button (seen toward the lower\nleft of the screenshot) starts up the Publish machinery, which moves\n&#8220;New&#8221; and &#8220;Modified&#8221; photos to the\n&#8220;Published&#8221; segment, and actually does the removal of the\n&#8220;Deleted&#8221; photos from the collection. In a normal publish\nservice all this would entail the rendering of copies for uploading and such,\nbut in PhotoSafe it just shuffles the thumbnails around in Lightroom and is\nfairly quick.<\/p>\n\n<p id='the-catch'>So here's the catch: when you add a photo to PhotoSafe's\n<i>Can't Be Deleted From Lightroom<\/i> collection, the photo starts out in\nthe &#8220;New Photos to Publish&#8221; state and stays that way until you\n&#8220;Publish&#8221; the collection, and <b style='color:#F22'>the photo\nis not protected until you do<\/b>.<\/p>\n\n<p>Let me say that again...<\/p>\n\n<div class='warning'>\n<p style='font-size:120%'>Photos in are <span style='color:white'>not protected<\/span> until they have been &#8220;Published&#8221; in PhotoSafe.<\/p>\n<\/div>\n\n<p>Once they've been added to the collection and Published, they're\nprotected from removal. Over time the Publish system will bounce them around\nbetween &#8220;Published&#8221; and &#8220;Modified&#8221;, but this doesn't matter for PhotoSafe.<\/p>\n\n<p class='h' id='unprotecting'>Unprotecting an Image<\/p>\n\n<p>If you wish to unprotect a photo, you have to delete it from the\ncollection, then &#8220;Publish&#8221; that deletion to effect the actual removal.\nPhotos are still protected while in &#8220;Deleted Photos to\nRemove&#8221;<\/p>\n\n<div style='margin: 0 0 0 1em; padding:0' class='img_right'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-big.png\" width=\"182\" height=\"190\"\nclass=\"raw\"\nid=\"iphotosafe_big\"\/><\/div>\n\n<p class='h'>Various Ways to Protect Images<\/p>\n\n<p>An image is protected once Published in a PhotoSafe collection, but\nthere are numerous ways to make it happen.<\/p>\n\n<ol><li><p>The most straightforward is that you select a thumbnail or thumbnails in the Library Grid,\n    and drag them to the PhotoSafe collection.<\/p><\/li>\n\n<li><p>Right-click on the PhotoSafe collection and select &#8220;Set as Target Collection&#8221; from the context menu.\nThis allows you to use the &#8220;<b>B<\/b>&#8221; keyboard shortcut to add photos to the collection.<\/p><\/li>\n\n<li><p>Select a photo or photos, and invoke <b class='nobr'>File &gt;\nPlugin Extras &gt; Add to PhotoSafe<\/b>. The advantage of this particular\nmethod is that not only does this add the photos to the collection, it puts\nthem directly into &#8220;Published Photos&#8221;, alleviating the need to\nPublish these photos to make them protected.<\/p><\/li>\n\n<\/ol>\n\n<p>Photos added via methods 1 or 2 still need to be Published before\nthey're protected; there are two ways to make that happen:<\/p>\n\n<ol>\n\n<li><p>Select the PhotoSafe collection in Library, and press &#8220;Publish&#8221;.<\/p><\/li>\n\n<li id='bgtask'><p style='margin-bottom:0; padding-bottom:0'>Have them\nmoved to Publish automatically by a background task that runs every so\noften, via the option in the Publishing Manager:<\/p>\n\n    <div class='ic' style='margin:0; padding:0'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-pubmanager-watcher.png\" width=\"577\" height=\"80\"\nclass=\"raw\"\nid=\"iphotosafe_pubmanager_watcher\"\/><\/div>\n\n<\/li>\n\n<\/ol>\n\n<p>These options are discussed in more detail in <a href='#bg'><i>Background Helpers<\/i><\/a> below.<\/p>\n\n<p>The background task is convenient, but it has a couple of notable\nshortcomings. The first is that each time it moves a group of photos to\nPublish, that action is left on Lightroom's undo stack. This is done\nquietly in the background while you are perhaps in the middle of doing\nsomething else, and if you happen to invoke an undo right after the\nbackground task has moved some photos to Publish, you'll be undoing the\nmove instead of the thing you thought you were undoing. This is\ninconvenient at best, likely confusing, and potentially dangerous at worst\nif that confusion leads down an unlucky path. I wish Lightroom allowed a\nplugin to do things like this without dirtying the user-visible undo stack,\nbut so far it doesn't.<\/p>\n\n<p>The second problem with the background task is that it runs only as\noften as you ask it (and each time Lightroom starts up). That leaves a window\nof time between when the photo gets added and when it's actually protected.<\/p>\n\n<p class='h'>Smart Collections<\/p>\n\n<p>PhotoSafe starts out with its one <i>Can't Be Deleted From Lightroom<\/i> collection,\nbut you can create additional collections if you like: a photo is fully protected if it's\nPublished in any PhotoSafe collection. <\/p>\n\n<p>There's no particular benefit to creating another regular PhotoSafe\ncollection unless you find it convenient, but it can be very useful to\ncreate a PhotoSafe <span class='defn'>smart collection<\/span> using rules\nto describe the photos that should be protected, such as &#8220;all\nfive-star photos, and all photos flagged as picks&#8221;. In my case, I\napply a red color label to all photos that I use on my blog, so I have a\nPhotoSafe smart collection with an &#8220;all red-labeled photos&#8221;\nrule.<\/p>\n\n<p>Using a smart collection means that I don't have to remember to add my\nblog photos to PhotoSafe.<\/p>\n\n<p class='h' id='bg'>Background Helpers<\/p>\n\n<p>When you first set up the PhotoSafe publish service, or when you edit\nits settings via the aptly-named &#8220;Edit Settings...&#8221; item in the\ncontext menu one gets when right-clicking on the <span\nclass='nobr'>&#8220;jf PhotoSafe&#8221;<\/span> publish-service title (where\nyou had initially clicked <span class='nobr'>&#8220;Set Up...&#8221;),<\/span> one\nsection of the dialog presents some options on helpers that run in the\nbackground while Lightroom is open:<\/p>\n\n  <div class='ic' style='margin:0; padding:0'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-pubmanager-options.png\" width=\"581\" height=\"284\"\nclass=\"raw\"\nid=\"iphotosafe_pubmanager_options\"\/><\/div>\n\n<p>The first option has PhotoSafe run a check when Lightroom launches,\nautomatically publishing (or reporting on) at-risk photos in the catalog\nloaded at the time. (At-risk photos are ones ones added to a PhotoSafe\ncollection but not yet published.)<\/p>\n\n<p>If you choose the report option, you may be greeted with this popup:<\/p>\n\n  <div class='ic' style='margin:0; padding:0'><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/lrp\/photosafe-warning.png\" width=\"771\" height=\"361\"\nclass=\"raw\"\nid=\"iphotosafe_warning\"\/><\/div>\n\n<p>However, I recommend using the auto-publish option, because if you've added a photo to PhotoSafe, you want it to be protected.<\/p>\n\n<p>The next option is the aforementioned background sweeper task: every so\noften, sweep any added-but-not-yet-published photos into\n&#8220;Published&#8221;. This is helpful and I recommend it, but as\nmentioned earlier, there's the caveat that some unlucky timing could lead\nto some &#8220;undo&#8221; confusion.<\/p>\n\n<p class='h'id='what'>A Warning About the Protection Afforded by PhotoSafe<\/p>\n\n<p>A photo published in a PhotoSafe collection can't be removed from the\nLightroom catalog. Period. Take note that:<\/p>\n\n<ul>\n\n<li><p>The master image file on disk is not protected from anything,\nincluding deletion or corruption by other applications, disk crashes,\nunattended children, or small pets walking across keyboards. The\n&#8220;Safe&#8221; of PhotoSafe has a narrow (but useful)\nrelevancy.<\/p><\/li>\n\n<li><p>The image within Lightroom is not protected from change. You can\ncontinue to make changes to the image or its metadata. This might be\nconsidered either a feature or a limitation, depending on your\nneeds.<\/p><\/li>\n\n<\/ul>\n\n<p class='h' id='availability'>Availability<\/p><p>This plugin is distributed as &#8220;donationware&#8221;. <span class='nobr'>I have chosen<\/span> to make it available for free\n&mdash; everyone can use it forever, without cost of any kind &mdash; but unless registered, its functionality is somewhat reduced\nafter six weeks. Registration is done via PayPal, and if you choose to register, it costs the minimum 1-cent PayPal fee; any\namount you'd like to add beyond PayPal's sliding fees as <span class='nobr'>a gift<\/span> to me is completely optional, and\ncompletely appreciated.<\/p>\n\n<p> For details, see my blog post titled <a class='pt' href='\/blog\/2009-02-15\/1148'>Lightroom Plugin Development:\nNow With Added Encouragement<\/a>. If you're interested in how <span class='nobr'>I picked<\/span> up <span class='nobr'>a\nplugin<\/span>-development hobby like this, see <a class='pt' href='\/blog\/2010-02-10\/1452'>My Long Path To\nLightroom Plugin Development<\/a>.<\/p>\n\n\n<style type=\"text\/css\">\n   table.h td:first-child   { font-weight: bold; padding-right:1em }\n   table.h td p:first-child { margin-top: 0 }\n   table.h td               { padding-bottom: 10px }\n   p.h                      { font-weight:bold; font-size:130%; margin-top:50px }\n   span.h                   { font-weight:bold; font-size:130%; margin-top:50px }\n   table.h pre              { font-size: 70% }\n<\/style>\n<p id='history' style='margin-top:50px'><span class='h'>Version History<\/span>\n<br\/>\n(\n<a style='font-size:small'\n   class='quiet'\n   href='https:\/\/regex.info\/LightroomPlugins2\/feeds\/photosafe.rss'>Update Log via RSS\n   <img class='raw' src='https:\/\/regex.info\/i\/s\/feed-icon-14x14.png' width='14' height='14' style='position:relative;top:3px'\/><\/a>\n)<\/p>\n<table class='h'><tr valign='baseline'><td><a id='20220120.55' name='55'>20220120.55<\/a><\/td><td>\n<p>Whack-a-mole with PayPal's random changes.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20211219.54' name='54'>20211219.54<\/a><\/td><td>\n<p>Warn when PayPal seems to have given a bogus code in the web-confirmation page.<\/p>\n               <p>working around 'constant table overflow' error<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20201017.53' name='53'>20201017.53<\/a><\/td><td>\n<p>Updates for Lr10<\/p>\n               <p>Work around a Windows bug related to canceling out of the registration dialog.<\/p>\n               <p>Added some extra debug logging to note whether the plugin is enabled.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20191104.52' name='52'>20191104.52<\/a><\/td><td>\n<p>Updates for Lr9 (Lightroom Classic CC Version 9).<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20181015.51' name='51'>20181015.51<\/a><\/td><td>\n<p>Updates for Lr8 (Lightroom Classic CC Version 8).<\/p>\n               <p>Clicking on the version number in the Plugin Manager now copies version info to the clipboard.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20171019.50' name='50'>20171019.50<\/a><\/td><td>\n<p>Oops, more Lr7 stuff.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20171019.49' name='49'>20171019.49<\/a><\/td><td>\n<p>Updates for Lightroom 7<\/p>\n               <p>Switch the log-sending mechanism to https.<\/p>\n               <p>Update registration support to handle a stupid bug at PayPal that PayPal refuses to fix )-:<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20160207.48' name='48'>20160207.48<\/a><\/td><td>\n<p>Try to avoid yet another place where Lightroom gets hung because it can't handle certain kinds of dialogs at the same time.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20150206.47' name='47'>20150206.47<\/a><\/td><td>\n<p>In the POODLE-vunerability dialog, display a raw URL of a page on my site that discusses the issue, so that folks can be independently sure that the dialog is indeed from me and not malware.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20141019.46' name='46'>20141019.46<\/a><\/td><td>\nWindows Only: Add a one-time check for the POODLE security vulnerability, and alert the user if it exists.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140902.45' name='45'>20140902.45<\/a><\/td><td>\nNew build system\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140731.44' name='44'>20140731.44<\/a><\/td><td>\nRegistration fix for Lr5.6\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140720.43' name='43'>20140720.43<\/a><\/td><td>\nMore Creative-Cloud support.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140715.42' name='42'>20140715.42<\/a><\/td><td>\n<p>Fixed an issue with Creative-Cloud revalidation.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140712.41' name='41'>20140712.41<\/a><\/td><td>\n<p>Lr5.5 and later Creative-Cloud installs can now revalidate themselves if needed.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140710.40' name='40'>20140710.40<\/a><\/td><td>\nSigh, had a bug in the Creative-Cloud support.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140708.39' name='39'>20140708.39<\/a><\/td><td>\n<p>Now supports Lr5.5+ Creative-Cloud Installs.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140704.38' name='38'>20140704.38<\/a><\/td><td>\nSigh, introduced an error for some folks with the rebuild the other day.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140630.37' name='37'>20140630.37<\/a><\/td><td>\nBuild-system update\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140422.36' name='36'>20140422.36<\/a><\/td><td>\n<p>Fixed a bug in the \"smoother revalidation\" stuff recently added.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20140418.35' name='35'>20140418.35<\/a><\/td><td>\n<p>Added a note about <a href='https:\/\/regex.info\/blog\/lightroom-goodies\/workflow-delete-options'>my <i>Workflow Delete Options<\/i> plugin<\/a>,\n               which can save you from unexpected data loss associated with some unfortunate aspects of Lightroom's photo-delete operation.<\/p>\n               <p>Make the revalidation process smoother, especially for folks using Lr5.4 and later.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130613.34' name='34'>20130613.34<\/a><\/td><td>\nBetter support for plugin revalidation.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130611.33' name='33'>20130611.33<\/a><\/td><td>\nYet another Lr5 update\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130610.32' name='32'>20130610.32<\/a><\/td><td>\nFinal update for Lr5\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130501.31' name='31'>20130501.31<\/a><\/td><td>\nUpdate for Lr5\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130412.30' name='30'>20130412.30<\/a><\/td><td>\nBuild system update.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130328.29' name='29'>20130328.29<\/a><\/td><td>\nFix for the registration system.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130209.28' name='28'>20130209.28<\/a><\/td><td>\nMore build-system maintenance\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20130206.27' name='27'>20130206.27<\/a><\/td><td>\nTweak for my registration system\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20121112.25' name='25'>20121112.25<\/a><\/td><td>\n<p>Don't run the automatic watcher when the plugin is disabled.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20121020.23' name='23'>20121020.23<\/a><\/td><td>\nWas getting some database-contention errors in Lr4.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120608.22' name='22'>20120608.22<\/a><\/td><td>\nFix an \"attempt to perform arithmetic on field\" error.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120526.21' name='21'>20120526.21<\/a><\/td><td>\n<p>Update to handle the Mac App Store version of Lightroom.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120520.20' name='20'>20120520.20<\/a><\/td><td>\n<p>When a small number of images are saved from deletion, and if there is more than one collection in PhotoSafe,\n               for each image that's been saved, list the PhotoSafe collection it was part of.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120520.19' name='19'>20120520.19<\/a><\/td><td>\n<p>Was sometimes not showing the \"have been protected\" message when it should have.<\/p>\n\n               <p>Tweak for Lr4.1RC2.<\/p>\n\n               <p>Enhanced the send-log dialog to hopefully make reports more meaningful to me,\n               yielding, I hope, the ability to respond more sensibly to more reports.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120330.18' name='18'>20120330.18<\/a><\/td><td>\nUpdate to handle 4.1RC\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120309.17' name='17'>20120309.17<\/a><\/td><td>\nUpdate to the debug logging to better track down timing issues that might arise.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120304.16' name='16'>20120304.16<\/a><\/td><td>\n<p>More on the march toward Lr4, including upheaval in the code to handle  Lightroom APIs being discontinued in Lr4.<\/p>\n               <p>Better \"protected-photo isolation\" to display which photos are being saved when you attempt to delete a protected photo.<\/p>\n               <p>Bumped up the minimum Lr3 version to Lr3.5, to ensure we've got those bug fixes.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120114.15' name='15'>20120114.15<\/a><\/td><td>\nMore tweaks for Lr4b\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20120112.14' name='14'>20120112.14<\/a><\/td><td>\n<p>Update for Lr4 beta: explain in the plugin manager that the plugin can't be registered in the beta.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20111210.13' name='13'>20111210.13<\/a><\/td><td>\n<p>When doing a plugin upgrade, offer the ability to flush all the old copies of the plugin.<\/p>\n\n\t           <p>Had issues with the registration button sometimes not showing.<\/p>\n\n\t           <p>Added a system-clock check and reports to the user if the system clock is more than a minute out of\n\t           date. An incorrect system clock can cause problems with various kinds of communication and authentication\n\t           with some of my plugins, so I've just gone ahead and added this to every plugin.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20110301.12' name='12'>20110301.12<\/a><\/td><td>\nIt turns out that a bug fix in a recent version of Lightroom is not backwards compatible with\n               previous versions of Lightroom, so the plugin now handles things properly Lr3.3 and later.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20101210.11' name='11'>20101210.11<\/a><\/td><td>\nThe new &#8220;Isolate Protected Photos&#8221; feature wasn't turning off the grid filter. It now does.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20101208.10' name='10'>20101208.10<\/a><\/td><td>\nAdded an &#8220;Isolate Protected Photos&#8221; button to the dialog that pops up if you try to delete\n               a PhotoSafe-protected photo (at least if you have more than one photo selected).\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20101207.9' name='9'>20101207.9<\/a><\/td><td>\n<p><b>As of this version, requires Lr3.3 or later<\/b><\/p>\n              <p>Now much more compelling protection: can automatically sweep all unprotected photos, even in smart collections.\n              <b>Requires Lr3.3 or later.<\/b><\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100829.7' name='7'>20100829.7<\/a><\/td><td>\nMade the revalidation process much simpler, doing away with the silly need for a revalidation file.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100820.6' name='6'>20100820.6<\/a><\/td><td>\nDiscovered a bug in my plugin build system that caused horribly difficult-to-track-down errors in one plugin,\n              so am pushing out rebuilt versions of all plugins just in case.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100817.5' name='5'>20100817.5<\/a><\/td><td>\n<p>Added code to allow plugin revalidation after having been locked due to a bad Lightroom serial number.<\/p>\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100625.4' name='4'>20100625.4<\/a><\/td><td>\nYikes, shaking out some more build issues.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100624.3' name='3'>20100624.3<\/a><\/td><td>\nDiscovered a nasty build bug; pushing a new version in case it affects this plugin.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100621.2' name='2'>20100621.2<\/a><\/td><td>\nDialog boxes were coming out strange on Windows.\n\n<\/td><\/tr><\/table>\n<table class='h'><tr valign='baseline'><td><a id='20100620.1' name='1'>20100620.1<\/a><\/td><td>\nInitial public release\n\n\n<\/td><\/tr><\/table>\n\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>This plugin works in Lightroom Classic, and older versions as far back as Lightroom 3 (though some features depend on the version of Lightroom).<\/p> <p>The same download works for both Windows and Mac. See the box to the upper right for the download link (in orange) and installation instructions.<\/p> <p class='h'>Overview<\/p> <p>I take a lot of photos because I have more luck than skill, and when I want to reclaim some disk space, I'll go through old shoots to clean out the extras. However, I never want to delete a photo that I've posted to my blog; I've posted plenty [...]","protected":false},"author":1,"featured_media":0,"parent":864,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/pages\/1546"}],"collection":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/comments?post=1546"}],"version-history":[{"count":0,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/pages\/1546\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/pages\/864"}],"wp:attachment":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/media?parent=1546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}