Lightroomプラグイン開発「書き出し」実行でダイアログで設定した値を参照する方法。
Ligtroom プラグインで「書き出し」の機能を実装しています。
「書き出し…」を選択すると表示されるダイアログに、セクションを追加することはできました。「書き出し」ボタンで書き出しを実行すると呼び出されるコードまでは準備できました。
今回は「書き出し」を実行した際に、ダイアログセクションで入力した内容を参照するコードを実装してみました。
目次
ダイアログセクションにテキストボックスを追加する方法
過去記事で説明します。
Lightroomプラグイン開発「書き出し..」ダイアログにテキストボックスを実装する。 | IT-Gate
関連記事をご覧ください。
ここでのポイントは exportPresetFields に「fieldName」という名前のフィールドを追加したということです。
exportPresetFields = { { key = 'fieldName', default = 'default value' }, },
このコードの部分です。
「書き出し」実行で呼び出される関数を準備する。
こちらも過去記事で説明します。
Ligntroomプラグイン開発「書き出し」ボタンのアクションを実装する。 | IT-Gate
関連記事をご覧ください。
ここで掲載した以下の部分に「実行」した時に動くコードを書いていきます。
function SampleRenderTask.processRenderedPhotos( functionContext, exportContext ) LrDialogs.message( "ここに書き出し処理を実装します。", nil ) end
ダイアログセクションで入力した内容を参照するコードもここに実装します。
exportPresetFieldsに格納した値を参照する
processRenderedPhotosメソッドに渡される exportContextという引数にexportPresetFieldsの内容が設定されています。
exportContextからexportPresetFields を取得するには exportContext.propertyTable と書きます。
exportPresetFields に定義された「fieldName」を参照するのはpropertyTable.fieldNameと書きます。
次の様なコードになります。
function SampleRenderTask.processRenderedPhotos( functionContext, exportContext ) local exportParams = exportContext.propertyTable local rootPath = exportParams.siteRootPath end
テキストボックスの入力内容が取得できた。
これで、テキストボックスに入力した内容を取得することができます。
もし、うまく取得できない場合は関連記事を読み返してみてください。おそらくテキストボックスとexportPresetFieldsを紐付ける LrView.bind の実装が誤っているのだと思います。