Страницы: 1
Расширение функций кнопки "Группы вкладок"(Firefox)
Автор: Inko7 (спасибо за помощь Dumby, bunda1 и всем остальным)
Описание: Расширяет возможности оригинальной кнопки "Группы вкладок". Изменяет значок кнопки в зависимости от количества открытых групп. Т.к. сам использую не более 3-5 групп одновременно, то при количестве групп больше пяти, значок останется от пятой (лень рисовать дальше )
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
ЛКМ - открывает оригинальную панель групп вкладок Firefox
СКМ - создает новую группу и открывает в ней пустую вкладку
ПКМ - закрывает текущую группу с вкладками и переключает на предыдущую группу (если групп больше одной)
Скролл по кнопке - переключение между группами вперед/назад (если групп больше одной)
// ДОПОЛНИТЕЛЬНЫЕ КЛИКИ ПО КНОПКЕ ГРУППИРОВКИ ВКЛАДОК function afterInit() { // удаление обработчика при повторной инициализации this.onDestroy3 = function() { // выходим, если функция уже выполнялась if (window.gruppiRun == 'stop') return; window.gruppiRun = 'stop'; if (window.tabscrollRun == 'stop') return; window.tabscrollRun = 'stop'; // добавляем обработчики document.getElementById("tabview-button").addEventListener("click", gruppi, false); document.getElementById("tabview-button").addEventListener("DOMMouseScroll", tabscroll, false); }(); var pancount; var tabpict1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAASCAYAAABfJS4tAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsPAAALDwGS+QOlAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAADXSURBVDhPY/z//z8DMrj74gMylwlFEpXzD4kLU4cQAxmMjO88f88AxMZA7EsExqYOJMaAYijIAqjBvtc47P4TwiCL754R+o+MoY7BajATSJKQoSB5PAYzYXPxqMGQ1EHLyAMnt2fvvuS+/PC1ChcGyYMiD1kdVAwzuYESPMzFvCnb/qNjkEE5Uzn+48MYyQ1o5nQqGgxJbkAQAcRgBpVcjEjH9DCYERROFIYxVhfTzGBQOFPqYpylmz56OoamUQxx5HQOU4Ov2ISlDlCBBMMwMRCNLI5VDQCiLbDOKwZG7AAAAABJRU5ErkJggg=="; var tabpict2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAASCAYAAABfJS4tAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsPAAALDwGS+QOlAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAADzSURBVDhPY/z//z8DMrj74gMylwlFEpXzD4kLU4cQAxmMjO88f88AxMZA7EsExqYOJMaAYijIAqjBvtc47P4TwiCL754R+o+MoY7BajATSJKQoSB5PAYzYXPxqMGQ1EHLyAMnt2fvvuS+/PC1ChcGyYMiD1kdVAx/cuNN2fYfHYMMypnK8R8fhic3YO7RB+JNUKwPCwoKDQbnRJChYlAMSpugoPCl2GCksgJkeDHQUEaqGQw1PALkfKoZDA3jYpjLqWkwKIxBZScYUymMUQshaFCAgkMfPR1D0yiGOHI6h6nBV2zCciCoQIJhmBiIRhbHqgYAR2yey86k8SwAAAAASUVORK5CYII="; var tabpict3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAASCAYAAABfJS4tAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsOAAALDgFAvuFBAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAD1SURBVDhP7ZQ9DsIwDIXbTl0QEgPXyMDODXILRrgA9+AiDJyCmYmu/CzQAVaMHzjglJAiETYqPVWxrS9OYjsnokx/1a7Wy8Jz+ouLWrq4pw1grfX2mLEGLPuBQnGwZR4UGwjYrsohtQkbV8seaUkyQXABZxsU/gi4CGX8B9+r45ePdyu3zeE02dfn6TvBj8fTcWKLl1tntKCmABrPSorpUW7cPZaF9oPQFMjYfgn2OrbP4HkysMwKozLOk2Ts5gSDu4AzNA0Yx8eUksxxFcnAuAbAIZPojv0hhMwFbJp1LDX6Ytd17mJiY9NtgIHk5Gz4a3sw5gouQp8JxXOEQwAAAABJRU5ErkJggg=="; var tabpict4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAASCAYAAABfJS4tAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsOAAALDgFAvuFBAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAADsSURBVDhPY/z//z8DMrj74gMylwlFEpXzD4kLU4cQAxmMjO88f88AxMZA7EsExqYOJMaAYijIAqjBvtc47P4TwiCL754R+o+MoY7BajATSJKQoSB5PAYzYXPxqMGQ1EHLyAMnt2fvvuS+/PC1ChcGyYMiD1kdVAx/cuNN2fYfHYMMypnK8R8fhic3aO7hB9KgLMgICwoKDYbn2HKowfAwpthgaFmxG8lgkKt9KTYYaGAEEE+nhcEwQ0FhDMqmVHMxrPQDl59UijzUQgjJYH30dAxNoxjiyOkcpgZfsQlzOahAgmGYGIhGFseqBgB4vpfDfbAPggAAAABJRU5ErkJggg=="; var tabpict5 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAASCAYAAABfJS4tAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsOAAALDgFAvuFBAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAD1SURBVDhPY/z//z8DMrj74gMylwlFEpXzD4kLU4cQAxmMjO88f88AxMZA7EsExqYOJMaAYijIAqjBvtc47P4TwiCL754R+o+MoY7BajATSJKQoSB5PAYzYXPxqMGQ1EGzyIMabvzs3Zfclx++VuHCIHlQ5CGrg4rhT268Kdv+o2OQQTlTOf7jw/DkBsw9YkAMyn5gDAsKCg0G50RfILYEYhCHkZoGTwcaCMKbgFifagZDCyFGkGtBhgMNBrnalxpBAXIpTQw2gAYDyAJDKrkYpYBlA/GgYayPno6haRRDHDmdw9TgKzZhFoAKJBiGiYFoZHGsagAo0o3nCte9EwAAAABJRU5ErkJggg=="; var tabpicton = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAClSURBVDhPY7zz/D0DEmBC5qCx/2FRhxADGQTExkDsSwTGpg4kxgAyBIR9r3HY/SeEQerunhH6j4yhloMNYqKCQUzD3CCqBTY4+p+9+5L78sPXKlwYJA+KFGR1UDHU6OdN2fYfHYM05kzl+I8PY0Q/hQYhon/UIIyAhwY2OIzA6YjCMILnfn30dARNIxjiyOkMpga5GIG5DFQSwDBMDJaxkeUw1AAAa9oGjiXnhDQAAAAASUVORK5CYII="; var tabpictoff = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0cqEAAAEGSURBVDhPhZSxEcIwDEVNqjQ0LEKRng2yBSUswB6swhTUVNDC0QAFtJj8YDk/inTm7t8ZS3qWLDmz8+0Z6FfxH7X+Gn7DHkAxhAh167aghu0UFwKDYDjVK1eAXI6LCAkkJdCDKjiwwYMJSEFQRZVBCC7B9IHILJU6BpVgfJCU6II8mAXRGaG8Vt8LB3oQAv271qm5Pt7b++uzY2kYDmQ/rBHbz2ICtfP1IWpp0GZfR610R0P7SxCBOqChawziTCTQ2oNt0jUB6WHjDCyYCWJHgOGkS9GwCUhDPBDA3hPJrx8OfFdWRtad5fbLCTxDaUaW1nyJ3+QzkmZJHjC+BpDMmN4X+8jnB6524gKM/bngAAAAAElFTkSuQmCC"; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); function tabscroll(event){ if (pancount == 1) return; var tgw = document. getElementById ("tab-view"). contentWindow; var groupItems = tgw. GroupItems; if (event.detail > 0) { var tabItem = groupItems. getNextGroupItemTab (false); custombuttons.alertSlide("Предыдущая группа", "Группы вкладок Firefox"); } else { var tabItem = groupItems. getNextGroupItemTab (true); custombuttons.alertSlide("Следующая группа ", "Группы вкладок Firefox"); } gBrowser. selectedTab = tabItem. tab; }; function gruppi(event){ if(event.button == 1) { // Открыть новую группу TabView._window.GroupItems.newGroup().newTab("about:blank"); TogglePict(); alertsService.showAlertNotification(tabpicton, "Группа вкладок создана", "Всего групп: " + TabView._window.GroupItems.groupItems.length, false, "", null, ""); } if(event.button == 2) { // Закрыть текущую группу event.preventDefault(); event.stopPropagation(); if (pancount == 1) return; var tab = TabView._window.GroupItems.getNextGroupItemTab(true).tab; var group = TabView._window.GroupItems._activeGroupItem; group.fadeAwayUndoButtonDelay = 0; group.closeAll(); gBrowser.selectedTab = tab; setTimeout(function() { TogglePict(); alertsService.showAlertNotification(tabpictoff, "Группа вкладок удалена", "Всего групп: " + TabView._window.GroupItems.groupItems.length, false, "", null, ""); }, 500) } }; var PanButton = document.getElementById("tabview-button"); PanButton.onmouseover = function() { PanButton.setAttribute("tooltiptext", "Группы вкладок Firefox\nВсего групп: " + TabView._window.GroupItems.groupItems.length); }; function TogglePict(event) { pancount = TabView._window.GroupItems.groupItems.length; if (pancount == 1) PanButton.image = tabpict1; if (pancount == 2) PanButton.image = tabpict2; if (pancount == 3) PanButton.image = tabpict3; if (pancount == 4) PanButton.image = tabpict4; if (pancount == 5) PanButton.image = tabpict5; return pancount; }; TogglePict(); // циклическая проверка количества групп (1 сек) intervalID = setInterval(test, 1000); function test(){TogglePict();} }; TabView._window ? afterInit() : TabView._initFrame(afterInit);
P.S. Кнопка не лишена недостатков и наверняка имеет какие-то побочные действия мной не обнаруженные или не вызывающие особого неудобства
11.10.2012 Update: Исправлена проверка количества групп, открытых сторонними способами
Отредактировано Inko7 (24-10-2012 12:25:40)
Отсутствует
Устранение выпадания в панель групп при закрытии последней вкладки в группе(Firefox)
Автор: bunda1 & Dumby
Описание: При использовании больше одной группы вкладок, закрытие последней вкладки в группе приводило к выпаданию в панель групп, что может доставлять некоторое неудобство (имхо). Кнопка блокирует это действие, создавая в данной группе пустую вкладку.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
// Устранение выпадания в панель групп при закрытии последней вкладки в группе TabView._window || TabView._initFrame(); var tabs = gBrowser.tabContainer; this.onDestroy = function() { tabs.removeEventListener("TabClose", tabCloseHandler, false ); } tabs.addEventListener("TabClose", tabCloseHandler, false); function tabCloseHandler(event) { if (gBrowser.visibleTabs.length) return; gBrowser.removeAllTabsBut(gBrowser.addTab("about:blank")); setTimeout("gURLBar.focus()", 0); }
Отсутствует
ЛКМ + ПКМ на текущий таб, переместить таб в новую группу(Firefox 10 +)
Автор: bunda1
Версия: от 03.12.2013.
Описание: Если нажать на текущей вкладке одновременно левым и правым кликом вкладка будет перемещена в новую группу и браузер переключится на эту вкладку в новой группе.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
// ЛКМ + ПКМ на текущий таб, переместить таб в новую группу, от 03.12.2013. ................................ function moveTabToNewGroup(e) { if ( e.button == 2 && this.leftButtonDown ) { // временно блокируем контекстное меню вкладки ["tabContextMenu", "toolbar-context-menu"].forEach(function(id) { document.getElementById( id ).hidden = true }); setTimeout(function() { ["tabContextMenu", "toolbar-context-menu"].forEach(function(id) { document.getElementById( id ).hidden = false }); }, 500) setTimeout(function() { // переместить текущий таб в новую группу var tab = e.target; if ( gBrowser.visibleTabs.length == 1 ) return; TabView.moveTabTo( tab, null ); window.gBrowser.selectedTab = tab; }, 0) } if ( e.button == 0 ) { this.leftButtonDown = true; // сбросить переменную и обработчик function c(e) { this.leftButtonDown = false; removeEventListener( e.type, c, true ) }; addEventListener("mouseup", c, true ); addEventListener("mousemove", c, true ); } }; addEventListener("mousedown", moveTabToNewGroup, true, gBrowser.tabContainer );
Отредактировано bunda1 (03-12-2013 22:42:44)
Отсутствует
Расширение функций кнопки "Группы вкладок" #2
Автор: bunda1
Описание: Обновленный, оптимизированный вариант от bunda1 с новым набором иконок (индикация до 9 групп)
// ДОПОЛНИТЕЛЬНЫЕ КЛИКИ ПО КНОПКЕ ГРУППИРОВКИ ВКЛАДОК (function() { TabView._window || TabView._initFrame(); var tabViewButt = document.getElementById("tabview-button"); if ( tabViewButt == null ) return; if ( tabViewButt.hasAttribute("style") ) return; // блокировать повторный запуск tabViewButt.setAttribute("tooltiptext", "Л = Группы вкладок" + "\n" + "С = Перейти в новую пустую группу" + "\n" + "П = Закрыть текущую группу"); tabViewButt.setAttribute("context", "event.stopPropagation()"); // блокируем контекстное меню для кнопки // добавляем обработчики ["click", "DOMMouseScroll"].forEach(function(type) { tabViewButt.addEventListener(type, function(e) { featuresForTabViewButt(e) }, false) }); function featuresForTabViewButt(e) { if ( e.type == 'click' && e.button == 1 ) { // перейти в новую пустую группу TabView._window.GroupItems.newGroup().newTab("about:blank"); return; } if ( e.type == 'click' && e.button == 2 ) { // закрыть текущую группу try { var tab = TabView._window.GroupItems.getNextGroupItemTab(true).tab } catch(e) { return }; var group = TabView._window.GroupItems._activeGroupItem; group.fadeAwayUndoButtonDelay = 0; group.closeAll(); gBrowser.selectedTab = tab; return; } if ( e.type == 'DOMMouseScroll' ) { // прокрутка группы вкладок .... var groupItems = TabView._window.GroupItems; var tabItem = groupItems.getNextGroupItemTab(e.detail > 0); if ( !!tabItem ) window.gBrowser.selectedTab = tabItem.tab; } } })(); // Стиль для кнопки группы вкладок var image = "data:image/png;base64,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"; document.getElementById("tabview-button").setAttribute("style", "list-style-image: url(" + image + ") !important;"); document.getElementById("menu_tabview").setAttribute("style", "list-style-image: url(" + image + ") !important;"); (function(css) { var pi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"' ); return document.insertBefore(pi, document.documentElement); } )('\ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\n\ #menu_tabview, #tabview-button {-moz-image-region: rect(0, 198px, 18px, 180px);}\n\ #menu_tabview[groups="1"], #tabview-button[groups="1"] {-moz-image-region: rect(0, 36px, 18px, 18px);}\n\ #menu_tabview[groups="2"], #tabview-button[groups="2"] {-moz-image-region: rect(0, 54px, 18px, 36px);}\n\ #menu_tabview[groups="3"], #tabview-button[groups="3"] {-moz-image-region: rect(0, 72px, 18px, 54px);}\n\ #menu_tabview[groups="4"], #tabview-button[groups="4"] {-moz-image-region: rect(0, 90px, 18px, 72px);}\n\ #menu_tabview[groups="5"], #tabview-button[groups="5"] {-moz-image-region: rect(0, 108px, 18px, 90px);}\n\ #menu_tabview[groups="6"], #tabview-button[groups="6"] {-moz-image-region: rect(0, 126px, 18px, 108px);}\n\ #menu_tabview[groups="7"], #tabview-button[groups="7"] {-moz-image-region: rect(0, 144px, 18px, 126px);}\n\ #menu_tabview[groups="8"], #tabview-button[groups="8"] {-moz-image-region: rect(0, 162px, 18px, 144px);}\n\ #menu_tabview[groups="9"], #tabview-button[groups="9"] {-moz-image-region: rect(0, 180px, 18px, 162px);}\n\ ');
Набор альтернативных иконок для этого кода:
Заменить строчку в коде:
var image = "data:image/png;base64,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";
Отредактировано Inko7 (24-11-2012 13:21:35)
Отсутствует
Реанимирую темку. Свершилось то, что свершилось:
Вышел Firefox 45.
Основные новшества: Удаление интерфейса для переключения между группами вкладок (Tab Groups или режим Panorama). По данным Mozilla этой возможностью пользуется только 0.01% пользователей, которым рекомендуется перейти к использованию дополнений с реализацией похожей функциональности;
Один из вариантов выхода из ситуации - дополнение Tab Groups - практически тот же функционал!
Пытаюсь адаптировать существующую кнопку к новым реалиям:
/*Initialization Code*/ // ДОПОЛНИТЕЛЬНЫЕ КЛИКИ ПО КНОПКЕ ГРУППИРОВКИ ВКЛАДОК (function() { TabView._window || TabView._initFrame(); var tabViewButt = document.getElementById("tabGroups-tabview-button"); if ( tabViewButt == null ) return; if ( tabViewButt.hasAttribute("style") ) return; // блокировать повторный запуск tabViewButt.setAttribute("tooltiptext", "Л = Группы вкладок" + "\n" + "С = Перейти в новую пустую группу" + "\n" + "П = Закрыть текущую группу"); tabViewButt.setAttribute("context", "event.stopPropagation()"); // блокируем контекстное меню для кнопки // добавляем обработчики ["click", "DOMMouseScroll"].forEach(function(type) { tabViewButt.addEventListener(type, function(e) { featuresForTabViewButt(e) }, false) }); function featuresForTabViewButt(e) { if ( e.type == 'click' && e.button == 1 ) { // перейти в новую пустую группу TabView._window.GroupItems.newGroup().newTab("about:blank"); gURLBar.focus(); return; } if ( e.type == 'click' && e.button == 2 ) { // закрыть текущую группу try { var tab = TabView._window.GroupItems.getNextGroupItemTab(true).tab } catch(e) { return }; var group = TabView._window.GroupItems._activeGroupItem; group.fadeAwayUndoButtonDelay = 0; group.closeAll(); gBrowser.selectedTab = tab; return; } if ( e.type == 'DOMMouseScroll' ) { // прокрутка группы вкладок var groupItems = TabView._window.GroupItems; var tabItem = groupItems.getNextGroupItemTab(e.detail > 0); if ( !!tabItem ) window.gBrowser.selectedTab = tabItem.tab; } } })(); // Стиль для кнопки группы вкладок var image = "data:image/png;base64,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"; document.getElementById("tabGroups-tabview-button").setAttribute("style", "list-style-image: url(" + image + ") !important;"); (function(css) { var pi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"' ); return document.insertBefore(pi, document.documentElement); } )('\ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\n\ #tabGroups-tabview-button {-moz-image-region: rect(0, 198px, 18px, 180px);}\n\ #tabGroups-tabview-button[groups="1"] {-moz-image-region: rect(0, 36px, 18px, 18px);}\n\ #tabGroups-tabview-button[groups="2"] {-moz-image-region: rect(0, 54px, 18px, 36px);}\n\ #tabGroups-tabview-button[groups="3"] {-moz-image-region: rect(0, 72px, 18px, 54px);}\n\ #tabGroups-tabview-button[groups="4"] {-moz-image-region: rect(0, 90px, 18px, 72px);}\n\ #tabGroups-tabview-button[groups="5"] {-moz-image-region: rect(0, 108px, 18px, 90px);}\n\ #tabGroups-tabview-button[groups="6"] {-moz-image-region: rect(0, 126px, 18px, 108px);}\n\ #tabGroups-tabview-button[groups="7"] {-moz-image-region: rect(0, 144px, 18px, 126px);}\n\ #tabGroups-tabview-button[groups="8"] {-moz-image-region: rect(0, 162px, 18px, 144px);}\n\ #tabGroups-tabview-button[groups="9"] {-moz-image-region: rect(0, 180px, 18px, 162px);}\n\ '); // УСТРАНЕНИЕ ВЫПАДАНИЯ В ПАНЕЛЬ ГРУПП ПРИ ЗАКРЫТИИ ПОСЛЕДНЕЙ ВКЛАДКИ В ГРУППЕ var tabs = gBrowser.tabContainer; this.onDestroy = function() { tabs.removeEventListener("TabClose", tabCloseHandler, false ); } (); gBrowser.tabContainer.addEventListener("TabClose", tabCloseHandler, false); function tabCloseHandler(event) { if (gBrowser.visibleTabs.length) return; gBrowser.removeAllTabsBut(gBrowser.addTab("about:blank")); setTimeout("gURLBar.focus()", 100); };
Отсутствует
может это связано, что кнопка стартует раньше чем запускается аддон и поэтому она его не находит?
или что другое?
Помогите починить кнопку!
Да, похоже что расширение Tab Groups запускается позже чем расширение Сustom Buttons или чем инициализируются CB кнопки и потому код не видит кнопку групп и TabView._window, потому тут нужен таймер:
// Дополнительные возможности для кнопки группировки вкладок, от 14.06.2016. ................. setTimeout(()=> { var tabViewButt = document.getElementById("tabGroups-tabview-button"); if ( tabViewButt == null ) return; tabViewButt.setAttribute("tooltiptext", "Л = Группы вкладок \nС = Перейти в новую пустую группу \nП = Закрыть текущую группу"); tabViewButt.setAttribute("context", "event.stopPropagation()"); TabView._window || TabView._initFrame(); // дополнительные клики для кнопки группировки вкладок addEventListener("click", e=> { if ( e.button == 1 ) { // перейти в новую пустую группу TabView._window.GroupItems.newGroup().newTab("about:blank"); gURLBar.focus(); } if ( e.button == 2 ) { // закрыть текущую группу try { var tab = TabView._window.GroupItems.getNextGroupItemTab(true).tab } catch(e) { return }; var group = TabView._window.GroupItems._activeGroupItem; var array = [...group.children]; group.fadeAwayUndoButtonDelay = 0; group.close(); gBrowser.selectedTab = tab; setTimeout(()=> { array.forEach(child=> gBrowser.removeTab(child.tab)); // закрыть вкладки закрытой текущей группы }, 0); } }, false, tabViewButt); // прокрутка на кнопке группировки вкладок переключает группы addEventListener("DOMMouseScroll", e=> { var tabItem = TabView._window.GroupItems.getNextGroupItemTab(e.detail > 0); if (tabItem) window.gBrowser.selectedTab = tabItem.tab; }, false, tabViewButt); // стиль для кнопки группы вкладок var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #tabGroups-tabview-button[groups="1"] {-moz-image-region: rect(0, 36px, 18px, 18px);}\ #tabGroups-tabview-button[groups="2"] {-moz-image-region: rect(0, 54px, 18px, 36px);}\ #tabGroups-tabview-button[groups="3"] {-moz-image-region: rect(0, 72px, 18px, 54px);}\ #tabGroups-tabview-button[groups="4"] {-moz-image-region: rect(0, 90px, 18px, 72px);}\ #tabGroups-tabview-button[groups="5"] {-moz-image-region: rect(0, 108px, 18px, 90px);}\ #tabGroups-tabview-button[groups="6"] {-moz-image-region: rect(0, 126px, 18px, 108px);}\ #tabGroups-tabview-button[groups="7"] {-moz-image-region: rect(0, 144px, 18px, 126px);}\ #tabGroups-tabview-button[groups="8"] {-moz-image-region: rect(0, 162px, 18px, 144px);}\ #tabGroups-tabview-button[groups="9"] {-moz-image-region: rect(0, 180px, 18px, 162px);}\ #tabGroups-tabview-button {-moz-image-region: rect(0, 198px, 18px, 180px); list-style-image: url("data:image/png;base64,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") !important;}\ ')); Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService).loadAndRegisterSheet(uri, 0); }, 3000);
Кстати блокировка переключения на панель групп при закрытии последней вкладки в группе тоже не работает
Отредактировано bunda1 (11-03-2016 22:20:45)
Отсутствует
bunda1
как всегда шикарно! всё работает!
как я понял, сейчас таймер 3сек, а там подбирать по производительности компьютера
Кстати блокировка переключения на панель групп при закрытии последней вкладки в группе тоже не работает
у меня работает нормально
Отсутствует
как я понял, сейчас таймер 3сек, а там подбирать по производительности компьютера
Да. Наверно 3сек будет работать у большинства.
у меня работает нормально
Мистика.
Отсутствует
Да, похоже что расширение Tab Groups запускается позже чем расширение Сustom Buttons или чем инициализируются CB кнопки и потому код не видит кнопку групп и TabView._window, потому тут нужен таймер:
не помогло. Всю равно приходится повторно инициализировать кнопку
Отсутствует
bunda1 пишетДа, похоже что расширение Tab Groups запускается позже чем расширение Сustom Buttons или чем инициализируются CB кнопки и потому код не видит кнопку групп и TabView._window, потому тут нужен таймер:
не помогло. Всю равно приходится повторно инициализировать кнопку
Ну тогда увеличь 3000 внизу кода.
Отсутствует
Аддон обновился и кнопка стала немного некорректно работать...
проблема в отображении количества групп при их закрытии по нажатию ПКМ
если групп больше двух, то нажав ПКМ группа закрывается и иконка корректно меняет число групп
но если групп две и одну закрыть, то иконка не сменится на "единичку", а так и останется "двойкой"
если зайти/выйти в менеджер групп, то иконка станет корректной
помогите это как-нибудь починить
Отсутствует
но если групп две и одну закрыть, то иконка не сменится на "единичку", а так и останется "двойкой"
Да есть такое, ПКМ на кнопке не закрывает группу если групп две.
Вроде так работает иконка: 11-03-2016 22:18:28 но вкладки из закрытых групп все равно где то в фоне остаются открытыми
Отсутствует
bunda1
Спасибо, работает! Спас в очередной раз
но вкладки из закрытых групп все равно где то в фоне остаются открытыми
чем это может грозить? неосвобождением памяти?
Добавлено 06-06-2016 22:02:17
вот я и увидел эти "фоновые вкладки"
вернее не я, а кнопка "Показывать количество открытых табов на кнопке "Список всех вкладок"" (*)
Отредактировано Inko7 (06-06-2016 22:02:17)
Отсутствует
открыта одна группа с одной вкладкой, другие группы были уже закрыты, а показывает совсем не то
засада на засаде...
Вроде исправил: 11-03-2016 22:18:28
Отсутствует
bunda1
получается вот такая ситуация:
- открыта одна группа
- открываем еще одну (т.е. уже две)
- закрываем любую группу по ПКМ > всё ок, группа закрывается, иконка корректно меняется, счетчик вкладок тоже
- но если открыть ТРИ или более групп, то закрытие одной группы приводит к выпаданию в панель групп, а в остальных группах могут пропасть вкладки, т.е. остаются типа пустые группы...
как-то так
Добавлено:
поведение групп теперь получается как-то наоборот, чем ранее (№11) :
сейчас - если две группы, то ок, а если больше, то не работает
было в первом варианте - две группы не работают, а если больше, то ок
Отредактировано Inko7 (14-06-2016 08:55:08)
Отсутствует
Inko7
Вроде так всё работает: 11-03-2016 22:18:28
Отсутствует
Страницы: 1