From 535651f101bfab2f58148be3941019e6c6d33de3 Mon Sep 17 00:00:00 2001 From: Robyn Jackey Date: Fri, 1 May 2026 08:46:57 -0400 Subject: [PATCH 1/4] add new utilities --- .../Aw-QXDuRpGVd1p-84rizw-iIl44d.xml | 6 + .../Aw-QXDuRpGVd1p-84rizw-iIl44p.xml | 2 + .../S_qe5JCPPB1S-plmor2vz7vQdBEd.xml | 6 + .../S_qe5JCPPB1S-plmor2vz7vQdBEp.xml | 2 + .../pGAMgb1o0J4gneB4Sk-gPhVUa8Ad.xml | 6 + .../pGAMgb1o0J4gneB4Sk-gPhVUa8Ap.xml | 2 + widgets/+wt/+utility/incrementVersionNumber.m | 34 ++++++ widgets/+wt/+utility/readVersionNumber.m | 26 ++++ widgets/+wt/+utility/resolveFilePath.m | 115 ++++++++++++++++++ 9 files changed, 199 insertions(+) create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44d.xml create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44p.xml create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEd.xml create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEp.xml create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ad.xml create mode 100644 resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ap.xml create mode 100644 widgets/+wt/+utility/incrementVersionNumber.m create mode 100644 widgets/+wt/+utility/readVersionNumber.m create mode 100644 widgets/+wt/+utility/resolveFilePath.m diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44d.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44d.xml new file mode 100644 index 00000000..99772b42 --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44d.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44p.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44p.xml new file mode 100644 index 00000000..7b469d7f --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/Aw-QXDuRpGVd1p-84rizw-iIl44p.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEd.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEd.xml new file mode 100644 index 00000000..99772b42 --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEd.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEp.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEp.xml new file mode 100644 index 00000000..3ef2ea56 --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/S_qe5JCPPB1S-plmor2vz7vQdBEp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ad.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ad.xml new file mode 100644 index 00000000..99772b42 --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ad.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ap.xml b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ap.xml new file mode 100644 index 00000000..69044d8a --- /dev/null +++ b/resources/project/LwJcy9ZaEyJvuNK-ApM3PZoS5oo/pGAMgb1o0J4gneB4Sk-gPhVUa8Ap.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/widgets/+wt/+utility/incrementVersionNumber.m b/widgets/+wt/+utility/incrementVersionNumber.m new file mode 100644 index 00000000..a7e4ab60 --- /dev/null +++ b/widgets/+wt/+utility/incrementVersionNumber.m @@ -0,0 +1,34 @@ +function versionStr = incrementVersionNumber(filePath) +% Increments the last decimal of the version number +% +% Version file should be .txt and only contain a multi-part version with at +% least 2 parts. +% Valid version.txt Examples: +% 2.4 +% 1.0.3 +% 1.3.9.2019 + +arguments (Input) + filePath (1,1) string {mustBeFile} +end + +arguments (Output) + versionStr (1,1) string +end + +% Read in the version info +[~, versionParts] = advappa.utility.readVersionNumber(filePath); + +% Increment the build index in the version number +numVersionParts = numel(versionParts); +if numVersionParts < 2 + versionParts(2) = uint32(1); +else + versionParts(end) = versionParts(end) + uint32(1); +end + +% Format as string +versionStr = join(string(versionParts),"."); + +% Update the version file +writelines(versionStr, filePath); \ No newline at end of file diff --git a/widgets/+wt/+utility/readVersionNumber.m b/widgets/+wt/+utility/readVersionNumber.m new file mode 100644 index 00000000..2e2106fe --- /dev/null +++ b/widgets/+wt/+utility/readVersionNumber.m @@ -0,0 +1,26 @@ +function [versionStr, versionParts] = readVersionNumber(filePath) +% Retrieves the version number +% +% Version file should be .txt and only contain a multi-part version with at +% least 2 parts. +% Valid version.txt Examples: +% 2.4 +% 1.0.3 +% 1.3.9.2019 + +arguments (Input) + filePath (1,1) string {mustBeFile} +end + +arguments (Output) + versionStr (1,1) string + versionParts (1,:) uint32 {mustBeNonempty} +end + +% Read in the version parts +versionParts = readmatrix(filePath,... + "Delimiter",".",... + "OutputType","uint32"); + +% Format as string +versionStr = join(string(versionParts),"."); \ No newline at end of file diff --git a/widgets/+wt/+utility/resolveFilePath.m b/widgets/+wt/+utility/resolveFilePath.m new file mode 100644 index 00000000..0a71b985 --- /dev/null +++ b/widgets/+wt/+utility/resolveFilePath.m @@ -0,0 +1,115 @@ +function filePath = resolveFilePath(fileName) +% Searches for a valid path to the specified file name +% +% Order of priority: +% 1. Full path provided +% 2. If deployed, installation folder of the application +% (e.g. C:\Program Files\...) +% 3. Folder of the calling function, or the first non-namespace folder +% (@/+) up from the calling function's folder. +% 4. MATLAB path (via "which" command) + +arguments + fileName (1,1) string +end + +% Default output +filePath = ""; %#ok + + +%% Check if a full path was provided already +if strlength( fileparts(fileName) ) > 0 + + % If a full path was provided, and it is valid, just use it + if isfile(fileName) + + filePath = fileName; + return + + else + + % Throw a warning + id = "resolvePathFromFileName:BadPath"; + msg = "File was provided with a path that does not exist: %s"; + warning(id, msg, fileName); + + % Return the input as-is + filePath = fileName; + + return + end + +end %if + + +%% If deployed, next look in the installation folder +if isdeployed + + % The install folder will be where the executable runs from + [~, systemPath] = system('set PATH'); + installPath = extractBetween(string(systemPath), "Path=", ";"); + + % Check for the file there + testPath = fullfile(installPath, fileName); + if isfile(testPath) + filePath = testPath; + return + end + +end %if + + +%% Next, look at the folder containing the calling function + +% Get the calling function +stackInfo = dbstack(1,"-completenames"); +if ~isempty(stackInfo) + + callingFcn = stackInfo(1).file; + folderPath = fileparts(callingFcn); + + % Check for the file in the same folder with calling fcn + testPath = fullfile(folderPath, fileName); + if isfile(testPath) + filePath = testPath; + return + end + + % If not found, walk up the folder hierarchy for a normal folder + % (not a + or @ folder) + % Walk up the folder hierarchy + [~, leafFolder] = fileparts(folderPath); + while strlength(leafFolder) && startsWith(leafFolder, {'+', '@'}) + [folderPath, ~] = fileparts(folderPath); + [~, leafFolder] = fileparts(folderPath); + end + + % Check for the file in the top folder found + testPath = fullfile(folderPath, fileName); + if isfile(testPath) + filePath = testPath; + return + end + +end %if + + +%% Finally, check the MATLAB path +if isfile(fileName) + + % Use WHICH to locate the file + filePath = which(fileName); + return + +else + + % Unable to find the file. Throw a warning. + id = "resolvePathFromFileName:NotFound"; + msg = "File not found or does not exist: %s"; + warning(id, msg, fileName); + + % Return the original path + filePath = fileName; + return + +end %if From 02f903cb2e3b7c0fc92c1daf31e9cb7f2ec244ef Mon Sep 17 00:00:00 2001 From: Robyn Jackey Date: Fri, 1 May 2026 08:48:02 -0400 Subject: [PATCH 2/4] add new icon loading_128.gif --- .../RmvW7wqbCzY4lm1VfEh1ltf0QQMd.xml | 2 ++ .../RmvW7wqbCzY4lm1VfEh1ltf0QQMp.xml | 2 ++ widgets/icons/loading_128.gif | Bin 0 -> 34274 bytes 3 files changed, 4 insertions(+) create mode 100644 resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMd.xml create mode 100644 resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMp.xml create mode 100644 widgets/icons/loading_128.gif diff --git a/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMd.xml b/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMd.xml new file mode 100644 index 00000000..4356a6ae --- /dev/null +++ b/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMd.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMp.xml b/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMp.xml new file mode 100644 index 00000000..0d8f8116 --- /dev/null +++ b/resources/project/NdsL0Nh4wtc5dxoI0TU1uVF-B00/RmvW7wqbCzY4lm1VfEh1ltf0QQMp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/widgets/icons/loading_128.gif b/widgets/icons/loading_128.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ed92453e4609b3d8e11a36f2d4784cd429544dd GIT binary patch literal 34274 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 G`2PZG+qIhj literal 0 HcmV?d00001 From cbcb7e5c9800ad22334dba855ead1f0ba96b8685 Mon Sep 17 00:00:00 2001 From: Robyn Jackey Date: Fri, 1 May 2026 08:59:35 -0400 Subject: [PATCH 3/4] added copyright statements --- widgets/+wt/+utility/incrementVersionNumber.m | 2 ++ widgets/+wt/+utility/readVersionNumber.m | 2 ++ widgets/+wt/+utility/resolveFilePath.m | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/widgets/+wt/+utility/incrementVersionNumber.m b/widgets/+wt/+utility/incrementVersionNumber.m index a7e4ab60..21c07fd2 100644 --- a/widgets/+wt/+utility/incrementVersionNumber.m +++ b/widgets/+wt/+utility/incrementVersionNumber.m @@ -8,6 +8,8 @@ % 1.0.3 % 1.3.9.2019 +% Copyright 2026 The MathWorks Inc. + arguments (Input) filePath (1,1) string {mustBeFile} end diff --git a/widgets/+wt/+utility/readVersionNumber.m b/widgets/+wt/+utility/readVersionNumber.m index 2e2106fe..4cb00e03 100644 --- a/widgets/+wt/+utility/readVersionNumber.m +++ b/widgets/+wt/+utility/readVersionNumber.m @@ -8,6 +8,8 @@ % 1.0.3 % 1.3.9.2019 +% Copyright 2026 The MathWorks Inc. + arguments (Input) filePath (1,1) string {mustBeFile} end diff --git a/widgets/+wt/+utility/resolveFilePath.m b/widgets/+wt/+utility/resolveFilePath.m index 0a71b985..b344feb4 100644 --- a/widgets/+wt/+utility/resolveFilePath.m +++ b/widgets/+wt/+utility/resolveFilePath.m @@ -3,12 +3,14 @@ % % Order of priority: % 1. Full path provided -% 2. If deployed, installation folder of the application +% 2. If deployed, installation folder of the application % (e.g. C:\Program Files\...) % 3. Folder of the calling function, or the first non-namespace folder % (@/+) up from the calling function's folder. % 4. MATLAB path (via "which" command) +% Copyright 2026 The MathWorks Inc. + arguments fileName (1,1) string end From d44a15bfcfaf5b3357a95841e4db374adcb6dc32 Mon Sep 17 00:00:00 2001 From: Robyn Jackey Date: Fri, 1 May 2026 14:29:52 -0400 Subject: [PATCH 4/4] bugfix to utility incrementVersionNumber --- widgets/+wt/+utility/incrementVersionNumber.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/+wt/+utility/incrementVersionNumber.m b/widgets/+wt/+utility/incrementVersionNumber.m index 21c07fd2..c967a3f6 100644 --- a/widgets/+wt/+utility/incrementVersionNumber.m +++ b/widgets/+wt/+utility/incrementVersionNumber.m @@ -19,7 +19,7 @@ end % Read in the version info -[~, versionParts] = advappa.utility.readVersionNumber(filePath); +[~, versionParts] = wt.utility.readVersionNumber(filePath); % Increment the build index in the version number numVersionParts = numel(versionParts);