diff --git a/_keysnail.js b/_keysnail.js index 8e4a45b..cfa955e 100644 --- a/_keysnail.js +++ b/_keysnail.js @@ -264,10 +264,13 @@ var autoSaveTabList = (function(){ const PREF_DSTDIR = "dstdir"; const PREF_ENABLED = "enabled"; // use plugin option to set - var save_interval = 60 * 10; + // in sec + var default_timer_interval = 60 * 5; // "/" for unix system const DIR_DELIM = userscript.directoryDelimitter; + var __timer = null; + function selectDirectory(title){ // open dialog and return nsILocalFile object // https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILocalFile @@ -352,7 +355,7 @@ var autoSaveTabList = (function(){ var dstdir = util.getUnicharPref(PREF_PREFIX + PREF_DSTDIR); if (! dstdir) { display.showPopup("AutoSaveTabList", - "Dest dir is not set yet. Run setup first"); + "Dest dir is not set yet. Run astl-setup first"); return; } @@ -377,7 +380,7 @@ var autoSaveTabList = (function(){ openFromLFSplittedString(command.getClipboardText()); } - function openFromLFSplittedString(str) { + function openFromLFSplittedString(str){ var urls = str.split("\n"); for (var i = 0; i < urls.length; i++) { if (urls[i].match(/^http/)) { @@ -386,13 +389,34 @@ var autoSaveTabList = (function(){ } } + function enableTimer(sec){ + sec = sec || default_timer_interval; + __timer = window.setInterval(saveCurrentList, sec * 1000); + display.showPopup("AutoSaveTabList", + "Auto save enabled for every " + sec.toString() + " sec"); + } + + function disableTimer(){ + if (__timer) { + window.clearInterval(__timer); + __timer = null; + display.showPopup("AutoSaveTabList", + "Auto save disabled"); + } else { + display.showPopup("AutoSaveTabList", + "Auto save timer is not set yet !"); + } + } + return { selectDirectory: selectDirectory, setup: setup, getTabList: getTabList, saveCurrentList: saveCurrentList, - openFromClipboard: openFromClipboard - openFromFile: openFromFile + openFromClipboard: openFromClipboard, + openFromFile: openFromFile, + enableTimer: enableTimer, + disableTimer: disableTimer }; })(); @@ -401,6 +425,9 @@ ext.add("astl-open-from-clipboard", autoSaveTabList.openFromClipboard, "Auto sav ext.add("astl-open-from-file", autoSaveTabList.openFromFile, "Auto save tab list - Open tabs from local file"); ext.add("astl-save-current", autoSaveTabList.saveCurrentList, "Auto save tab list - Save current list"); +ext.add("astl-enable-timer", autoSaveTabList.enableTimer, "Auto save tab list - Enable periodic timer"); +ext.add("astl-disable-timer", autoSaveTabList.disableTimer, "Auto save tab list - disable periodic timer"); + var echoTabInfo = (function(){ var currenttab;