From f672b71f0fd70439b92f74b0f7609a61774e5683 Mon Sep 17 00:00:00 2001 From: Jason Burns Date: Tue, 31 Oct 2017 15:35:46 -0500 Subject: [PATCH] Improved handling for long symbol master names, added button to select master (if it resides in current document). --- README.md | 1 + Screenshots/Symbol Instance Locator.png | Bin 58944 -> 58543 bytes .../Contents/Sketch/manifest.json | 2 +- .../Contents/Sketch/script.cocoascript | 35 +++++++++++++++++- appcast.xml | 6 +-- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 786003e..b337b07 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ To find your plugins directory... # Changelog +* **1.4** - Improved handling for long symbol master names, added button to select master (if it resides in current document). * **1.3** - Added button to select all matches on current page, updated plugin screenshot. * **1.2** - Update to make the result window a floating panel, highlight for current selection, and artboard name. * **1.1** - Code optimizations and dialog frame will now be smaller if a small set of results are returned. diff --git a/Screenshots/Symbol Instance Locator.png b/Screenshots/Symbol Instance Locator.png index cc0108325a25473517491f34bcd0a2099d3a625b..9f029ed453b01066420d22d7700d5c75ecb1dfcf 100644 GIT binary patch delta 23004 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 P00000NkvXXu0mjfSHI=7 delta 23408 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 diff --git a/Symbol Instance Locator.sketchplugin/Contents/Sketch/manifest.json b/Symbol Instance Locator.sketchplugin/Contents/Sketch/manifest.json index 7aef47d..20b36d5 100644 --- a/Symbol Instance Locator.sketchplugin/Contents/Sketch/manifest.json +++ b/Symbol Instance Locator.sketchplugin/Contents/Sketch/manifest.json @@ -18,7 +18,7 @@ "isRoot" : true }, "identifier" : "com.sonburn.sketchplugins.symbol-instance-locator", - "version" : "1.3", + "version" : "1.4", "description" : "Locate all instances of a selected symbol or instance.", "authorEmail" : "jason.burns@synchronoss.com", "name" : "Symbol Instance Locator", diff --git a/Symbol Instance Locator.sketchplugin/Contents/Sketch/script.cocoascript b/Symbol Instance Locator.sketchplugin/Contents/Sketch/script.cocoascript index 8c542f8..d222988 100644 --- a/Symbol Instance Locator.sketchplugin/Contents/Sketch/script.cocoascript +++ b/Symbol Instance Locator.sketchplugin/Contents/Sketch/script.cocoascript @@ -60,7 +60,7 @@ var onRun = function(context) { var instancePanelContent = NSView.alloc().initWithFrame(NSMakeRect(0,0,instancePanelWidth,instancePanelContentHeight)); instancePanelContent.setFlipped(1); - var matchText = createBoldDescription(symbolMaster.name() + " has " + symbolInstances.length + " instance(s).",12,NSMakeRect(8,12,instancePanelWidth-16,16)); + var matchText = createBoldDescription(truncateString(String(symbolMaster.name()),30) + " has " + symbolInstances.length + " instance(s).",12,NSMakeRect(8,12,instancePanelWidth-16,16)); instancePanelContent.addSubview(matchText); var selectText = createDescription("Select an instance below to navigate to it's location...",12,NSMakeRect(8,34,instancePanelWidth-16,16)); @@ -87,7 +87,7 @@ var onRun = function(context) { while (pageInstance = pageInstanceLoop.nextObject()) { pageInstance.select_byExpandingSelection(true,true); - var buttonToSelect = symbolInstances.findIndex(o => o === pageInstance); + var buttonToSelect = symbolInstances.findIndex(o => o == pageInstance); uiButtons[buttonToSelect].setWantsLayer(1); uiButtons[buttonToSelect].layer().setBorderWidth(2); @@ -101,6 +101,33 @@ var onRun = function(context) { }); instancePanelContent.addSubview(selectAllButton); + var selectMasterButton = NSButton.alloc().initWithFrame(NSMakeRect(130,450,100,36)); + selectMasterButton.setTitle("Go to Master"); + selectMasterButton.setBezelStyle(NSRoundedBezelStyle); + selectMasterButton.setEnabled(context.document.pages().containsObject(symbolMaster.parentPage())); + selectMasterButton.setAction("callAction:"); + selectMasterButton.setCOSJSTargetFunction(function(sender) { + for (var i = 0; i < uiButtons.length; i++) { + if (uiButtons[i].layer()) uiButtons[i].layer().setBorderWidth(0); + } + + context.document.currentPage().changeSelectionBySelectingLayers(nil); + + var rect = symbolMaster.absoluteRect().rect(); + + MSDocument.currentDocument().setCurrentPage(symbolMaster.parentPage()); + MSDocument.currentDocument().currentView().zoomToFitRect(rect); + + symbolMaster.select_byExpandingSelection(true,false); + }); + instancePanelContent.addSubview(selectMasterButton); + + // var refreshButton = NSButton.alloc().initWithFrame(NSMakeRect(230,450,120,36)); + // refreshButton.setTitle("Refresh Results"); + // refreshButton.setBezelStyle(NSRoundedBezelStyle); + // refreshButton.setEnabled(0); + // instancePanelContent.addSubview(refreshButton); + var gutterWidth = 15, instanceItemHeight = 96, instanceItemWidth = instancePanelWidth - gutterWidth, @@ -278,3 +305,7 @@ function createBoldDescription(text,size,frame,alpha) { return label; } + +function truncateString(string,length) { + return (string.length <= length) ? string : "…" + string.substr(string.length-length); +}; diff --git a/appcast.xml b/appcast.xml index 3e841bf..6017677 100644 --- a/appcast.xml +++ b/appcast.xml @@ -6,15 +6,15 @@ Locate all instances of a selected symbol or instance. en - Version 1.3 + Version 1.4 -
  • Added button to select all matches on current page, updated plugin screenshot.
  • +
  • Improved handling for long symbol master names, added button to select master (if it resides in current document).
  • ]]>
    - +