locked
Rapport de bug sur le gadget SlideShow RRS feed

  • Discussion générale

  • Bonjour.

    Je n'ai pas trouvé d'endroit approprié pour envoyer un rapport de bug sur les gadgets, donc je poste ici.
    J'utilise Windows 7 Edition Intégrale et j'ai trouvé un bug dans le gadget "SlideShow" ("Diaporama" en Français). Comme j'utilise WinRAR, le type des fichiers ZIP n'est pas "Compressed (zipped) Folder". A cause de cela, les fichiers ZIP sont vus comme des dossiers, et cela conduit à une erreur car une image "monDossier/monArchive.zip/foo.png" n'est pas accessible.

    Voici donc ma proposition de correction de la fonction "addToPicList" du fichier SlideShow.js (aux alentours des lignes 700) (les blocs de code modifiés sont entre BEGIN_EDIT et END_EDIT):

    function addToPicList(curFolderPath)
    {
        try
        {
            var curFolderObject = System.Shell.itemFromPath(curFolderPath);
        }
        catch(e)
        {
            return null;
        }
       
        //BEGIN_EDIT
        // moved a few lines down
        //var curImageItemsFromPath = curFolderObject.SHFolder.Items;
       
        if (typeof(curFolderObject.SHFolder) == "unknown")
        {
            // Problem with aaa\bbb.zip\ccc
            curFolderObject = null;
            return null;
        }
        //END_EDIT
       
        if(curFolderObject.type != "Compressed (zipped) Folder")
        {
            //BEGIN_EDIT
            var curImageItemsFromPath = curFolderObject.SHFolder.Items;
            //END_EDIT
            var pictureLimit = curImageItemsFromPath.count;
            if(pictureLimit > gImageCountMax)
            {
                pictureLimit = gImageCountMax;
            }
            for(var i=0;i<pictureLimit;i++)
            {
                var curImagePath    = curImageItemsFromPath.item(i).path;
                var curImageIsLink    = curImageItemsFromPath.item(i).isLink;
                var curImageIsFolder    = curImageItemsFromPath.item(i).isFolder;
                var imageNameArray    = new Array(".jpg", ".jpeg", ".jpe", ".gif", ".png", ".bmp");
                if(!curImageIsFolder)
                {
                    var flagFoundImageType = false;               
                    var curImageExtension = curImagePath.substr(curImagePath.lastIndexOf("."));
                    if(curImageExtension)
                    {
                        curImageExtension = curImageExtension.toLowerCase();
                    }
                   
                    for(var j=0;j<imageNameArray.length;j++)
                    {
                        var tempNameFromArray = imageNameArray[j];
                        if (curImageExtension == tempNameFromArray)
                        {
                            flagFoundImageType = true;
                            break;
                        }
                    }
                    if(flagFoundImageType)
                    {
                        pictureArray.push(curImagePath);
                    }
                }
            }
            if(slideSettings.includeSubDirectories == "checked" && gFolderCount <= gFolderCountMax)
            {
                for(var i=0;i<curImageItemsFromPath.count;i++)
                {
                    var curImagePath    = curImageItemsFromPath.item(i).path;
                    var curImageIsFolder    = curImageItemsFromPath.item(i).isFolder;
                    //BEGIN_EDIT
                    //if(curImageIsFolder)
                    if(curImageIsFolder
                        && curImagePath.substr(curImagePath.lastIndexOf(".")).toLowerCase() != ".zip"
                        && curImagePath.substr(curImagePath.lastIndexOf(".")).toLowerCase() != ".rar")
                    //END_EDIT
                    {
                        gFolderCount++
                        addToPicList(curImagePath);
                    }
                }
            }
           
        }
        curFolderObject = null;
        return null;
    }



    En outre, SlideShow.js est encodé en UTF-16, ce qui pose problème avec les accents (notamment le "é" de "Précédent"). En UTF-8, tout fonctionne bien.

    Donc merci de transmettre le message.
    jeudi 15 juillet 2010 11:09