Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit 532246b

Browse files
committed
[[ Bug 20070 ]] Add SE preference for showing default handlers
This patch tweaks the Handler menu of the script editor to add Go to handler..., Add default handler... submenus, and a Show default handlers preference toggle.
1 parent ead777e commit 532246b

4 files changed

Lines changed: 99 additions & 26 deletions

File tree

Toolset/palettes/script editor/behaviors/revsehandlerlistbehavior.livecodescript

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ command update
140140
put the result into tHandlers
141141

142142
local tDefaultHandlers, tIndex
143-
put revSEDefaultHandlers() into tDefaultHandlers
143+
if sePrefGet("editor,showDefaultHandlers") then
144+
put revSEDefaultHandlers() into tDefaultHandlers
145+
end if
144146
set the wholematches to false
145147

146148
local tCanAdd
@@ -282,28 +284,30 @@ command jumpToHandler pHandler, pAdded
282284
hideGroup
283285
end jumpToHandler
284286

285-
command closeAccept
286-
lock screen
287-
local tHandler
288-
put line (the hilitedLine of field "Handlers" of me) of the cHandlers of field "Handlers" of me into tHandler
289-
287+
command handlerPicked pHandler
290288
local tAdded
291289
put false into tAdded
292-
if the number of words in tHandler is 1 then
290+
if the number of words in pHandler is 1 then
293291
put true into tAdded
294292
-- Adding a default handler
295-
revSEAddDefaultHandler tHandler
293+
revSEAddDefaultHandler pHandler
296294
update
297295
set the wholematches to false
298296
local tLine
299-
put lineOffset(tHandler, the cHandlers of field "Handlers" of me) into tLine
297+
put lineOffset(pHandler, the cHandlers of field "Handlers" of me) into tLine
300298
select line tLine of field "Handlers" of me
301-
put line tLine of the cHandlers of field "Handlers" of me into tHandler
299+
put line tLine of the cHandlers of field "Handlers" of me into pHandler
302300
end if
303301

304302
-- Select the (now) extant handler
305-
jumpToHandler tHandler, tAdded
306-
303+
jumpToHandler pHandler, tAdded
304+
end handlerPicked
305+
306+
command closeAccept
307+
lock screen
308+
local tHandler
309+
put line (the hilitedLine of field "Handlers" of me) of the cHandlers of field "Handlers" of me into tHandler
310+
handlerPicked tHandler
307311
unlock screen
308312
end closeAccept
309313

Toolset/palettes/script editor/behaviors/revsemenubarbehavior.livecodescript

Lines changed: 67 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -275,18 +275,41 @@ private command buildHandlerMenu pContext
275275

276276
local tFormattedHandlers
277277
repeat for each line tHandler in tHandlers
278-
put word 2 of tHandler & return after tFormattedHandlers
278+
put tab & word 2 of tHandler & return after tFormattedHandlers
279279
end repeat
280280
delete the last char of tFormattedHandlers
281281

282-
if the number of lines of tHandlers = 0 then
283-
put "(No Handlers" into tFormattedHandlers
284-
set the cHandlers of me to empty
282+
local tDefaultHandlers
283+
put revSEDefaultHandlers() into tDefaultHandlers
284+
285+
local tFormattedDefaultHandlers
286+
repeat for each line tHandler in tDefaultHandlers
287+
put tab & tHandler & return after tFormattedDefaultHandlers
288+
end repeat
289+
delete the last char of tFormattedDefaultHandlers
290+
291+
local tShowDefaultHandlers
292+
dispatch function "sePrefGet" to me with "editor,showDefaultHandlers"
293+
put the result into tShowDefaultHandlers
294+
295+
local tMenu
296+
if tHandlers is not empty then
297+
put enableMenuItem("Go to handler...", true) into tMenu
298+
put return & tFormattedHandlers after tMenu
285299
else
286-
set the cHandlers of me to tHandlers
300+
put enableMenuItem("Go to handler...", false) into tMenu
287301
end if
302+
if tDefaultHandlers is not empty then
303+
put return & enableMenuItem("Add default handler...", true) after tMenu
304+
put return & tFormattedDefaultHandlers after tMenu
305+
else
306+
put return & enableMenuItem("Add default handler...", false) after tMenu
307+
end if
308+
put return & toggleMenuItem("Show default handlers", tShowDefaultHandlers) after tMenu
309+
310+
set the cHandlers of me to tHandlers
288311

289-
set the text of button "Handler" of me to modifyMenu("Handler", tFormattedHandlers)
312+
set the text of button "Handler" of me to modifyMenu("Handler", tMenu)
290313
end buildHandlerMenu
291314

292315
on menuPick pItemName
@@ -321,15 +344,31 @@ private command handleHandlerMenuPick pItemName
321344
exit handleHandlerMenuPick
322345
end if
323346

324-
local tLineNumber
325-
put the menuHistory of button "Handler" of me into tLineNumber
326-
327-
local tHandler
328-
put line tLineNumber of the cHandlers of me into tHandler
347+
set the itemdelimiter to "|"
348+
switch item 1 of pItemName
349+
case "Go to handler..."
350+
local tPick, tHandlerInfo
351+
put item 2 of pItemName into tPick
352+
if not matchText(the cHandlers of me, "(.* " & tPick & " .*)", \
353+
tHandlerInfo) then
354+
exit handleHandlerMenuPick
355+
end if
356+
357+
dispatch "handlerPicked" to group "Left Handler List" \
358+
with tHandlerInfo
359+
break
360+
case "Add default handler..."
361+
dispatch "handlerPicked" to group "Left Handler List" \
362+
with item 2 of pItemName
363+
break
364+
case "Show default handlers"
365+
local tShowDefaultHandlers
366+
dispatch function "sePrefGet" to me with "editor,showDefaultHandlers"
367+
put the result into tShowDefaultHandlers
368+
dispatch "sePrefSet" to me with "editor,showDefaultHandlers", not tShowDefaultHandlers
369+
break
370+
end switch
329371

330-
local tScriptLineNumber
331-
put word 3 of tHandler into tScriptLineNumber
332-
send "goLine tScriptLineNumber, true" to group "Editor"
333372
seUpdateLeftBar
334373
seUpdateToolbar
335374
end handleHandlerMenuPick
@@ -511,6 +550,20 @@ end handleHelpMenuPick
511550

512551
#########
513552

553+
private function toggleMenuItem pItem, pHilited
554+
if pHilited then
555+
return "!c" & pItem
556+
end if
557+
return "!n" & pItem
558+
end toggleMenuItem
559+
560+
private function enableMenuItem pItem, pEnabled
561+
if pEnabled then
562+
return pItem
563+
end if
564+
return "(" & pItem
565+
end enableMenuItem
566+
514567
private function modifyMenu pMenuName, pMenu
515568
if the last char of pMenu is not return then
516569
put return after pMenu

Toolset/palettes/script editor/behaviors/revseutilities.livecodescript

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,8 @@ command sePrefGetDefaults
659659

660660
put 7 into tPrefs["print,textSize"]
661661

662+
put true into tPrefs["editor,showDefaultHandlers"]
663+
662664
return tPrefs
663665
end sePrefGetDefaults
664666

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Script editor handler menu
2+
The Handler menu of the script editor menubar has been modified
3+
in accordance with the default handler changes to the script
4+
editor handler list. It now has the following structure:
5+
6+
Go to handler...
7+
-> list of extant handlers
8+
Add default handler...
9+
-> list of default handlers
10+
Show default handlers
11+
12+
The show default handlers menu item toggles the script editor
13+
preference to show the default handler list, which defaults
14+
to true.

0 commit comments

Comments
 (0)