Browse Source

create editor tab next to the one saved

Former-commit-id: 29cca86567d655e8d6492308bbabf2f87a6ec592
Gildas 6 years ago
parent
commit
71c030687c
2 changed files with 13 additions and 7 deletions
  1. 2 2
      extension/core/bg/downloads.js
  2. 11 5
      extension/core/bg/editor.js

+ 2 - 2
extension/core/bg/downloads.js

@@ -70,7 +70,7 @@ singlefile.extension.core.bg.downloads = (() => {
 			singlefile.extension.core.bg.business.cancelTab(message.tabId);
 			return {};
 		}
-		if (message.method.endsWith(".cancelAll")) {			
+		if (message.method.endsWith(".cancelAll")) {
 			singlefile.extension.core.bg.business.cancelAllTabs(message.tabId);
 			return {};
 		}
@@ -94,7 +94,7 @@ singlefile.extension.core.bg.downloads = (() => {
 		if (!message.truncated || message.finished) {
 			if (message.openEditor) {
 				singlefile.extension.ui.bg.main.onEdit(tab.id);
-				await singlefile.extension.core.bg.editor.open({ filename: message.filename, content: contents.join("") }, {
+				await singlefile.extension.core.bg.editor.open({ tabIndex: tab.index + 1, filename: message.filename, content: contents.join("") }, {
 					backgroundSave: message.backgroundSave,
 					saveToClipboard: message.saveToClipboard,
 					saveToGDrive: message.saveToGDrive,

+ 11 - 5
extension/core/bg/editor.js

@@ -33,12 +33,18 @@ singlefile.extension.core.bg.editor = (() => {
 		onMessage,
 		onTabRemoved,
 		onTabUpdated,
-		async open({ content, filename }, options) {
-			const tab = await browser.tabs.create({ active: true, url: "/extension/ui/editor/editor.html" });
-			tabsData.set(tab.id, { content, filename, options });
-		}
+		open
 	};
 
+	async function open({ tabIndex, content, filename }, options) {
+		const createTabProperties = { active: true, url: "/extension/ui/editor/editor.html" };
+		if (tabIndex != null) {
+			createTabProperties.index = tabIndex;
+		}
+		const tab = await browser.tabs.create(createTabProperties);
+		tabsData.set(tab.id, { content, filename, options });
+	}
+
 	async function onTabRemoved(tabId) {
 		tabsData.delete(tabId);
 	}
@@ -73,7 +79,7 @@ singlefile.extension.core.bg.editor = (() => {
 			if (!message.truncated || message.finished) {
 				const options = await singlefile.extension.core.bg.config.getOptions(tab && tab.url);
 				await singlefile.extension.core.bg.tabs.remove(tab.id);
-				await singlefile.extension.core.bg.editor.open({ filename: message.filename, content: contents.join("") }, options);
+				await open({ tabIndex: tab.index, filename: message.filename, content: contents.join("") }, options);
 			}
 		}
 	}