diff --git a/HISTORY.md b/HISTORY.md index 467f02a2..0903e535 100755 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,11 +6,15 @@ * gliding animation when inserting blocks using the keyboard * optimized collision detection * **Notable Fixes:** + * show "browser" source option in project dialog when (deprecated) locally stored projects still exist * list watchers occasionally didn't show cells after reassigning a changed list to a variable * FOREACH over a linked list failed for scripts mutating it * eliminated an occasional empty label line when variadic inputs wrap as a whole, thanks, Mary, for reporting this bug! * **Translation Updates:** +### 2019-07-04 +* gui: show "browser" source option in project dialog when (deprecated) locally stored projects still exist + ### 2019-07-03 * blocks: eliminated an occasional empty label line when variadic inputs wrap as a whole, thanks, Mary, for reporting this bug! diff --git a/snap.html b/snap.html index c853b288..6b6d32cd 100755 --- a/snap.html +++ b/snap.html @@ -9,7 +9,7 @@ - + diff --git a/src/gui.js b/src/gui.js index 0087eeb5..2ac5ebff 100644 --- a/src/gui.js +++ b/src/gui.js @@ -75,7 +75,7 @@ isRetinaSupported, SliderMorph, Animation, BoxMorph, MediaRecorder*/ // Global stuff //////////////////////////////////////////////////////// -modules.gui = '2019-July-01'; +modules.gui = '2019-July-04'; // Declarations @@ -6078,7 +6078,8 @@ ProjectDialogMorph.prototype.buildContents = function () { if (this.task === 'open') { this.buildFilterField(); this.addSourceButton('examples', localize('Examples'), 'poster'); - if (this.ide.world().currentKey === 16) { // shiftClicked + if (this.hasLocalProjects() || this.ide.world().currentKey === 16) { + // shift- clicked this.addSourceButton('local', localize('Browser'), 'globe'); } } @@ -6556,6 +6557,15 @@ ProjectDialogMorph.prototype.setSource = function (source) { } }; +ProjectDialogMorph.prototype.hasLocalProjects = function () { + // check and report whether old projects still exist in the + // browser's local storage, which as of v5 has been deprecated, + // so the user can recover and move them elsewhere + return Object.keys(localStorage).some(function (any) { + return any.indexOf('-snap-project-') === 0; + }); +}; + ProjectDialogMorph.prototype.getLocalProjectList = function () { var stored, name, dta, projects = [];