Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions Core.lua
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ EasyFind.db = {}

-- SavedVariables version. Increment when changing DB schema.
-- Each migration runs once: if saved dbVersion < DB_VERSION, run all steps in order.
local DB_VERSION = 1
local DB_VERSION = 3

-- SavedVariables defaults - new keys are auto-merged for existing users
local DB_DEFAULTS = {
Expand All @@ -38,7 +38,7 @@ local DB_DEFAULTS = {
mapSearchWidth = 0.88,
uiSearchWidth = 0.88,
uiResultsScale = 1.0,
uiResultsWidth = 300,
uiResultsWidth = 350,
mapResultsScale = 1.0,
mapResultsWidth = 300,
searchBarOpacity = 0.75, -- ns.DEFAULT_OPACITY
Expand All @@ -59,8 +59,8 @@ local DB_DEFAULTS = {
resultsTheme = "Retail", -- "Classic" or "Retail"
indicatorStyle = "EasyFind Arrow", -- Indicator texture style
indicatorColor = "Yellow", -- Indicator color preset
uiMaxResults = 10, -- Maximum visible UI search results (3-24)
mapMaxResults = 6, -- Maximum visible map search results (3-24)
uiResultsHeight = 280, -- Visible height of UI search results panel in pixels
mapResultsHeight = 168, -- Visible height of map search results panel in pixels
showTruncationMessage = true, -- Show "more results available" message when truncated
hardResultsCap = false, -- Hard cap on results (no "more results" message)
staticOpacity = false, -- Keep opacity constant while moving
Expand Down Expand Up @@ -118,6 +118,21 @@ local DB_MIGRATIONS = {
end
if db.uiResultsWidth == 1.0 then db.uiResultsWidth = 300 end
end,
-- [2] = Widen default UI results panel from 300 to 350
[2] = function(db)
if db.uiResultsWidth == 300 then db.uiResultsWidth = 350 end
end,
-- [3] = Replace row-count settings with pixel height
[3] = function(db)
if not db.uiResultsHeight then
db.uiResultsHeight = db.uiMaxResults and (db.uiMaxResults * 28) or 280
end
if not db.mapResultsHeight then
db.mapResultsHeight = db.mapMaxResults and (db.mapMaxResults * 26 + 12) or 168
end
db.uiMaxResults = nil
db.mapMaxResults = nil
end,
}

-- Fields that are runtime-only and must not persist in SavedVariables
Expand Down
5 changes: 2 additions & 3 deletions MapSearch.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6234,16 +6234,15 @@ function MapSearch:ShowResults(results)
-- Must compute maxVisibleHeight (including screen-space clamping) BEFORE the
-- button loop, otherwise willScroll can be false while hasScroll ends up true
-- and the scrollbar overlaps full-width buttons.
local maxVisibleRows = EasyFind.db.mapMaxResults or 6
local scrollBar = resultsFrame.scrollBar
local maxVisibleHeight = maxVisibleRows * 26 + 12
local maxVisibleHeight = EasyFind.db.mapResultsHeight or 168
local preAnchor = activeSearchFrame or searchFrame
if isGlobalSearch and globalSearchFrame then
preAnchor = globalSearchFrame
end
local screenH = UIParent:GetHeight()
if resultsAbove then
local available = (preAnchor:GetTop() or (screenH / 2)) - 16
local available = screenH - (preAnchor:GetTop() or (screenH / 2)) - 16
if available > 0 and maxVisibleHeight > available then
maxVisibleHeight = available
end
Expand Down
14 changes: 7 additions & 7 deletions Options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1674,7 +1674,7 @@ function Options:DoResetAll()
EasyFind.db.mapSearchWidth = 0.88
EasyFind.db.uiSearchWidth = 0.88
EasyFind.db.uiResultsScale = 1.0
EasyFind.db.uiResultsWidth = 300
EasyFind.db.uiResultsWidth = 350
EasyFind.db.mapResultsScale = 1.0
EasyFind.db.mapResultsWidth = 300
EasyFind.db.searchBarOpacity = DEFAULT_OPACITY
Expand All @@ -1691,8 +1691,8 @@ function Options:DoResetAll()
EasyFind.db.globalMapDirectOpen = false
EasyFind.db.smartShow = false
EasyFind.db.resultsTheme = "Retail"
EasyFind.db.uiMaxResults = 10
EasyFind.db.mapMaxResults = 6
EasyFind.db.uiResultsHeight = 280
EasyFind.db.mapResultsHeight = 168
EasyFind.db.pinsCollapsed = false
EasyFind.db.staticOpacity = false
EasyFind.db.indicatorStyle = "EasyFind Arrow"
Expand Down Expand Up @@ -1840,9 +1840,9 @@ function Options:DoResetUI()
EasyFind.db.uiSearchScale = 1.0
EasyFind.db.uiSearchWidth = 0.88
EasyFind.db.uiResultsScale = 1.0
EasyFind.db.uiResultsWidth = 300
EasyFind.db.uiResultsWidth = 350
EasyFind.db.uiSearchPosition = nil
EasyFind.db.uiMaxResults = 10
EasyFind.db.uiResultsHeight = 280
EasyFind.db.uiSearchFilters = { ui = true, mounts = false, toys = false, pets = false, map = false }
EasyFind.db.uiMapSearchLocal = true

Expand Down Expand Up @@ -1884,7 +1884,7 @@ function Options:DoResetMap()
EasyFind.db.globalSearchPosition = nil
EasyFind.db.mapSearchPositionMax = nil
EasyFind.db.globalSearchPositionMax = nil
EasyFind.db.mapMaxResults = 6
EasyFind.db.mapResultsHeight = 168
EasyFind.db.mapPinHighlight = true
EasyFind.db.blinkingPins = false
EasyFind.db.minimapArrowGlow = true
Expand Down Expand Up @@ -1942,7 +1942,7 @@ function Options:DoResetUIPositions()
EasyFind.db.uiSearchScale = 1.0
EasyFind.db.uiSearchWidth = 0.88
EasyFind.db.uiResultsScale = 1.0
EasyFind.db.uiResultsWidth = 300
EasyFind.db.uiResultsWidth = 350
if _G["EasyFindSearchFrame"] and ns.UI then
if ns.UI.ResetPosition then ns.UI:ResetPosition() end
if ns.UI.UpdateScale then ns.UI:UpdateScale() end
Expand Down
32 changes: 29 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,22 @@ EasyFind lets you search for any panel, tab, or setting in WoW's interface and a
<em>Direct open skips straight to the panel instantly</em>
</p>

## Table of Contents

- [Features](#features)
- [UI Search](#ui-search)
- [Map Search](#map-search)
- [Search Features](#search-features)
- [Two Navigation Modes](#two-navigation-modes)
- [How to Use](#how-to-use)
- [First-Time Setup](#first-time-setup)
- [Slash Commands](#slash-commands)
- [Keybinds](#keybinds)
- [Options](#options)
- [Moving the Search Bars](#moving-the-search-bars)
- [Feedback](#feedback)
- [Links](#links)

## Features

### UI Search
Expand Down Expand Up @@ -39,9 +55,8 @@ Find and navigate to any interface element such as:
Currencies show your current amounts inline, and reputations display progress bars with renown level, friendship rank, or traditional standing.

<p align="center">
<img src="https://media.forgecdn.net/attachments/1577/337/currency-png.png" alt="currency search">
<img src="https://media.forgecdn.net/attachments/1577/352/rep-png.png" alt="reputation search"><br>
<em>Currency amounts and reputation progress bars in search results</em>
<img src="https://media.forgecdn.net/attachments/1586/298/combined_rep_currency-png.png" alt="currency search">
<em>Reputation progress bars (left) and currency amounts (right) in search results</em>
</p>

### Map Search
Expand All @@ -60,6 +75,17 @@ Locate places and NPCs across Azeroth:
* Chromie (Timewalking Campaigns)
* Rare mobs (with optional auto-tracking that always shows active rares on the map)

<p align="center">
<img src="https://media.forgecdn.net/attachments/1591/410/all-rares-png.png" alt="all rares search" width="49%">
<img src="https://media.forgecdn.net/attachments/1591/411/one-rare-png.png" alt="single rare search" width="49%"><br>
<em>Search "rare" to see all active rares, or select a specific one to track it</em>
</p>

<p align="center">
<img src="https://media.forgecdn.net/attachments/1591/412/rares-filter-png.png" alt="rares filter"><br>
<em>Rares category with auto-track toggle in the filter menu</em>
</p>

Search the zone of the map you're currently focused on with the local bar (left side), or search across all of Azeroth with the global bar (right side). Map search results also appear in the UI search bar when the Map Search filter is enabled.

<p align="center">
Expand Down
Loading
Loading