Skip to content

Commit ca611a3

Browse files
committed
More work
1 parent 0b139e5 commit ca611a3

3 files changed

Lines changed: 326 additions & 30 deletions

File tree

beta/emuos/assets/js/emuos.js

Lines changed: 82 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,7 @@
12631263
$('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy');
12641264
}
12651265
self.$taskbar.taskbar('option', 'resizableHandleOffset', 0).taskbar('instance')._refresh();
1266+
self._syncFolderWebViewForTheme();
12661267
break;
12671268
case 'windows-3':
12681269
self.$html.removeClass('theme-basic theme-windows-95 theme-windows-98 theme-windows-me').addClass('theme-windows-3');
@@ -1294,6 +1295,7 @@
12941295
});
12951296
}
12961297
self.$taskbar.taskbar('option', 'resizableHandleOffset', 0).taskbar('instance')._refresh();
1298+
self._syncFolderWebViewForTheme();
12971299
break;
12981300
case 'windows-95':
12991301
self.$html.removeClass('theme-basic theme-windows-3 theme-windows-98 theme-windows-me').addClass('theme-windows-95');
@@ -1302,6 +1304,7 @@
13021304
$('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy');
13031305
}
13041306
self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh();
1307+
self._syncFolderWebViewForTheme();
13051308
break;
13061309
case 'windows-98':
13071310
self.$html.removeClass('theme-basic theme-windows-3 theme-windows-95 theme-windows-me').addClass('theme-windows-98');
@@ -1310,6 +1313,7 @@
13101313
$('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy');
13111314
}
13121315
self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh();
1316+
self._syncFolderWebViewForTheme();
13131317
break;
13141318
case 'windows-me':
13151319
self.$html.removeClass('theme-basic theme-windows-3 theme-windows-95 theme-windows-98').addClass('theme-windows-me');
@@ -1318,6 +1322,7 @@
13181322
$('.emuos-window .window.emuos-window-content').mCustomScrollbar('destroy');
13191323
}
13201324
self.$taskbar.taskbar('option', 'resizableHandleOffset', 1).taskbar('instance')._refresh();
1325+
self._syncFolderWebViewForTheme();
13211326
break;
13221327
}
13231328

@@ -3334,6 +3339,61 @@
33343339
return this.$html.hasClass('theme-windows-3');
33353340
};
33363341

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+
33373397
EmuOS.prototype._isFolderMenuItemEnabled = function(item) {
33383398
if (!item || item.divider) {
33393399
return true;
@@ -3452,6 +3512,11 @@
34523512

34533513
if (item.checkbox || item.radioGroup) {
34543514
checked = item.checkbox ? !!item.checkbox.check() : item.radioGroup.getValue() === item.value;
3515+
3516+
if (!self._isFolderMenuItemEnabled(item)) {
3517+
checked = false;
3518+
}
3519+
34553520
$item.attr('aria-checked', checked ? 'true' : 'false');
34563521
} else {
34573522
$item.removeAttr('aria-checked');
@@ -3467,15 +3532,15 @@
34673532
return [
34683533
{
34693534
label: 'as &Web Page',
3470-
enabled: !self._isWindows3xTheme(),
3535+
enabled: function() {
3536+
return !self._isWindows3xTheme();
3537+
},
34713538
checkbox: {
34723539
check: function() {
34733540
return $folder.attr('data-web-view') === 'true';
34743541
},
34753542
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));
34793544
}
34803545
},
34813546
description: 'Displays items in Web View.'
@@ -3649,7 +3714,9 @@
36493714
submenu: [
36503715
{
36513716
label: '&Standard Buttons',
3652-
enabled: !self._isWindows3xTheme(),
3717+
enabled: function() {
3718+
return !self._isWindows3xTheme();
3719+
},
36533720
checkbox: {
36543721
check: function() {
36553722
return $folder.find('.emuos-folder-toolbar-row.emuos-folder-toolbar').is(':visible');
@@ -3662,7 +3729,9 @@
36623729
},
36633730
{
36643731
label: '&Address Bar',
3665-
enabled: !self._isWindows3xTheme(),
3732+
enabled: function() {
3733+
return !self._isWindows3xTheme();
3734+
},
36663735
checkbox: {
36673736
check: function() {
36683737
return $folder.find('.emuos-folder-toolbar-row.emuos-folder-addressbar').is(':visible');
@@ -4147,7 +4216,7 @@
41474216
var address = self._formatFolderAddress(path);
41484217
var defaultWebView = self._isWindows3xTheme() ? 'false' : 'true';
41494218
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">' +
41514220
'<div class="emuos-folder-toolbars">' +
41524221
'<div class="emuos-folder-toolbar-row emuos-folder-menubar">' +
41534222
'<div class="emuos-folder-drag-handle" aria-hidden="true"></div>' +
@@ -4299,8 +4368,7 @@
42994368
var action = $(this).data('action');
43004369

43014370
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));
43044372
} else {
43054373
self._setFolderViewMode($folder, action);
43064374
}
@@ -4364,7 +4432,7 @@
43644432
width: Math.round($windowFrame.outerWidth()),
43654433
height: Math.round($windowFrame.outerHeight()),
43664434
viewMode: $folder.attr('data-view-mode') || 'large',
4367-
webView: $folder.attr('data-web-view') === 'true'
4435+
webView: self._getFolderWebViewStored($folder)
43684436
});
43694437
};
43704438

@@ -4390,11 +4458,13 @@
43904458
}
43914459

43924460
if (typeof restoreState.webView === 'boolean') {
4393-
$folder.attr('data-web-view', restoreState.webView && !self._isWindows3xTheme() ? 'true' : 'false');
4461+
self._setFolderWebViewStored($folder, restoreState.webView);
43944462
} else if (self._isWindows3xTheme()) {
4395-
$folder.attr('data-web-view', 'false');
4463+
self._setFolderWebViewStored($folder, false);
43964464
}
43974465

4466+
self._applyFolderWebViewDisplay($folder);
4467+
43984468
if (typeof restoreState.viewMode === 'string') {
43994469
self._setFolderViewMode($folder, restoreState.viewMode);
44004470
} else if (typeof restoreState.iconSize === 'number') {

0 commit comments

Comments
 (0)