Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№107-10-2012 17:38:01

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 15.0

[CB] Расширение функций кнопки "Группы вкладок" Firefox

Расширение функций кнопки "Группы вкладок"(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)

Отсутствует

 

№224-10-2012 12:39:02

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 16.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Устранение выпадания в панель групп при закрытии последней вкладки в группе(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);
                }

Отсутствует

 

№325-10-2012 18:44:10

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

ЛКМ + ПКМ на текущий таб, переместить таб в новую группу(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)

Отсутствует

 

№424-11-2012 10:52:13

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 17.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Расширение функций кнопки "Группы вкладок" #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,iVBORw0KGgoAAAANSUhEUgAAAMYAAAASCAYAAAAANKFkAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sGDBEKCe9slT0AAAouSURBVGje7Zt7cFTlGYefc9ns5r6bGwRyDwYImiAXuZQoIIVBkZsVSqW1VKfVjlPLiOiM4tTazlSk4ii29iKOVoYCMzRQW0WtgkIRkUsiuYAhhNzDhiTkurvnnD39I3uWDZsN2SWdaZ19Z3bO7nfeffb3+7799jvnPWcFfKKqqV0kQIxLtbmvzfNtC3PCnG8SR/DsmAqM4frROEhe47hU24kwJ8z5JnFkz4sxy5avfNQSHZsum8x+s09VnKKjp6tuX/HebUYegNEGnDA4swrzf+WSLQUm2eSnQlEVIlRH6dGS8mdGimPkAd62MCfMuVGObCwjo8eMTc2/ubBNlGT9WpBbU4XyMyWpvnkARpvvkhWTnFqQe1Meoij7CXK7Vc5/fa5gJDlGHuBtC3PCnBvleN8VF29VY+LiFGGQ9Ub37PfNw6fNN6zxVmJjYhEEf5Ku61jjrYwkx8gznoc5Yc5IcLwTQxQE3RchCAL9TAEBkCVRB5DEq3miIPitLqIoDBDTz7naJpv6P3KkOKIkettE0b8TwpwwJxSOd2JoqkvUNU0QZVkXBAFRFKiul+a2trZ5MjJ59Knt+yGLk2e6AUhKnOwnSNM0dN2NKEqIoogoiphs0zA4iVnjRpSTnLOYXs97Jt42I8wJc0aEY1Sl7nnm6ad/LkVY4iPMZrcoiNS12aYXzb6NjPSxAJhkkYS4CNo6XShq//l5bV0DZWfK+Ou2R7ycdd//3hZEKS/CFIEoSQjWGfhyBmOFwhkpPf9Lvoz3+0Zbp4vzF+pC0jMqwUJ3n0pPnxq0r9zsdD8tN6JnpMerpc3h1fTf4BgrRuNLWzYXS6IQayT9aP0fpl/ulqk5UU+sWeWlJ+ZjrEzrN39Ml1MmNspER1fvgFLXrt17tl3D+bXBMWJJUQaLZo7hxbdLOHvxStCc+xbksHBmmlfPG/vOcrS0JWjOkqIMlt2R5eUUH6zh3c9qQ/b1wJI8im4dHbKvWQWjWLMwa8AX8cW3S7jcLQfFSRsVzU/vm0SKzRKyL3PzFdYsLPSbGKHomT99DKsWZCN5DlV2HjjPv75ouKHx6nGovLarjHO1V0Ier9goE129yoDXBsdbrl3+ndV3WRMS08wWi9utaSKWSbR39pBktfDCY/M4fLqRvR9Wcvv0LLZunM+GrYdp7ei5tt8CcgCiLDLfnpHOsjuyPMudiqq6aO90DZuTZLWwYMZYPvi8llOVdsZn2Xhw2Xgqqu2D6pkyZcpDcfG2AktkJKCTPnGZl3PP7ZkcPt3IkdNNjM+ysWJeDodP1QfFMWJ8ppU5k0df19dQnJvSY7nU3seR003UNXfR61Cp9WyD4Txy7zRqmzrZXlwWsi+ny8lv3jzhTVx6RzbJtkguNLQHpSfJamH1wlw+OlbHqUo7t05IZs2iXE6UN4U0XsUHqzlb086tE5L54dI8Nr58JOh+BkiyWtiyfhYbth6mo9vtN17ecq01MXHsLQVTrpgtFh1dF0oq+tAUJy12J5IosPfDSprt7Xx6HFbMy0FTXGiK0+8KYyAOQFpaDCvm51JRfZmJOYm4VcW7b7icFruTZ7d9RmtHH70OlbHJ/b+KgfTExdsKxudPwhIZiSiKdGt4OY9v+YQ+h0L66DgsJiEkjhGrF47D3t5LSkLUkL6G4uRlxJNii2TFvBx6+hTeebeMsq6eoDhJ1kiSbJHsfK8cTVX49HgNh47XcLmjLyhOl+L0fvaE7AQmZifw8jtf0hWkHk0REQC3pqGpLtyaFlI/GxyLSfByUmyR2KJFWj3ehsORTGZs0SKa4vLqiDWDU++my2HCr1wbH2dT463xiizLyLKEqvWgKlePv5rt7YNur42hOOdrL/Hgpv1kjbWy6eHb0TTXgM8YLqe6rn+76Fu5rL17EgeP1wTUY02wEh8fhznCjGyS6bC7vZwWu4Moi4mnHpyBLIlU17eHxCmamkFOmpXXd33Jw6unDekrECfZFkVKQhRlVXb2flRB0dQMfnLfZL4oraXXoQybkxAXiyQKPHb/NO8h4lv7Snj/cFXQvoyYXZiKvb2HL0ovBryEHIjTbHdQ09jB4jnZLJ6TDcCZry8F3c/Ndgd/+XspP1ha6OXoOiTEyTTbHcPmqIqDrc/di+6pg27dOB9dh1XrdyCbLP5VKVkQdKOcJXp61LeDRifbqG9sIm1Mav+vf0okNQ3+5obidHq2mhplVMICfoGup+fh787kzpm57H6vlD0Hvgo4YJIgIYkSgiggSdIATpItGkFw86vff0x+bgqrFhcE9BWIExVpYu2SAj4vqcXsucialhJF1UWN3j5l2JymSw42bvknvQ4Fe1sPmupi7vQs0kdFUVbVEgSnDbdb571Pz3L8TD3Tb07jgWWFHCu5gL2tJ6j+MWJCdiLHSmoDjtVQnOSEaDLHWPnHwUqvnrvnTsAWKwWt5/PTFzhWcoGUhBiSbNE8ev8smi61DaprKM4jzxUjCPC7Z5ezbcdRzjfj51v0rU8JnmsWCAKyJKK6HCTEyLjdOnfPSSNtTCrzpqb0f8mvdKG6BumoABzfh+8yZrQFw1l7TyEzCtL48+6jlFbWMT7TillyD8oRDJZnkvn6em3TMlYuyEdVnFgixCF9BeJkpMQQF2NmZmEG61ZOA2DdymlkpMQErWfzhrtYuSC//3xlSgY9vS5Kyi8GxWlqvkxza1f/eY7ipLO7/2RSczmD4vg+kmxRnDlbP6BtuBzN5UQwzrsUJ5qmhqTHGK+iKRmoipOiqZm0tHbR1Hw5aF/NLZfRXP2HcV9V1FJfV+3ny7tiKIoiqpoqSLKka6oqiJKMs6+TuoZOHt/yCS89MZ8Fs/O8Vam6hsb+mXnNvSiBOL7hcsV5tj3efcPlpCTFsWRuPpIk8tCqWd78J1/Yw1eVrf4cTUHX3Oi6jqZp+Prase8oa5fP9vr67Z/eD+wrAKeyysmTL+wBIDcjmR+vmcsfdx6ksqoGZ58zZD3dvU5e3/Fx4P4JwAF4+Y332fSzpSy982YA/nbgZNC+jLhlQhomWaLjSseA9mB8FX9wkhWLpnr1HDlRFbSeuoZO/n2yijVLpvQfBrd28stXikPqH4C6hk7uWrfVf6XxcORxqTZ3VVM7ZpPYVnP+bHykJcqtaapoTZhEU/0FVMXB6S8PMX/1IfLy8jl3rvzqrDJZSM/M8d6uez2OEeUVDtb/4k2qaprp63UExblsd7Dh+bf8bzGuaUZR8ONEW8znGhtq8yItkejo2LKv6tm+8wDbdx6gYGImpRUXh/QViNPa00GrvcXjy0LF2QtU1TTTHcDX9fTs3neIcVmjOV1eE5IeVXFw/FQHS9eVUTAxk+qLLXT3OkLiDDZWoXBe3b6fV7fvv2E9mza/w6ikeGKiLZy/2BJy/wDX5RgXRAqjzKbbfeu+mlvv2vj8rlda2zoCHlcm2uJ57sl7J49LtZWEOWHON4kz4CYT33LXYH/kuDaG8weRMCfM+X/k/AdRYV5i4nAH7wAAAABJRU5ErkJggg==";
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\
');

