diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fb5b75..2127bbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to EasyFind will be documented in this file. --- +## [2.1.4] - 2026-07-20 + +### Added +- **Data broker launcher**: EasyFind now publishes a launcher for display bars that host data broker objects, so it can be opened from one instead of the minimap button. Left-click toggles the search bar, right-click opens the options. Nothing changes if no such display is installed. + +--- + ## [2.1.3] - 2026-07-19 ### Fixed diff --git a/Core/Main.lua b/Core/Main.lua index ae82891..ed49f12 100644 --- a/Core/Main.lua +++ b/Core/Main.lua @@ -516,7 +516,7 @@ local SUGGESTED_KEYBINDS = { -- The version whose features the What's New popup currently describes. Bump -- ONLY when the popup content is rewritten; patch releases that keep the same -- content must not re-announce it to users who already saw it. -local WHATSNEW_CONTENT_VERSION = "2.1.3" +local WHATSNEW_CONTENT_VERSION = "2.1.4" local WHATSNEW_LINK_PREFIX = "easyfind:whatsnew:" local whatsNewHookInstalled = false @@ -904,6 +904,9 @@ local function OnPlayerLogin() if EasyFind.db.showMinimapButton then EasyFind:UpdateMinimapButton() end + -- Same delay as the minimap button: both are launcher surfaces, and + -- by now every addon (so every broker display) has loaded. + if ns.RegisterDataBroker then ns.RegisterDataBroker() end end) local currentVersion = ns.version @@ -1220,6 +1223,12 @@ function EasyFind:Print(msg) print(sformat("|cFF00FF00EasyFind:|r %s", msg)) end +-- Shared by the minimap button and the data broker launcher, and mirrored by +-- the TOC's IconTexture: one icon identifies the addon wherever it is hosted. +local LAUNCHER_ICON = "Interface\\AddOns\\EasyFind\\textures\\SpyglassMinimap" +-- The brand name, never localized, shown wherever the addon names itself. +local ADDON_LABEL = "EasyFind" + local minimapButton local minimapShapes = { @@ -1288,7 +1297,7 @@ local function CreateMinimapButton() local icon = mmBtn:CreateTexture(nil, "ARTWORK") icon:SetSize(14, 14) - icon:SetTexture("Interface\\AddOns\\EasyFind\\textures\\SpyglassMinimap") + icon:SetTexture(LAUNCHER_ICON) icon:SetPoint("CENTER") mmBtn:SetHighlightTexture(136477) @@ -1339,7 +1348,7 @@ local function CreateMinimapButton() mmBtn:SetScript("OnEnter", function(self) GameTooltip:SetOwner(self, "ANCHOR_LEFT") - GameTooltip:SetText("EasyFind") + GameTooltip:SetText(ADDON_LABEL) GameTooltip:AddLine(L["MINIMAP_TT_LEFT_CLICK"], 1, 1, 1) GameTooltip:AddLine(L["MINIMAP_TT_RIGHT_CLICK"], 1, 1, 1) GameTooltip:AddLine(L["MINIMAP_TT_DRAG"], 0.7, 0.7, 0.7) @@ -1364,6 +1373,41 @@ function EasyFind:UpdateMinimapButton() end end +-- Data broker launcher. Display bars that host broker objects can then launch +-- the addon, so a minimalist UI does not need the minimap button. +-- +-- Nothing is bundled: we only PUBLISH an object, and every display that shows +-- one embeds the library itself, so asking for it is enough. The silent flag +-- returns nil instead of erroring when no display is installed, in which case +-- this does nothing at all. Registration happens at login rather than at load +-- so a display that loads after us has already created the library; creating +-- an object fires the library's own DataObjectCreated callback, which is how +-- displays pick up late registrations. Clicks mirror the minimap button. +function ns.RegisterDataBroker() + if not LibStub then return end + local ok, broker = pcall(LibStub, "LibDataBroker-1.1", true) + if not (ok and type(broker) == "table" and broker.NewDataObject) then return end + if broker.GetDataObjectByName and broker:GetDataObjectByName(ADDON_LABEL) then return end + pcall(broker.NewDataObject, broker, ADDON_LABEL, { + type = "launcher", + label = ADDON_LABEL, + icon = LAUNCHER_ICON, + OnClick = function(_, button) + if button == "RightButton" then + EasyFind:OpenOptions() + else + EasyFind:ToggleSearchUI() + end + end, + OnTooltipShow = function(tooltip) + if not (tooltip and tooltip.AddLine) then return end + tooltip:AddLine(ADDON_LABEL) + tooltip:AddLine(L["MINIMAP_TT_LEFT_CLICK"], 1, 1, 1) + tooltip:AddLine(L["MINIMAP_TT_RIGHT_CLICK"], 1, 1, 1) + end, + }) +end + function EasyFind_OnAddonCompartmentClick(_, button) if button == "LeftButton" then EasyFind:ToggleSearchUI() diff --git a/EasyFind.toc b/EasyFind.toc index 74796ac..51639c3 100644 --- a/EasyFind.toc +++ b/EasyFind.toc @@ -2,7 +2,7 @@ ## Title: EasyFind ## Notes: Search and locate UI elements and map locations with ease ## Author: justawower -## Version: 2.1.3 +## Version: 2.1.4 ## IconTexture: Interface\AddOns\EasyFind\textures\SpyglassMinimap ## Category: UI ## AddonCompartmentFunc: EasyFind_OnAddonCompartmentClick diff --git a/Locales/deDE.lua b/Locales/deDE.lua index 81ab36b..ad2ef56 100644 --- a/Locales/deDE.lua +++ b/Locales/deDE.lua @@ -258,13 +258,9 @@ L["WHATSNEW_CHAT_HELLO"] = "Willkommen bei |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "hier" L["WHATSNEW_CHANGELOG_LINK"] = "Vollständiges Änderungsprotokoll" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffIME-Eingabe repariert|r\n" .. - " |cff999999-|r Die Eingabe mit chinesischen, koreanischen und anderen\n" .. - " Kompositions-Eingabemethoden sollte den Suchtext nicht mehr\n" .. - " verfälschen\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutovervollständigung abschaltbar|r\n" .. - " |cff999999-|r Die Inline-Autovervollständigung lässt sich für Suchleiste\n" .. - " und Kartenreiter im Optionsmenü deaktivieren" + "|cffFFD100\226\128\162|r |cffffffffData-Broker-Starter|r\n" .. + " |cff999999-|r Starte EasyFind über eine Data-Broker-Leiste\n" .. + " statt über das Minimap-Symbol" -- Context menu L["CTX_ADD_ALIAS"] = "Alias hinzufügen" diff --git a/Locales/enUS.lua b/Locales/enUS.lua index 3cc071e..25fa29f 100644 --- a/Locales/enUS.lua +++ b/Locales/enUS.lua @@ -279,12 +279,9 @@ L["WHATSNEW_CHAT_HERE"] = "here" -- The body is rewritten per release. Edit this single string each version. L["WHATSNEW_CHANGELOG_LINK"] = "See full changelog" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffIME input fixed|r\n" .. - " |cff999999-|r Typing with Chinese, Korean, and other composition\n" .. - " input methods should no longer corrupt the search text\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutocomplete toggles|r\n" .. - " |cff999999-|r Turn inline autocomplete off for the search bar or\n" .. - " the map tab in the options menu" + "|cffFFD100\226\128\162|r |cffffffffData broker launcher|r\n" .. + " |cff999999-|r Launch EasyFind from a data broker display bar\n" .. + " instead of the minimap button" -- ============================================================================= -- Shared/Utils.lua -- context menu labels diff --git a/Locales/esES.lua b/Locales/esES.lua index b9b5b4a..1ad8b01 100644 --- a/Locales/esES.lua +++ b/Locales/esES.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "¡Bienvenido a |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "aquí" L["WHATSNEW_CHANGELOG_LINK"] = "Ver el registro de cambios completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffEntrada IME corregida|r\n" .. - " |cff999999-|r Escribir con métodos de entrada de composición (chino,\n" .. - " coreano y otros) ya no debería corromper el texto de búsqueda\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutocompletado desactivable|r\n" .. - " |cff999999-|r Desactiva el autocompletado en línea para la barra de\n" .. - " búsqueda o la pestaña del mapa en las opciones" + "|cffFFD100\226\128\162|r |cffffffffLanzador de Data Broker|r\n" .. + " |cff999999-|r Abre EasyFind desde una barra de Data Broker\n" .. + " en lugar del icono del minimapa" -- Context menu L["CTX_ADD_ALIAS"] = "Añadir alias" diff --git a/Locales/esMX.lua b/Locales/esMX.lua index c8acbac..87a0ff0 100644 --- a/Locales/esMX.lua +++ b/Locales/esMX.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "¡Bienvenido a |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "aquí" L["WHATSNEW_CHANGELOG_LINK"] = "Ver el registro de cambios completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffEntrada IME corregida|r\n" .. - " |cff999999-|r Escribir con métodos de entrada de composición (chino,\n" .. - " coreano y otros) ya no debería corromper el texto de búsqueda\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutocompletado desactivable|r\n" .. - " |cff999999-|r Desactiva el autocompletado en línea para la barra de\n" .. - " búsqueda o la pestaña del mapa en las opciones" + "|cffFFD100\226\128\162|r |cffffffffLanzador de Data Broker|r\n" .. + " |cff999999-|r Abre EasyFind desde una barra de Data Broker\n" .. + " en lugar del icono del minimapa" -- Context menu L["CTX_ADD_ALIAS"] = "Añadir alias" diff --git a/Locales/frFR.lua b/Locales/frFR.lua index a2541d8..eb0a296 100644 --- a/Locales/frFR.lua +++ b/Locales/frFR.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "Bienvenue dans |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "ici" L["WHATSNEW_CHANGELOG_LINK"] = "Voir le journal des modifications complet" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffSaisie IME corrigée|r\n" .. - " |cff999999-|r La saisie avec les méthodes à composition (chinois, coréen\n" .. - " et autres) ne devrait plus corrompre le texte de recherche\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutocomplétion désactivable|r\n" .. - " |cff999999-|r Désactivez l'autocomplétion en ligne pour la barre de\n" .. - " recherche ou l'onglet carte dans les options" + "|cffFFD100\226\128\162|r |cffffffffLanceur Data Broker|r\n" .. + " |cff999999-|r Lancez EasyFind depuis une barre Data Broker\n" .. + " au lieu de l'icône de la minicarte" -- Context menu L["CTX_ADD_ALIAS"] = "Ajouter un alias" diff --git a/Locales/itIT.lua b/Locales/itIT.lua index 73c8358..3e2410b 100644 --- a/Locales/itIT.lua +++ b/Locales/itIT.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "Benvenuto in |cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "qui" L["WHATSNEW_CHANGELOG_LINK"] = "Vedi il changelog completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffInput IME corretto|r\n" .. - " |cff999999-|r Digitare con metodi di input a composizione (cinese,\n" .. - " coreano e altri) non dovrebbe più corrompere il testo di ricerca\n" .. - "|cffFFD100\226\128\162|r |cffffffffCompletamento disattivabile|r\n" .. - " |cff999999-|r Disattiva il completamento automatico in linea per la barra\n" .. - " di ricerca o la scheda mappa nelle opzioni" + "|cffFFD100\226\128\162|r |cffffffffAvvio da Data Broker|r\n" .. + " |cff999999-|r Avvia EasyFind da una barra Data Broker\n" .. + " invece che dall'icona della minimappa" -- Context menu L["CTX_ADD_ALIAS"] = "Aggiungi alias" diff --git a/Locales/koKR.lua b/Locales/koKR.lua index 263c75e..7b29092 100644 --- a/Locales/koKR.lua +++ b/Locales/koKR.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "|cFF00FF00EasyFind v%s|r에 오신 L["WHATSNEW_CHAT_HERE"] = "여기" L["WHATSNEW_CHANGELOG_LINK"] = "전체 변경 사항 보기" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff입력기(IME) 수정|r\n" .. - " |cff999999-|r 중국어, 한국어 등 조합형 입력기로 입력할 때 검색\n" .. - " 텍스트가 더는 깨지지 않을 것입니다\n" .. - "|cffFFD100\226\128\162|r |cffffffff자동 완성 설정|r\n" .. - " |cff999999-|r 옵션 메뉴에서 검색창과 지도 탭의 인라인 자동 완성을\n" .. - " 각각 끌 수 있습니다" + "|cffFFD100\226\128\162|r |cffffffff데이터 브로커 실행기|r\n" .. + " |cff999999-|r 미니맵 아이콘 대신 데이터 브로커 표시줄에서\n" .. + " EasyFind를 실행할 수 있습니다" -- Context menu L["CTX_ADD_ALIAS"] = "별칭 추가" diff --git a/Locales/ptBR.lua b/Locales/ptBR.lua index f10cf1c..754dd3b 100644 --- a/Locales/ptBR.lua +++ b/Locales/ptBR.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "Bem-vindo ao |cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "aqui" L["WHATSNEW_CHANGELOG_LINK"] = "Ver o changelog completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffEntrada IME corrigida|r\n" .. - " |cff999999-|r Digitar com métodos de entrada de composição (chinês,\n" .. - " coreano e outros) não deve mais corromper o texto de busca\n" .. - "|cffFFD100\226\128\162|r |cffffffffAutocompletar desativável|r\n" .. - " |cff999999-|r Desative o autocompletar em linha para a barra de busca\n" .. - " ou a aba do mapa nas opções" + "|cffFFD100\226\128\162|r |cffffffffLançador de Data Broker|r\n" .. + " |cff999999-|r Abra o EasyFind por uma barra de Data Broker\n" .. + " em vez do ícone do minimapa" -- Context menu L["CTX_ADD_ALIAS"] = "Adicionar apelido" diff --git a/Locales/ruRU.lua b/Locales/ruRU.lua index cb43e5a..0d19e04 100644 --- a/Locales/ruRU.lua +++ b/Locales/ruRU.lua @@ -256,12 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "Добро пожаловать в |c L["WHATSNEW_CHAT_HERE"] = "здесь" L["WHATSNEW_CHANGELOG_LINK"] = "Полный список изменений" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffИсправлен ввод IME|r\n" .. - " |cff999999-|r Ввод с методами композиции (китайский, корейский и\n" .. - " другие) больше не должен портить текст поиска\n" .. - "|cffFFD100\226\128\162|r |cffffffffОтключаемое автодополнение|r\n" .. - " |cff999999-|r Автодополнение можно отключить для строки поиска и\n" .. - " вкладки карты в настройках" + "|cffFFD100\226\128\162|r |cffffffffЗапуск через Data Broker|r\n" .. + " |cff999999-|r Открывайте EasyFind с панели Data Broker,\n" .. + " а не только значком на миникарте" -- Context menu L["CTX_ADD_ALIAS"] = "Добавить псевдоним" diff --git a/Locales/zhCN.lua b/Locales/zhCN.lua index fb0cf85..0a5b06a 100644 --- a/Locales/zhCN.lua +++ b/Locales/zhCN.lua @@ -256,11 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "欢迎使用|cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "这里" L["WHATSNEW_CHANGELOG_LINK"] = "查看完整更新日志" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff修复输入法输入|r\n" .. - " |cff999999-|r 使用中文、韩文等组合输入法输入时,搜索文本\n" .. - " 应该不再出错\n" .. - "|cffFFD100\226\128\162|r |cffffffff补全开关|r\n" .. - " |cff999999-|r 可在选项中分别关闭搜索栏和地图页的内联补全" + "|cffFFD100\226\128\162|r |cffffffff数据面板启动器|r\n" .. + " |cff999999-|r 可从数据面板插件栏启动 EasyFind,\n" .. + " 无需使用小地图图标" -- Context menu L["CTX_ADD_ALIAS"] = "添加别名" diff --git a/Locales/zhTW.lua b/Locales/zhTW.lua index 8fafa20..976a8f4 100644 --- a/Locales/zhTW.lua +++ b/Locales/zhTW.lua @@ -256,11 +256,9 @@ L["WHATSNEW_CHAT_HELLO"] = "歡迎使用|cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "這裡" L["WHATSNEW_CHANGELOG_LINK"] = "查看完整更新日誌" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff修復輸入法輸入|r\n" .. - " |cff999999-|r 使用中文、韓文等組合輸入法輸入時,搜尋文字\n" .. - " 應該不再出錯\n" .. - "|cffFFD100\226\128\162|r |cffffffff補全開關|r\n" .. - " |cff999999-|r 可在選項中分別關閉搜尋列和地圖頁的內嵌補全" + "|cffFFD100\226\128\162|r |cffffffff資料面板啟動器|r\n" .. + " |cff999999-|r 可從資料面板插件列啟動 EasyFind,\n" .. + " 不必使用小地圖圖示" -- Context menu L["CTX_ADD_ALIAS"] = "新增別名"