From 4445309334e309c7ad74ec2011d40c6998fd4653 Mon Sep 17 00:00:00 2001
From: João Vitor Brandão <jvbrandaom@gmail.com>
Date: Thu, 24 May 2018 17:14:19 -0300
Subject: Adds command to close all tabs

Type :qa or :quitall to close all tabs
---
 README.md                         |  6 +++++-
 src/background/actions/command.js | 11 +++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index a4a7418..23d7e8d 100644
--- a/README.md
+++ b/README.md
@@ -86,10 +86,14 @@ To adjust the search engine default and add/remove search engines, see the [sear
 
 Open a URL or search keywords by search engine in new tab.
 
-#### `:quit` command
+#### `:quit` or `:q` command
 
 Close the current tab.
 
+#### `:quitall` or `:qa` command
+
+Close all tabs.
+
 #### `:bdelete` command
 
 Close a certain tab.
diff --git a/src/background/actions/command.js b/src/background/actions/command.js
index f1ee5b5..6d83450 100644
--- a/src/background/actions/command.js
+++ b/src/background/actions/command.js
@@ -27,6 +27,14 @@ const tabcloseCommand = () => {
   });
 };
 
+const tabcloseAllCommand = () => {
+  return browser.tabs.query({
+    currentWindow: true
+  }).then((tabList) => {
+    return browser.tabs.remove(tabList.map(tab => tab.id));
+  });
+};
+
 const winopenCommand = (url) => {
   return browser.windows.create({ url });
 };
@@ -117,6 +125,9 @@ const exec = (tab, line, settings) => {
   case 'q':
   case 'quit':
     return tabcloseCommand();
+  case 'qa':
+  case 'quitall':
+    return tabcloseAllCommand()
   case '':
     return Promise.resolve();
   }
-- 
cgit v1.2.3