Страницы: 1
Если уже есть какая-то готовая кнопка позволяющая как-то управлять группами вкладок, ну или на худой конец, как можно сделать доп кнопку со списком всех вкадок, больно неудобно все время в правый верхний уголок экрана метить в этот маленький черненький треугольничег))
SeaMonkey 2.39 forever
Отсутствует
bunda1, в том-то и дело что ее никакой тут и нету, а как-то хотелось бы систематизировать их... в ФФ есть группировка, а тут нема... но когда-то попадались расширения какие-то, дающие дополнитеьные возможности "менеджера" вкладок, но работали они как-то корявенько.. ну или как я написал в первом сообщении, хотябы вертикальный список-меню чтоб по кнопке вываливался с названиями вкладок, можно с короткими адресами..
SeaMonkey 2.39 forever
Отсутствует
как можно сделать доп кнопку со списком всех вкадок, больно неудобно все время в правый верхний уголок экрана метить в этот маленький черненький треугольничег))
В адресной строке:
// Показывать количество открытых табов в адресной строке +, от 12.11.2013. ................................ (function () { // Создать в адресной строке счётчик вкладок .... var tabCounter = document.createElement("statusbarpanel"); tabCounter.setAttribute("tooltiptext", "Показать меню всех вкладок"); tabCounter.setAttribute("context", "event.stopPropagation()"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( tabCounter, urlbarIcons.firstChild ); addDestructor(function() { urlbarIcons.removeChild( tabCounter ) }); tabCounter.id = "tabCounter"; // Отслеживать клик на счетчике .... tabCounter.onclick = function(e) { if ( e.target.localName == "menuitem" ) return; tabCounter.textContent = ""; // удалить старое меню // создать новое меню всех вкладок текущей группы var menu = tabCounter.appendChild( document.createElement("menupopup") ); [...gBrowser.tabs].forEach(function( tab, i ) { var mItem = document.createElement("menuitem"); mItem.index = i; mItem.setAttribute("class", "menuitem-iconic bookmark-item"); ["label", "image", "selected", "unread"].forEach(function( atrr ) { mItem.setAttribute( atrr, tab.getAttribute(atrr) ); }); menu.appendChild(mItem); }); // автоматически закрывать меню при ухода курсора, длительность увода - 450 мс menu.setAttribute("onmouseleave", "this.mo = false; setTimeout(function(mp) { if ( !mp.mo ) mp.hidePopup() }, 450, this)"); menu.setAttribute("onmouseover", "this.mo = true"); // отслеживать клики на пункты меню menu.setAttribute("onmouseup", "\ event.preventDefault();\ var e = event, mItem = e.target;\ var tab = gBrowser.tabs[mItem.index];\ if ( e.button == 0 ) {\ mItem.removeAttribute('unread');\ Array.slice(this.childNodes).forEach(function(node) { node.removeAttribute('selected') });\ mItem.setAttribute('selected', true );\ gBrowser.selectedTab = tab;\ }\ else\ {\ gBrowser.removeTab( tab );\ this.removeChild( mItem );\ Array.slice(this.childNodes).forEach(function(node, i) { node.index = i });\ var selectTab = Array.filter( gBrowser.tabs, function( tab ) { return tab.hasAttribute('selected') });\ this.childNodes[selectTab[0]._tPos].setAttribute('selected', true );\ };\ "); // фокус на активную вкладку в меню при открытии var box = document.getAnonymousElementByAttribute( menu, "class", "popup-internal-box"); addEventListener("popupshowing", function() { var boxCenter = box.boxObject.screenY + box.boxObject.height / 2; var [menuitem] = Array.filter( (menu.childNodes), function(menuitem) { return menuitem.getAttribute("selected", "true") }); var menuitemCenter = menuitem.boxObject.screenY + menuitem.boxObject.height / 2; box.scrollByPixels( menuitemCenter - boxCenter ); }, false, menu ); menu.showPopup( tabCounter, -1, -1, "popup", "bottomleft", "topleft"); // открыть меню }; // Css стиль для счётчика и меню .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #tabCounter { -moz-appearance: none !important; border: 0 !important; margin-right: 2px !important; }\ #tabCounter:hover { color: #FF1493 !important; }\ #tabCounter > menupopup scrollbox { overflow-y: auto !important; }\ #tabCounter > menupopup > menuitem[unread="true"]:not(:hover) { color: blue !important; }\ #tabCounter > menupopup > menuitem[selected="true"] { color: red !important; font-weight: bold !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET) }); // Считать и показывать количество вкладок .... function count() { try { window.clearTimeout( tabTimeout ) } catch(e) {}; tabTimeout = window.setTimeout(function() { tabCounter.label = gBrowser.tabs.length; }, 50 ); }; count(); // Отслеживать открытие, закрытие вкладок и переключение групп вкладок .... var tabs = gBrowser.tabContainer; addEventListener("TabOpen", count, false, tabs ); addEventListener("TabClose", count, false, tabs ); function getChangeTabGroup() { addEventListener("TabHide", function c(e) { count(); setTimeout(function() { getChangeTabGroup() }, 50 ) removeEventListener( e.type, c, false, tabs ); }, false, tabs ); }; getChangeTabGroup(); })();
Добавлено 29-05-2015 15:17:04
Почитай: Показывать количество открытых табов в адресной строке+
Отредактировано bunda1 (29-05-2015 15:17:04)
Отсутствует
А можно этот чудо-код адаптировать, чтобы меню было не в адресной строке, а по кнопке?
Попробуй:
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043A%u043E%u043B%u0438%u0447%u0435%u0441%u0442%u0432%u043E%20%u043E%u0442%u043A%u0440%u044B%u0442%u044B%u0445%20%u0442%u0430%u0431%u043E%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20if%20%28%20e.button%20%7C%7C%20e.target.localName%20%3D%3D%20%22menuitem%22%20%29%20return%3B%0A%0A%20%20%20%20%20%20self.textContent%20%3D%20%22%22%3B%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0430%u0440%u043E%u0435%20%u043C%u0435%u043D%u044E%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0433%u0440%u0443%u043F%u043F%u044B%0A%20%20%20%20%20%20var%20menu%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%0A%20%20%20%20%20%20%5B...gBrowser.tabs%5D.forEach%28function%28%20tab%2C%20i%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20mItem.index%20%3D%20i%3B%0A%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%20bookmark-item%22%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%5B%22label%22%2C%20%22image%22%2C%20%22selected%22%2C%20%22unread%22%5D.forEach%28function%28%20atrr%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%20atrr%2C%20tab.getAttribute%28atrr%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20menu.appendChild%28mItem%29%3B%0A%20%20%20%20%20%20%7D%29%3B%20%20%20%20%20%20%20%20%20%0A%20%0A%20%20%20%20%20%20//%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0437%u0430%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u0443%u0445%u043E%u0434%u0430%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%2C%20%u0434%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%20%u0443%u0432%u043E%u0434%u0430%20-%20450%20%u043C%u0441%0A%20%20%20%20%20%20menu.setAttribute%28%22onmouseleave%22%2C%20%22this.mo%20%3D%20false%3B%20setTimeout%28function%28mp%29%20%7B%20if%20%28%20%21mp.mo%20%29%20mp.hidePopup%28%29%20%7D%2C%20450%2C%20this%29%22%29%3B%0A%20%20%20%20%20%20menu.setAttribute%28%22onmouseover%22%2C%20%22this.mo%20%3D%20true%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%20%u043A%u043B%u0438%u043A%u0438%20%u043D%u0430%20%u043F%u0443%u043D%u043A%u0442%u044B%20%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20menu.setAttribute%28%22onmouseup%22%2C%20%22%5C%0A%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%5C%0A%20%20%20%20%20%20%20%20%20var%20e%20%3D%20event%2C%20mItem%20%3D%20e.target%3B%5C%0A%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.tabs%5BmItem.index%5D%3B%5C%0A%20%20%20%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.removeAttribute%28%27unread%27%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28this.childNodes%29.forEach%28function%28node%29%20%7B%20node.removeAttribute%28%27selected%27%29%20%7D%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27selected%27%2C%20true%20%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20tab%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20%20%20%20else%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28%20tab%20%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeChild%28%20mItem%20%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28this.childNodes%29.forEach%28function%28node%2C%20i%29%20%7B%20node.index%20%3D%20i%20%7D%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20selectTab%20%3D%20Array.filter%28%20gBrowser.tabs%2C%20function%28%20tab%20%29%20%7B%20return%20tab.hasAttribute%28%27selected%27%29%20%7D%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.childNodes%5BselectTab%5B0%5D._tPos%5D.setAttribute%28%27selected%27%2C%20true%20%29%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%5C%0A%20%20%20%20%20%20%22%29%3B%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20//%20%u0444%u043E%u043A%u0443%u0441%20%u043D%u0430%20%u0430%u043A%u0442%u0438%u0432%u043D%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%0A%20%20%20%20%20%20var%20box%20%3D%20document.getAnonymousElementByAttribute%28%20menu%2C%20%22class%22%2C%20%22popup-internal-box%22%29%3B%0A%20%20%20%20%20%20addEventListener%28%22popupshowing%22%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20boxCenter%20%3D%20box.boxObject.screenY%20+%20box.boxObject.height%20/%202%3B%20%20%0A%20%20%20%20%20%20%20%20%20var%20%5Bmenuitem%5D%20%3D%20Array.filter%28%20%28menu.childNodes%29%2C%20function%28menuitem%29%20%7B%20return%20menuitem.getAttribute%28%22selected%22%2C%20%22true%22%29%20%7D%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20var%20menuitemCenter%20%3D%20menuitem.boxObject.screenY%20+%20menuitem.boxObject.height%20/%202%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20box.scrollByPixels%28%20menuitemCenter%20-%20boxCenter%20%29%3B%0A%20%20%20%20%20%20%7D%2C%20false%2C%20menu%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20menu.showPopup%28self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%3B%0A%0A%0A%20%20%20//%20%u0421%u0447%u0438%u0442%u0430%u0442%u044C%20%u0438%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043A%u043E%u043B%u0438%u0447%u0435%u0441%u0442%u0432%u043E%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20....%0A%20%20%20function%20count%28%29%20%7B%0A%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20tabTimeout%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%20%20tabTimeout%20%3D%20window.setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20self.label%20%3D%20gBrowser.tabs.length%3B%0A%20%20%20%20%20%7D%2C%2050%20%29%3B%0A%20%20%20%7D%3B%0A%20%20%20count%28%29%3B%0A%0A%0A%20%20%20//%20%u041E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%2C%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20%u0438%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u0433%u0440%u0443%u043F%u043F%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20....%0A%20%20%20var%20tabs%20%3D%20gBrowser.tabContainer%3B%0A%20%20%20addEventListener%28%22TabOpen%22%2C%20count%2C%20false%2C%20tabs%20%29%3B%0A%20%20%20addEventListener%28%22TabClose%22%2C%20count%2C%20false%2C%20tabs%20%29%3B%0A%20%20%20function%20getChangeTabGroup%28%29%20%7B%0A%20%20%20%20%20%20addEventListener%28%22TabHide%22%2C%20function%20c%28e%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20count%28%29%3B%0A%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20getChangeTabGroup%28%29%20%7D%2C%2050%20%29%20%0A%20%20%20%20%20%20%20%20%20removeEventListener%28%20e.type%2C%20c%2C%20false%2C%20tabs%20%29%3B%20%0A%20%20%20%20%20%20%7D%2C%20false%2C%20tabs%20%29%3B%0A%20%20%20%7D%3B%0A%20%20%20getChangeTabGroup%28%29%3B%20%0A%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u043C%u0435%u043D%u044E%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%5C%0A%20%20%20/*%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20*/%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%20display%3A%20-moz-box%20%21important%3B%20%7D%5C%0A%20%20%20%25button%25%20%7B%20-moz-box-orient%3A%20horizontal%20%21important%3B%20%7D%5C%0A%20%20%20%5C%0A%20%20%20/*%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0434%u043B%u044F%20%u043C%u0435%u043D%u044E%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20*/%5C%0A%20%20%20%25button%25%3Ahover%20%7B%20color%3A%20%23FF1493%20%21important%3B%20%7D%5C%0A%20%20%20%25button%25%20%3E%20menupopup%20scrollbox%20%7B%20overflow-y%3A%20auto%20%21important%3B%20%7D%5C%0A%20%20%20%25button%25%20%3E%20menupopup%20%3E%20menuitem%5Bunread%3D%22true%22%5D%3Anot%28%3Ahover%29%20%7B%20color%3A%20blue%20%21important%3B%20%7D%5C%0A%20%20%20%25button%25%20%3E%20menupopup%20%3E%20menuitem%5Bselected%3D%22true%22%5D%20%7B%20color%3A%20red%20%21important%3B%20font-weight%3A%20bold%20%21important%3B%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%20%7D%29%3B%20%0A%20%20%20%0A%20%20%20%0A%20%20%20self.setAttribute%28%22tooltiptext%22%2C%20%22%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%22%29%3B%20%20%20%20%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Ba%5Bhref%5D%5Btarget%3D%22_blank%22%5D%20%7B%0A%20%20%20%20-moz-binding%3A%20url%28%22data%3Aapplication/xml%2C%253C%253Fxml%2520version%253D%25221.0%2522%253F%253E%250A%253Cbindings%2520id%253D%2522a-target-bindings%2522%2520xmlns%253D%2522http%253A%252F%252Fwww.mozilla.org%252Fxbl%2522%253E%250A%2509%253Cbinding%2520id%253D%2522a-target-_blank%2522%253E%250A%2509%2509%253Cimplementation%253E%250A%2509%2509%2509%253Cconstructor%253E%250A%2509%2509%2509%2509this.removeAttribute%28%2522target%2522%29%253B%250A%2509%2509%2509%253C%252Fconstructor%253E%250A%2509%2509%253C%252Fimplementation%253E%250A%2509%253C%252Fbinding%253E%250A%253C%252Fbindings%253E%250A%22%29%20%21important%3B%0A%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
ВАУ! А как-то шрифт счетчика можно покрупнее сделать и чтобы по ENTER переходило к выбранной в списке вкладке?
Отредактировано emlen (03-06-2015 16:52:48)
SeaMonkey 2.39 forever
Отсутствует
ВАУ! А как-то шрифт счетчика можно покрупнее сделать
Замени:
на:
%button% .toolbarbutton-text { display: -moz-box !important; font-size: 22px !important; }\
Измени там 22 под себя.
Добавлено 04-06-2015 21:27:24
и чтобы по ENTER переходило к выбранной в списке вкладке?
А зачем.
Отредактировано bunda1 (04-06-2015 21:28:01)
Отсутствует
Спасибо что нашли время на помощь мне!
А зачем.
Иногда удобно быстро перейти по списку кнопками PageDn,PageUp,Home,End и пару пунктов вверх вниз и затем по Enter... и не тянуться к тачпаду чтобы ловить неуловимые пункты списка заново...
SeaMonkey 2.39 forever
Отсутствует
Страницы: 1