Набор альтернативных иконок для этого кода:
d77e5e714eed.jpg
Заменить строчку в коде:

Выделить код

Код:

var image = "data:image/png;base64,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";

Отредактировано Inko7 (24-11-2012 13:21:35)

Отсутствует

 

№511-03-2016 12:06:09

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 45.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Реанимирую темку. Свершилось то, что свершилось:

Вышел 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);
};


но есть одна проблемка:
при старте FF кнопка не активна, пока ее повторно не инициализировать
может это связано, что кнопка стартует раньше чем запускается аддон и поэтому она его не находит?
или что другое?
Помогите починить кнопку!

Отсутствует

 

№611-03-2016 22:18:28

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7 пишет

может это связано, что кнопка стартует раньше чем запускается аддон и поэтому она его не находит?
или что другое?
Помогите починить кнопку!

Да, похоже что расширение 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)

Отсутствует

 

№711-03-2016 22:32:13

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 45.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

bunda1
как всегда шикарно! всё работает! :beer:
как я понял, сейчас таймер 3сек, а там подбирать по производительности компьютера

Кстати блокировка переключения на панель групп при закрытии последней вкладки в группе тоже не работает :/

у меня работает нормально :|

Отсутствует

 

№811-03-2016 22:59:20

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7 пишет

как я понял, сейчас таймер 3сек, а там подбирать по производительности компьютера

