├── chrome ├── skin │ ├── win │ │ ├── grain.png │ │ ├── Toolbar.png │ │ ├── Toolbar-XP.png │ │ ├── Toolbar@2x.png │ │ ├── menuPanel.png │ │ ├── Toolbar-aero.png │ │ ├── Toolbar-win8.png │ │ ├── menuPanel@2x.png │ │ ├── Toolbar-aero@2x.png │ │ ├── Toolbar-win8@2x.png │ │ ├── menuPanel-aero.png │ │ ├── Toolbar-inverted.png │ │ ├── Toolbar-lunaSilver.png │ │ ├── menuPanel-aero@2x.png │ │ ├── Toolbar-inverted@2x.png │ │ ├── quickAccess.css │ │ └── TabView.css │ ├── common │ │ ├── icon.png │ │ ├── panes.png │ │ ├── actions.png │ │ ├── newItem.png │ │ ├── actions@2x.png │ │ ├── edit-light.png │ │ ├── howto │ │ │ ├── grid.png │ │ │ ├── list.png │ │ │ ├── create.png │ │ │ ├── icons.png │ │ │ ├── pinned.png │ │ │ ├── search.png │ │ │ ├── stack.png │ │ │ ├── thumbs.png │ │ │ ├── freearrange.png │ │ │ └── singleview.png │ │ ├── panes@2x.png │ │ ├── settings.png │ │ ├── utils │ │ │ ├── sad.png │ │ │ ├── tags.png │ │ │ ├── happy.png │ │ │ ├── promo.jpg │ │ │ ├── hourglass.png │ │ │ ├── matchhead.png │ │ │ ├── bg-grainy-grass.png │ │ │ └── bg-gradient-grass.png │ │ ├── settings@2x.png │ │ ├── group-controls.png │ │ ├── group-controls@2x.png │ │ ├── compatibilityFix │ │ │ ├── edit-dark.png │ │ │ ├── actions-dark.png │ │ │ ├── actions-dark@2x.png │ │ │ ├── group-controls-dark.png │ │ │ ├── group-controls-dark@2x.png │ │ │ ├── TabCenter.css │ │ │ └── FTDeepDark-scrollbars.css │ │ ├── menu-arrow.svg │ │ ├── defaults.css │ │ ├── scrollbars.css │ │ └── TabView.css │ ├── mac │ │ ├── Toolbar.png │ │ ├── Toolbar@2x.png │ │ ├── menuPanel.png │ │ ├── menuPanel@2x.png │ │ ├── Toolbar-inverted.png │ │ ├── Toolbar-yosemite.png │ │ ├── menuPanel-yosemite.png │ │ ├── Toolbar-inverted@2x.png │ │ ├── Toolbar-yosemite@2x.png │ │ ├── menuPanel-yosemite@2x.png │ │ ├── quickAccess.css │ │ ├── tabview-frame.css │ │ └── TabView.css │ └── linux │ │ ├── Toolbar.png │ │ ├── Toolbar@2x.png │ │ ├── menuPanel.png │ │ ├── menuPanel@2x.png │ │ ├── Toolbar-inverted.png │ │ ├── Toolbar-inverted@2x.png │ │ ├── tabview-frame.css │ │ ├── quickAccess.css │ │ └── TabView.css ├── content │ ├── addonicons.png │ ├── bug566510.xul │ ├── utils │ │ └── helptext.xul │ └── quickAccess.xul └── locale │ ├── zh-CN │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── zh-TW │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── ja-JP-mac │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── ja-JP │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── cs │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── en-US │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── es │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties │ ├── fy-NL │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── pl │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── nl │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties │ ├── sl │ ├── utils-toaster.properties │ ├── utils-keys.properties │ ├── defaults.dtd │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── sv-SE │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ ├── TabView.properties │ └── TabView.dtd │ ├── de │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties │ ├── pt-BR │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties │ ├── fr │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties │ └── pt-PT │ ├── utils-toaster.properties │ ├── defaults.dtd │ ├── utils-keys.properties │ ├── options.properties │ ├── utils-preferences.dtd │ ├── utils-about.dtd │ └── TabView.properties ├── README.md ├── resource ├── modules │ ├── compatibilityFix │ │ ├── windowFixes.jsm │ │ ├── FTDeepDark.jsm │ │ ├── sandboxFixes.jsm │ │ ├── bug566510.jsm │ │ └── SessionManager.jsm │ ├── utils │ │ ├── windowTools.jsm │ │ ├── windowUtilsPreload.jsm │ │ ├── attributes.jsm │ │ ├── Strings.jsm │ │ └── sandboxUtils.jsm │ ├── paneHowTo.jsm │ ├── AllTabs.jsm │ ├── content │ │ ├── CatchRules.jsm │ │ └── utils │ │ │ ├── ModuleInSandbox.jsm │ │ │ └── api.jsm │ ├── paneTabGroups.jsm │ └── migrate.jsm ├── defaultsContent.js └── workers │ ├── preloadIcon.js │ └── findDominantColor.js └── .gitattributes /chrome/skin/win/grain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/grain.png -------------------------------------------------------------------------------- /chrome/skin/common/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/icon.png -------------------------------------------------------------------------------- /chrome/skin/common/panes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/panes.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar.png -------------------------------------------------------------------------------- /chrome/content/addonicons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/content/addonicons.png -------------------------------------------------------------------------------- /chrome/skin/common/actions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/actions.png -------------------------------------------------------------------------------- /chrome/skin/common/newItem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/newItem.png -------------------------------------------------------------------------------- /chrome/skin/linux/Toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar@2x.png -------------------------------------------------------------------------------- /chrome/skin/mac/menuPanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-XP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-XP.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/menuPanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel.png -------------------------------------------------------------------------------- /chrome/locale/zh-CN/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups 已更新至版本 $vx。 3 | line2=点击这里了解有哪些变更。 4 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups 更新到了 $vx 版本。 3 | line2=點擊這裡來檢視有什麼變更。 4 | -------------------------------------------------------------------------------- /chrome/skin/common/actions@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/actions@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/edit-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/edit-light.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/grid.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/list.png -------------------------------------------------------------------------------- /chrome/skin/common/panes@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/panes@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/settings.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/sad.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/tags.png -------------------------------------------------------------------------------- /chrome/skin/linux/Toolbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar@2x.png -------------------------------------------------------------------------------- /chrome/skin/linux/menuPanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/menuPanel.png -------------------------------------------------------------------------------- /chrome/skin/mac/menuPanel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-aero.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-win8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-win8.png -------------------------------------------------------------------------------- /chrome/skin/win/menuPanel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/create.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/icons.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/pinned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/pinned.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/search.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/stack.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/thumbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/thumbs.png -------------------------------------------------------------------------------- /chrome/skin/common/settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/settings@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/happy.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/promo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/promo.jpg -------------------------------------------------------------------------------- /chrome/skin/linux/menuPanel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/menuPanel@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-aero@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-win8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-win8@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/menuPanel-aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel-aero.png -------------------------------------------------------------------------------- /chrome/skin/common/group-controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/group-controls.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/hourglass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/hourglass.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/matchhead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/matchhead.png -------------------------------------------------------------------------------- /chrome/skin/linux/Toolbar-inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar-inverted.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar-inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-inverted.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar-yosemite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-yosemite.png -------------------------------------------------------------------------------- /chrome/skin/mac/menuPanel-yosemite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel-yosemite.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-inverted.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-lunaSilver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-lunaSilver.png -------------------------------------------------------------------------------- /chrome/skin/win/menuPanel-aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel-aero@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/group-controls@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/group-controls@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/freearrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/freearrange.png -------------------------------------------------------------------------------- /chrome/skin/common/howto/singleview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/singleview.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar-inverted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-inverted@2x.png -------------------------------------------------------------------------------- /chrome/skin/mac/Toolbar-yosemite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-yosemite@2x.png -------------------------------------------------------------------------------- /chrome/skin/win/Toolbar-inverted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-inverted@2x.png -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups がバージョン $vx に更新されました。 3 | line2=変更点の確認はここをクリックしてください。 4 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups がバージョン $vx に更新されました。 3 | line2=変更点の確認はここをクリックしてください。 4 | -------------------------------------------------------------------------------- /chrome/skin/linux/Toolbar-inverted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar-inverted@2x.png -------------------------------------------------------------------------------- /chrome/skin/mac/menuPanel-yosemite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel-yosemite@2x.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/bg-grainy-grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/bg-grainy-grass.png -------------------------------------------------------------------------------- /chrome/skin/common/utils/bg-gradient-grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/bg-gradient-grass.png -------------------------------------------------------------------------------- /chrome/locale/cs/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Skupiny panelů 2 | line1=Skupiny panelů byly aktualizovány na verzi $vx. 3 | line2=Zobrazit seznam změn. 4 | -------------------------------------------------------------------------------- /chrome/locale/en-US/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups was updated to version $vx. 3 | line2=Click here to see what's changed. 4 | -------------------------------------------------------------------------------- /chrome/locale/es/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups se actualizó a la versión $vx. 3 | line2=Pulse aquí para ver los cambios. 4 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups was updated to version $vx. 3 | line2=Click here to see what's changed. 4 | -------------------------------------------------------------------------------- /chrome/locale/pl/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups was updated to version $vx. 3 | line2=Click here to see what's changed. 4 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/edit-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/edit-dark.png -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/actions-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/actions-dark.png -------------------------------------------------------------------------------- /chrome/locale/nl/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups is bijgewerkt naar versie $vx. 3 | line2=Klik hier om te zien wat er is gewijzigd. 4 | -------------------------------------------------------------------------------- /chrome/locale/sl/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups je bil posodobljen na različico $vx. 3 | line2=Kliknite tukaj za ogled sprememb. 4 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tab Groups 2 | line1=Tab Groups uppdaterades till version $vx. 3 | line2=Klicka här för att se vad som ändrades. 4 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/actions-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/actions-dark@2x.png -------------------------------------------------------------------------------- /chrome/locale/de/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Tabgruppen 2 | line1=Tabgruppen wurde auf Version $vx aktualisiert. 3 | line2=Erfahren Sie hier, was sich geändert hat. 4 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Grupo de abas 2 | line1=O grupo de abas foi atualizado para versão $vx 3 | line2=Clique aqui para ver o que mudou. 4 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/group-controls-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/group-controls-dark.png -------------------------------------------------------------------------------- /chrome/locale/fr/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Groupes d'onglets 2 | line1=Groupes d'onglets a été mis à jour vers la version $vx. 3 | line2=Cliquez ici pour voir ce qui a changé 4 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/group-controls-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/group-controls-dark@2x.png -------------------------------------------------------------------------------- /chrome/locale/pt-PT/utils-toaster.properties: -------------------------------------------------------------------------------- 1 | title=Grupos de Separadores 2 | line1=Os Grupos de Separadores foram actualizados para a versão $vx. 3 | line2=Clica aqui para ver as alterações. 4 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/cs/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/en-US/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chrome/locale/de/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/es/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/pl/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=なし 7 | spacebar=スペース 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=← 13 | up=↑ 14 | right=→ 15 | down=↓ 16 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=なし 7 | spacebar=スペース 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=← 13 | up=↑ 14 | right=→ 15 | down=↓ 16 | -------------------------------------------------------------------------------- /chrome/locale/nl/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=无 7 | spacebar=空格键 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=左箭头 13 | up=右箭头 14 | right=上箭头 15 | down=下箭头 16 | -------------------------------------------------------------------------------- /chrome/locale/pl/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Brak 7 | spacebar=Spacja 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Lewo 13 | up=Góra 14 | right=Prawo 15 | down=Dół 16 | -------------------------------------------------------------------------------- /chrome/locale/sl/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Ctrl 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Brez 7 | spacebar=Presledek 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Levo 13 | up=Gor 14 | right=Desno 15 | down=Dol 16 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=無 7 | spacebar=空白鍵 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=左方向鍵 13 | up=上方向鍵 14 | right=右方向鍵 15 | down=下方向鍵 16 | -------------------------------------------------------------------------------- /chrome/locale/en-US/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=None 7 | spacebar=Spacebar 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Left 13 | up=Up 14 | right=Right 15 | down=Down 16 | -------------------------------------------------------------------------------- /chrome/locale/sl/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/fr/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/nl/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Geen 7 | spacebar=Spatiebalk 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Links 13 | up=Omhoog 14 | right=Rechts 15 | down=Omlaag 16 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Ctrl 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Ingenting 7 | spacebar=Mellanslag 8 | pageup=Page up 9 | pagedown=Page down 10 | end=End 11 | home=Home 12 | left=Vänster 13 | up=Upp 14 | right=Höger 15 | down=Ned 16 | -------------------------------------------------------------------------------- /chrome/locale/fr/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Ctrl 2 | shift=Majuscule 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Aucun 7 | spacebar=Barre d'espace 8 | pageup=Page haut 9 | pagedown=Page bas 10 | end=Fin 11 | home=Début 12 | left=Gauche 13 | up=Haut 14 | right=Droit 15 | down=Bas 16 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Gjin 7 | spacebar=Spaasjebalke 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Links 13 | up=Omheech 14 | right=Rjochts 15 | down=Omleech 16 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Nada 7 | spacebar=Barra de Espaço 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Esquerda 13 | up=Cima 14 | right=Direita 15 | down=Baixo 16 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/defaults.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chrome/locale/es/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Mayús 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=Ninguna 7 | spacebar=Barra espaciadora 8 | pageup=Av Pág 9 | pagedown=Re Pág 10 | end=Fin 11 | home=Inicio 12 | left=Izquierda 13 | up=Arriba 14 | right=Derecha 15 | down=Abajo 16 | -------------------------------------------------------------------------------- /chrome/skin/linux/tabview-frame.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | body { 6 | font: -moz-window; 7 | font-size: 12px; 8 | } 9 | -------------------------------------------------------------------------------- /chrome/locale/cs/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Ctrl 2 | shift=Shift 3 | alt=Alt 4 | command=Command 5 | option=Option 6 | none=nic 7 | spacebar=Mezerník 8 | pageup=Page Up 9 | pagedown=Page Down 10 | end=End 11 | home=Home 12 | left=Šipka vlevo 13 | up=Šipka nahoru 14 | right=Šipka vpravo 15 | down=Šipka dolů 16 | -------------------------------------------------------------------------------- /chrome/locale/de/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Steuerung 2 | shift=Umschalten 3 | alt=Alt 4 | command=Befehlstaste 5 | option=Optionstaste 6 | none=Keine 7 | spacebar=Leertaste 8 | pageup=Seite/Bild hoch 9 | pagedown=Seite/Bild runter 10 | end=Ende 11 | home=Anfang/Pos1 12 | left=Links 13 | up=Hoch 14 | right=Rechts 15 | down=Runter 16 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/utils-keys.properties: -------------------------------------------------------------------------------- 1 | control=Control 2 | shift=Shift 3 | alt=Alt 4 | command=Comando 5 | option=Opção 6 | none=Nenhum 7 | spacebar=Barra de espaços 8 | pageup=Página para cima 9 | pagedown=Página para baixo 10 | end=Fim 11 | home=Início 12 | left=Seta esquerda 13 | up=Seta cima 14 | right=Seta direita 15 | down=Seta baixo 16 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=分组迁移备份 - $date 2 | sessionRecovery=当前的会话恢复 - $date 3 | recoveryBackup=会话恢复备份 - $date 4 | previousSession=以前的会话 - $date 5 | upgradeBackup=Firefox 升级备份 - $date 6 | manualBackup=分组手动备份 - $date 7 | addonUpdateBackup=标签页分组更新备份 - $date 8 | sessionManager=会话管理器备份 - $date 9 | tabMixPlus=Tab Mix Plus 备份 - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=群組遷移備份 - $date 2 | sessionRecovery=目前工作階段復原 - $date 3 | recoveryBackup=工作階段復原備份 - $date 4 | previousSession=先前的工作階段 - $date 5 | upgradeBackup=Firefox 升級備份 - $date 6 | manualBackup=群組手動備份 - $date 7 | addonUpdateBackup=分頁群組更新備份 - $date 8 | sessionManager=Session Manager 備份 - $date 9 | tabMixPlus=Tab Mix Plus 備份 - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=グループ移行用バックアップ - $date 2 | sessionRecovery=現在のセッションの復旧 - $date 3 | recoveryBackup=セッション復旧用バックアップ 4 | previousSession=前回のセッション - $date 5 | upgradeBackup=Firefox アップグレード時のバックアップ - $date 6 | manualBackup=グループの手動バックアップ - $date 7 | addonUpdateBackup=Tab Groups 更新時のバックアップ - $date 8 | sessionManager=Session Manager のバックアップ - $date 9 | tabMixPlus=Tab Mix Plus のバックアップ - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=グループ移行用バックアップ - $date 2 | sessionRecovery=現在のセッションの復旧 - $date 3 | recoveryBackup=セッション復旧用バックアップ 4 | previousSession=前回のセッション - $date 5 | upgradeBackup=Firefox アップグレード時のバックアップ - $date 6 | manualBackup=グループの手動バックアップ - $date 7 | addonUpdateBackup=Tab Groups 更新時のバックアップ - $date 8 | sessionManager=Session Manager のバックアップ - $date 9 | tabMixPlus=Tab Mix Plus のバックアップ - $date 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tab Groups 2 | 3 | # This add-on will not receive any more updates! 4 | It will cease working by next November with Firefox 57. Click here for more info. Feel free to fork and use however you like. 5 | 6 | AMO url: https://addons.mozilla.org/firefox/addon/tab-groups-panorama/ 7 | 8 | Babelzilla page: https://www.babelzilla.org/index.php?option=com_wts&Itemid=0&type=show&extension=5749 9 | -------------------------------------------------------------------------------- /chrome/skin/linux/quickAccess.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | .tabGroups-quickaccess-panel-footer toolbarseparator { 8 | -moz-appearance: none !important; 9 | } 10 | -------------------------------------------------------------------------------- /chrome/locale/en-US/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Groups Migration Backup - $date 2 | sessionRecovery=Current Session Recovery - $date 3 | recoveryBackup=Session Recovery Backup - $date 4 | previousSession=Previous Session - $date 5 | upgradeBackup=Firefox Upgrade Backup - $date 6 | manualBackup=Groups Manual Backup - $date 7 | addonUpdateBackup=Tab Groups Update Backup - $date 8 | sessionManager=Session Manager Backup - $date 9 | tabMixPlus=Tab Mix Plus Backup - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/cs/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Migrační záloha skupin - $date 2 | sessionRecovery=Obnova aktuální relace - $date 3 | recoveryBackup=Záloha obnovy relace - $date 4 | previousSession=Předchozí relace - $date 5 | upgradeBackup=Záloha z aktualizace Firefoxu - $date 6 | manualBackup=Ruční záloha skupin - $date 7 | addonUpdateBackup=Záloha z aktualizace Skupin panelů - $date 8 | sessionManager=Záloha Session Manager - $date 9 | tabMixPlus=Záloha Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /resource/modules/compatibilityFix/windowFixes.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.0 6 | 7 | Modules.LOADMODULE = function() { 8 | Modules.load('compatibilityFix/TabCenter'); 9 | }; 10 | 11 | Modules.UNLOADMODULE = function() { 12 | Modules.unload('compatibilityFix/TabCenter'); 13 | }; 14 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/TabCenter.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @-moz-document url("chrome://browser/content/browser.xul") { 6 | #TabsToolbar:not([tabCenterInputFocused]) > toolbarbutton#tabGroups-tabview-button:not(#pin-button):not(#new-tab-button) { 7 | display: -moz-box; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /chrome/locale/nl/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Back-up van groepenmigratie - $date 2 | sessionRecovery=Herstel van huidige sessie - $date 3 | recoveryBackup=Back-up van sessieherstel - $date 4 | previousSession=Vorige sessie - $date 5 | upgradeBackup=Back-up van Firefox-upgrade - $date 6 | manualBackup=Handmatige back-up van groepen - $date 7 | addonUpdateBackup=Back-up van Tab Groups-update - $date 8 | sessionManager=Back-up van Session Manager - $date 9 | tabMixPlus=Back-up van Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Reservekopy groepmigraasje - $date 2 | sessionRecovery=Aktuele sesjewerstel - $date 3 | recoveryBackup=Reservekopy sesjewerstel - $date 4 | previousSession=Foarige sesje - $date 5 | upgradeBackup=Firefox fernijingsreservekopy - $date 6 | manualBackup=Hânmjittige reservekopy groepen - $date 7 | addonUpdateBackup=Fernijingsreservekopy ljepblêdgroepen - $date 8 | sessionManager=Reservekopy sesjebehearder - $date 9 | tabMixPlus=Reservekopy Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Backup de migração de grupos - $date 2 | sessionRecovery=Recuperação da sessão atual - $date 3 | recoveryBackup=Backup da recuperação da sessão - $date 4 | previousSession=Sessão anterior - $date 5 | upgradeBackup=Backup de atualização do Firefox - $date 6 | manualBackup=Backup manual dos grupos - $date 7 | addonUpdateBackup=Backup de atualização dos grupos de separadores - $date 8 | sessionManager=Backup do gerenciador de sessão - $date 9 | tabMixPlus=Backup do Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/de/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Gruppen-Migrations-Sicherung - $date 2 | sessionRecovery=Sicherung der aktuellen Sitzung - $date 3 | recoveryBackup=Sitzungswiederherstellungs-Sicherung - $date 4 | previousSession=Vorherige Sitzung - $date 5 | upgradeBackup=Firefox-Aktualisierungs-Sicherung - $date 6 | manualBackup=Manuelle Sicherung der Gruppen - $date 7 | addonUpdateBackup=Tabgruppen-Aktualisierungs-Sicherung - $date 8 | sessionManager=Sitzungsverwaltungs-Sicherung - $date 9 | tabMixPlus=Tab Mix Plus-Sicherung - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/pl/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Migracja grup, kopia zapasowa - $date 2 | sessionRecovery=Odzyskiwanie obecnej sesji - $date 3 | recoveryBackup=Odzyskiwanie sesji, kopia zapasowa - $date 4 | previousSession=Poprzednia sesja - $date 5 | upgradeBackup=Aktualizacja Firefoksa, kopia zapasowa - $date 6 | manualBackup=Ręczna kopia zapasowa grup - $date 7 | addonUpdateBackup=Aktualizacja Grup Kart, kopia zapasowa - $date 8 | sessionManager=Session Manager, kopia zapasowa - $date 9 | tabMixPlus=Tab Mix Plus, kopia zapasowa - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/sl/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Varnostna kopija ob selitvi skupin - $date 2 | sessionRecovery=Obnovitev trenutne seje - $date 3 | recoveryBackup=Varnostna kopija obnovitve seje - $date 4 | previousSession=Prejšnja seja - $date 5 | upgradeBackup=Varnostna kopija ob nadgradnji Firefoxa - $date 6 | manualBackup=Ročna varnostna kopija skupin - $date 7 | addonUpdateBackup=Varnostna kopija ob posodobitvi dodatka Tab Groups - $date 8 | sessionManager=Varnostna kopija Session Managerja - $date 9 | tabMixPlus=Varnostna kopija Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Salvaguarda de Migração de Grupos - $date 2 | sessionRecovery=Recuperação da Sessão Atual - $date 3 | recoveryBackup=Salvaguarda da Recuperação da Sessão - $date 4 | previousSession=Sessão Anterior - $date 5 | upgradeBackup=Salvaguarda de Atualização do Firefox - $date 6 | manualBackup=Salvaguarda Manual dos Grupos - $date 7 | addonUpdateBackup=Salvaguarda de Atualização dos Grupos de Separadores - $date 8 | sessionManager=Salvaguarda do Session Manager - $date 9 | tabMixPlus=Salvaguarda do Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/locale/fr/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Sauvegarde de la migration des groupes - $date 2 | sessionRecovery=Restauration de session courante - $date 3 | recoveryBackup=Sauvegarde de la restauration de session - $date 4 | previousSession=Précédente session - $date 5 | upgradeBackup=Sauvegarde de la mise à jour de Firefox - $date 6 | manualBackup=Sauvegarde manuelle - $date 7 | addonUpdateBackup=Sauvegarde de la mise à jour des Groupes d'Onglets - $date 8 | sessionManager=Sauvegarde du gestionnaire de sessoion - $date 9 | tabMixPlus=Sauvegarde de Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Säkerhetskopia för gruppmigrering - $date 2 | sessionRecovery=Aktuell sessionsåterställning - $date 3 | recoveryBackup=Säkerhetskopia för sessionsåterställning - $date 4 | previousSession=Föregående session - $date 5 | upgradeBackup=Säkerhetskopia för Firefox-uppgradering - $date 6 | manualBackup=Manuell säkerhetskopia av grupper - $date 7 | addonUpdateBackup=Säkerhetskopia för Tab Groups-uppdatering - $date 8 | sessionManager=Säkerhetskopia för Sessionshanteraren - $date 9 | tabMixPlus=Säkerhetskopia för Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /chrome/content/bug566510.xul: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /chrome/locale/es/options.properties: -------------------------------------------------------------------------------- 1 | groupsMigrationBackup=Copia de seguridad por migración de grupos - $date 2 | sessionRecovery=Datos de recuperación de la sesión actual - $date 3 | recoveryBackup=Copia de seguridad de los datos de recuperación de sesión - $date 4 | previousSession=Sesión anterior - $date 5 | upgradeBackup=Copia de seguridad por actualización de Firefox - $date 6 | manualBackup=Copia de seguridad manual de los grupos - $date 7 | addonUpdateBackup=Copia de seguridad por actualización de Tab Groups - $date 8 | sessionManager=Copia de seguridad de Session Manager - $date 9 | tabMixPlus=Copia de seguridad de Tab Mix Plus - $date 10 | -------------------------------------------------------------------------------- /resource/defaultsContent.js: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 2.0.1 6 | 7 | // By using a JSM, we can initialize each individual tab (frame) with our scripts without having to instanciate the same objects with each one. 8 | (function(frame) { 9 | let targetScope = {}; 10 | Components.utils.import("resource://tabgroups/modules/content/utils/ModuleInSandbox.jsm", targetScope); 11 | targetScope.ModuleInSandbox.init('tabgroups', frame); 12 | })(this); 13 | -------------------------------------------------------------------------------- /chrome/skin/mac/quickAccess.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | @media (min-resolution: 1.1dppx) { 8 | .tabGroups-quickaccess:not([FF48]) .loading { 9 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png"); 10 | } 11 | 12 | .tabGroups-quickaccess[FF48]:not([FF50]) .loading { 13 | background-image: url("chrome://global/skin/icons/loading@2x.png"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /chrome/skin/win/quickAccess.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | @media (min-resolution: 1.1dppx) { 8 | .tabGroups-quickaccess:not([FF48]) .loading { 9 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png"); 10 | } 11 | 12 | .tabGroups-quickaccess[FF48]:not([FF50]) .loading { 13 | background-image: url("chrome://global/skin/icons/loading@2x.png"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /resource/workers/preloadIcon.js: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.1 6 | 7 | self.onmessage = function (e) { 8 | let iconUrl = e.data.iconUrl; 9 | 10 | let xhr = new XMLHttpRequest(); 11 | xhr.open('GET', iconUrl, true); 12 | xhr.responseType = 'blob'; 13 | xhr.onload = function () { 14 | self.postMessage({ iconUrl, loaded: true }); 15 | }; 16 | xhr.onerror = function() { 17 | self.postMessage({ iconUrl, loaded: false }); 18 | }; 19 | xhr.send(); 20 | }; 21 | -------------------------------------------------------------------------------- /resource/modules/utils/windowTools.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 2.1.1 6 | Modules.UTILS = true; 7 | Modules.BASEUTILS = true; 8 | 9 | // aSync(aFunc, aDelay) - lets me run aFunc asynchronously, basically it's a one shot timer with a delay of aDelay msec 10 | // aFunc - (function) to be called asynchronously 11 | // (optional) aDelay - (int) msec to set the timer, defaults to 0msec 12 | this.aSync = function(aFunc, aDelay) { 13 | return Timers.create(aFunc, (!aDelay) ? 0 : aDelay); 14 | }; 15 | -------------------------------------------------------------------------------- /chrome/content/utils/helptext.xul: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resource/modules/compatibilityFix/FTDeepDark.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.2 6 | 7 | Modules.LOADMODULE = function() { 8 | Styles.load('FTDeepDark', 'compatibilityFix/FTDeepDark'); 9 | Styles.load('FTDeepDark-theme', 'compatibilityFix/FTDeepDark-theme'); 10 | Styles.load('FTDeepDark-scrollbars', 'compatibilityFix/FTDeepDark-scrollbars', false, 'agent'); 11 | Observers.notify(objName+'-darktheme-changed', null); 12 | }; 13 | 14 | Modules.UNLOADMODULE = function() { 15 | Styles.unload('FTDeepDark'); 16 | Styles.unload('FTDeepDark-theme'); 17 | Styles.unload('FTDeepDark-scrollbars'); 18 | Observers.notify(objName+'-darktheme-changed', null); 19 | }; 20 | -------------------------------------------------------------------------------- /chrome/skin/common/compatibilityFix/FTDeepDark-scrollbars.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @-moz-document url("chrome://tabgroups/content/tabview.xhtml") { 6 | scrollbar { 7 | background-color: transparent !important; 8 | } 9 | 10 | scrollbar[orient="vertical"] { 11 | -moz-margin-start: calc(0px - var(--scrollbar-width)) !important; 12 | min-width: var(--scrollbar-width) !important; 13 | max-width: var(--scrollbar-width) !important; 14 | } 15 | 16 | scrollbar[orient="horizontal"] { 17 | margin-top: calc(0px - var(--scrollbar-width)) !important; 18 | min-height: var(--scrollbar-width) !important; 19 | max-height: var(--scrollbar-width) !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /chrome/skin/common/menu-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /chrome/skin/win/TabView.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | /* tabview toolbar button */ 8 | 9 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon { 10 | max-width: 18px; 11 | } 12 | 13 | #nav-bar #tabGroups-tabview-button > .toolbarbutton-icon { 14 | padding: 2px 6px; 15 | max-width: 32px; 16 | } 17 | 18 | @media (-moz-os-version: windows-win10) { 19 | #nav-bar #tabGroups-tabview-button > .toolbarbutton-icon { 20 | padding: 4px 6px; 21 | } 22 | } 23 | 24 | @media (-moz-windows-theme: luna-silver) and (max-resolution: 1dppx) { 25 | .tabGroups-icon { 26 | list-style-image: url("chrome://tabgroups-os/skin/Toolbar-lunaSilver.png"); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /resource/modules/utils/windowUtilsPreload.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.1 6 | 7 | // Listeners - Object to aid in setting and removing all kinds of event listeners to an object; 8 | this.__defineGetter__('Listeners', function() { delete this.Listeners; Modules.load('utils/Listeners'); return Listeners; }); 9 | 10 | // Timers - Object to aid in setting, initializing and cancelling timers 11 | this.__defineGetter__('Timers', function() { delete this.Timers; Modules.load('utils/Timers'); return Timers; }); 12 | 13 | // aSync() - lets me run aFunc asynchronously, basically it's a one shot timer with a delay of aDelay msec 14 | this.aSync = function(aFunc, aDelay) { loadWindowTools(); return aSync(aFunc, aDelay); }; 15 | 16 | this.loadWindowTools = function() { 17 | delete this.aSync; 18 | delete this.loadWindowTools; 19 | Modules.load('utils/windowTools'); 20 | }; 21 | -------------------------------------------------------------------------------- /chrome/locale/sl/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resource/modules/paneHowTo.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.1 6 | 7 | Modules.LOADMODULE = function() { 8 | toggleAttribute(document.documentElement, 'FF49', Services.vc.compare(Services.appinfo.version, "49.0a1") >= 0); 9 | 10 | let fulltext = $('paneHowTo-credits-body'); 11 | let exploded = fulltext.textContent.split('support.mozilla.org'); 12 | if(exploded.length == 2) { 13 | let first = document.createTextNode(exploded[0]); 14 | let second = document.createTextNode(exploded[1]); 15 | let link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a'); 16 | setAttribute(link, 'target', '_blank'); 17 | setAttribute(link, 'href', 'https://support.mozilla.org/kb/tab-groups-organize-tabs'); 18 | link.textContent = 'support.mozilla.org'; 19 | 20 | fulltext.firstChild.remove(); 21 | fulltext.appendChild(first); 22 | fulltext.appendChild(link); 23 | fulltext.appendChild(second); 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /resource/modules/compatibilityFix/sandboxFixes.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.5 6 | 7 | Modules.LOADMODULE = function() { 8 | AddonManager.getAddonByID('bug566510@vovcacik.addons.mozilla.org', function(addon) { 9 | Modules.loadIf('compatibilityFix/bug566510', (addon && addon.isActive)); 10 | }); 11 | 12 | AddonManager.getAddonByID('{dc572301-7619-498c-a57d-39143191b318}', function(addon) { 13 | Modules.loadIf('compatibilityFix/TabMixPlus', (addon && addon.isActive)); 14 | }); 15 | 16 | Modules.load('compatibilityFix/CCK2'); 17 | Modules.load('compatibilityFix/SessionManager'); 18 | Modules.load('compatibilityFix/brighttext'); 19 | }; 20 | 21 | Modules.UNLOADMODULE = function() { 22 | Modules.unload('compatibilityFix/bug566510'); 23 | Modules.unload('compatibilityFix/TabMixPlus'); 24 | Modules.unload('compatibilityFix/CCK2'); 25 | Modules.unload('compatibilityFix/SessionManager'); 26 | Modules.unload('compatibilityFix/brighttext'); 27 | }; 28 | -------------------------------------------------------------------------------- /chrome/locale/en-US/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/cs/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/pl/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/nl/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/de/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resource/modules/AllTabs.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.1.1 6 | Modules.UTILS = true; 7 | 8 | this.Tabs = { 9 | get length() { 10 | return gBrowser.tabs.length; 11 | }, 12 | 13 | get all() { 14 | // gBrowser.tabs is a NodeList, not an array 15 | return Array.filter(gBrowser.tabs, function(tab) { return !tab.closing; }); 16 | }, 17 | 18 | get pinned() { 19 | return this.all.filter(function(tab) { return tab.pinned; }); 20 | }, 21 | 22 | get notPinned() { 23 | return this.all.filter(function(tab) { return !tab.pinned; }); 24 | }, 25 | 26 | get numPinned() { 27 | return gBrowser._numPinnedTabs; 28 | }, 29 | 30 | get visible() { 31 | return gBrowser.visibleTabs; 32 | }, 33 | 34 | get selected() { 35 | return gBrowser.selectedTab; 36 | }, 37 | set selected(tab) { 38 | return gBrowser.selectedTab = tab; 39 | }, 40 | 41 | hasHidden: function() { 42 | return (this.length - Tabs.visible.length); 43 | }, 44 | 45 | listen: function(eventName, listener) { 46 | Listeners.add(gBrowser.tabContainer, eventName, listener); 47 | }, 48 | 49 | unlisten: function(eventName, listener) { 50 | Listeners.remove(gBrowser.tabContainer, eventName, listener); 51 | } 52 | }; 53 | -------------------------------------------------------------------------------- /chrome/skin/common/defaults.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | /* preferences About pane backgound */ 6 | 7 | .main-wrapper { 8 | background: url("chrome://tabgroups/skin/utils/bg-gradient-grass.png") repeat-x, url("chrome://tabgroups/skin/utils/bg-grainy-grass.png") repeat, #eee; 9 | } 10 | 11 | /* add-on's icon next to its name in About pane */ 12 | 13 | #logo { 14 | list-style-image: url("chrome://tabgroups/skin/icon.png"); 15 | } 16 | 17 | /* Release Notes categories icons */ 18 | 19 | .notes-items > li.tagged > b { 20 | background-image: url("chrome://tabgroups/skin/utils/tags.png"); 21 | } 22 | 23 | /* development status section images */ 24 | 25 | .happy { 26 | list-style-image: url("chrome://tabgroups/skin/utils/happy.png"); 27 | } 28 | 29 | .sad { 30 | list-style-image: url("chrome://tabgroups/skin/utils/sad.png"); 31 | } 32 | 33 | .hourglass image { 34 | list-style-image: url("chrome://tabgroups/skin/utils/hourglass.png"); 35 | } 36 | 37 | /* #matchhead promo section */ 38 | 39 | #promo-matchhead-tab { 40 | background-image: url("chrome://tabgroups/skin/utils/matchhead.png"); 41 | } 42 | 43 | #promo-matchhead-image { 44 | background-image: url("chrome://tabgroups/skin/utils/promo.jpg"); 45 | } 46 | -------------------------------------------------------------------------------- /chrome/locale/es/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/fr/utils-preferences.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resource/workers/findDominantColor.js: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.0 6 | 7 | self.onmessage = function (e) { 8 | let iconUrl = e.data.iconUrl; 9 | let data = e.data.imageData.data; 10 | 11 | // keep track of how many times a color appears in the image 12 | let colorCount = new Map(); 13 | for(let i = 0; i < data.length; i += 4) { 14 | // ignore transparent pixels 15 | if(data[i+3] < 32) { continue; } 16 | 17 | // Do some rounding, to get a "feel" of the icons rather than the precise rgb values in the image. 18 | // This has the added bonus of having to loop through less entries in the checks below, 19 | // so it seems to compensate for the extra calculations here to round the values. 20 | let color = roundColor(data[i]) + "," + roundColor(data[i+1]) + "," + roundColor(data[i+2]); 21 | // ignore white --- quicksaver: why? 22 | //if(color == "255,255,255") { continue; } 23 | 24 | colorCount.set(color, (colorCount.get(color) || 0) + 1); 25 | } 26 | 27 | let maxCount = 0; 28 | let dominantColor = ""; 29 | for(let [ color, count ] of colorCount) { 30 | if(count > maxCount) { 31 | maxCount = count; 32 | dominantColor = color; 33 | } 34 | } 35 | 36 | self.postMessage({ iconUrl, dominantColor }); 37 | }; 38 | 39 | let roundColor = function(v) { 40 | return Math.min(Math.round(v /8) *8, 255); 41 | }; 42 | -------------------------------------------------------------------------------- /chrome/skin/mac/tabview-frame.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | :root { 6 | --item-border-radius: 7px; 7 | } 8 | 9 | body { 10 | font: message-box; 11 | font-size: 12px; 12 | } 13 | 14 | /* Tab Item */ 15 | 16 | @media (min-resolution: 1.1dppx) { 17 | body:not([FF50]) .tab[busy]:not([progress]) .throbber, 18 | body:not([FF50]) .appTabIcon[busy]:not([progress]) { 19 | background-image: url("chrome://browser/skin/tabbrowser/connecting@2x.png"); 20 | } 21 | 22 | body:not([FF48]) .tab[busy][progress] .throbber, 23 | body:not([FF48]) .appTabIcon[busy][progress] { 24 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png"); 25 | } 26 | 27 | body[FF48]:not([FF50]) .tab[busy][progress] .throbber, 28 | body[FF48]:not([FF50]) .appTabIcon[busy][progress] { 29 | background-image: url("chrome://global/skin/icons/loading@2x.png"); 30 | } 31 | } 32 | 33 | /* Tab GroupItem */ 34 | 35 | body.classic .groupItem, 36 | .expandedTray, 37 | .undo:not(.inGroupSelector) { 38 | border-radius: var(--item-border-radius); 39 | } 40 | 41 | /* Side buttons */ 42 | 43 | body:-moz-any(.classic,[lwtheme]) #actions { 44 | border-top-color: ThreeDHighlight; 45 | } 46 | 47 | body.classic #actions { 48 | border-radius: 0 0 0 var(--item-border-radius); 49 | } 50 | 51 | body.classic #actions:-moz-locale-dir(rtl) { 52 | border-radius: 0 0 var(--item-border-radius) 0; 53 | } 54 | -------------------------------------------------------------------------------- /resource/modules/content/CatchRules.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.0 6 | 7 | this.CatchRules = { 8 | // This module will only be initialized in frame scripts from windows that need it. 9 | moduleName: 'CatchRules', 10 | 11 | onLocationChange: function(aWebProgress, aRequest, aLocation) { 12 | // There's probably an easier way to fetch the frame's message manager context from the webprogress instance, I don't know it. 13 | // aWebProgress.tabChild.messageManager == frame only in remote browsers apparently; this errors in non-e10s. 14 | for(let frame of Frames._tracked.keys()) { 15 | if(frame.content == aWebProgress.DOMWindow) { 16 | Frames.message(frame, 'CatchRule', aLocation.spec); 17 | return; 18 | } 19 | } 20 | }, 21 | 22 | onFrameAdded: function(frame) { 23 | Frames.get(frame).WebProgress.add(this, Ci.nsIWebProgress.NOTIFY_ALL); 24 | }, 25 | 26 | onFrameDeleted: function(frame) { 27 | Frames.get(frame).WebProgress.remove(this, Ci.nsIWebProgress.NOTIFY_ALL); 28 | }, 29 | 30 | // this is needed in content progress listeners (for some reason) 31 | QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISupportsWeakReference]) 32 | }; 33 | 34 | Modules.LOADMODULE = function() { 35 | Frames.register(CatchRules); 36 | }; 37 | 38 | Modules.UNLOADMODULE = function() { 39 | Frames.unregister(CatchRules); 40 | }; 41 | -------------------------------------------------------------------------------- /chrome/skin/common/scrollbars.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @-moz-document url("chrome://tabgroups/content/tabview.xhtml") { 6 | 7 | scrollbar { 8 | -moz-appearance: none !important; 9 | position: relative; 10 | background-color: transparent; 11 | background-image: none; 12 | z-index: 2147483647; 13 | padding: 2px; 14 | border: none; 15 | } 16 | 17 | scrollbar[orient="vertical"] { 18 | -moz-margin-start: calc(0px - var(--scrollbar-width)); 19 | margin-bottom: 12px; 20 | min-width: var(--scrollbar-width); 21 | max-width: var(--scrollbar-width); 22 | } 23 | 24 | scrollbar[orient="horizontal"] { 25 | margin-top: calc(0px - var(--scrollbar-width)); 26 | min-height: var(--scrollbar-width); 27 | max-height: var(--scrollbar-width); 28 | } 29 | 30 | scrollbar slider { 31 | -moz-appearance: none !important; 32 | } 33 | 34 | scrollbar thumb { 35 | -moz-appearance: none !important; 36 | background-color: var(--hover-color); 37 | border-width: 0px; 38 | border-radius: 3px; 39 | } 40 | 41 | html > scrollbar, 42 | .groupItem.thumbing scrollbar, 43 | scrollbar scrollbarbutton, 44 | scrollbar gripper { 45 | display: none; 46 | } 47 | 48 | body:not([lwtheme]):not([darktheme]) #groupSelector scrollbar thumb, 49 | body[lwtheme] #groupSelector[brighttext] scrollbar thumb { 50 | background-color: rgba(245,245,245,0.65); 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /resource/modules/compatibilityFix/bug566510.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.0 6 | 7 | this.bug566510 = { 8 | onLoad: function(aWindow) { 9 | let tabMenuPopup = aWindow.TabView.tabMenuPopup; 10 | tabMenuPopup._bug566510onPopupShown = function(e) { 11 | if(e.target == tabMenuPopup) { 12 | // the native Tab Groups uses an oncommand attribute, we use JS listeners, 13 | // the bug566510 add-on doesn't know this, so we're adapting its routine here 14 | for(let item of tabMenuPopup.childNodes) { 15 | if(item.id == objName+"-context_tabViewNamedGroups") { break; } 16 | 17 | item.handleEvent = function(e) { 18 | aWindow.bug566510_TabView.moveTabsTo(aWindow.TabContextMenu.contextTab, this.groupId); 19 | }; 20 | } 21 | } 22 | } 23 | tabMenuPopup.addEventListener('popupshown', tabMenuPopup._bug566510onPopupShown); 24 | }, 25 | 26 | onUnload: function(aWindow) { 27 | let tabMenuPopup = aWindow.TabView.tabMenuPopup; 28 | tabMenuPopup.removeEventListener('popupshown', tabMenuPopup._bug566510onPopupShown); 29 | delete tabMenuPopup._bug566510onPopupShown; 30 | } 31 | }; 32 | 33 | Modules.LOADMODULE = function() { 34 | Overlays.overlayURI('chrome://'+objPathString+'/content/TabView.xul', 'bug566510', bug566510); 35 | }; 36 | 37 | Modules.UNLOADMODULE = function() { 38 | Overlays.removeOverlayURI('chrome://'+objPathString+'/content/TabView.xul', 'bug566510'); 39 | }; 40 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /resource/modules/content/utils/ModuleInSandbox.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.0.0 6 | 7 | // This is a workaround for bug 1195689, to allow us to update the ChildProcess.jsm module properly on add-on updates. 8 | // Since we can't unload a JSM module on shutdown, we instead assign it to a sandbox that we can nuke. 9 | // Because of that, any update to this file will typically require a full browser restart to fully take effect. 10 | // Also, this doesn't eliminate the ZC when disabling the add-on, since this JSM will remain loaded in the process 11 | // (even though the actual module in the sandbox is nuked). 12 | 13 | // When bug 1195689 is fixed, we'll be able to use ChildProcess.jsm directly and discard this file completely. 14 | 15 | var EXPORTED_SYMBOLS = [ "ModuleInSandbox" ]; 16 | 17 | var {classes: Cc, interfaces: Ci, utils: Cu} = Components; 18 | Cu.import("resource://gre/modules/Services.jsm"); 19 | 20 | var gSandbox = null; 21 | 22 | var ModuleInSandbox = { 23 | init: function(objPathString, aFrame) { 24 | if(!gSandbox) { 25 | let systemPrincipal = Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal); 26 | gSandbox = Cu.Sandbox(systemPrincipal, { freshZone: true, sandboxName: objPathString+"-ModuleInSandbox" }); 27 | Services.scriptloader.loadSubScript("resource://"+objPathString+"/modules/content/utils/ChildProcess.jsm", gSandbox); 28 | } 29 | gSandbox.ChildProcess.init(objPathString, aFrame, this); 30 | }, 31 | 32 | uninit: function() { 33 | if(gSandbox) { 34 | Cu.nukeSandbox(gSandbox); 35 | gSandbox = null; 36 | } 37 | } 38 | }; 39 | -------------------------------------------------------------------------------- /resource/modules/paneTabGroups.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.1.0 6 | 7 | this.sessionRestore = { 8 | get button() { return $('paneTabGroups-sessionRestore-button'); }, 9 | get groupbox() { return $('paneTabGroups-sessionRestore'); }, 10 | 11 | handleEvent: function() { 12 | this.enable(); 13 | }, 14 | 15 | observe: function() { 16 | this.updateGroupbox(); 17 | }, 18 | 19 | init: function() { 20 | pageWatch.register(this); 21 | 22 | Listeners.add(this.button, 'command', this); 23 | 24 | this.updateGroupbox(); 25 | }, 26 | 27 | uninit: function() { 28 | Listeners.remove(this.button, 'command', this); 29 | 30 | try { pageWatch.unregister(this); } 31 | catch(ex) { /* doesn't matter */ } 32 | }, 33 | 34 | updateGroupbox: function() { 35 | this.groupbox.hidden = pageWatch.sessionRestoreEnabled; 36 | }, 37 | 38 | enable: function() { 39 | pageWatch.enableSessionRestore(); 40 | if(controllers.nodes.jumpto.value == 'sessionRestore') { 41 | controllers.jumpto(''); 42 | } 43 | } 44 | }; 45 | 46 | this.setdefaults = { 47 | btn: $('paneTabGroups-setdefaults-button'), 48 | 49 | handleEvent: function() { 50 | Observers.notify(objName+'-set-groups-defaults'); 51 | }, 52 | 53 | init: function() { 54 | Listeners.add(this.btn, 'command', this); 55 | }, 56 | 57 | uninit: function() { 58 | Listeners.remove(this.btn, 'command', this); 59 | } 60 | }; 61 | 62 | Modules.LOADMODULE = function() { 63 | sessionRestore.init(); 64 | setdefaults.init(); 65 | }; 66 | 67 | Modules.UNLOADMODULE = function() { 68 | sessionRestore.uninit(); 69 | setdefaults.uninit(); 70 | }; 71 | -------------------------------------------------------------------------------- /chrome/skin/mac/TabView.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | /* tabview toolbar button */ 8 | 9 | @media not all and (min-resolution: 1.1dppx) { 10 | .tabGroups-icon { 11 | -moz-image-region: rect(0, 18px, 18px, 0); 12 | } 13 | .tabGroups-icon:hover:active:not([disabled="true"]):not([cui-areatype="menu-panel"]) { 14 | -moz-image-region: rect(18px, 18px, 36px, 0); 15 | } 16 | #tabGroups-tabview-button[cui-areatype="menu-panel"], 17 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button { 18 | -moz-image-region: rect(0, 32px, 32px, 0); 19 | } 20 | } 21 | 22 | @media (min-resolution: 1.1dppx) { 23 | .tabGroups-icon { 24 | -moz-image-region: rect(0, 36px, 36px, 0); 25 | } 26 | .tabGroups-icon:hover:active:not([disabled="true"]):not([cui-areatype="menu-panel"]) { 27 | -moz-image-region: rect(36px, 36px, 72px, 0); 28 | } 29 | #tabGroups-tabview-button[cui-areatype="menu-panel"], 30 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button { 31 | -moz-image-region: rect(0, 64px, 64px, 0); 32 | } 33 | } 34 | 35 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon { 36 | max-width: 18px; 37 | margin: 0; 38 | } 39 | 40 | /* Tweak needed so the button label adapts to an appropriate height. */ 41 | #tabGroups-tabview-button .toolbarbutton-text { 42 | max-height: 1em; 43 | } 44 | 45 | /* Don't let the text stick too close to the borders, 46 | but only if Tab Center isn't enabled, it already looks ok there. */ 47 | #navigator-toolbox > #TabsToolbar #tabGroups-tabview-button[showGroupTitle] .toolbarbutton-text { 48 | padding-left: 5px; 49 | padding-right: 5px; 50 | } 51 | -------------------------------------------------------------------------------- /chrome/skin/common/TabView.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | /* tabview menus */ 8 | .tabview-menuitem { 9 | max-width: 32em; 10 | } 11 | 12 | /* tabview toolbar button */ 13 | 14 | .tabGroups-icon { 15 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar.png); 16 | } 17 | 18 | toolbar[brighttext] #tabGroups-tabview-button { 19 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar-inverted.png); 20 | } 21 | 22 | #tabGroups-tabview-button[cui-areatype="menu-panel"], 23 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button { 24 | list-style-image: url(chrome://tabgroups-os/skin/menuPanel.png); 25 | } 26 | 27 | @media (min-resolution: 1.1dppx) { 28 | .tabGroups-icon { 29 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar@2x.png); 30 | } 31 | 32 | toolbar[brighttext] #tabGroups-tabview-button { 33 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar-inverted@2x.png); 34 | } 35 | 36 | #tabGroups-tabview-button[cui-areatype="menu-panel"], 37 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button { 38 | list-style-image: url(chrome://tabgroups-os/skin/menuPanel@2x.png); 39 | } 40 | } 41 | 42 | #tabGroups-tabview-button[showGroupTitle][cui-areatype="toolbar"] > .toolbarbutton-text { 43 | display: -moz-box; 44 | } 45 | 46 | #tabGroups-tabview-button[showGroupTitle][cui-areatype="toolbar"]:not([overflowedItem="true"]) > .toolbarbutton-icon { 47 | display: none; 48 | } 49 | 50 | /* Compatibility with Tree Style Tab, make sure the button's text is visible with all themes */ 51 | #TabsToolbar[treestyletab-mode]:not([treestyletab-tabbar-position="top"]) #tabGroups-tabview-button[showGroupTitle] { 52 | color: var(--tst-tab-text) !important; 53 | } 54 | -------------------------------------------------------------------------------- /resource/modules/content/utils/api.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.1.1 6 | 7 | this.api = { 8 | // weak-refing the listener may or may not be necessary to prevent leaks of the sandbox during addon reload due to dangling listeners 9 | QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsISupportsWeakReference, Ci.nsIDOMEventListener]), 10 | 11 | handleEvent: function(e) { 12 | let doc = e.originalTarget; 13 | if(doc && doc.defaultView && doc instanceof doc.defaultView.HTMLDocument) { 14 | // is this an inner frame? Skip if it is 15 | if(doc.defaultView.frameElement && doc !== doc.defaultView.frameElement.ownerDocument) { return; } 16 | 17 | if(e.type == 'load') { 18 | doc.defaultView.removeEventListener('load', this); 19 | } 20 | 21 | this.checkPage(doc); 22 | } 23 | }, 24 | 25 | checkPage: function(document) { 26 | let content = document.defaultView; 27 | if(document.readyState != 'complete') { 28 | content.addEventListener('load', this); 29 | return; 30 | } 31 | 32 | if(document.documentURI.startsWith(addonUris.development)) { 33 | let unwrap = XPCNativeWrapper.unwrap(content); 34 | if(unwrap.enable) { 35 | unwrap.enable(objPathString); 36 | } 37 | } 38 | }, 39 | 40 | onFrameAdded: function(frame) { 41 | frame.addEventListener('DOMContentLoaded', this); 42 | 43 | let document = frame.content && frame.content.document; 44 | if(document && document instanceof frame.content.HTMLDocument) { 45 | this.checkPage(document); 46 | } 47 | }, 48 | 49 | onFrameDeleted: function(frame) { 50 | frame.removeEventListener('DOMContentLoaded', this); 51 | if(frame.content) { 52 | frame.content.removeEventListener('load', this); 53 | } 54 | 55 | } 56 | }; 57 | 58 | Modules.LOADMODULE = function() { 59 | Frames.register(api); 60 | }; 61 | 62 | Modules.UNLOADMODULE = function() { 63 | Frames.unregister(api); 64 | }; 65 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=選取其他分頁群組 2 | buttonManageTooltip=管理您的分頁群組 3 | groupItemDefaultName=為此分頁群組取名 4 | groupItemCloseGroup=關閉此群組 5 | groupItemOptionsGroup=變更此群組的設定 6 | groupItemExpand=檢視所有在此堆疊中的分頁 7 | groupItemMute=將此群組中所有的分頁靜音 8 | groupItemUndoCloseGroup=復原關閉群組 9 | groupItemDiscardClosedGroup=丟棄已關閉的群組 10 | groupItemUnnamed=群組 $num 11 | pinnedItemsGroup=釘選的分頁 12 | showItemInGroupTooltip=在它的群組中檢視該分頁 (Shift+Enter) 13 | switchToGroupTooltip=切換到該分頁的群組 (Enter) 14 | viewTabsInGroupTooltip=檢視所有在該群組的分頁 (Shift+Enter) 15 | goBackToGroupsLabel=回到群組 16 | openNewTab=開新分頁 17 | closeTab=關閉分頁 18 | muteTab=分頁靜音 19 | unmuteTab=解除分頁靜音 20 | loading=請稍候... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - 將您的分頁組成群組 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=0 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title 及 $tabs 個剩餘 39 | restorePinned=已釘選的分頁 $idx 個($tabs 個分頁) 40 | restoreUnnamedGroup=未命名的群組 $idx($tabs 個分頁) 41 | restoreNamedGroup=$name ($tabs 分頁) 42 | tabs=$tabs 個分頁;$tabs 個分頁 43 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=选择另一个标签页分组 2 | buttonManageTooltip=管理您的标签页分组 3 | groupItemDefaultName=命名此分组 4 | groupItemCloseGroup=关闭分组 5 | groupItemOptionsGroup=更改此分组的设置 6 | groupItemExpand=查看此堆叠中的所有标签页 7 | groupItemMute=静音此分组中的所有标签页 8 | groupItemUndoCloseGroup=撤销关闭分组 9 | groupItemDiscardClosedGroup=移除关闭的分组 10 | groupItemUnnamed=分组 $num 11 | pinnedItemsGroup=已固定标签页 12 | showItemInGroupTooltip=查看此标签页所在分组 (Shift+Enter) 13 | switchToGroupTooltip=切换到此标签页的分组 (Enter) 14 | viewTabsInGroupTooltip=查看此分组中的所有标签页 (Shift+Enter) 15 | goBackToGroupsLabel=返回分组 16 | openNewTab=打开新标签页 17 | closeTab=关闭标签页 18 | muteTab=静音标签页 19 | unmuteTab=取消标签页静音 20 | loading=请稍等... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - 分组您的标签页 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=0 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title 和其他 $tabs 个标签页 39 | restorePinned=固定标签页 $idx(共 $tabs 个标签页) 40 | restoreUnnamedGroup=未命名分组 $idx(共 $tabs 个标签页) 41 | restoreNamedGroup=$name(共 $tabs 个标签页) 42 | tabs=$tabs 个标签页;$tabs 个标签页 43 | -------------------------------------------------------------------------------- /resource/modules/utils/attributes.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 2.2.2 6 | Modules.UTILS = true; 7 | Modules.BASEUTILS = true; 8 | 9 | // setAttribute(obj, attr, val) - helper me that saves me the trouble of checking if the obj exists first everywhere in my scripts; yes I'm that lazy 10 | // obj - (xul element) to set the attribute 11 | // attr - (str) attribute to set 12 | // val - (str) value to set for attr 13 | this.setAttribute = function(obj, attr, val) { 14 | if(!obj || !obj.setAttribute) { return; } 15 | obj.setAttribute(attr, val); 16 | }; 17 | 18 | // removeAttribute(obj, attr) - helper me that saves me the trouble of checking if the obj exists first everywhere in my scripts; yes I'm that lazy 19 | // see setAttribute() 20 | this.removeAttribute = function(obj, attr) { 21 | if(!obj || !obj.removeAttribute) { return; } 22 | obj.removeAttribute(attr); 23 | }; 24 | 25 | // toggleAttribute(obj, attr, condition, val) - sets attr on obj if condition is true; I'm uber lazy 26 | // see setAttribute() 27 | // condition - when true, attr is set with value (str) true, otherwise it removes the attribute 28 | // (optional) trueval - (str) value to set attr to if condition is true, defaults to (str) true 29 | // (optional) falseval - (str) value to set attr to if condition is false, if not set the attr is removed 30 | this.toggleAttribute = function(obj, attr, condition, trueval, falseval) { 31 | if(!obj || !obj.setAttribute || !obj.removeAttribute) { return; } 32 | 33 | if(condition) { 34 | if(trueval === undefined) { trueval = 'true'; } 35 | obj.setAttribute(attr, trueval); 36 | } else if(falseval !== undefined) { 37 | obj.setAttribute(attr, falseval); 38 | } else { 39 | obj.removeAttribute(attr); 40 | } 41 | }; 42 | 43 | // trueAttribute(obj, attr) - checks whether attribute attr in obj has value "true" 44 | // see setAttribute() 45 | this.trueAttribute = function(obj, attr) { 46 | if(!obj || !obj.getAttribute) { return false; } 47 | 48 | return (obj.getAttribute(attr) == 'true'); 49 | }; 50 | -------------------------------------------------------------------------------- /chrome/locale/cs/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/zh-TW/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/zh-CN/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=別のタブグループを選択します 2 | buttonManageTooltip=タブグループを管理します 3 | groupItemDefaultName=タブグループに別名を付ける 4 | groupItemCloseGroup=グループを閉じる 5 | groupItemOptionsGroup=このグループの設定を変更する 6 | groupItemExpand=このスタック内のすべてのタブを表示する 7 | groupItemMute=このグループ内のすべてのタブを消音にする 8 | groupItemUndoCloseGroup=タブグループを復元 9 | groupItemDiscardClosedGroup=閉じたグループを破棄 10 | groupItemUnnamed=グループ $num 11 | pinnedItemsGroup=ピン留めしたタブ 12 | showItemInGroupTooltip=グループ内でこのタブを表示します (Shift+Enter) 13 | switchToGroupTooltip=このタブのグループに切り替えます (Enter) 14 | viewTabsInGroupTooltip=このグループのすべてのタブを表示します (Shift+Enter) 15 | goBackToGroupsLabel=グループへ戻る 16 | openNewTab=新規タブを開く 17 | closeTab=タブを閉じる 18 | muteTab=タブを消音にする 19 | unmuteTab=タブの消音を解除する 20 | loading=お待ちください... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - タブグループ 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=0 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title と $tabs 個のタブ 39 | restorePinned=ピン留めしたタブ $idx ($tabs 個のタブ) 40 | restoreUnnamedGroup=無題のグループ $idx ($tabs 個のタブ) 41 | restoreNamedGroup=$name ($tabs 個のタブ) 42 | tabs=$tabs 個のタブ 43 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=別のタブグループを選択します 2 | buttonManageTooltip=タブグループを管理します 3 | groupItemDefaultName=タブグループに名前を付ける 4 | groupItemCloseGroup=グループを閉じる 5 | groupItemOptionsGroup=このグループの設定を変更する 6 | groupItemExpand=このスタック内のすべてのタブを表示する 7 | groupItemMute=このグループ内のすべてのタブを消音にする 8 | groupItemUndoCloseGroup=タブグループを復元 9 | groupItemDiscardClosedGroup=閉じたグループを破棄 10 | groupItemUnnamed=グループ $num 11 | pinnedItemsGroup=ピン留めしたタブ 12 | showItemInGroupTooltip=グループ内でこのタブを表示します (Shift+Enter) 13 | switchToGroupTooltip=このタブのグループに切り替えます (Enter) 14 | viewTabsInGroupTooltip=このグループのすべてのタブを表示します (Shift+Enter) 15 | goBackToGroupsLabel=グループへ戻る 16 | openNewTab=新しいタブを開く 17 | closeTab=タブを閉じる 18 | muteTab=タブを消音にする 19 | unmuteTab=タブの消音を解除する 20 | loading=お待ちください... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - タブグループ 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=0 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title と $tabs 個のタブ 39 | restorePinned=ピン留めしたタブ $idx ($tabs 個のタブ) 40 | restoreUnnamedGroup=無題のグループ $idx ($tabs 個のタブ) 41 | restoreNamedGroup=$name ($tabs 個のタブ) 42 | tabs=$tabs 個のタブ 43 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/sl/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/en-US/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /chrome/skin/linux/TabView.css: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 6 | 7 | /* tabview toolbar button */ 8 | 9 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon { 10 | max-width: 18px; 11 | } 12 | 13 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button > .toolbarbutton-icon { 14 | padding: 2px 6px; 15 | max-width: 32px; 16 | } 17 | 18 | /* the button showing the current group's label needs some 19 | help with adapting a similar style to icon based buttons */ 20 | 21 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle] > .toolbarbutton-text { 22 | height: 24px; 23 | margin-inline-end: 0; 24 | padding: 2px 6px; 25 | border: 1px solid transparent; 26 | border-radius: 2px; 27 | transition-property: background-color, border-color; 28 | transition-duration: 150ms; 29 | } 30 | 31 | #TabsToolbar #tabGroups-tabview-button[showGroupTitle] { 32 | color: inherit; 33 | } 34 | 35 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle]:not([disabled=true]):hover > .toolbarbutton-text { 36 | background: var(--toolbarbutton-hover-background); 37 | background-clip: padding-box; 38 | border-color: var(--toolbarbutton-hover-bordercolor); 39 | box-shadow: var(--toolbarbutton-hover-boxshadow); 40 | } 41 | 42 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle]:not([disabled=true]):-moz-any([open],[checked],:hover:active) > .toolbarbutton-text { 43 | background: var(--toolbarbutton-active-background); 44 | background-clip: padding-box; 45 | border-color: var(--toolbarbutton-active-bordercolor); 46 | box-shadow: var(--toolbarbutton-active-boxshadow); 47 | transition-duration: 10ms; 48 | } 49 | 50 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle][checked]:not(:active):hover > .toolbarbutton-text { 51 | background-color: var(--toolbarbutton-checkedhover-backgroundcolor); 52 | transition: background-color 150ms; 53 | } 54 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/nl/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/pl/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /resource/modules/migrate.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.3.1 6 | 7 | this.migrate = { 8 | migratorBackstage: null, 9 | 10 | init: function() { 11 | this.migratePrefs(); 12 | this.skipTabGroupsMigrator(); 13 | }, 14 | 15 | uninit: function() { 16 | if(this.migratorBackstage) { 17 | this.migratorBackstage.TabGroupsMigrator = this.migratorBackstage._TabGroupsMigrator; 18 | delete this.migratorBackstage._TabGroupsMigrator; 19 | } 20 | }, 21 | 22 | migratePrefs: function() { 23 | if(!Prefs.migratedPrefs) { 24 | if(Services.prefs.prefHasUserValue('browser.panorama.session_restore_enabled_once')) { 25 | Prefs.pageAutoChanged = Services.prefs.getBoolPref('browser.panorama.session_restore_enabled_once'); 26 | } 27 | Prefs.migratedPrefs = true; 28 | } 29 | }, 30 | 31 | // we need to wait until at least one window is finished loading, so that CustomizableUI knows what it's doing 32 | migrateWidget: function() { 33 | // try to place our widget in the same place where the native widget used to be 34 | if(!Prefs.migratedWidget) { 35 | for(let area of CustomizableUI.areas) { 36 | try { 37 | let ids = CustomizableUI.getWidgetIdsInArea(area); 38 | let position = ids.indexOf("tabview-button"); 39 | if(position != -1) { 40 | CustomizableUI.addWidgetToArea(objName+'-tabview-button', area, position); 41 | break; 42 | } 43 | } 44 | catch(ex) { Cu.reportError(ex); } 45 | } 46 | Prefs.migratedWidget = true; 47 | } 48 | }, 49 | 50 | skipTabGroupsMigrator: function() { 51 | try { 52 | this.migratorBackstage = Cu.import("resource:///modules/TabGroupsMigrator.jsm", {}); 53 | } 54 | catch(ex) { 55 | // this will fail until bug 1221050 lands 56 | return; 57 | } 58 | 59 | this.migratorBackstage._TabGroupsMigrator = this.migratorBackstage.TabGroupsMigrator; 60 | this.migratorBackstage.TabGroupsMigrator = { 61 | // no-op the migration, we'll just keep using the same data in the add-on anyway 62 | migrate: function() {} 63 | }; 64 | } 65 | }; 66 | 67 | Modules.LOADMODULE = function() { 68 | migrate.init(); 69 | }; 70 | 71 | Modules.UNLOADMODULE = function() { 72 | migrate.uninit(); 73 | }; 74 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP-mac/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/ja-JP/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/de/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/es/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/fr/utils-about.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /chrome/locale/pt-BR/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Escolher outro grupo 2 | buttonManageTooltip=Gerencie o seu grupo de abas 3 | groupItemDefaultName=Nomear este grupo 4 | groupItemCloseGroup=Fechar o grupo 5 | groupItemOptionsGroup=Mudar as configurações desse grupo 6 | groupItemExpand=Ver todas as abas dessa pilha 7 | groupItemMute=Silenciar todas as abas desse grupo 8 | groupItemUndoCloseGroup=Desfazer grupo fechado 9 | groupItemDiscardClosedGroup=Descartar grupo fechado 10 | groupItemUnnamed=Grupo $num 11 | pinnedItemsGroup=Abas fixas 12 | showItemInGroupTooltip=Ver essa aba em seu grupo(Shift+Enter) 13 | switchToGroupTooltip=Mudar para esse grupo de abas (Enter) 14 | viewTabsInGroupTooltip=Ver todas as abas nesse grupo (Shift+Enter) 15 | goBackToGroupsLabel=Voltar para os grupos 16 | openNewTab=Abrir nova aba 17 | closeTab=Fechar a aba 18 | muteTab=Silenciar a aba 19 | unmuteTab=Retornar o som da aba 20 | loading=Aguarde... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Agrupe suas abas 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=2 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title e $tabs mais;$title e $tabs mais 39 | restorePinned=Abas fixas $idx ($tabs aba);Aba fixa $idx ($tabs abas) 40 | restoreUnnamedGroup=Grupo sem nome $idx ($tabs aba);Grupo sem nome $idx ($tabs abas) 41 | restoreNamedGroup=$name ($tabs aba);$name ($tabs abas) 42 | tabs=$tabs aba;$tabs abas 43 | -------------------------------------------------------------------------------- /chrome/locale/en-US/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Choose another tab group 2 | buttonManageTooltip=Manage your tab groups 3 | 4 | groupItemDefaultName=Name this tab group 5 | groupItemCloseGroup=Close group 6 | groupItemOptionsGroup=Change the settings for this group 7 | groupItemExpand=See all tabs in this stack 8 | groupItemMute=Mute all tabs in this group 9 | groupItemUndoCloseGroup=Undo Close Group 10 | groupItemDiscardClosedGroup=Discard closed group 11 | groupItemUnnamed=Group $num 12 | 13 | pinnedItemsGroup=Pinned Tabs 14 | showItemInGroupTooltip=View this tab in its group (Shift+Enter) 15 | 16 | switchToGroupTooltip=Switch to this group of tabs (Enter) 17 | viewTabsInGroupTooltip=View all tabs in this group (Shift+Enter) 18 | goBackToGroupsLabel=Go back to groups 19 | 20 | openNewTab=Open new tab 21 | closeTab=Close tab 22 | muteTab=Mute tab 23 | unmuteTab=Unmute tab 24 | 25 | loading=please wait... 26 | 27 | # $app is the application name (i.e. Firefox, Nightly). 28 | windowTitle=$app - Group Your Tabs 29 | 30 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 31 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 32 | # and choose from the list of Plural Rules which one is to be used for this localization. 33 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 34 | PluralRule=1 35 | 36 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 37 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 38 | # $name is the original name of the group. 39 | # $tabs is the number of tabs each group item contains. 40 | # The form to be used will be chosen by the script based on the number $tabs. 41 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 42 | # For example: 43 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 44 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 45 | # - chinese (Rule #0) has only one form: "[everything]" 46 | moveToUnnamedGroup=$title and $tabs more;$title and $tabs more 47 | restorePinned=Pinned Tabs $idx ($tabs tab);Pinned Tabs $idx ($tabs tabs) 48 | restoreUnnamedGroup=Unnamed Group $idx ($tabs tab);Unnamed Group $idx ($tabs tabs) 49 | restoreNamedGroup=$name ($tabs tab);$name ($tabs tabs) 50 | tabs=$tabs tab;$tabs tabs 51 | -------------------------------------------------------------------------------- /resource/modules/utils/Strings.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 2.4.0 6 | Modules.UTILS = true; 7 | Modules.BASEUTILS = true; 8 | 9 | // Strings - use for getting strings out of bundles from .properties locale files 10 | // get(bundle, string, replace, aNumber) - returns the desired string 11 | // bundle - (string) name of the bundle to retrieve the string from, just aBundle in chrome://objPathString/locale/aBundle.properties 12 | // string - (string) name of the string to retrieve from bundle 13 | // (optional) replace - (array) [ [original, new] x n ] retrieves the string with the occurences of original replaced with new 14 | // (optional) aNumber - (int) if set will choose the corresponding Plural Form from the string returned based on it; 15 | // expects string "PluralRule" defined in the same bundle representing a number. 16 | // See https://developer.mozilla.org/en-US/docs/Localization_and_Plurals 17 | this.Strings = { 18 | bundles: {}, 19 | 20 | getPath: function(aPath) { 21 | let cacheBuster = (AddonData) ? '?'+AddonData.initTime : ''; 22 | return "chrome://"+objPathString+"/locale/"+aPath+".properties"+cacheBuster; 23 | }, 24 | 25 | get: function(bundle, string, replace, aNumber) { 26 | var bundleObj = bundle; 27 | 28 | if(!this.bundles[bundleObj]) { 29 | this.bundles[bundleObj] = Services.strings.createBundle(this.getPath(bundle)); 30 | } 31 | 32 | try { 33 | string = this.bundles[bundleObj].GetStringFromName(string); 34 | } 35 | catch(ex) { 36 | Cu.reportError('Failed to load string from properties file. [Addon: '+objPathString+'] [File: '+bundle+'] [String: '+string+']'); 37 | Cu.reportError(ex); 38 | return ''; 39 | } 40 | 41 | // This means we are dealing with a possible Plural Form, so we need to make sure we treat it accordingly 42 | if(aNumber != undefined && string.includes(';')) { 43 | try { 44 | var [getForm, numForms] = PluralForm.makeGetter(this.bundles[bundleObj].GetStringFromName('PluralRule')); 45 | string = getForm(aNumber, string); 46 | } 47 | catch(ex) {} // if there's no "PluralRule" defined, skip this as it might just actually be an intentional semi-colon 48 | } 49 | 50 | if(replace) { 51 | for(let x of replace) { 52 | while(string.includes(x[0])) { 53 | string = string.replace(x[0], x[1]); 54 | } 55 | } 56 | } 57 | 58 | return string; 59 | } 60 | }; 61 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Välj en annan flikgrupp 2 | buttonManageTooltip=Hantera dina flikgrupper 3 | groupItemDefaultName=Namnge denna flikgrupp 4 | groupItemCloseGroup=Stäng grupp 5 | groupItemOptionsGroup=Ändra inställningarna för denna grupp 6 | groupItemExpand=Se alla flikar i denna stapel 7 | groupItemMute=Tysta alla flikar i denna grupp 8 | groupItemUndoCloseGroup=Ångra stängning av grupp 9 | groupItemDiscardClosedGroup=Avvisa stängd grupp 10 | groupItemUnnamed=Grupp $num 11 | pinnedItemsGroup=Fastnålade flikar 12 | showItemInGroupTooltip=Visa denna flik i dess grupp (Shift+Enter) 13 | switchToGroupTooltip=Växla till denna flikgrupp (Enter) 14 | viewTabsInGroupTooltip=Visa alla flikar i denna grupp (Shift+Enter) 15 | goBackToGroupsLabel=Gå tillbaka till grupper 16 | openNewTab=Öppna ny flik 17 | closeTab=Stäng flik 18 | muteTab=Ljud av för flik 19 | unmuteTab=Ljud på för flik 20 | loading=var god vänta... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Gruppera dina flikar 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title och $tabs till;$title och $tabs fler 39 | restorePinned=Fastnålade flikar $idx ($tabs flik);Fastnålade flikar $idx ($tabs flikar) 40 | restoreUnnamedGroup=Namnlös grupp $idx ($tabs flik);Namnlös grupp $idx ($tabs flikar) 41 | restoreNamedGroup=$name ($tabs flik);$name ($tabs flikar) 42 | tabs=$tabs flik;$tabs flikar 43 | -------------------------------------------------------------------------------- /chrome/locale/es/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Elija otro grupo de pestañas 2 | buttonManageTooltip=Gestione sus grupos de pestañas 3 | groupItemDefaultName=Nombre este grupo de pestañas 4 | groupItemCloseGroup=Cerrar grupo 5 | groupItemOptionsGroup=Cambiar la configuración para este grupo 6 | groupItemExpand=Ver todas las pestañas de esta pila 7 | groupItemMute=Silenciar todas las pestañas de este grupo 8 | groupItemUndoCloseGroup=Deshacer cierre de grupo 9 | groupItemDiscardClosedGroup=Descartar grupo cerrado 10 | groupItemUnnamed=Grupo $num 11 | pinnedItemsGroup=Pestañas fijadas 12 | showItemInGroupTooltip=Ver esta pestaña en su grupo (Mayús+Intro) 13 | switchToGroupTooltip=Cambiar a este grupo de pestañas (Intro) 14 | viewTabsInGroupTooltip=Ver todas las pestañas de este grupo (Mayús+Intro) 15 | goBackToGroupsLabel=Volver a los grupos 16 | openNewTab=Abrir nueva pestaña 17 | closeTab=Cerrar pestaña 18 | muteTab=Silenciar pestaña 19 | unmuteTab=Desilenciar pestaña 20 | loading=por favor, espere... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Agrupe sus pestañas 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title y $tabs más;$title y $tabs más 39 | restorePinned=Pestañas fijadas $idx ($tabs pestaña);Pestañas fijadas $idx ($tabs pestañas) 40 | restoreUnnamedGroup=Grupo sin nombre $idx ($tabs pestaña);Grupo sin nombre $idx ($tabs pestañas) 41 | restoreNamedGroup=$name ($tabs pestaña);$name ($tabs pestañas) 42 | tabs=$tabs pestaña;$tabs pestañas 43 | -------------------------------------------------------------------------------- /chrome/locale/de/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Eine andere Tabgruppe auswählen 2 | buttonManageTooltip=Tabgruppen verwalten 3 | groupItemDefaultName=Diese Tabgruppe benennen 4 | groupItemCloseGroup=Gruppe schließen 5 | groupItemOptionsGroup=Einstellungen für diese Gruppe ändern 6 | groupItemExpand=Alle Tabs hier anzeigen 7 | groupItemMute=Alle Tabs dieser Gruppe stummschalten 8 | groupItemUndoCloseGroup=Schließen der Gruppe rückgängig machen 9 | groupItemDiscardClosedGroup=Geschlossene Gruppe verwerfen 10 | groupItemUnnamed=Gruppe $num 11 | pinnedItemsGroup=Angeheftete Tabs 12 | showItemInGroupTooltip=Diesen Tab in seiner Gruppe anzeigen (Umschalttaste + Eingabetaste) 13 | switchToGroupTooltip=Zu dieser Tabgruppe wechseln (Eingabetaste) 14 | viewTabsInGroupTooltip=Alle Tabs in dieser Gruppe anzeigen (Eingabetaste) 15 | goBackToGroupsLabel=Zu Gruppen zurückkehren 16 | openNewTab=Neuen Tab öffnen 17 | closeTab=Tab schließen 18 | muteTab=Tab stummschalten 19 | unmuteTab=Tab-Stummschaltung aufheben 20 | loading=bitte warten… 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app – Tabs gruppieren 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title und $tabs weiterer Tab;$title und $tabs weitere Tabs 39 | restorePinned=Angehefteter Tab $idx ($tabs Tab);Angeheftete Tabs ($tabs Tabs) 40 | restoreUnnamedGroup=Unbenannte Gruppe $idx ($tabs Tab);Unbenannte Gruppe $idx ($tabs Tabs) 41 | restoreNamedGroup=$name ($tabs Tab);$name ($tabs Tabs) 42 | tabs=$tabs Tab;$tabs Tabs 43 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Kies in oare ljepblêdgroep 2 | buttonManageTooltip=Behear jo ljepblêdgroepen 3 | groupItemDefaultName=Dizze ljepblêdgroep in namme jaan 4 | groupItemCloseGroup=Groep slute 5 | groupItemOptionsGroup=Ynstellingen wizigje foar dizze groep 6 | groupItemExpand=Toan alle ljepblêden yn dit fek 7 | groupItemMute=Dempe foar alle ljepblêden yn dizze groep 8 | groupItemUndoCloseGroup=Groep slute ûngedien meitsje 9 | groupItemDiscardClosedGroup=Sluten groep fuortsmite 10 | groupItemUnnamed=Groep $num 11 | pinnedItemsGroup=Fêstsette ljepblêden 12 | showItemInGroupTooltip=Toan dit ljepblêd yn syn groep (Shift+Enter) 13 | switchToGroupTooltip=Wikselje nei dizze ljepblêdgroep (Enter) 14 | viewTabsInGroupTooltip=Toan alle ljepblêden yn dizze groep (Shift+Enter) 15 | goBackToGroupsLabel=Werom nei groepen 16 | openNewTab=Nij ljepblêd iepenje 17 | closeTab=Ljepblêd slute 18 | muteTab=Ljepblêd dempe 19 | unmuteTab=Ljepblêd dempe opheffe 20 | loading=in momint… 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Jo ljepblêden groepearje 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title en noch $tabs;$title en noch $tabs 39 | restorePinned=Fêstmakke ljepblêden $idx ($tabs ljepblêd);Fêstmakke ljepblêden $idx ($tabs ljepblêden) 40 | restoreUnnamedGroup=Nammeleaze groep $idx ($tabs ljepblêd);Nammeleaze groep $idx ($tabs ljepblêden) 41 | restoreNamedGroup=$name ($tabs ljepblêd);$name ($tabs ljepblêden) 42 | tabs=$tabs tab;$tabs tabs 43 | -------------------------------------------------------------------------------- /chrome/locale/fr/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Choisir un autre groupe d'onglets 2 | buttonManageTooltip=Gérer vos groupes d'onglets 3 | groupItemDefaultName=Nommer ce groupe d'onglets 4 | groupItemCloseGroup=Fermer le groupe 5 | groupItemOptionsGroup=Changer les réglages pour ce groupe 6 | groupItemExpand=Voir tout les onglets dans cette pile 7 | groupItemMute=Rendre tout les onglets de ce groupe muet 8 | groupItemUndoCloseGroup=Annuler la fermeture du groupe 9 | groupItemDiscardClosedGroup=Effacer le groupe fermé 10 | groupItemUnnamed=Groupe $num 11 | pinnedItemsGroup=Onglets épinglés 12 | showItemInGroupTooltip=Voir cet onglet dans son groupe (Shift+Entrée) 13 | switchToGroupTooltip=Basculer vers ce groupe d'onglets (Entrée) 14 | viewTabsInGroupTooltip=Voir tout les onglets de ce groupe (Shift+Entrée) 15 | goBackToGroupsLabel=Retourner aux groupes 16 | openNewTab=Ouvrir un nouvel onglet 17 | closeTab=Fermer l'onglet 18 | muteTab=Rendre l'onglet muet 19 | unmuteTab=Réactiver le son de l'onglet 20 | loading=veuillez patienter... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Grouper vos onglets 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=2 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title et $tabs autre;$title et $tabs autres 39 | restorePinned=Onglets épinglés $idx ($tabs onglet);Onglets épinglés $idx ($tabs onglets) 40 | restoreUnnamedGroup=Groupe sans nom $idx ($tabs onglet);Groupe sans nom $idx ($tabs onglets) 41 | restoreNamedGroup=$name ($tabs onglet);$name ($tabs onglets) 42 | tabs=$tabs onglet;$tabs onglets 43 | -------------------------------------------------------------------------------- /chrome/locale/nl/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Een andere tabbladgroep kiezen 2 | buttonManageTooltip=Uw tabbladgroepen beheren 3 | groupItemDefaultName=Deze tabbladgroep een naam geven 4 | groupItemCloseGroup=Groep sluiten 5 | groupItemOptionsGroup=De instellingen voor deze groep wijzigen 6 | groupItemExpand=Alle tabbladen in deze stapel bekijken 7 | groupItemMute=Alle tabbladen in deze groep dempen 8 | groupItemUndoCloseGroup=Groep sluiten ongedaan maken 9 | groupItemDiscardClosedGroup=Gesloten groep verwijderen 10 | groupItemUnnamed=Groep $num 11 | pinnedItemsGroup=Vastgemaakte tabbladen 12 | showItemInGroupTooltip=Dit tabblad in zijn groep weergeven (Shift+Enter) 13 | switchToGroupTooltip=Wisselen naar deze groep tabbladen (Enter) 14 | viewTabsInGroupTooltip=Alle tabbladen in deze groep weergeven (Shift+Enter) 15 | goBackToGroupsLabel=Terug naar groepen 16 | openNewTab=Nieuw tabblad openen 17 | closeTab=Tabblad sluiten 18 | muteTab=Tabblad dempen 19 | unmuteTab=Tabblad dempen opheffen 20 | loading=een moment… 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Uw tabbladen groeperen 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title en nog $tabs;$title en nog $tabs 39 | restorePinned=Vastgemaakte tabbladen $idx ($tabs tabblad);Vastgemaakte tabbladen $idx ($tabs tabbladen) 40 | restoreUnnamedGroup=Naamloze groep $idx ($tabs tabblad);Naamloze groep $idx ($tabs tabbladen) 41 | restoreNamedGroup=$name ($tabs tabblad);$name ($tabs tabbladen) 42 | tabs=$tabs tabblad;$tabs tabbladen 43 | -------------------------------------------------------------------------------- /chrome/locale/pl/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Wybierz inną grupę kart 2 | buttonManageTooltip=Zarządzaj swoimi grupami kart 3 | groupItemDefaultName=Nazwij tę grupę kart 4 | groupItemCloseGroup=Zamknij grupę 5 | groupItemOptionsGroup=Zmień ustawienia dla tej grupy 6 | groupItemExpand=Zobacz wszystkie karty w tym stosie 7 | groupItemMute=Wycisz wszystkie karty w tej grupie 8 | groupItemUndoCloseGroup=Cofnij zamknięcie grupy 9 | groupItemDiscardClosedGroup=Porzuć zamkniętą grupę 10 | groupItemUnnamed=Grupa $num 11 | pinnedItemsGroup=Przypięte karty 12 | showItemInGroupTooltip=Pokaż tę kartę w swojej grupie (Shift+Enter) 13 | switchToGroupTooltip=Przełącz na tę grupę kart (Enter) 14 | viewTabsInGroupTooltip=Pokaż wszystkie kraty w tej grupie (Shift+Enter) 15 | goBackToGroupsLabel=Wróć do grup 16 | openNewTab=Otwórz nową kartę 17 | closeTab=Zamknij kartę 18 | muteTab=Wycisz kartę 19 | unmuteTab=Włącz dźwięk 20 | loading=proszę czekać... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Grupowanie kart 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=9 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title i jedna więcej;$title i $tabs więcej;$title i $tabs więcej 39 | restorePinned=Przypięte karty $idx ($tabs karta);Przypięte karty $idx ($tabs karty);Przypięte karty $idx ($tabs kart) 40 | restoreUnnamedGroup=Nienazwana grupa $idx ($tabs karta);Nienazwana grupa $idx ($tabs karty);Nienazwana grupa $idx ($tabs kart) 41 | restoreNamedGroup=$name ($tabs karta);$name ($tabs karty);$name ($tabs kart) 42 | tabs=$tabs karta;$tabs karty;$tabs kart 43 | -------------------------------------------------------------------------------- /resource/modules/compatibilityFix/SessionManager.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 1.1.0 6 | 7 | XPCOMUtils.defineLazyModuleGetter(this, "gSessionManager", "chrome://sessionmanager/content/modules/session_manager.jsm"); 8 | 9 | this.SessionManager = { 10 | id: '{1280606b-2510-4fe0-97ef-9b5a22eafe30}', 11 | 12 | Constants: null, 13 | enabled: false, 14 | 15 | onEnabled: function(addon) { 16 | if(addon.id == this.id) { this.enable(); } 17 | }, 18 | 19 | onDisabled: function(addon) { 20 | if(addon.id == this.id) { this.disable(); } 21 | }, 22 | 23 | listen: function() { 24 | AddonManager.addAddonListener(this); 25 | AddonManager.getAddonByID(this.id, (addon) => { 26 | if(addon && addon.isActive) { 27 | this.enable(); 28 | } 29 | 30 | if(pageWatch.waitForSessionManagerModule) { 31 | pageWatch.waitForSessionManagerModule(); 32 | delete pageWatch.waitForSessionManagerModule; 33 | } 34 | }); 35 | }, 36 | 37 | unlisten: function() { 38 | AddonManager.removeAddonListener(this); 39 | this.disable(); 40 | }, 41 | 42 | enable: function() { 43 | this.enabled = true; 44 | pageWatch.SM = true; 45 | 46 | Cu.import("chrome://sessionmanager/content/modules/shared_data/constants.jsm", this); 47 | pageWatch.kKeepingSession.add(this.Constants.STARTUP_PROMPT); 48 | pageWatch.kKeepingSession.add(this.Constants.STARTUP_LOAD); 49 | 50 | let defaults = Services.prefs.getDefaultBranch("extensions."+this.id+"."); 51 | Prefs.setDefaults({ 52 | startup: defaults.getIntPref("startup"), 53 | backup_session: defaults.getIntPref("backup_session") 54 | }, this.id); 55 | 56 | // SM's auto backup and restore preferences could have been changed, so see if we should adapt anything. 57 | Prefs.listen('startup', pageWatch); 58 | Prefs.listen('backup_session', pageWatch); 59 | pageWatch.callListeners(); 60 | }, 61 | 62 | disable: function() { 63 | if(this.enabled) { 64 | this.enabled = false; 65 | pageWatch.SM = false; 66 | 67 | pageWatch.kKeepingSession.delete(this.Constants.STARTUP_PROMPT); 68 | pageWatch.kKeepingSession.delete(this.Constants.STARTUP_LOAD); 69 | 70 | Prefs.unlisten('startup', pageWatch); 71 | Prefs.unlisten('backup_session', pageWatch); 72 | pageWatch.callListeners(); 73 | } 74 | }, 75 | 76 | isSavingSession: function() { 77 | return Prefs.backup_session && Prefs.startup; 78 | } 79 | }; 80 | 81 | Modules.LOADMODULE = function() { 82 | SessionManager.listen(); 83 | }; 84 | 85 | Modules.UNLOADMODULE = function() { 86 | SessionManager.unlisten(); 87 | }; 88 | -------------------------------------------------------------------------------- /chrome/locale/pt-PT/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Escolher outro grupo de separadores 2 | buttonManageTooltip=Gerir os teus grupos de separadores 3 | groupItemDefaultName=Dá um nome a este grupo 4 | groupItemCloseGroup=Fechar grupo 5 | groupItemOptionsGroup=Mudar as definições deste grupo 6 | groupItemExpand=Mostrar todos os separadores nesta pilha 7 | groupItemMute=Tirar o som a todos os separadores deste grupo 8 | groupItemUndoCloseGroup=Anular o Fecho do Grupo 9 | groupItemDiscardClosedGroup=Descartar o grupo fechado 10 | groupItemUnnamed=Grupo $num 11 | pinnedItemsGroup=Separadores de Aplicação 12 | showItemInGroupTooltip=Mostrar este separador no seu grupo (Shift+Enter) 13 | switchToGroupTooltip=Selecionar este grupo de separadores (Enter) 14 | viewTabsInGroupTooltip=Mostrar todos os separadores neste grupo (Shift+Enter) 15 | goBackToGroupsLabel=Voltar aos grupos 16 | openNewTab=Abrir separador novo 17 | closeTab=Fechar separador 18 | muteTab=Tirar som ao separador 19 | unmuteTab=Retornar som ao separador 20 | loading=aguarde por favor... 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Agrupa os Teus Separadores 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=1 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title e mais $tabs;$title e mais $tabs 39 | restorePinned=Separadores de Aplicação $idx ($tabs separador);Separadores de Aplicação $idx ($tabs separadores) 40 | restoreUnnamedGroup=Grupo sem Nome $idx ($tabs separador);Grupo sem Nome $idx ($tabs separadores) 41 | restoreNamedGroup=$name ($tabs separador);$name ($tabs separadores) 42 | tabs=$tabs separador;$tabs separadores 43 | -------------------------------------------------------------------------------- /chrome/content/quickAccess.xul: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /chrome/locale/cs/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Vybrat jinou skupinu panelů 2 | buttonManageTooltip=Spravovat skupiny panelů 3 | groupItemDefaultName=Pojmenovat tuto skupinu panelů 4 | groupItemCloseGroup=Zavřít skupinu 5 | groupItemOptionsGroup=Změnit nastavení této skupiny 6 | groupItemExpand=Zobrazit všechny panely v tomto štosu 7 | groupItemMute=Vypnout zvuk všech panelů v této skupině 8 | groupItemUndoCloseGroup=Vrátit zavřenou skupinu 9 | groupItemDiscardClosedGroup=Odstranit zavřenou skupinu 10 | groupItemUnnamed=Skupina $num 11 | pinnedItemsGroup=Připnuté panely 12 | showItemInGroupTooltip=Zobrazit tento panel v jeho skupině (Shift+Enter) 13 | switchToGroupTooltip=Přepnout na tuto skupinu panelů (Enter) 14 | viewTabsInGroupTooltip=Zobrazit všechny panely v této skupině (Shift+Enter) 15 | goBackToGroupsLabel=Zpět na skupiny 16 | openNewTab=Otevřít nový panel 17 | closeTab=Zavřít panel 18 | muteTab=Vypnout zvuk panelu 19 | unmuteTab=Zapnout zvuk panelu 20 | loading=čekejte prosím… 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - Skupiny panelů 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=8 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title a další $tabs;$title a další $tabs;$title a dalších $tabs 39 | restorePinned=Připnuté panely $idx ($tabs panel);Připnuté panely $idx ($tabs panely);Připnuté panely $idx ($tabs panelů) 40 | restoreUnnamedGroup=Nepojmenovaná skupina $idx ($tabs panel);Nepojmenovaná skupina $idx ($tabs panely);Nepojmenovaná skupina $idx ($tabs panelů) 41 | restoreNamedGroup=$name ($tabs panel);$name ($tabs panely);$name ($tabs panelů) 42 | tabs=$tabs panel;$tabs panely;$tabs panelů 43 | -------------------------------------------------------------------------------- /chrome/locale/sl/TabView.properties: -------------------------------------------------------------------------------- 1 | buttonQuickAccessTooltip=Izberite drugo skupino zavihkov 2 | buttonManageTooltip=Upravljaj z mojimi skupinami zavihkov 3 | groupItemDefaultName=Poimenujte to skupine zavihkov 4 | groupItemCloseGroup=Zapri skupino 5 | groupItemOptionsGroup=Spremenite nastavitve te skupine 6 | groupItemExpand=Pokaži vse zavihke v skladu 7 | groupItemMute=Utišaj vse zavihke v tej skupini 8 | groupItemUndoCloseGroup=Razveljavi zapiranje skupine 9 | groupItemDiscardClosedGroup=Zavrzi zaprto skupino 10 | groupItemUnnamed=Skupina $num 11 | pinnedItemsGroup=Pripeti zavihki 12 | showItemInGroupTooltip=Pokaži ta zavihek v njegovi skupini (Shift+Enter) 13 | switchToGroupTooltip=Preklopi na to skupino zavihkov (Enter) 14 | viewTabsInGroupTooltip=Pokaži vse zavihke v tej skupini (Shift+Enter) 15 | goBackToGroupsLabel=Vrni se v skupine 16 | openNewTab=Odpri nov zavihek 17 | closeTab=Zapri zavihek 18 | muteTab=Utišaj zavihek 19 | unmuteTab=Povrni glasnost zavihka 20 | loading=počakajte … 21 | # $app is the application name (i.e. Firefox, Nightly). 22 | windowTitle=$app - združite svoje zavihke 23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com 24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules 25 | # and choose from the list of Plural Rules which one is to be used for this localization. 26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0. 27 | PluralRule=10 28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs. 29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list. 30 | # $name is the original name of the group. 31 | # $tabs is the number of tabs each group item contains. 32 | # The form to be used will be chosen by the script based on the number $tabs. 33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above. 34 | # For example: 35 | # - english (Rule #1) has two forms: "[is 1];[everything else]". 36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]" 37 | # - chinese (Rule #0) has only one form: "[everything]" 38 | moveToUnnamedGroup=$title in še $tabs;$title in še $tabs;$title in še $tabs;$title in še $tabs 39 | restorePinned=Pripeti zavihki $idx ($tabs zavihek);Pripeti zavihki $idx ($tabs zavihka);Pripeti zavihki $idx ($tabs zavihki);Pripeti zavihki $idx ($tabs zavihkov) 40 | restoreUnnamedGroup=Neimenovana skupina $idx ($tabs zavihek);Neimenovana skupina $idx ($tabs zavihka);Neimenovana skupina $idx ($tabs zavihki);Neimenovana skupina $idx ($tabs zavihkov) 41 | restoreNamedGroup=$name ($tabs zavihek);$name ($tabs zavihka);$name ($tabs zavihki);$name ($tabs zavihkov) 42 | tabs=$tabs zavihek;$tabs zavihka;$tabs zavihki;$tabs zavihkov 43 | -------------------------------------------------------------------------------- /chrome/locale/en-US/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /resource/modules/utils/sandboxUtils.jsm: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // VERSION 2.4.3 6 | Modules.UTILS = true; 7 | Modules.CLEAN = false; 8 | 9 | // window - Similarly to Windows.callOnMostRecent, the window property returns the most recent navigator:browser window object 10 | this.__defineGetter__('window', function() { return Services.wm.getMostRecentWindow('navigator:browser'); }); 11 | 12 | // document - Returns the document object associated with the most recent window object 13 | this.__defineGetter__('document', function() { return window.document; }); 14 | 15 | // Styles - handle loading and unloading of stylesheets in a quick and easy way 16 | this.__defineGetter__('Styles', function() { delete this.Styles; Modules.load('utils/Styles'); return Styles; }); 17 | 18 | // Windows - Aid object to help with window tasks involving window-mediator and window-watcher 19 | this.__defineGetter__('Windows', function() { delete this.Windows; Modules.load('utils/Windows'); return Windows; }); 20 | 21 | // Browsers - Aid object to track and perform tasks on all document browsers across the windows 22 | this.__defineGetter__('Browsers', function() { Windows; delete this.Browsers; Modules.load('utils/Browsers'); return Browsers; }); 23 | 24 | // Messenger - Aid object to communicate with browser content scripts (e10s). 25 | this.__defineGetter__('Messenger', function() { delete this.Messenger; Modules.load('utils/Messenger'); return Messenger; }); 26 | 27 | // Observers - Helper for adding and removing observers 28 | this.__defineGetter__('Observers', function() { delete this.Observers; Modules.load('utils/Observers'); return Observers; }); 29 | 30 | // Overlays - to use overlays in my bootstraped add-ons 31 | this.__defineGetter__('Overlays', function() { Browsers; Observers; Piggyback; delete this.Overlays; Modules.load('utils/Overlays'); return Overlays; }); 32 | 33 | // Keysets - handles editable keysets for the add-on 34 | this.__defineGetter__('Keysets', function() { Windows; delete this.Keysets; Modules.load('utils/Keysets'); return Keysets; }); 35 | 36 | // Keysets - handles editable keysets for the add-on 37 | this.__defineGetter__('PrefPanes', function() { Browsers; delete this.PrefPanes; Modules.load('utils/PrefPanes'); return PrefPanes; }); 38 | 39 | // DnDprefs - handles customizable areas with draggable elements in the preferences 40 | this.__defineGetter__('DnDprefs', function() { delete this.DnDprefs; Modules.load('utils/DnDprefs'); return DnDprefs; }); 41 | 42 | // closeCustomize() - useful for when you want to close the customize tabs for whatever reason 43 | this.closeCustomize = function() { 44 | Windows.callOnAll(function(aWindow) { 45 | if(aWindow.gCustomizeMode) { 46 | aWindow.gCustomizeMode.exit(); 47 | } 48 | }, 'navigator:browser'); 49 | }; 50 | 51 | Modules.UNLOADMODULE = function() { 52 | Modules.clean(); 53 | }; 54 | -------------------------------------------------------------------------------- /chrome/locale/sv-SE/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/pl/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/sl/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/cs/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /chrome/locale/fy-NL/TabView.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | --------------------------------------------------------------------------------