From 3eaf03c1529bb90adf21967ee82a1b185876c3f3 Mon Sep 17 00:00:00 2001 From: Mauro Balades Date: Sat, 18 May 2024 19:58:46 +0200 Subject: [PATCH] Started working on workspaces --- src/browser/app/profile/zen-browser.js | 3 + .../base/content/ZenSidebarManager.mjs | 7 --- src/browser/base/content/ZenWorkspaces.mjs | 63 +++++++++++++++++++ .../base/content/zen-browser-places.js | 1 - .../base/content/zen-scripts.inc.xhtml | 1 + .../base/content/zen-scripts.jar.inc.mn | 1 + 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 src/browser/base/content/ZenWorkspaces.mjs diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index 25af5d149..4110f951c 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -144,3 +144,6 @@ pref('zen.sidebar.floating', true); // Zen Split View pref('zen.splitView.working', false); + +// Zen Workspaces +pref('zen.workspaces.enabled', false); diff --git a/src/browser/base/content/ZenSidebarManager.mjs b/src/browser/base/content/ZenSidebarManager.mjs index c88c40b88..1b3e9b684 100644 --- a/src/browser/base/content/ZenSidebarManager.mjs +++ b/src/browser/base/content/ZenSidebarManager.mjs @@ -309,13 +309,6 @@ var gZenBrowserManagerSidebar = { titleContainer.textContent = title; } }).bind(this)); - browser.addEventListener("progress", (function(event) { - let browser = event.target; - let id = browser.getAttribute("zen-sidebar-id"); - if (id === this._currentPanel) { - titleContainer.textContent = "Loading..."; // l10n later - } - }).bind(this)); return browser; }, diff --git a/src/browser/base/content/ZenWorkspaces.mjs b/src/browser/base/content/ZenWorkspaces.mjs new file mode 100644 index 000000000..3ca2e72b8 --- /dev/null +++ b/src/browser/base/content/ZenWorkspaces.mjs @@ -0,0 +1,63 @@ + +var ZenWorkspaces = { + async init() { + await this.initializeWorkspaces(); + console.log("ZenWorkspaces initialized"); + }, + + get workspaceEnabled() { + return Services.prefs.getBoolPref("zen.workspaces.enabled", false); + }, + + // Wrorkspaces saving/loading + get _storeFile() { + return PathUtils.join( + PathUtils.profileDir, + "zen-workspaces", + "Workspaces.json", + ); + }, + + async initializeWorkspaces() { + let file = new FileUtils.File(this._storeFile); + if (!file.exists()) { + await IOUtils.writeJSON(this._storeFile, {}); + } + }, + + async saveWorkspace(workspaceData, windowID) { + let json = await IOUtils.readJSON(this._storeFile); + json[windowID] = workspaceData; + await IOUtils.writeJSON(this._storeFile, json); + }, + + async loadWorkspace(windowID) { + let json = await IOUtils.readJSON(this._storeFile); + return json[windowID]; + }, + + async removeWorkspace(windowID) { + let json = await IOUtils.readJSON(this._storeFile); + delete json[windowID]; + await IOUtils.writeJSON(this._storeFile, json); + }, + + async getWorkspaces() { + let json = await IOUtils.readJSON(this._storeFile); + return json; + }, + + async getWorkspace(windowID) { + let json = await IOUtils.readJSON(this._storeFile); + return json[windowID]; + }, + + // Workspaces management + + async saveCurrentWorkspace(windowID) { + let workspaceData = this._createWorkspaceData(windowID); + await this.saveWorkspace(workspaceData, windowID); + }, +}; + +ZenWorkspaces.init(); diff --git a/src/browser/base/content/zen-browser-places.js b/src/browser/base/content/zen-browser-places.js index 4f33a30c0..bc470d5fd 100644 --- a/src/browser/base/content/zen-browser-places.js +++ b/src/browser/base/content/zen-browser-places.js @@ -10,7 +10,6 @@ var ZenProfileDialogUI = { _updateProfilesList() { let parentList = document.getElementById('PanelUI-zen-profiles-list'); this._emptyUserList(parentList); - console.log(ProfileService.profiles) if (this._getProfilesSize(ProfileService.profiles) <= 1) { return; } diff --git a/src/browser/base/content/zen-scripts.inc.xhtml b/src/browser/base/content/zen-scripts.inc.xhtml index ddebe12e5..c04801de2 100644 --- a/src/browser/base/content/zen-scripts.inc.xhtml +++ b/src/browser/base/content/zen-scripts.inc.xhtml @@ -1,5 +1,6 @@