Started working on workspaces

This commit is contained in:
Mauro Balades
2024-05-18 19:58:46 +02:00
parent 1430a0c791
commit 3eaf03c152
6 changed files with 68 additions and 8 deletions

View File

@@ -144,3 +144,6 @@ pref('zen.sidebar.floating', true);
// Zen Split View
pref('zen.splitView.working', false);
// Zen Workspaces
pref('zen.workspaces.enabled', false);

View File

@@ -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;
},

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -1,5 +1,6 @@
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", () => {
Services.scriptloader.loadSubScript("chrome://browser/content/ZenWorkspaces.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/ZenSidebarManager.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/ZenViewSplitter.mjs");
}, { once: true });

View File

@@ -2,4 +2,5 @@
content/browser/zenThemeModifier.js (content/zenThemeModifier.js)
content/browser/ZenSidebarManager.mjs (content/ZenSidebarManager.mjs)
content/browser/ZenViewSplitter.mjs (content/ZenViewSplitter.mjs)
content/browser/ZenWorkspaces.mjs (content/ZenWorkspaces.mjs)