[Pkg-mozext-commits] [tabmixplus] 18/44: Use mergeWindows to merge the state when in concatenat mode

David Prévot taffit at moszumanska.debian.org
Fri Mar 18 20:57:15 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository tabmixplus.

commit bd2774c6cbc8a690b1ba54177f3edad92ff68baf
Author: onemen <tabmix.onemen at gmail.com>
Date:   Sun Feb 28 18:15:41 2016 +0200

    Use mergeWindows to merge the state when in concatenat mode
---
 chrome/content/session/session.js | 82 +++++++++++++--------------------------
 1 file changed, 27 insertions(+), 55 deletions(-)

diff --git a/chrome/content/session/session.js b/chrome/content/session/session.js
index eac685b..c03a82a 100644
--- a/chrome/content/session/session.js
+++ b/chrome/content/session/session.js
@@ -411,12 +411,9 @@ TabmixSessionManager = {
       if (show) {
         this.TabmixGroupsMigrator.missingTabViewNotification(window, show.msg);
       }
-      let {restoreID, caller} = window.tabmixdata;
+      let {restoreID} = window.tabmixdata;
       let state = this._statesToRestore[restoreID];
-      if (caller == "concatenatewindows")
-        this.loadSession(state, caller, false);
-      else
-        this.loadOneWindow(state, "windowopenedbytabmix");
+      this.loadOneWindow(state, "windowopenedbytabmix");
     } else if (this.enableManager && this.enableBackup && this.saveClosedtabs && TMP_ClosedTabs.count > 0) {
       // sync rdf list with sessionstore closed tab after restart
       // we need it when we delete/restore close tab
@@ -3058,12 +3055,9 @@ TabmixSessionManager = {
 
     let state = TabmixConvertSession.getSessionState(path, true);
 
-    // if this window is blank use it when reload session
-    if (!Tabmix.singleWindowMode && concatenate && !overwriteWindows &&
-        !gBrowser.isBlankWindow() && caller != "firstwindowopen" &&
-        caller != "concatenatewindows") {
-      this.openNewWindow(path, "concatenatewindows", this.isPrivateWindow);
-      return;
+    if (concatenate) {
+      // move all tabs & closed tabs into one window
+      this.mergeWindows(state);
     }
 
     // Firefox 20 introduced per-window private browsing mode
@@ -3082,40 +3076,25 @@ TabmixSessionManager = {
       windowsList.push(win);
     }
 
-    // if we join all window to one window
-    // call the same window for all saved window with overwritewindows=false
-    // and overwritetabs=false if this not the first saved for first saved
-    // window overwritetabs determined by user pref
     state.windows.forEach(winData => {
       sessionCount++;
-      if (winData) {
-        if (concatenate) {
-          if (caller != "concatenatewindows" && caller != "firstwindowopen" &&
-              sessionCount == 1 && saveBeforOverwrite && overwriteTabs) {
-            this.saveOneWindow(this.gSessionPath[0], "", true);
-          }
-          var newCaller = (sessionCount != 1) ? caller + "-concatenate" : caller;
-          this.loadOneWindow(winData, newCaller);
-        } else {
-          let win = windowsList.pop();
-          let canOverwriteWindow = win && (overwriteWindows ||
-                                           (caller == "firstwindowopen" && sessionCount == 1) ||
-                                           win.gBrowser.isBlankWindow());
-          if (canOverwriteWindow) {
-            // if we save overwrite windows in the closed windows list don't forget to set dontLoad==true
-            if (caller != "firstwindowopen" && saveBeforOverwrite && overwriteTabs)
-              win.TabmixSessionManager.saveOneWindow(this.gSessionPath[0], "", true);
-            win.TabmixSessionManager.loadOneWindow(winData, caller);
-          } else
-            this.openNewWindow(winData, caller, this.isPrivateWindow);
-        }
+      let win = windowsList.pop();
+      let canOverwriteWindow = win && (overwriteWindows ||
+                                       (caller == "firstwindowopen" && sessionCount == 1) ||
+                                       win.gBrowser.isBlankWindow());
+      if (canOverwriteWindow) {
+        // if we save overwrite windows in the closed windows list don't forget to set dontLoad==true
+        if (caller != "firstwindowopen" && saveBeforOverwrite && overwriteTabs)
+          win.TabmixSessionManager.saveOneWindow(this.gSessionPath[0], "", true);
+        win.TabmixSessionManager.loadOneWindow(winData, caller);
+      } else {
+        this.openNewWindow(winData, this.isPrivateWindow);
       }
     });
     // cloes extra windows if we overwrite open windows and set dontLoad==true
     if (Tabmix.numberOfWindows() > 1 && overwriteWindows) {
       while (windowsList.length > 0) {
         let win = windowsList.pop();
-        if (concatenate && win == window) continue;
         if (saveBeforOverwrite) win.TabmixSessionManager.overwriteWindow = true;
         else win.TabmixSessionManager.saveThisWindow = false;
         win.close();
@@ -3133,18 +3112,18 @@ TabmixSessionManager = {
 
     if (typeof (overwriteWindows) == "undefined")
       overwriteWindows = this.prefBranch.getBoolPref("restore.overwritewindows");
-    var saveBeforOverwrite = this.prefBranch.getBoolPref("restore.saveoverwrite");
-    var overwriteTabs = this.prefBranch.getBoolPref("restore.overwritetabs");
     if (overwriteWindows || gBrowser.isBlankWindow() || Tabmix.singleWindowMode) {
+      let saveBeforOverwrite = this.prefBranch.getBoolPref("restore.saveoverwrite");
+      let overwriteTabs = this.prefBranch.getBoolPref("restore.overwritetabs");
       if (saveBeforOverwrite && overwriteTabs)
         this.saveOneWindow(this.gSessionPath[0], "", true);
       this.loadOneWindow(winData, "openclosedwindow");
     } else {
-      this.openNewWindow(winData, "openclosedwindow", this.isPrivateWindow);
+      this.openNewWindow(winData, this.isPrivateWindow);
     }
   },
 
-  openNewWindow: function SM_openNewWindow(aState, aCaller, aPrivate) {
+  openNewWindow: function SM_openNewWindow(aState, aPrivate) {
     var argString = Cc["@mozilla.org/supports-string;1"].
                     createInstance(Ci.nsISupportsString);
     argString.data = "";
@@ -3162,7 +3141,7 @@ TabmixSessionManager = {
       ID = "window" + Math.random();
     } while (ID in this._statesToRestore);
     this._statesToRestore[ID] = aState;
-    newWindow.tabmixdata = {restoreID: ID, caller: aCaller};
+    newWindow.tabmixdata = {restoreID: ID};
   },
 
   loadOneWindow: function SM_loadOneWindow(winData, caller) {
@@ -3176,20 +3155,14 @@ TabmixSessionManager = {
         break;
       }
       case "windowopenedbytabmix":
-      case "concatenatewindows":
         overwrite = true;
         break;
       case "openclosedwindow":
       case "sessionrestore":
         overwrite = this.prefBranch.getBoolPref("restore.overwritetabs");
         break;
-      case "firstwindowopen-concatenate":
-      case "openclosedwindow-concatenate":
-      case "sessionrestore-concatenate":
-      case "concatenatewindows-concatenate":
-        overwrite = false;
-        break;
-      default: Tabmix.log("SessionManager \n error unidentifid caller " + caller);
+      default:
+        Tabmix.log("SessionManager \n error unidentifid caller " + caller);
     }
     /*
       1. when open first windows overwrite tab only if they are home page, if firefox open from link or with
@@ -3203,8 +3176,6 @@ TabmixSessionManager = {
          in the session.
     */
     var cTab = gBrowser.mCurrentTab;
-    var concatenate = caller.indexOf("-concatenate") != -1 ||
-        (caller == "firstwindowopen" && gBrowser.tabs.length > 1);
     if (!winData.tabs || winData.tabs.length == 0) {
       let msg = TabmixSvc.getSMString("sm.restoreError.msg0") + "\n" +
           TabmixSvc.getSMString("sm.restoreError.msg1");
@@ -3311,7 +3282,8 @@ TabmixSessionManager = {
       if (currentTabIsBalnk)
         blankTabs.shift();
 
-      let needToMove = openTabNext && !concatenate;
+      let multipleTabsOnStartUp = caller == "firstwindowopen" && gBrowser.tabs.length > 1;
+      let needToMove = openTabNext && !multipleTabsOnStartUp;
       let newPos = needToMove ? cTab._tPos + 1 : lastIndex + 1;
       // move blank tabs to new position
       for (let t = 0; t < blankTabs.length; t++) {
@@ -3334,10 +3306,10 @@ TabmixSessionManager = {
       if (tabsCount == blankTabsCount)
         newPos = 0;
       else {
-        newPos = (openTabNext && cTab._tPos < gBrowser.tabs.length - 1 && !concatenate) ?
+        newPos = (openTabNext && cTab._tPos < gBrowser.tabs.length - 1 && !multipleTabsOnStartUp) ?
           cTab._tPos + 1 : tabsCount - blankTabsCount;
       }
-      if (!concatenate && restoreSelect) { // in concatenate mode we select tab only from first window
+      if (restoreSelect && !multipleTabsOnStartUp) {
         if (currentTabIsBalnk) { // if the current tab is not blank select new tab
           if (openTabNext && newPos > 0)
             newPos--;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git



More information about the Pkg-mozext-commits mailing list