Go to Page... |
Compatibility: | Gold Road (10.0.0) Scions of Ithelia (9.3.0) |
Updated: | 06/02/24 01:51 PM |
Created: | 01/24/23 03:57 PM |
Monthly downloads: | 5,752 |
Total downloads: | 248,312 |
Favorites: | 117 |
MD5: |
--Adds a scrollable dropdown to the comboBoxControl, replacing the original dropdown, and enabling scrollable submenus (even with nested scrollable submenus) -- control parent Must be the parent control of the comboBox -- control comboBoxContainer Must be any ZO_ComboBox control (e.g. created from virtual template ZO_ComboBox -> Where ZO_ComboBox_ObjectFromContainer can find the m_comboBox object) -- -- table options:optional = { --> === Dropdown general customization ================================================================================= -- number visibleRowsDropdown:optional Number or function returning number of shown entries at 1 page of the scrollable comboBox's opened dropdown -- number visibleRowsSubmenu:optional Number or function returning number of shown entries at 1 page of the scrollable comboBox's opened submenus -- number maxDropdownHeight Number or function returning number of total dropdown's maximum height -- boolean sortEntries:optional Boolean or function returning boolean if items in the main-/submenu should be sorted alphabetically. !!!Attention: Default is TRUE (sorting is enabled)!!! -- table sortType:optional table or function returning table for the sort type, e.g. ZO_SORT_BY_NAME, ZO_SORT_BY_NAME_NUMERIC -- boolean sortOrder:optional Boolean or function returning boolean for the sort order ZO_SORT_ORDER_UP or ZO_SORT_ORDER_DOWN -- string font:optional String or function returning a string: font to use for the dropdown entries -- number spacing:optional, Number or function returning a Number: Spacing between the entries -- boolean disableFadeGradient:optional Boolean or function returning a boolean: for the fading of the top/bottom scrolled rows -- table headerColor:optional table (ZO_ColorDef) or function returning a color table with r, g, b, a keys and their values: for header entries -- table normalColor:optional table (ZO_ColorDef) or function returning a color table with r, g, b, a keys and their values: for all normal (enabled) entries -- table disabledColor:optional table (ZO_ColorDef) or function returning a color table with r, g, b, a keys and their values: for all disabled entries --> ===Dropdown header/title ========================================================================================== -- string titleText:optional String or function returning a string: Title text to show above the dropdown entries -- string titleFont:optional String or function returning a font string: Title text's font. Default: "ZoFontHeader3" -- string subtitleText:optional String or function returning a string: Sub-title text to show below the titleText and above the dropdown entries -- string subtitleFont:optional String or function returning a font string: Sub-Title text's font. Default: "ZoFontHeader2" -- number titleTextAlignment:optional Number or function returning a number: The title's vertical alignment, e.g. TEXT_ALIGN_CENTER -- userdata customHeaderControl:optional Userdata or function returning Userdata: A custom control thta should be shown above the dropdown entries --> === Dropdown text search & filter ================================================================================= -- boolean enableFilter:optional Boolean or function returning boolean which controls if the text search/filter editbox at the dropdown header is shown ---> === Dropdown callback functions -- function preshowDropdownFn:optional function function(ctrl) codeHere end: to run before the dropdown shows ---> === Dropdown's Custom XML virtual row/entry templates ============================================================ -- boolean useDefaultHighlightForSubmenuWithCallback Boolean or function returning a boolean if always the default ZO_ComboBox highlight XML template should be used for an entry having a submenu AND a callback function. If false the highlight 'LibScrollableMenu_Highlight_Green' will be used -- table XMLRowTemplates:optional Table or function returning a table with key = row type of lib.scrollListRowTypes and the value = subtable having -- "template" String = XMLVirtualTemplateName, -- rowHeight number = ZO_COMBO_BOX_ENTRY_TEMPLATE_HEIGHT, -- setupFunc = function(control, data, list) -- local comboBox = ZO_ComboBox_ObjectFromContainer(comboBoxContainer) -- comboBoxContainer = The ZO_ComboBox control you created via WINDOW_MANAGER:CreateControlFromVirtual("NameHere", yourTopLevelControlToAddAsAChild, "ZO_ComboBox") -- comboBox:SetupEntryLabel(control, data, list) -- -->See class comboBox_base:SetupEntry* functions above for examples how the setup functions provide the data to the row control -- -->Reuse those where possible by calling them via e.g. self:SetupEntryBase(...) and then just adding your additional controls setup routines -- end -- -->See local table "defaultXMLTemplates" in LibScrollableMenu -- -->Attention: If you do not specify all template attributes, the non-specified will be mixedIn from defaultXMLTemplates[entryType_ID] again! -- { -- [lib.scrollListRowTypes.LSM_ENTRY_TYPE_NORMAL] = { template = "XMLVirtualTemplateRow_ForEntryId", ... } -- [lib.scrollListRowTypes.LSM_ENTRY_TYPE_SUBMENU] = { template = "XMLVirtualTemplateRow_ForSubmenuEntryId", ... }, -- ... -- } ---> === Narration: UI screen reader, with accessibility mode enabled only ============================================ -- table narrate:optional Table or function returning a table with key = narration event and value = function called for that narration event. -- Each functions signature/parameters is shown below! -- -> The function either builds your narrateString and narrates it in your addon. -- Or you must return a string as 1st return param (and optionally a boolean "stopCurrentNarration" as 2nd return param. If this is nil it will be set to false!) -- and let the library here narrate it for you via the UI narration -- Optional narration events can be: -- "OnComboBoxMouseEnter" function(m_dropdownObject, comboBoxControl) Build your narrateString and narrate it now, or return a string and let the library narrate it for you end -- "OnComboBoxMouseExit" function(m_dropdownObject, comboBoxControl) end -- "OnMenuShow" function(m_dropdownObject, dropdownControl, nil, nil) end -- "OnMenuHide" function(m_dropdownObject, dropdownControl) end -- "OnSubMenuShow" function(m_dropdownObject, parentControl, anchorPoint) end -- "OnSubMenuHide" function(m_dropdownObject, parentControl) end -- "OnEntryMouseEnter" function(m_dropdownObject, entryControl, data, hasSubmenu) end -- "OnEntryMouseExit" function(m_dropdownObject, entryControl, data, hasSubmenu) end -- "OnEntrySelected" function(m_dropdownObject, entryControl, data, hasSubmenu) end -- "OnCheckboxUpdated" function(m_dropdownObject, checkboxControl, data) end -- Example: narrate = { ["OnComboBoxMouseEnter"] = myAddonsNarrateComboBoxOnMouseEnter, ... } -- } function AddCustomScrollableComboBoxDropdownMenu(parent, comboBoxContainer, options)
Entry types: LSM_ENTRY_TYPE_NORMAL LSM_ENTRY_TYPE_DIVIDER LSM_ENTRY_TYPE_HEADER LSM_ENTRY_TYPE_CHECKBOX LSM_ENTRY_TYPE_SUBMENU --Adds a new entry to the context menu entries with the shown text, where the callback function is called once the entry is clicked. --If entries is provided the entry will be a submenu having those entries. The callback can be used, if entries are passed in, too (to select a special entry and not an enry of the opening submenu). --But usually it should be nil if entries are specified, as each entry in entries got it's own callback then. --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) -- --Example - Normal entry without submenu --AddCustomScrollableMenuEntry("Test entry 1", function() d("test entry 1 clicked") end, LibScrollableMenu.LSM_ENTRY_TYPE_NORMAL, nil, nil) --Example - Normal entry with submenu --AddCustomScrollableMenuEntry("Test entry 1", function() d("test entry 1 clicked") end, LibScrollableMenu.LSM_ENTRY_TYPE_NORMAL, { -- [1] = { -- label = "Test submenu entry 1", --optional String or function returning a string. If missing: Name will be shown and used for clicked callback value -- name = "TestValue1" --String or function returning a string if label is givenm name will be only used for the clicked callback value -- isHeader = false, -- optional boolean or function returning a boolean Is this entry a non clickable header control with a headline text? -- isDivider = false, -- optional boolean or function returning a boolean Is this entry a non clickable divider control without any text? -- isCheckbox = false, -- optional boolean or function returning a boolean Is this entry a clickable checkbox control with text? -- isNew = false, -- optional booelan or function returning a boolean Is this entry a new entry and thus shows the "New" icon? -- entries = { ... see above ... }, -- optional table containing nested submenu entries in this submenu -> This entry opens a new nested submenu then. Contents of entries use the same values as shown in this example here -- contextMenuCallback = function(ctrl) ... end, -- optional function for a right click action, e.g. show a scrollable context menu at the menu entry -- } --}, --[[additionalData]] -- { isNew = true, normalColor = ZO_ColorDef, highlightColor = ZO_ColorDef, disabledColor = ZO_ColorDef, highlightTemplate = "ZO_SelectionHighlight", -- font = "ZO_FontGame", label="test label", name="test value", enabled = true, checked = true, customValue1="foo", cutomValue2="bar", ... } -- --[[ Attention: additionalData keys which are maintained in table LSMOptionsKeyToZO_ComboBoxOptionsKey will be mapped to ZO_ComboBox's key and taken over into the entry.data[ZO_ComboBox's key]. All other "custom keys" will stay in entry.data.additionalData[key]! ]] --) function AddCustomScrollableMenuEntry(text, callback, entryType, entries, additionalData) --Adds an entry having a submenu (or maybe nested submenues) in the entries table/entries function whch returns a table --> See examples for the table "entries" values above AddCustomScrollableMenuEntry --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function AddCustomScrollableSubMenuEntry(text, entries) --Adds a divider line to the context menu entries --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function AddCustomScrollableMenuDivider() --Adds a header line to the context menu entries --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function AddCustomScrollableMenuHeader(text, additionalData) --Adds a checkbox line to the context menu entries --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function AddCustomScrollableMenuCheckbox(text, callback, checked, additionalData) --Pass in a table/function returning a table with predefined context menu entries and let them all be added in order of the table's number key --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function AddCustomScrollableMenuEntries(contextMenuEntries) --Populate a new scrollable context menu with the defined entries table/a functinon returning the entries. --Existing context menu entries will be reset, because ClearCustomScrollableMenu will be called! --You can add more entries later, prior to showing, via AddCustomScrollableMenuEntry / AddCustomScrollableMenuEntries functions too function AddCustomScrollableMenu(entries, options) --Set the options (visible rows max, etc.) for the scrollable context menu, or any passed in 2nd param comboBoxContainer -->See possible options above AddCustomScrollableComboBoxDropdownMenu function SetCustomScrollableMenuOptions(options, comboBoxContainer) --Show the custom scrollable context menu now at the control controlToAnchorTo, using optional options. --If controlToAnchorTo is nil it will be anchored to the current control's position below the mouse, like ZO_Menu does --Existing context menu entries will be kept (until ClearCustomScrollableMenu will be called) function ShowCustomScrollableMenu(controlToAnchorTo, options) --Hide the custom scrollable context menu and clear it's entries, clear internal variables, mouse clicks etc. function ClearCustomScrollableMenu() --Can be used within a callback function of any entry: --Run a callback function myAddonCallbackFunc passing in the entries of the opening menu/submneu of a clicked LSM context menu item -->Parameters of your function myAddonCallbackFunc must be: -->function myAddonCallbackFunc(userdata LSM_comboBox, userdata selectedContextMenuItem, table openingMenusEntries, ...) -->... can be any additional params that your function needs, and must be passed in to the ... of calling API function RunCustomScrollableMenuItemsCallback too! --->e.g. use this function in your LSM contextMenu entry's callback function, to call a function of your addon to update your SavedVariables -->based on the currently selected checkboxEntries of the opening LSM dropdown: --[[ AddCustomScrollableMenuEntry("Context menu Normal entry 1", function(comboBox, itemName, item, selectionChanged, oldItem) d('Context menu Normal entry 1') local function myAddonCallbackFunc(LSM_comboBox, selectedContextMenuItem, openingMenusEntries, customParam1, customParam2) --Loop at openingMenusEntries, get it's .dataSource, and if it's a checked checkbox then update SavedVariables of your addon accordingly --or do oher things --> Attention: Updating the entries in openingMenusEntries won't work as it's a copy of the data as the contextMenu was shown, and no reference! --> Updating the data directly would make the menus break, and sometimes the data would be even gone due to your mouse moving above any other entry --> wile the callbackFunc here runs end --Use LSM API func to get the opening control's list and m_sorted items properly so addons do not have to take care of that again and again on their own RunCustomScrollableMenuItemsCallback(comboBox, item, myAddonCallbackFunc, { LSM_ENTRY_TYPE_CHECKBOX }, true, "customParam1", "customParam2") end) ]] --If table/function returning a table parameter filterEntryTypes is not nil: --The table needs to have a number key and a LibScrollableMenu entryType constants e.g. LSM_ENTRY_TYPE_CHECKBOX as value. Only the provided entryTypes will be selected --from the m_sortedItems list of the parent dropdown! All others will be filtered out. Only the selected entries will be passed to the myAddonCallbackFunc's param openingMenusEntries. --If the param filterEntryTypes is nil: All entries will be selected and passed to the myAddonCallbackFunc's param openingMenusEntries. -- --If the boolean/function returning a boolean parameter fromParentMenu is true: The menu items of the opening (parent) menu will be returned. If false: The currently shown menu's items will be returned function RunCustomScrollableMenuItemsCallback(comboBox, item, myAddonCallbackFunc, filterEntryTypes, fromParentMenu, ...)
Entry types: LSM_ENTRY_TYPE_NORMAL LSM_ENTRY_TYPE_DIVIDER LSM_ENTRY_TYPE_HEADER LSM_ENTRY_TYPE_CHECKBOX --Adds a new entry to the context menu entries with the shown text, which calls the callback function once clicked. --If entries is provided the entry will be a submenu having those entries. The callback can only be used if entries are passed in --but normally it should be nil in that case function AddCustomScrollableMenuEntry(text, callback, entryType, entries, isNew) --Adds an entry having a submenu (or maybe nested submenues) in the entries table function AddCustomScrollableSubMenuEntry(text, entries) --Adds a divider line to the context menu entries function AddCustomScrollableMenuDivider() --Pass in a table with predefined context menu entries and let them all be added in order of the table's number key function AddCustomScrollableMenuEntries(contextMenuEntries) --Set the options (visible rows max, etc.) for the scrollable context menu function SetCustomScrollableMenuOptions(options, scrollHelper) --Add a new scrollable context menu with the defined entries table. --You can add more entries later via AddCustomScrollableMenuEntry function too function AddCustomScrollableMenu(parent, entries, options) --Show the custom scrollable context menu now function ShowCustomScrollableMenu(controlToAnchorTo, point, relativePoint, offsetX, offsetY, options) --Hide the custom scrollable context menu and clear internal variables, mouse clicks etc. function ClearCustomScrollableMenu()
File Name |
Version |
Size |
Uploader |
Date |
2.2 |
62kB |
Baertram |
06/02/24 11:06 AM |
|
2.1.1 |
41kB |
Baertram |
04/29/24 03:37 PM |
|
2.1 |
41kB |
Baertram |
04/26/24 02:02 PM |
|
2.0 |
29kB |
Baertram |
03/21/24 05:38 AM |
|
1.9 |
28kB |
Baertram |
03/11/24 03:10 AM |
|
1.8 |
31kB |
Baertram |
02/26/24 03:42 AM |
|
1.7 |
27kB |
Baertram |
01/11/24 06:09 PM |
|
1.6 |
23kB |
Baertram |
12/10/23 11:26 AM |
|
1.5 |
23kB |
Baertram |
12/09/23 06:05 PM |
|
1.4 |
22kB |
Baertram |
11/13/23 02:59 PM |
|
1.3 |
22kB |
Baertram |
10/31/23 04:15 AM |
|
1.2 |
22kB |
Baertram |
10/30/23 03:56 AM |
|
1.1 |
7kB |
tomstock |
03/19/23 02:51 PM |
|
1.0 |
7kB |
01/24/23 03:57 PM |
![]() |
Comment Options |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
|
|
Looks like AUI has been updated.
"Version 3.989 -------------------------------------------------------------------------------------------------------- Fixed an issue on the Frame mover where the 'GuiRoot' variable was being overwritten."
Last edited by IsJustaGhost : 06/19/24 at 06:34 AM.
|
![]() |
![]() |
IsJustaGhost |
View Public Profile |
Send a private message to IsJustaGhost |
Find More Posts by IsJustaGhost |
Add IsJustaGhost to Your Buddy List |
![]() |
|||
Forum posts: 0
File comments: 20
Uploads: 0
|
And we'll see after fix - do any other addons have such issue... and we'll be known what to do with them
Last edited by seggert : 06/19/24 at 05:37 AM.
|
||
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
|
|
Meaning, we are now on a path to getting this resolved.
|
![]() |
![]() |
IsJustaGhost |
View Public Profile |
Send a private message to IsJustaGhost |
Find More Posts by IsJustaGhost |
Add IsJustaGhost to Your Buddy List |
![]() |
|
|
It's definately AUI causing this, thanks for findig it!
Code:
_, windowData.default_anchor.point, GuiRoot, windowData.default_anchor.relativePoint, windowData.default_anchor.offsetX, windowData.default_anchor.offsetY = windowData.originalControl:GetAnchor() As expected... We have contacted Sensi, the addon dev, and provided som info and other leaking global variables. So he needs to fix this now. Thanks again for all your testing, we never would have found it without you guys! |
![]() |
![]() |
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
![]() |
||
|
Last edited by IsJustaGhost : 06/19/24 at 02:53 AM.
|
|
![]() |
![]() |
IsJustaGhost |
View Public Profile |
Send a private message to IsJustaGhost |
Find More Posts by IsJustaGhost |
Add IsJustaGhost to Your Buddy List |
![]() |
||||
Forum posts: 0
File comments: 20
Uploads: 0
|
I've made a quick test of this suggestion and got error from AUI itself
Last edited by seggert : 06/19/24 at 12:40 AM.
|
|||
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
||
|
Thanks for the massive tests. So maybe AUI could be an issue, maybe not? Another tester in AdvancedFilters comments send us his LDL file and AUI was enabled there too as the error appeared. I'll install that and see if I can get it too. Edit: So far I could not see that error. Tested with the same addons like you did. So maybe only the settings be differently. Please try to do the followng as I found a maybe relating issue in live/AddOns/AUI/modules/FrameMover/framemover.lua Change this: Code:
local function CreateWindows() windows = { Lua Code:
Hope it was related and fixes the error messages.
Last edited by Baertram : 06/18/24 at 05:45 PM.
|
|
![]() |
![]() |
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
![]() |
|
Forum posts: 0
File comments: 20
Uploads: 0
|
Ok, i'm tryed do that but can't unload addons from my character#2 coz of that error but triggered by ZO_ActiveCombatTips as parent
![]() Needed 2 reloadui attemtps till error gone... So let's start. I won't list required libs here, only addons that was enabled on each step. Textlog: ---- # 0 Begin. Exited from game, cleared LDL savedvar. ---- Addons enabled: Addon Selector, LibDebugLogger Log-in on character#1: no errors, switching to character#2 Log-in on character#2: no errors Sequence repeated. No errors. ---- # 1 Step. Adding more addons ---- Enabling 4/17 more addons while on character#1: Action Duration Reminder, Advanced Filters, AUI, AutoInvite, reloading UI on character#1. Got error after reloading UI
Warning: Spoiler
TopLevelControl AddonSelectorddl1 cannot be parented to ZO_Tutorial, it must be parented to GuiRoot
|rstack traceback: [C]: in function 'CreateControlFromVirtual' /EsoUI/Libraries/Globals/GlobalVars.lua:18: in function 'CreateControlFromVirtual' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2139: in function 'dropdownClass:Initialize' /EsoUI/Libraries/Utility/BaseObject.lua:252: in function 'ZO_InitializingObject:New' (tail call): ? user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2766: in function 'comboBox_base:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3477: in function 'comboBoxClass:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3764: in function 'comboBoxClass:UpdateMetatable' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:4152: in function 'AddCustomScrollableComboBoxDropdownMenu' user:/AddOns/AddonSelector/AddonSelector.lua:3576: in function 'AddonSelector.CreateControlReferences' user:/AddOns/AddonSelector/AddonSelector.lua:3999: in function 'AddonSelector.Initialize' user:/AddOns/AddonSelector/AddonSelector.lua:4279: in function 'OnAddOnLoaded' Reloading UI to re-enable AddonSelector presets control. Got another error
Warning: Spoiler
TopLevelControl AddonSelectorddl1 cannot be parented to ZO_ActiveCombatTips, it must be parented to GuiRoot
|rstack traceback: [C]: in function 'CreateControlFromVirtual' /EsoUI/Libraries/Globals/GlobalVars.lua:18: in function 'CreateControlFromVirtual' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2139: in function 'dropdownClass:Initialize' /EsoUI/Libraries/Utility/BaseObject.lua:252: in function 'ZO_InitializingObject:New' (tail call): ? user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2766: in function 'comboBox_base:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3477: in function 'comboBoxClass:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3764: in function 'comboBoxClass:UpdateMetatable' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:4152: in function 'AddCustomScrollableComboBoxDropdownMenu' user:/AddOns/AddonSelector/AddonSelector.lua:3576: in function 'AddonSelector.CreateControlReferences' user:/AddOns/AddonSelector/AddonSelector.lua:3999: in function 'AddonSelector.Initialize' user:/AddOns/AddonSelector/AddonSelector.lua:4279: in function 'OnAddOnLoaded' ReloadUI again. Error goes away Disabling all enabled addons. ---- # 2 Step. Enabling one-by-one ---- Enabling addon: Action Duration Reminder, reloading UI. No errors. Disabling ADR addon, enabling Advanced Filters, reloading UI. No errors. Reloading UI 3 times. No errors. Disabling Advanced Filters, enabling AUI addon, reloading UI. No errors. Reloading UI 3 times. No errors. Disabling AUI, enabling AutoInvite, reloading UI. No errors. Reloading UI 3 times. No errors. ---- # 3 Step. Paired enabling ---- Enabling addons: Action Duration Reminder + Advanced Filters. Reloading UI. No errors. Reloading UI 3 times. No errors. Disabling ADR addon+Advanced Filters, enabling AUI + AutoInvite. Reloading UI. Error occured:
Warning: Spoiler
TopLevelControl AddonSelectorddl1 cannot be parented to ZO_Tutorial, it must be parented to GuiRoot
|rstack traceback: [C]: in function 'CreateControlFromVirtual' /EsoUI/Libraries/Globals/GlobalVars.lua:18: in function 'CreateControlFromVirtual' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2139: in function 'dropdownClass:Initialize' /EsoUI/Libraries/Utility/BaseObject.lua:252: in function 'ZO_InitializingObject:New' (tail call): ? user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2766: in function 'comboBox_base:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3477: in function 'comboBoxClass:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3764: in function 'comboBoxClass:UpdateMetatable' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:4152: in function 'AddCustomScrollableComboBoxDropdownMenu' user:/AddOns/AddonSelector/AddonSelector.lua:3576: in function 'AddonSelector.CreateControlReferences' user:/AddOns/AddonSelector/AddonSelector.lua:3999: in function 'AddonSelector.Initialize' user:/AddOns/AddonSelector/AddonSelector.lua:4279: in function 'OnAddOnLoaded' Reloading UI. Error occured:
Warning: Spoiler
TopLevelControl AddonSelectorddl1 cannot be parented to ZO_ObjectiveCapture, it must be parented to GuiRoot
|rstack traceback: [C]: in function 'CreateControlFromVirtual' /EsoUI/Libraries/Globals/GlobalVars.lua:18: in function 'CreateControlFromVirtual' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2139: in function 'dropdownClass:Initialize' /EsoUI/Libraries/Utility/BaseObject.lua:252: in function 'ZO_InitializingObject:New' (tail call): ? user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2766: in function 'comboBox_base:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3477: in function 'comboBoxClass:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3764: in function 'comboBoxClass:UpdateMetatable' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:4152: in function 'AddCustomScrollableComboBoxDropdownMenu' user:/AddOns/AddonSelector/AddonSelector.lua:3576: in function 'AddonSelector.CreateControlReferences' user:/AddOns/AddonSelector/AddonSelector.lua:3999: in function 'AddonSelector.Initialize' user:/AddOns/AddonSelector/AddonSelector.lua:4279: in function 'OnAddOnLoaded' Reloading UI. Last error repeated again. Reloading UI. No errors occured. ---- # 4 Step. Suspicious AUI only ---- Disabling all addons. Enabling only AUI. Reloading UI. No errors occured. Reloading UI 2 times. No errors occured. On 3rd Reload UI - got last error repeated. Reloading UI 3 more times. No errors Switching to character#2. Enabling AUI and reloading UI. Got error ZO_ObjectiveCapture, same on last 3 from character#1 ---- Exited game, stopped test, uploading LDL savedvariable - https://sir.insidi.at/or/logviewer/fFGxng ---- Unexpected result as for me... Hope it helps a little bit. Unfortunately, if you need more, I can continue only tomorrow after 6 p.m. EET
Last edited by seggert : 06/18/24 at 04:47 PM.
|
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
||
|
Okay, thanks again!
1 step closer. Could you do the same test on your end with beta version 2.3 BUT this time please only enable AddonSelector Needed libraries (+ LibDebugLogger for sure !!!) -> No other addons or libraries! Is the error reproducable then the sme way, like login char1 do something logout, login char2 -> error? If not, could you re-enable only a few (1/4 maybe!) of the addons you had enabled before (the ones from your last test upload today): https://sir.insidi.at/or/logviewer/8sqA6i And then keep on doing this (always 1/4 addons enabled more. But only the same which were enabled as the error happened with https://sir.insidi.at/or/logviewer/8sqA6i)!) until it errors again. So that way we might get closer to the addon or library somehow causing it.
Last edited by Baertram : 06/18/24 at 03:29 PM.
|
|
![]() |
![]() |
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
![]() |
||
Forum posts: 0
File comments: 20
Uploads: 0
|
And I didn't have to go far
0. Closed game client and started from 0 1. Logged in to character #1. No error occured. 2. Logged out from character #1, logged in to character #2. Got an error. Code:
TopLevelControl AddonSelectorddl1 cannot be parented to ZO_ObjectiveCapture, it must be parented to GuiRoot |rstack traceback: [C]: in function 'CreateControlFromVirtual' /EsoUI/Libraries/Globals/GlobalVars.lua:18: in function 'CreateControlFromVirtual' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2139: in function 'dropdownClass:Initialize' /EsoUI/Libraries/Utility/BaseObject.lua:252: in function 'ZO_InitializingObject:New' (tail call): ? user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:2766: in function 'comboBox_base:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3477: in function 'comboBoxClass:Initialize' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:3764: in function 'comboBoxClass:UpdateMetatable' user:/AddOns/LibScrollableMenu/LibScrollableMenu.lua:4152: in function 'AddCustomScrollableComboBoxDropdownMenu' user:/AddOns/AddonSelector/AddonSelector.lua:3576: in function 'AddonSelector.CreateControlReferences' user:/AddOns/AddonSelector/AddonSelector.lua:3999: in function 'AddonSelector.Initialize' user:/AddOns/AddonSelector/AddonSelector.lua:4279: in function 'OnAddOnLoaded'
Last edited by seggert : 06/18/24 at 02:28 PM.
|
|
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
|||||
Forum posts: 0
File comments: 20
Uploads: 0
|
I've had enabled only that pack of addons and libs on start (so, i've also tested ifn't it No, Thank you! that i've called as reason of error some posts back here):
I've uploaded all of my LibDebugLogger.lua file and don't clear it so it contains data before test series was started. So in log u need to use as start poing this entry (and keep in ming that we have different timezones according to your screenshot with badges 1 and 2): ![]() So all starts from reloadUI on character#1 First series was:
![]() --- And 2nd iteration of tests when i'm doing next sequence (i.e. without reloadUI in almost all steps)
![]() and ends somewhere here: ![]()
Last edited by seggert : 06/18/24 at 02:27 PM.
|
||||
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |
||
|
We do not hate things more than bugs that are not reproducable, and even do not occur for most of us (including the 2 devs) ![]() Question: So your test summary is the error popups with any random ZO_* class name as "not parent to ZO_*" after: 1. login with toon1. 2. Enable AdvancedFilters AddonSelector LibScrollableMenu Reloadui 3. Play a bit 4. Logout 5. Switch to toon 2. which got the same 3 addons enabled 6. Login -> Boom error (sometimes only ![]() ? Or did I understand that wrong? I saw it also happened as you logged in with toon1, then logged out and logged in with same toon1 again? ![]() (1) Login with character 1 - No error (2) Login with character 1 again - Error -> Or was your renaming in the LDL files from real characer name to "character1" and "character2" messing this up? Any pattern recognizable there? Thanks again for your help Edit: You may use this beta version of LibScrollableMenu v2.3 just to check if the error still happens with that enabled: I'm pretty sure it will cuz we did not change anything related to that error, but just in case: Feel free to test it and see if that fixes anything. Be warned: It may show you debug messages into chat, but that's normal for beta testing. So it's just about: Is that damn error still there, or not. 1. Logout 2. Delete live/AddOns/LibScrollableMenu 3. Make sure to ONLY extract the "LibScrollableMenu" folder from the zip file here: https://github.com/tomstock1337/eso-LibScrollableMenu/archive/refs/heads/Version_2_3.zip Do not extract the parent folder LibScrollableMenu - master (or similar names)! In the end it must look like this in live/AddOns: /LibScrollableMenu/LibScrollableMenu.txt /LibScrollableMenu/LibScrollableMenu.lua ...
Last edited by Baertram : 06/18/24 at 04:55 AM.
|
|
![]() |
![]() |
Baertram |
View Public Profile |
Send a private message to Baertram |
Find More Posts by Baertram |
Add Baertram to Your Buddy List |
![]() |
|
|
I appreciate the test with CreateControlFromVirtual. I guess, the next simple test would be, to make GuiRoot local. This would secure it as it is when the lib is initially read.
local GuiRoot= GuiRoot For testing, using the same characters. So nothing else needs to be replaced yet. Must be near the top. Maybe around these local tins = table.insert local trem = table.remove |
![]() |
![]() |
IsJustaGhost |
View Public Profile |
Send a private message to IsJustaGhost |
Find More Posts by IsJustaGhost |
Add IsJustaGhost to Your Buddy List |
![]() |
||
Forum posts: 0
File comments: 20
Uploads: 0
|
![]() and have nothing changed... same error with AddonSelector as in logs and no signs of error from AdvancedFilters. No error on first enter on character #1, load my set of addons, /rl then relog to char #2 and load same set of addons and make /rl. After last /rl i've got this old-new-error UPD: after some reloads i'm getting again pack of 180 LUA errors form AdvancedFilters and/or Srendar & AddonSelector with same text "cannot be parented to ZO_Tutorial/ZO_ActiveCombatTips" Looks like for me that sometimes on character load (mostly) instead of correct parent element for creating menus UI puts some built-in objects... like tutor or tips... Errors mostly pops up when changing character in current session, rather then reloading UI (spent a half of hour for try to call errors with simple /rl - no chances till exit game -> enter again -> swap character)...
Last edited by seggert : 06/17/24 at 05:33 PM.
|
|
![]() |
![]() |
seggert |
View Public Profile |
Send a private message to seggert |
Find More Posts by seggert |
Add seggert to Your Buddy List |
![]() |