Да. Наверно 3сек будет работать у большинства.

Inko7 пишет

у меня работает нормально :|

Мистика.

Отсутствует

 

№921-03-2016 13:51:44

Артик
Участник
 
Группа: Members
Зарегистрирован: 14-03-2016
Сообщений: 64
UA: Firefox 45.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

bunda1 пишет

Да, похоже что расширение Tab Groups запускается позже чем расширение Сustom Buttons или чем инициализируются CB кнопки и потому код не видит кнопку групп и TabView._window, потому тут нужен таймер:

не помогло. Всю равно приходится повторно инициализировать кнопку

Отсутствует

 

№1021-03-2016 14:06:50

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Артик пишет
bunda1 пишет

Да, похоже что расширение Tab Groups запускается позже чем расширение Сustom Buttons или чем инициализируются CB кнопки и потому код не видит кнопку групп и TabView._window, потому тут нужен таймер:

не помогло. Всю равно приходится повторно инициализировать кнопку

Ну тогда увеличь 3000 внизу кода.

Отсутствует

 

№1103-06-2016 12:09:26

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 46.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Аддон обновился и кнопка стала немного некорректно работать...
проблема в отображении количества групп при их закрытии по нажатию ПКМ
если групп больше двух, то нажав ПКМ группа закрывается и иконка корректно меняет число групп
но если групп две и одну закрыть, то иконка не сменится на "единичку", а так и останется "двойкой"
если зайти/выйти в менеджер групп, то иконка станет корректной
помогите это как-нибудь починить

такие настроки выставлены в аддоне Tab Groups
f80f1d3a713f.jpg

Отсутствует

 

№1206-06-2016 21:09:16

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7 пишет

но если групп две и одну закрыть, то иконка не сменится на "единичку", а так и останется "двойкой"

Да есть такое, ПКМ на кнопке не закрывает группу если групп две.

Вроде так работает иконка: 11-03-2016 22:18:28 но вкладки из закрытых групп все равно где то в фоне остаются открытыми :/

Отсутствует

 

№1306-06-2016 21:52:10

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 46.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

bunda1
Спасибо, работает! Спас в очередной раз :beer:

bunda1 пишет

но вкладки из закрытых групп все равно где то в фоне остаются открытыми

чем это может грозить? неосвобождением памяти?

Добавлено 06-06-2016 22:02:17
вот я и увидел эти "фоновые вкладки"
вернее не я, а кнопка "Показывать количество открытых табов на кнопке "Список всех вкладок"" (*)

скрытый текст
6d6c86c30c42.jpg

открыта одна группа с одной вкладкой, другие группы были уже закрыты, а показывает совсем не то
засада на засаде...

Отредактировано Inko7 (06-06-2016 22:02:17)

Отсутствует

 

№1406-06-2016 23:11:32

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7 пишет

чем это может грозить? неосвобождением памяти?

Да, неосвобождением памяти. Подумаю что тут можно сделать.

Отсутствует

 

№1513-06-2016 21:33:52

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7 пишет

открыта одна группа с одной вкладкой, другие группы были уже закрыты, а показывает совсем не то
засада на засаде...

Вроде исправил: 11-03-2016 22:18:28

Отсутствует

 

№1613-06-2016 22:02:05

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 47.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

bunda1
получается вот такая ситуация:
- открыта одна группа
- открываем еще одну (т.е. уже две)
- закрываем любую группу по ПКМ > всё ок, группа закрывается, иконка корректно меняется, счетчик вкладок тоже
- но если открыть ТРИ или более групп, то закрытие одной группы приводит к выпаданию в панель групп, а в остальных группах могут пропасть вкладки, т.е. остаются типа пустые группы...
как-то так


Добавлено:
поведение групп теперь получается как-то наоборот, чем ранее (№11) :
сейчас - если две группы, то ок, а если больше, то не работает
было в первом варианте - две группы не работают, а если больше, то ок
:/

Отредактировано Inko7 (14-06-2016 08:55:08)

Отсутствует

 

№1714-06-2016 20:55:46

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

Inko7
Вроде так всё работает: 11-03-2016 22:18:28

Отсутствует

 

№1814-06-2016 21:45:19

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 47.0

Re: [CB] Расширение функций кнопки "Группы вкладок" Firefox

bunda1
Блестяще! Все работает, как надо!
Спасибо.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]