Skip to content

Commit 60d71b4

Browse files
committed
Warnings will now be restored to previous state, instead of "on".
1 parent 59d794a commit 60d71b4

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

mlapptools.m

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ function fontWeight(uiElement, weight)
9191
end % getWebElements
9292

9393
function [win] = getWebWindow(hUIFig)
94-
mlapptools.toggleWarnings('off')
94+
warnState = mlapptools.toggleWarnings('off');
9595
% Make sure we got a valid handle
9696
assert(mlapptools.isUIFigure(hUIFig),...
9797
'mlapptools:getWebWindow:NotUIFigure',...
@@ -114,19 +114,20 @@ function fontWeight(uiElement, weight)
114114
if strcmp(err.identifier, 'MATLAB:nonExistentField')
115115
pause(0.01)
116116
else
117-
mlapptools.toggleWarnings('on')
117+
warning(warnState); % Restore warning state
118118
rethrow(err)
119119
end
120120
end
121121
end
122-
mlapptools.toggleWarnings('on')
122+
warning(warnState); % Restore warning state
123123

124124
if toc >= to
125125
msgID = 'mlapptools:getWidgetID:QueryTimeout';
126126
error(msgID, ...
127127
'WidgetID query timed out after %u seconds, UI needs more time to load', ...
128128
to);
129129
end
130+
130131
end % getWebWindow
131132

132133
function varargout = getWidgetInfo(hUIFig, verboseFlag)
@@ -269,9 +270,9 @@ function textAlign(uiElement, alignment)
269270
end % emptyStructWithFields
270271

271272
function [data_tag] = getDataTag(uiElement)
272-
mlapptools.toggleWarnings('off')
273+
warnState = mlapptools.toggleWarnings('off');
273274
data_tag = char(struct(uiElement).Controller.ProxyView.PeerNode.getId);
274-
mlapptools.toggleWarnings('on')
275+
warning(warnState);
275276
end % getDataTag
276277

277278
function [widgetID] = getWidgetID(win, data_tag)
@@ -286,15 +287,13 @@ function textAlign(uiElement, alignment)
286287
break
287288
catch err
288289
if ~isempty(strfind(err.message, 'JavaScript error: Uncaught ReferenceError: dojo is not defined')) || ...
289-
~isempty(strfind(err.message, 'Cannot read property ''widgetid'' of null'))
290+
~isempty(strfind(err.message, 'Cannot read property ''widgetid'' of null'))
290291
pause(0.01)
291292
else
292-
mlapptools.toggleWarnings('on')
293293
rethrow(err)
294294
end
295295
end
296296
end
297-
mlapptools.toggleWarnings('on')
298297

299298
if toc >= to
300299
msgID = 'mlapptools:getWidgetID:QueryTimeout';
@@ -314,14 +313,19 @@ function textAlign(uiElement, alignment)
314313
isstruct(struct(x).ControllerInfo), hList);
315314
end
316315

317-
function toggleWarnings(togglestr)
316+
function oldState = toggleWarnings(togglestr)
317+
OJF = 'MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame';
318+
SOO = 'MATLAB:structOnObject';
319+
if nargout > 0
320+
oldState = [warning('query',OJF); warning('query',SOO)];
321+
end
318322
switch lower(togglestr)
319323
case 'on'
320-
warning on MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame
321-
warning on MATLAB:structOnObject
324+
warning('on',OJF);
325+
warning('on',SOO);
322326
case 'off'
323-
warning off MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame
324-
warning off MATLAB:structOnObject
327+
warning('off',OJF);
328+
warning('off',SOO);
325329
otherwise
326330
% Do nothing
327331
end
@@ -385,11 +389,12 @@ function validateAlignmentStr(alignment)
385389
end % validateFontWeight
386390

387391
function hFig = figFromWebwindow(hWebwindow)
392+
% Using this method is discouraged.
388393
hFigs = findall(groot, 'Type', 'figure');
389-
mlapptools.toggleWarnings('off');
394+
warnState = mlapptools.toggleWarnings('off');
390395
hUIFigs = hFigs(arrayfun(@(x)isstruct(struct(x).ControllerInfo), hFigs));
391396
ww = arrayfun(@mlapptools.getWebWindow, hUIFigs);
392-
mlapptools.toggleWarnings('on');
397+
warning(warnState); % Restore warning state
393398
hFig = hFigs(hWebwindow == ww);
394399
end
395400

0 commit comments

Comments
 (0)