|
1263 | 1263 | $('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy'); |
1264 | 1264 | } |
1265 | 1265 | self.$taskbar.taskbar('option', 'resizableHandleOffset', 0).taskbar('instance')._refresh(); |
| 1266 | + self._syncFolderWebViewForTheme(); |
1266 | 1267 | break; |
1267 | 1268 | case 'windows-3': |
1268 | 1269 | self.$html.removeClass('theme-basic theme-windows-95 theme-windows-98 theme-windows-me').addClass('theme-windows-3'); |
|
1294 | 1295 | }); |
1295 | 1296 | } |
1296 | 1297 | self.$taskbar.taskbar('option', 'resizableHandleOffset', 0).taskbar('instance')._refresh(); |
| 1298 | + self._syncFolderWebViewForTheme(); |
1297 | 1299 | break; |
1298 | 1300 | case 'windows-95': |
1299 | 1301 | self.$html.removeClass('theme-basic theme-windows-3 theme-windows-98 theme-windows-me').addClass('theme-windows-95'); |
|
1302 | 1304 | $('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy'); |
1303 | 1305 | } |
1304 | 1306 | self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh(); |
| 1307 | + self._syncFolderWebViewForTheme(); |
1305 | 1308 | break; |
1306 | 1309 | case 'windows-98': |
1307 | 1310 | self.$html.removeClass('theme-basic theme-windows-3 theme-windows-95 theme-windows-me').addClass('theme-windows-98'); |
|
1310 | 1313 | $('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy'); |
1311 | 1314 | } |
1312 | 1315 | self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh(); |
| 1316 | + self._syncFolderWebViewForTheme(); |
1313 | 1317 | break; |
1314 | 1318 | case 'windows-me': |
1315 | 1319 | self.$html.removeClass('theme-basic theme-windows-3 theme-windows-95 theme-windows-98').addClass('theme-windows-me'); |
|
1318 | 1322 | $('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy'); |
1319 | 1323 | } |
1320 | 1324 | self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh(); |
| 1325 | + self._syncFolderWebViewForTheme(); |
1321 | 1326 | break; |
1322 | 1327 | } |
1323 | 1328 |
|
|
3334 | 3339 | return this.$html.hasClass('theme-windows-3'); |
3335 | 3340 | }; |
3336 | 3341 |
|
| 3342 | + EmuOS.prototype._getFolderWebViewStored = function($folder) { |
| 3343 | + var stored = $folder.attr('data-web-view-stored'); |
| 3344 | + |
| 3345 | + if (typeof stored !== 'undefined') { |
| 3346 | + return stored === 'true'; |
| 3347 | + } |
| 3348 | + |
| 3349 | + return $folder.attr('data-web-view') === 'true'; |
| 3350 | + }; |
| 3351 | + |
| 3352 | + EmuOS.prototype._setFolderWebViewStored = function($folder, enabled) { |
| 3353 | + $folder.attr('data-web-view-stored', enabled ? 'true' : 'false'); |
| 3354 | + }; |
| 3355 | + |
| 3356 | + EmuOS.prototype._applyFolderWebViewDisplay = function($folder) { |
| 3357 | + var stored = this._getFolderWebViewStored($folder); |
| 3358 | + |
| 3359 | + $folder.attr('data-web-view', this._isWindows3xTheme() ? 'false' : (stored ? 'true' : 'false')); |
| 3360 | + }; |
| 3361 | + |
| 3362 | + EmuOS.prototype._setFolderWebViewPreference = function($folder, enabled) { |
| 3363 | + this._setFolderWebViewStored($folder, enabled); |
| 3364 | + this._applyFolderWebViewDisplay($folder); |
| 3365 | + $folder.trigger('emuosFolderLocationChange'); |
| 3366 | + }; |
| 3367 | + |
| 3368 | + EmuOS.prototype._refreshFolderMenusForTheme = function($folder) { |
| 3369 | + var self = this; |
| 3370 | + |
| 3371 | + $folder.find('.emuos-folder-menu').each(function() { |
| 3372 | + var $menu = $(this); |
| 3373 | + |
| 3374 | + self._refreshFolderMenuStates($menu); |
| 3375 | + |
| 3376 | + if ($menu.data('ui-menu')) { |
| 3377 | + $menu.menu('refresh'); |
| 3378 | + } |
| 3379 | + }); |
| 3380 | + }; |
| 3381 | + |
| 3382 | + EmuOS.prototype._syncFolderWebViewForTheme = function() { |
| 3383 | + var self = this; |
| 3384 | + |
| 3385 | + self.$body.find('.emuos-folder-window').each(function() { |
| 3386 | + var $folder = $(this); |
| 3387 | + |
| 3388 | + if (typeof $folder.attr('data-web-view-stored') === 'undefined') { |
| 3389 | + self._setFolderWebViewStored($folder, $folder.attr('data-web-view') === 'true'); |
| 3390 | + } |
| 3391 | + |
| 3392 | + self._applyFolderWebViewDisplay($folder); |
| 3393 | + self._refreshFolderMenusForTheme($folder); |
| 3394 | + }); |
| 3395 | + }; |
| 3396 | + |
3337 | 3397 | EmuOS.prototype._isFolderMenuItemEnabled = function(item) { |
3338 | 3398 | if (!item || item.divider) { |
3339 | 3399 | return true; |
|
3452 | 3512 |
|
3453 | 3513 | if (item.checkbox || item.radioGroup) { |
3454 | 3514 | checked = item.checkbox ? !!item.checkbox.check() : item.radioGroup.getValue() === item.value; |
| 3515 | + |
| 3516 | + if (!self._isFolderMenuItemEnabled(item)) { |
| 3517 | + checked = false; |
| 3518 | + } |
| 3519 | + |
3455 | 3520 | $item.attr('aria-checked', checked ? 'true' : 'false'); |
3456 | 3521 | } else { |
3457 | 3522 | $item.removeAttr('aria-checked'); |
|
3467 | 3532 | return [ |
3468 | 3533 | { |
3469 | 3534 | label: 'as &Web Page', |
3470 | | - enabled: !self._isWindows3xTheme(), |
| 3535 | + enabled: function() { |
| 3536 | + return !self._isWindows3xTheme(); |
| 3537 | + }, |
3471 | 3538 | checkbox: { |
3472 | 3539 | check: function() { |
3473 | 3540 | return $folder.attr('data-web-view') === 'true'; |
3474 | 3541 | }, |
3475 | 3542 | toggle: function() { |
3476 | | - var enabled = $folder.attr('data-web-view') !== 'true'; |
3477 | | - |
3478 | | - $folder.attr('data-web-view', enabled ? 'true' : 'false'); |
| 3543 | + self._setFolderWebViewPreference($folder, !self._getFolderWebViewStored($folder)); |
3479 | 3544 | } |
3480 | 3545 | }, |
3481 | 3546 | description: 'Displays items in Web View.' |
|
3649 | 3714 | submenu: [ |
3650 | 3715 | { |
3651 | 3716 | label: '&Standard Buttons', |
3652 | | - enabled: !self._isWindows3xTheme(), |
| 3717 | + enabled: function() { |
| 3718 | + return !self._isWindows3xTheme(); |
| 3719 | + }, |
3653 | 3720 | checkbox: { |
3654 | 3721 | check: function() { |
3655 | 3722 | return $folder.find('.emuos-folder-toolbar-row.emuos-folder-toolbar').is(':visible'); |
|
3662 | 3729 | }, |
3663 | 3730 | { |
3664 | 3731 | label: '&Address Bar', |
3665 | | - enabled: !self._isWindows3xTheme(), |
| 3732 | + enabled: function() { |
| 3733 | + return !self._isWindows3xTheme(); |
| 3734 | + }, |
3666 | 3735 | checkbox: { |
3667 | 3736 | check: function() { |
3668 | 3737 | return $folder.find('.emuos-folder-toolbar-row.emuos-folder-addressbar').is(':visible'); |
|
4147 | 4216 | var address = self._formatFolderAddress(path); |
4148 | 4217 | var defaultWebView = self._isWindows3xTheme() ? 'false' : 'true'; |
4149 | 4218 | var content = '' + |
4150 | | - '<div class="emuos-folder-window" data-folder-id="' + folderId + '" data-web-view="' + defaultWebView + '" data-view-mode="large" tabindex="0">' + |
| 4219 | + '<div class="emuos-folder-window" data-folder-id="' + folderId + '" data-web-view="' + defaultWebView + '" data-web-view-stored="' + defaultWebView + '" data-view-mode="large" tabindex="0">' + |
4151 | 4220 | '<div class="emuos-folder-toolbars">' + |
4152 | 4221 | '<div class="emuos-folder-toolbar-row emuos-folder-menubar">' + |
4153 | 4222 | '<div class="emuos-folder-drag-handle" aria-hidden="true"></div>' + |
|
4299 | 4368 | var action = $(this).data('action'); |
4300 | 4369 |
|
4301 | 4370 | if (action === 'web-view') { |
4302 | | - var enabled = $folder.attr('data-web-view') !== 'true'; |
4303 | | - $folder.attr('data-web-view', enabled ? 'true' : 'false'); |
| 4371 | + self._setFolderWebViewPreference($folder, !self._getFolderWebViewStored($folder)); |
4304 | 4372 | } else { |
4305 | 4373 | self._setFolderViewMode($folder, action); |
4306 | 4374 | } |
|
4364 | 4432 | width: Math.round($windowFrame.outerWidth()), |
4365 | 4433 | height: Math.round($windowFrame.outerHeight()), |
4366 | 4434 | viewMode: $folder.attr('data-view-mode') || 'large', |
4367 | | - webView: $folder.attr('data-web-view') === 'true' |
| 4435 | + webView: self._getFolderWebViewStored($folder) |
4368 | 4436 | }); |
4369 | 4437 | }; |
4370 | 4438 |
|
|
4390 | 4458 | } |
4391 | 4459 |
|
4392 | 4460 | if (typeof restoreState.webView === 'boolean') { |
4393 | | - $folder.attr('data-web-view', restoreState.webView && !self._isWindows3xTheme() ? 'true' : 'false'); |
| 4461 | + self._setFolderWebViewStored($folder, restoreState.webView); |
4394 | 4462 | } else if (self._isWindows3xTheme()) { |
4395 | | - $folder.attr('data-web-view', 'false'); |
| 4463 | + self._setFolderWebViewStored($folder, false); |
4396 | 4464 | } |
4397 | 4465 |
|
| 4466 | + self._applyFolderWebViewDisplay($folder); |
| 4467 | + |
4398 | 4468 | if (typeof restoreState.viewMode === 'string') { |
4399 | 4469 | self._setFolderViewMode($folder, restoreState.viewMode); |
4400 | 4470 | } else if (typeof restoreState.iconSize === 'number') { |
|
0 commit comments