Skip to content

Commit 8dca9f6

Browse files
author
Matthias Kastner
committed
fullName as source for procedure and module name
fullName is stored as userdata in the procedure list dropdown box. It is the only reliable source for deriving module and procedure name since module can be "<ALL>". The selected procedure now defines the module.
1 parent 6ee4532 commit 8dca9f6

File tree

2 files changed

+53
-31
lines changed

2 files changed

+53
-31
lines changed

procedures/CodeBrowser.ipf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -993,9 +993,9 @@ Function updateListBoxHook()
993993
Wave/I lines = getLineWave()
994994

995995
// get procedure information
996-
procedure.name = getCurrentItem(procedureWithoutModule = 1)
997-
procedure.module = getCurrentItem(module = 1)
998-
procedure.fullName = getCurrentItem(procedure = 1) // remove this if maclist is removed
996+
procedure.fullName = getCurrentItem(procedure = 1)
997+
procedure.name = ProcedureWithoutModule(procedure.fullName)
998+
procedure.module = ModuleWithoutProcedure(procedure.fullName)
999999
procedure.id = procedure.module + "#" + procedure.name
10001000
procedure.row = getSaveRow(procedure.id)
10011001

procedures/CodeBrowser_gui.ipf

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -230,27 +230,26 @@ Function isInitialized()
230230
return getGlobalVar("initialized") == 1
231231
End
232232

233-
// Returns the currently selected item from the panel defined by the optional arguments.
234-
// Exactly one optional argument must be given.
235-
//
236-
// @param module: Module from ProcGlobal/Independent Module list
237-
// @param procedure: "myProcedure.ipf [moduleName]"
238-
// @param procedureWithModule: "myProcedure.ipf"
239-
// @param index: Zero-based index into main listbox
240-
//
241-
// @returns the currently selected item
242-
Function/S getCurrentItem([module, procedure, procedureWithoutModule, index])
243-
variable module, procedureWithoutModule, procedure, index
244-
245-
string procName
246-
247-
module = ParamIsDefault(module) ? 0 : 1
248-
procedureWithoutModule = ParamIsDefault(procedureWithoutModule) ? 0 : 1
249-
procedure = ParamIsDefault(procedure) ? 0 : 1
250-
index = ParamIsDefault(index) ? 0 : 1
233+
/// Returns the currently selected item from the panel defined by the optional arguments.
234+
///
235+
/// Exactly one optional argument must be given.
236+
///
237+
/// @param module [optional] Module from ProcGlobal/Independent Module list
238+
/// @param procedure [optional] "myProcedure.ipf [moduleName]"
239+
/// @param index [optional] Zero-based index into main listbox
240+
///
241+
/// @returns the currently selected item
242+
Function/S getCurrentItem([module, procedure, index])
243+
variable module, procedure, index
244+
245+
string procName, rawList
246+
247+
module = ParamIsDefault(module) ? 0 : 1
248+
procedure = ParamIsDefault(procedure) ? 0 : 1
249+
index = ParamIsDefault(index) ? 0 : 1
251250

252251
// only one optional argument allowed
253-
if(module + procedure + procedureWithoutModule + index != 1)
252+
if(module + procedure + index != 1)
254253
return "_error_"
255254
endif
256255

@@ -266,28 +265,51 @@ Function/S getCurrentItem([module, procedure, procedureWithoutModule, index])
266265
if(V_Value >= 0)
267266
return num2str(V_Value)
268267
endif
269-
elseif(procedure || procedureWithoutModule)
270-
268+
elseif(procedure)
271269
ControlInfo/W=$panel $procCtrl
272270
V_Value -= 1 // 1-based index
273-
string rawList = GetUserData(panel,procCtrl,userDataRawList)
274271

272+
rawList = GetUserData(panel, procCtrl, userDataRawList)
275273
if(V_Value < 0 || V_Value >= ItemsInList(rawList))
276274
return "_error_"
277275
endif
278276

279-
procName = StringFromList(V_Value,rawList)
280-
281-
if(procedureWithoutModule)
282-
return RemoveEverythingAfter(procName," [")
283-
endif
284-
277+
procName = StringFromList(V_Value, rawList)
285278
return procName
286279
endif
287280

288281
return "_error_"
289282
End
290283

284+
/// Get the basic procedure name from a full procedure name
285+
///
286+
/// @param fullName "myProcedure.ipf [moduleName]"
287+
///
288+
/// @returns myProcedure.ipf without module definition
289+
Function/S ProcedureWithoutModule(fullName)
290+
string fullName
291+
292+
return RemoveEverythingAfter(fullName, " [")
293+
End
294+
295+
/// Get the module name from a full procedure name
296+
///
297+
/// @param fullName "myProcedure.ipf [moduleName]"
298+
///
299+
/// @returns moduleName without procedure specification
300+
Function/S ModuleWithoutProcedure(fullName)
301+
string fullName
302+
303+
string module, procedure
304+
305+
SplitString/E="(.*)\ \[(\w+)\]" fullName, procedure, module
306+
if(V_flag != 2)
307+
return ""
308+
endif
309+
310+
return module
311+
End
312+
291313
// Returns the currently selected item from the panel defined by the optional arguments.
292314
// Argument is returned as number in current list
293315
// Exactly one optional argument must be given.

0 commit comments

Comments
 (0)