LDraw.org Discussion Forums
AIOI 2019-03 Release candidate ready for testing - Printable Version

+- LDraw.org Discussion Forums (https://forums.ldraw.org)
+-- Forum: LDraw Programs (https://forums.ldraw.org/forum-7.html)
+--- Forum: All Other Programs. (https://forums.ldraw.org/forum-26.html)
+--- Thread: AIOI 2019-03 Release candidate ready for testing (/thread-23872.html)



AIOI 2019-03 Release candidate ready for testing - Willy Tschager - 2020-02-02

Hi,

The release candidate of the AIOI 2019-03 can be downloaded here:

http://www.holly-wood.it/tmp/LDraw_AIOI_2019-03_setup_32bit_v1.exe

Change log:

* Update to Parts Library 2019-03
* Update to MLCad.ini 2019-03
* Update to LPub3D 2.3.133.1624
* Update to LeoCAD 19.07
* Update to Offline Parts Catalog 2019-03

Your testing would be appreciated.

w.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-02

Can I opt out of installing LDView? I have a development version installed now and don't want to overwrite it. Normally the AIOI forces you to install LDView.


RE: AIOI 2019-03 Release candidate ready for testing - Willy Tschager - 2020-02-02

(2020-02-02, 19:43)Michael Horvath Wrote: Can I opt out of installing LDView? I have a development version installed now and don't want to overwrite it. Normally the AIOI forces you to install LDView.

No, the filetypes are registered to LDView and a lot of other things.

w.


RE: AIOI 2019-03 Release candidate ready for testing - Orion Pobursky - 2020-02-03

(2020-02-02, 19:59)Willy Tschager Wrote: No, the filetypes are registered to LDView and a lot of other things.

w.

And really the AIOI is intended to get you started. Once you use it, you should be upgrading the individual components.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-04

(2020-02-03, 2:13)Orion Pobursky Wrote: And really the AIOI is intended to get you started. Once you use it, you should be upgrading the individual components.

Will the AIOI uninstaller still work properly after I upgrade each component? I don't want leftover files or registry entries if something gets borked.


RE: AIOI 2019-03 Release candidate ready for testing - Willy Tschager - 2020-02-04

(2020-02-04, 7:28)Michael Horvath Wrote: Will the AIOI uninstaller still work properly after I upgrade each component? I don't want leftover files or registry entries if something gets borked.

This is the Pre Uninstaller Script:

Code:
if (System.Is64BitOS()) then

    -- Checks to see if LDViewThumbs.dll and LDViewThumbs64.dll exists.
    sLDViewThumbsPath = SessionVar.Expand ("%AppFolder%\\LDraw\\LDView\\LDViewThumbs.dll");
    sLDViewThumbs64Path = SessionVar.Expand("%AppFolder%\\LDraw\\LDView\\LDViewThumbs64.dll");
    
    local sToggle = "/u /s ";
    
    local sArguments = String.Concat(sToggle, '"' .. sLDViewThumbsPath .. '"');
    local sArguments64 = String.Concat(sToggle, '"' .. sLDViewThumbs64Path .. '"');
    
    bLDViewThumbsExists = File.DoesExist(sLDViewThumbsPath);
    bLDViewThumbs64Exists = File.DoesExist(sLDViewThumbs64Path);
    
    
        -- If LDViewThumbs.dll does exist, unregister it
        if bLDViewThumbsExists then
            Shell.Execute(_WindowsFolder .. "\\SysWOW64\\regsvr32.exe", "open", sArguments, "", SW_SHOWNORMAL, true);
            SetupData.WriteToLogFile("Unregistered LDViewThumbs.dll", true);
            
            -- If an error occurred, display the error message.
            error = Application.GetLastError();
            
            if (error ~= 0) then
                Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
                local sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
                SetupData.WriteToLogFile(sMessage, false);
            end
        end
        
        
        -- If the file does exist, unregister it
        if bLDViewThumbs64Exists then
            Shell.Execute(_SystemFolder .."\\regsvr32.exe", "open", sArguments64, "", SW_SHOWNORMAL, true);
            SetupData.WriteToLogFile("Unregistered LDViewThumbs64.dll", true);
            
            -- If an error occurred, display the error message.
            error = Application.GetLastError();
            
            if (error ~= 0) then
                Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
                local sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
                SetupData.WriteToLogFile(sMessage, false);
            end
        end
    else
    -- The user's system is running a 32 bit operating system.
    
        -- If LDViewThumbs.dll does exist, un register it
        if bLDViewThumbsExists then
            Shell.Execute(_SystemFolder .. "\\regsvr32.exe", "open", sArguments, "", SW_SHOWNORMAL, false);
            SetupData.WriteToLogFile("Unregistered LDViewThumbs.dll", true);
            
            -- If an error occurred, display the error message.
            error = Application.GetLastError();
            
            if (error ~= 0) then
                Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
                local sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
                SetupData.WriteToLogFile(sMessage, false);
            end
        end
end

This is the Post Uninstaller Script

Code:
-- Delete shortcuts in LDraw shortcut folder
sShortcutFolderPath = SetupData.GetAppShortcutFolderPath();
Folder.DeleteTree(sShortcutFolderPath, nil);

-- Check to see if any error occurred.
local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted LDraw shortcuts tree\r\n", false);
    end

-- Delete the registry value for the LDRAWDIR system variable
    Registry.DeleteValue(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", "LDRAWDIR");

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Delete the registry value for the LDRAWDIR system variable\r\n", false);
    end



-- Delete all registry keys for MLCad if MLCad keys exist
sMLCadRegistryExists = Registry.DoesKeyExist(HKEY_CURRENT_USER, "Software\\Lachmann");

if (sMLCadRegistryExists == true) then
    Registry.DeleteKey(HKEY_CURRENT_USER, "Software\\Lachmann");

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted all registry keys for MLCad if MLCad keys existed\r\n", false);
    end
end


-- Delete all registry keys for LeoCAD if LeoCAD keys exist
sLeoCADRegistryExists = Registry.DoesKeyExist(HKEY_CURRENT_USER, "Software\\LeoCAD Software");

if (sLeoCADRegistryExists == true) then
    Registry.DeleteKey(HKEY_CURRENT_USER, "Software\\LeoCAD Software");

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted all registry keys for LeoCAD if LeoCAD keys existed\r\n", false);
    end
end


-- Delete all registry keys for LDView if LDView keys exist
sLDViewRegistryExists = Registry.DoesKeyExist(HKEY_CURRENT_USER, "Software\\Travis Cobbs");

if (sLDViewRegistryExists == true) then
    
    -- Delete all registry keys for LDView
    Registry.DeleteKey(HKEY_CURRENT_USER, "Software\\Travis Cobbs");
    Registry.DeleteKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\LDView.exe");
    Registry.DeleteKey(HKEY_CLASSES_ROOT, "Applications\\LDView.exe");
    Registry.DeleteKey(HKEY_CLASSES_ROOT, ".ldr");
    Registry.DeleteKey(HKEY_CLASSES_ROOT, "LDView.ldr");
    Registry.DeleteKey(HKEY_CLASSES_ROOT, ".mpd");
    Registry.DeleteKey(HKEY_CLASSES_ROOT, "LDView.mpd");

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted all registry keys for LDView if LDView keys existed\r\n", false);
    end
end


-- Delete all registry keys for LPub3D if LPub3D keys exist
sLPub3DRegistryExists = Registry.DoesKeyExist(HKEY_CURRENT_USER, "Software\\LPub3D Software");

if (sLPub3DRegistryExists == true) then
    Registry.DeleteKey(HKEY_CURRENT_USER, "Software\\LPub3D Software");

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted all registry keys for LPub3D if LPub3D keys existed\r\n", false);        
    end
end

This is the Shutdown script

Code:
-- Delete LDraw folder if still present
sRootFolderExists = Folder.DoesExist(SessionVar.Expand("%AppFolder%"));

if (sRootFolderExists == true) then

    -- Delete entire root tree
    Folder.DeleteTree(SessionVar.Expand("%AppFolder%"), nil);

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted LDraw root folder if still present\r\n", false);    
    end
end

-- Delete LDraw Parts library if still present
sLibraryFolderExists = Folder.DoesExist(SessionVar.Expand("%CommonDocumentsFolder%\\LDraw"));

if (sLibraryFolderExists == true) then

    -- Delete entire root tree
    Folder.DeleteTree(SessionVar.Expand("%CommonDocumentsFolder%\\LDraw"), nil);

    -- Check to see if any error occurred.
    local error = Application.GetLastError();

    -- If an error occurred, display the error message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
        SetupData.WriteToLogFile(sMessage, false);
    else
        SetupData.WriteToLogFile("Deleted LDraw Parts library if still present\r\n", false);
    end
end

-- Delete LDraw folder in Virtualstore if still present
sVirtualstoreFolderExists = Folder.DoesExist(SessionVar.Expand("%AppDataLocal%" .. "\\VirtualStore\\Program Files (x86)\\LDraw"));

if (sVirtualstoreFolderExists == true) then

    -- Delete entire LDraw tree
    Folder.DeleteTree(SessionVar.Expand("%AppDataLocal%" .. "\\VirtualStore\\Program Files (x86)\\LDraw"), nil);
    
    -- Check to see if any error occurred.
    local error = Application.GetLastError();

        -- If an error occurred, display the error message.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
            SetupData.WriteToLogFile(sMessage, false);
        else
            SetupData.WriteToLogFile("Deleted LDraw folder in Virtualstore if still present\r\n", false);
        end
end

-- Delete LDCad folder in AppData if still present
sLDCadFolderExists = Folder.DoesExist(SessionVar.Expand("%ApplicationDataFolder%" .. "\\LDCad"));

if (sLDCadFolderExists == true) then

    -- Delete entire LDCad tree
    Folder.DeleteTree(SessionVar.Expand("%ApplicationDataFolder%" .. "\\LDCad"), nil);
    
    -- Check to see if any error occurred.
    local error = Application.GetLastError();

        -- If an error occurred, display the error message.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
            SetupData.WriteToLogFile(sMessage, false);
        else
            SetupData.WriteToLogFile("Deleted LDCad folder in AppData if still present\r\n", false);
        end
end

-- Delete MLCad folder in AppData if still present
sMLCadFolderExists = Folder.DoesExist(SessionVar.Expand("%ApplicationDataFolder%" .. "\\Ing. Michael Lachmann"));

if (sMLCadFolderExists == true) then

    -- Delete entire MLCad tree
    Folder.DeleteTree(SessionVar.Expand("%ApplicationDataFolder%" .. "\\Ing. Michael Lachmann"), nil);
    
    -- Check to see if any error occurred.
    local error = Application.GetLastError();

        -- If an error occurred, display the error message.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
            SetupData.WriteToLogFile(sMessage, false);
        else
            SetupData.WriteToLogFile("Deleted MLCad folder in AppData if still present\r\n", false);
        end
end
    
    
-- Delete LPub3D folder in AppData if still present
sLPub3DFolderExists = Folder.DoesExist(SessionVar.Expand("%AppDataLocal%" .. "\\LPub3D Software"));

if (sLPub3DFolderExists == true) then

    -- Delete entire LPub3D tree
    Folder.DeleteTree(SessionVar.Expand("%AppDataLocal%" .. "\\LPub3D Software"), nil);
    
    -- Check to see if any error occurred.
    local error = Application.GetLastError();

        -- If an error occurred, display the error message.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
            SetupData.WriteToLogFile(sMessage, false);
        else
            SetupData.WriteToLogFile("Deleted LPub3D folder in AppData if still present\r\n", false);
        end
end


-- Delete LICreator folder in AppData if still present
sLICreatorFolderExists = Folder.DoesExist(SessionVar.Expand("%ApplicationDataFolder%" .. "\\licreator"));

if (sLICreatorFolderExists == true) then

    -- Delete entire LICreator tree
    Folder.DeleteTree(SessionVar.Expand("%ApplicationDataFolder%" .. "\\licreator"), nil);
    
    -- Check to see if any error occurred.
    local error = Application.GetLastError();

        -- If an error occurred, display the error message.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            sMessage = "####################\r\n" .. "ERROR " .. error .. ": " .. _tblErrorMessages[error] .. "\r\n####################\r\n";
            SetupData.WriteToLogFile(sMessage, false);
        else
            SetupData.WriteToLogFile("Deleted LICreator folder in AppData if still present\r\n", false);
        end
end

Hope this helps.

w.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-04

Thanks, I will take a look.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-10

I haven't tested this release candidate, but unless I did something wrong the previous version only added the Start Menu and Desktop icons for the admin user. Could we have an option to do this for "all users"? Or does it already have this option and I simply missed it? Thanks.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-11

MPDCenter should also be updated.

Update 01.01.2019
Version: 2.5.1.0


RE: AIOI 2019-03 Release candidate ready for testing - Willy Tschager - 2020-02-11

(2020-02-10, 22:51)Michael Horvath Wrote: I haven't tested this release candidate, but unless I did something wrong the previous version only added the Start Menu and Desktop icons for the admin user. Could we have an option to do this for "all users"? Or does it already have this option and I simply missed it? Thanks.

I'll have to look into it.

w.


RE: AIOI 2019-03 Release candidate ready for testing - Willy Tschager - 2020-02-11

(2020-02-11, 2:08)Michael Horvath Wrote: MPDCenter should also be updated.

Update 01.01.2019
Version: 2.5.1.0

Will do.

w.


RE: AIOI 2019-03 Release candidate ready for testing - Michael Horvath - 2020-02-12

FYI, Travis has been sitting on a development version of LDView 4.4 with a few new features for a while now. Not sure when/if he plans on ever releasing it.