New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various Improvements & Changes to cp.ui #3000
base: develop
Are you sure you want to change the base?
Conversation
@randomeizer - I've just done some quick testing:
2022-08-13 22:33:45: 22:33:45 ERROR: LuaSkin: hs.chooser:completionCallback: ...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:223: method 'attributeValue' is not callable (a nil value)
stack traceback:
...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:223: in method 'selectedClipsUI'
...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:244: in function <...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:243>
(...tail calls...)
...xtensions/cp/apple/finalcutpro/main/LibrariesBrowser.lua:621: in method 'saveLayout'
...ost/src/extensions/cp/apple/finalcutpro/main/Browser.lua:390: in method 'saveLayout'
...mandPost/src/plugins/finalcutpro/timeline/generators.lua:162: in field 'apply'
...dPost/src/plugins/finalcutpro/timeline/pluginactions.lua:108: in field '_onExecute'
.../CommandPost/src/plugins/core/action/manager/handler.lua:224: in method 'execute'
...ommandPost/src/plugins/core/action/manager/activator.lua:1507: in field '_onActivate'
...ommandPost/src/plugins/core/action/manager/activator.lua:1533: in method 'activate'
...ommandPost/src/plugins/core/action/manager/activator.lua:1168: in function <...ommandPost/src/plugins/core/action/manager/activator.lua:1163> Looking at this code: function LibrariesFilmstrip:selectedClipsUI()
local ui = self.contentsUI()
if ui then
log.df("ui: %s", hs.inspect(ui))
local children = ui:attributeValue("AXSelectedChildren")
local clips = {}
for i,child in ipairs(children) do
clips[i] = child
end
table.sort(clips, LibrariesFilmstrip.sortClips)
return clips
end
return nil
end ...it seems that 2022-08-13 22:39:43: 22:39:43 LibrariesF: ui: { <userdata 1> -- hs.axuielement: AXGroup (0x60000b860f38) }
2022-08-13 22:34:37: 22:34:37 ERROR: LuaSkin: hs.chooser:completionCallback: ...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:223: method 'attributeValue' is not callable (a nil value)
stack traceback:
...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:223: in method 'selectedClipsUI'
...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:244: in function <...ensions/cp/apple/finalcutpro/main/LibrariesFilmstrip.lua:243>
(...tail calls...)
...xtensions/cp/apple/finalcutpro/main/LibrariesBrowser.lua:621: in method 'saveLayout'
...ost/src/extensions/cp/apple/finalcutpro/main/Browser.lua:390: in method 'saveLayout'
.../CommandPost/src/plugins/finalcutpro/timeline/titles.lua:164: in field 'apply'
...dPost/src/plugins/finalcutpro/timeline/pluginactions.lua:108: in field '_onExecute'
.../CommandPost/src/plugins/core/action/manager/handler.lua:224: in method 'execute'
...ommandPost/src/plugins/core/action/manager/activator.lua:1507: in field '_onActivate'
...ommandPost/src/plugins/core/action/manager/activator.lua:1533: in method 'activate'
...ommandPost/src/plugins/core/action/manager/activator.lua:1168: in function <...ommandPost/src/plugins/core/action/manager/activator.lua:1163> Another random error message that came when switching between apps: 2022-08-13 22:44:32: 22:44:32 ERROR: LuaSkin: hs.timer callback error: ...ents/GitHub/CommandPost/src/extensions/cp/ui/axutils.lua:188: invalid order function for sorting
stack traceback:
[C]: in function 'table.sort'
...ents/GitHub/CommandPost/src/extensions/cp/ui/axutils.lua:188: in function 'cp.ui.axutils.children'
...t/src/extensions/cp/apple/finalcutpro/viewer/InfoBar.lua:34: in field 'matches'
...st/src/extensions/cp/apple/finalcutpro/viewer/Viewer.lua:115: in local 'verifyFn'
...ents/GitHub/CommandPost/src/extensions/cp/ui/axutils.lua:671: in upvalue 'isInvalid'
...ents/GitHub/CommandPost/src/extensions/cp/ui/axutils.lua:697: in function 'cp.ui.axutils.cache'
(...tail calls...)
...ments/GitHub/CommandPost/src/extensions/cp/prop/init.lua:509: in function <...ments/GitHub/CommandPost/src/extensions/cp/prop/init.lua:506>
(...tail calls...)
...st/src/extensions/cp/apple/finalcutpro/viewer/Viewer.lua:247: in upvalue 'getFn'
...ments/GitHub/CommandPost/src/extensions/cp/prop/init.lua:992: in field '_get'
...ments/GitHub/CommandPost/src/extensions/cp/prop/init.lua:509: in method 'get'
...ments/GitHub/CommandPost/src/extensions/cp/prop/init.lua:879: in method 'update'
...st/src/extensions/cp/apple/finalcutpro/viewer/Viewer.lua:177: in local 'action'
...s/GitHub/CommandPost/src/extensions/cp/deferred/init.lua:51: in function <...s/GitHub/CommandPost/src/extensions/cp/deferred/init.lua:49> |
I have no idea what's going on with double clicks on my machine. CommandPost aside, I can't even get double clicks to work in Hammerspoon with this: function doubleClick()
hs.timer.doAfter(1, function()
local mouse = require "hs.mouse"
local eventtap = require "hs.eventtap"
local event = eventtap.event
local doubleClickInterval = eventtap.doubleClickInterval()
local absolutePosition = mouse.absolutePosition()
--print("left click")
--event.newMouseEvent(event.types.leftMouseDown, absolutePosition, {}):post()
--event.newMouseEvent(event.types.leftMouseUp, absolutePosition, {}):post()
--hs.timer.usleep(doubleClickInterval * 1000000)
--print("left click")
--event.newMouseEvent(event.types.leftMouseDown, absolutePosition, {}):post()
--event.newMouseEvent(event.types.leftMouseUp, absolutePosition, {}):post()
print("left click")
hs.eventtap.leftClick(absolutePosition)
hs.timer.usleep(doubleClickInterval * 1000000)
print("left click")
hs.eventtap.leftClick(absolutePosition)
end)
end
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "q", doubleClick) However, this works: function doubleLeftClick()
local point = hs.mouse.absolutePosition()
local clickState = hs.eventtap.event.properties.mouseEventClickState
print("click")
hs.eventtap.event.newMouseEvent(hs.eventtap.event.types["leftMouseDown"], point):setProperty(clickState, 1):post()
hs.eventtap.event.newMouseEvent(hs.eventtap.event.types["leftMouseUp"], point):setProperty(clickState, 1):post()
hs.timer.usleep(1000)
print("click")
hs.eventtap.event.newMouseEvent(hs.eventtap.event.types["leftMouseDown"], point):setProperty(clickState, 2):post()
hs.eventtap.event.newMouseEvent(hs.eventtap.event.types["leftMouseUp"], point):setProperty(clickState, 2):post()
end
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "q", doubleLeftClick) ...but if I try and put that exact code in CommandPost, it doesn't. I assume it's some strange timing issue, or maybe some other eventtap from another third party app that's messing with things - I did install Avid Media Composer on this machine after all, haha. MacBook Pro (16-inch, 2021) - Apple M1 Max I'll try the latest CommandPost release on my Intel. |
Ummm, latest CommandPost public release isn't applying Effects on my Intel either. I do also have Avid installed there. Weird. |
For whatever reason, as of today (18th August 2022) double click is working fine on my M1. As far as I can tell nothing has changed. I can only assume iCloud was trying to get me. |
Lets tackle this one first... Highlight Browser Playhead no longer works. > cp.apple.finalcutpro.libraries.filmstrip:isShowing()
true
> hs.inspect(cp.apple.finalcutpro.libraries.filmstrip:contentsUI())
{ <userdata 1> -- hs.axuielement: AXGroup (0x600019f25ef8) }
> cp.apple.finalcutpro.libraries.filmstrip:playhead():UI()
nil
> cp.apple.finalcutpro.libraries.filmstrip:skimmingPlayhead():UI()
nil
> cp.apple.finalcutpro.libraries.filmstrip.contentsUI
contentsUI: table: 0x60001916eec0 I think the issue is that Probably related to: #3062 |
* Improved "duration" processing for timelines, adding a `Duration` class with `total` and `selection` properties. * Added `duration` to the Timeline directly (via the toolbar) * Made `Timeline.isRangeSelected` a live property. * Other `cp.ui` improvements.
…into play/improve-ui
Pushed fixes for Titles, give it a run. Also, for me Highlight Browser Playhead seems to be working. |
* Added `clipName` alias for Compound/Multicam/Synchronized clips.
Highlight playhead is still not working for me. Here's my layout: Looks like same issues as my earlier post: > cp.apple.finalcutpro.libraries.filmstrip:isShowing()
true
> hs.inspect(cp.apple.finalcutpro.libraries.filmstrip:contentsUI())
2023-01-25 20:28:15: -- Loading extension: hs.inspect
{ <userdata 1> -- hs.axuielement: AXGroup (0x60000949beb8) }
> cp.apple.finalcutpro.libraries.filmstrip:playhead():UI()
nil
> cp.apple.finalcutpro.libraries.filmstrip:skimmingPlayhead():UI()
nil
> cp.apple.finalcutpro.libraries.filmstrip.contentsUI
contentsUI: table: 0x6000094e2840 |
Works in list mode though: > cp.apple.finalcutpro.libraries.filmstrip:isShowing()
false
> cp.apple.finalcutpro.libraries.list:isShowing()
true
> hs.inspect(cp.apple.finalcutpro.libraries.filmstrip:contentsUI())
nil
> hs.inspect(cp.apple.finalcutpro.libraries.list:contentsUI())
[string "return hs.inspect(cp.apple.finalcutpro.librar..."]:1: method 'contentsUI' is not callable (a nil value)
stack traceback:
[string "return hs.inspect(cp.apple.finalcutpro.librar..."]:1: in main chunk
[C]: in function 'xpcall'
...ents/GitHub/CommandPost/src/extensions/hs/_coresetup.lua:546: in function <...ents/GitHub/CommandPost/src/extensions/hs/_coresetup.lua:522>
> cp.apple.finalcutpro.libraries.list:playhead():UI()
hs.axuielement: AXValueIndicator (0x6000097e2db8)
> cp.apple.finalcutpro.libraries.list:skimmingPlayhead():UI()
hs.axuielement: AXValueIndicator (0x6000116100b8)
> cp.apple.finalcutpro.libraries.list.contentsUI
nil |
This is something to also keep in mind and test before we eventually merge this pull request: It seems like |
Do not merge yet - does not currently work as-is.