difabor
Что-то у меня с overflow: hidden; ресайзер реагирует только от Firefox 31+.
С overflow: scroll; вроде хоть как-то, но работает на двадцатьвосьмой, наверно.
Большое спасибо!
А как добавить в диалог поля Краткого имени и Описания (Short Name и Description)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
difabor
Видимо аналогично тому, как добавлено поле Адрес.
#editBMPanel_locationRow, #editBMPanel_keywordRow, #editBMPanel_descriptionRow { visibility: visible; }\n\
Поскольку текстбокс Описания многострочен, то
чтобы зёздочная панелька не закрывалась при нём по enter'у, то,
возможно, сто́ит дописать в handleEvent что-то типа
addEventListener("keypress", e => e.key == "Enter" && e.stopPropagation(), false, panel.querySelector("#editBMPanel_descriptionField"));
Отредактировано Dumby (27-03-2016 22:22:24)
Отсутствует
difabor
Видимо аналогично тому, как добавлено поле Адрес.
Огромнейшее спасибо!
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Находишь в коде соответствующую CSS-строку,
и дописываешь id нужных row'сов, примерно так
В Stylish это работает. А как это в кнопку добавить, ничего не понял?
Отсутствует
voqabuhe
Ну, если тебе тоже нужны эти два, то может попробуй так
(({panel}, {prefs}, pref, listener = { handleEvent: function(e) { if (e.defaultPrevented) return; cbu.isPref(pref, "200 300"); this.tree = panel.querySelector("#editBMPanel_folderTree"); this.uri = makeURI("data:text/css," + encodeURIComponent('\ @namespace url(' + xulns + ');' + '\n\n\ #editBMPanel_locationRow, #editBMPanel_keywordRow, #editBMPanel_descriptionRow { visibility: visible; }\n\ #editBMPanel_folderTree { resize: both; overflow: hidden; }\n\ #editBMPanel_folderTree > stack > treerows > scrollbar { display: none; }\n\ '.replace(/;/g, " !important;"))); this.dwu = QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); this.dwu.loadSheet(this.uri, this.type = this.dwu.AGENT_SHEET); this.handleEvent = e => e.target == panel && this[e.type](); addEventListener("popuphidden", this, false, panel); setTimeout(() => this.popupshowing(), 0); addEventListener("keypress", e => e.key == "Enter" && e.stopPropagation(), false, panel.querySelector("#editBMPanel_descriptionField")); }, popupshowing: function() { var [width, height] = prefs.getCharPref(pref).split(" "); this.tree.width = this.width = width; this.tree.height = this.height = height; gEditItemOverlay.toggleFolderTreeVisibility(); setTimeout(() => { gEditItemOverlay._initDescriptionField(); gEditItemOverlay._initKeywordField(); }, 0); }, popuphidden: function() { var {width, height} = this.tree; if (width == this.width && height == this.height) return; prefs.setCharPref(pref, width + " " + height); } }) => { addEventListener("popupshowing", listener, false, panel); addDestructor(reason => { reason == "delete" && prefs.clearUserPref(pref); var {tree} = listener; if (!tree) return; tree.removeAttribute("width"); tree.removeAttribute("height"); listener.dwu.removeSheet(listener.uri, listener.type); }); })(StarUI, Services, "CB.editBMPanel_folderTree_WidthHeight");
Отсутствует
Редактировать размеры поля выбора вкладок в диалоге добавления закладки звёздочки
добавил в диалог добавления закладки звёздочки текстовое поле краткого имени и чекбокс загрузки закладки в боковой панели.
Отсутствует
Ну, если тебе тоже нужны эти два, то может попробуй так
Спасибо большое. Иногда бывает нужно, но вот место занимают полезное... Пока в кнопке закомментировал, а пользоваться решил стилем №27, который отключаю твоей же кнопкой №728. За которую отдельное спасибо.
ПС Ну вот что мне действительно нужно, так это №1158, просто успокоится не могу Может глянешь когда время будет? Плиз.
Отсутствует
Иногда бывает нужно, но вот место занимают полезное
Вот, например, если у тебя хидер звёздочной панельки (#editBookmarkPanelHeader)
не стилизирован в ноль, и если никакой сторонний код не не претендует на него,
то, возможно, будет удобно переключать скрытое по клику на на этом хидере.
Но при некоторых раскладах позиции-размеров панелька будет прыгать.
(({panel}, {prefs}, pref, listener = { handleEvent: function(e) { if (e.defaultPrevented) return; cbu.isPref(pref, "200 300"); this.tree = panel.querySelector("#editBMPanel_folderTree"); this.uri = makeURI("data:text/css," + encodeURIComponent(`\ @namespace url(${xulns});` + `\n #editBMPanel_folderTree { resize: both; overflow: hidden; } #editBMPanel_folderTree > stack > treerows > scrollbar { display: none; } `.replace(/;/g, " !important;"))); this.dwu = QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); this.dwu.loadSheet(this.uri, this.type = this.dwu.AGENT_SHEET); this.handleEvent = e => e.target == panel && this[e.type](); addEventListener("popuphidden", this, false, panel); setTimeout(() => this.popupshowing(), 0); addEventListener("keypress", e => e.key == "Enter" && e.stopPropagation(), false, panel.querySelector("#editBMPanel_descriptionField")); var data = { editBMPanel_locationRow: "", editBMPanel_keywordRow: "_initKeywordField", editBMPanel_descriptionRow: "_initDescriptionField" }; var nodes = Object.keys(data).map(id => panel.querySelector("#" + id)); addEventListener("click", e => { var state = nodes[0].collapsed; for(var node of nodes) { state ? node.removeAttribute("collapsed") : node.collapsed = true; state && data[node.id] && gEditItemOverlay[data[node.id]](); } panel.adjustArrowPosition(); }, false, panel.querySelector("#editBookmarkPanelHeader")); }, popupshowing: function() { var [width, height] = prefs.getCharPref(pref).split(" "); this.tree.width = this.width = width; this.tree.height = this.height = height; setTimeout(() => gEditItemOverlay.toggleFolderTreeVisibility() || panel.adjustArrowPosition(), 0); }, popuphidden: function() { var {width, height} = this.tree; if (width == this.width && height == this.height) return; prefs.setCharPref(pref, width + " " + height); } }) => { addEventListener("popupshowing", listener, false, panel); addDestructor(reason => { reason == "delete" && prefs.clearUserPref(pref); var {tree} = listener; if (!tree) return; tree.removeAttribute("width"); tree.removeAttribute("height"); listener.dwu.removeSheet(listener.uri, listener.type); }); })(StarUI, Services, "CB.editBMPanel_folderTree_WidthHeight");
Ну вот что мне действительно нужно, так это №1158, просто успокоится не могу Может глянешь когда время будет?
Не, я не знаю как там всё разрулить. Впрочем, можно попробавать.
(({panel}, prefName) => { cbu.isPref(prefName, PlacesUtils.unfiledBookmarksFolderId); addDestructor(reason => reason == "delete" && Services.prefs.clearUserPref(prefName)); var popupshownFolderId = Services.prefs.getIntPref(prefName); var handler = e => { if (e.target != panel) return; var id = PlacesUtils.bookmarks.getFolderIdForItem(StarUI._itemId); if (e.type == "popupshown") { popupshownFolderId = id; return; } if (StarUI._actionOnHide || popupshownFolderId == id) return; Services.prefs.setIntPref(prefName, id); } for(var type of ["popupshown", "popuphiding"]) addEventListener(type, handler, false, panel); var src = BookmarkingUI.onCommand.toString(); var showPopup = true; var res = src.replace("true", `${showPopup || "isBookmarked"}, isBookmarked ? undefined : Services.prefs.getIntPref("${prefName}")`); var func = eval(`(${res})`).bind(BookmarkingUI); BookmarkingUI.star && addEventListener("command", e => e.stopPropagation() || func(e), true, BookmarkingUI.star); addEventListener("dblclick", e => { if ( e.button || e.ctrlKey || e.shiftKey || e.altKey || e.target.nodeName != "tab" || isBlankPageURL(gBrowser.currentURI.spec) || BookmarkingUI._pendingStmt ) return; var isBookmarked = BookmarkingUI._itemIds.length > 0; var parent = isBookmarked ? undefined : Services.prefs.getIntPref(prefName); PlacesCommandHook.bookmarkCurrentPage(showPopup || isBookmarked, parent); isBookmarked || BookmarkingUI._showBookmarkedNotification(); }, false, gBrowser.tabContainer); })(StarUI, "CB.lastEditBookmarkPanelFolderId");
Отсутствует
Не, я не знаю как там всё разрулить. Впрочем, можно попробавать.
Ура, он сделал это!!! Нет слов, ну просто волшебник. Тысяча благодарностей. Только если можно чтобы закладки вверх списка добавлялись, для полного счастья? Плиз.
Вот, например, если у тебя хидер звёздочной панельки (#editBookmarkPanelHeader)
не стилизирован в ноль, и если никакой сторонний код не не претендует на него,
то, возможно, будет удобно переключать скрытое по клику на на этом хидере.
Я там скрыл это всё стилем, срабатывает, но надо тщательно целится в пустое место. Поэтому повесил на #editBMPanel_tagsRow > label. Получилось очень даже классно и удобно. Ещё раз огромное спасибо. Ну просто праздник сегодня какой-то.
Отсутствует
Разрешите тоже попробовать
Кнопка №20 работает отлично, слов нет. Можно ли ярко-белый фон открывающегося меню сменить на менее светлый, а то режет глаз? На маленьком диалоге это не бросалось в глаза, а на большом очень заметно.
P.S.
Firefox как и Windows, юзеры придумывают и реализуют очень много полезного, а ни первые, ни другие не чешутся
Отсутствует
Можно ли ярко-белый фон открывающегося меню сменить на менее светлый,
Есть такой, себе сделал стиль. Правда у мя PaleMoon + стоит плугин для этого, для раскрытия меню Add Bookmark Here ² но вроде бы там селекторы не менялись.
/* ======= Панель-Звездочка закладки(клик на звездочке в урл) ================== */ panel#editBookmarkPanel >.panel-arrowcontainer > .panel-arrowcontent { -moz-appearance:none !important; background: rgba(150,150,150,.6) -moz-linear-gradient(top,rgba(255, 255, 255, 0.21),rgba(255, 255, 255, 0.13) 49%,rgba(255, 255, 255, 0.094) 51%, rgba(255, 255, 255, 0.05)) !important; border: 1px solid #909090 !important; box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.2) inset, 0px 1px 3px rgba(0, 0, 0, 0.5) !important; } #editBookmarkPanelHeader > vbox > #editBookmarkPanelTitle[value="Edit This Bookmark"] { color: #8A2BE2 !important; } #editBookmarkPanelStarIcon { list-style-image: url("data:image/png;base64,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") !important; width: 32px !important; height: 32px !important; } panel#editBookmarkPanel > * { font-family: Cambria, "Segoe UI", Arial; font-weight: 600 !important; font-stretch: condensed; text-shadow: #EEE -1px -1px 0.35em, white -1px 1px 0.35em, white 1px 1px 0.35em, white 1px -1px 0.35em; } /* общие размеры панели */ panel#editBookmarkPanel { height: 650px !important; width: 550px !important; } /* высота дерева папок с закладками */ #editBMPanel_folderTree { min-height: 400px !important; } #editBMPanel_folderTree > treechildren { background: rgba(255,240,183,.94) -moz-linear-gradient(top,rgba(255, 255, 255, 0.21),rgba(255, 255, 255, 0.13) 49%,rgba(255, 255, 255, 0.094) 51%, rgba(255, 255, 255, 0.05)) !important; font-family: "Segoe UI", Arial; } #editBMPanel_descriptionField { min-height: 100px !important; } textbox[id^="editBMPanel_"]:not([focused="true"]) { -moz-appearance: none !important; background: rgba(210,210,210,.9) -moz-linear-gradient(top,rgba(255, 255, 255, 0.21),rgba(255, 255, 255, 0.13) 49%,rgba(255, 255, 255, 0.094) 51%, rgba(255, 255, 255, 0.05)) !important; } textbox[id^="editBMPanel_"][focused="true"] { -moz-appearance:none !important; background: rgba(255,240,183,.9) -moz-linear-gradient(top,rgba(255, 255, 255, 0.21),rgba(255, 255, 255, 0.13) 49%,rgba(255, 255, 255, 0.094) 51%, rgba(255, 255, 255, 0.05)) !important; }
Отсутствует
Есть такой, себе сделал стиль.
Спасибо, но не осилил. Вставил код в инициализацию существующей- не заработало.
Отсутствует
Кнопка №20 работает отлично, слов нет. Можно ли ярко-белый фон открывающегося меню сменить на менее светлый, а то режет глаз?
В смысле хочешь свой стиль в код пристроить?
Тогда, например, так
(({panel}, {prefs}, pref, listener = { handleEvent(e) { var style = ` #editBookmarkPanel .panel-arrowcontent { background-color: gray !important; border: 1px solid black !important; } #editBookmarkPanel .panel-arrow:-moz-any([side="top"], [side="bottom"]) { list-style-image: url('data:image/svg+xml,\\${["", '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="10">\\%0A\\', ' <path d="M 0,10 L 10,0 20,10 z" fill="black"/>\\%0A\\', ' <path d="M 1,10 L 10,1 19,10 z" fill="gray"/>\\%0A\\', '</svg>'].join("\n" + " ".repeat(8))}') !important; } #editBookmarkPanel :-moz-any(textbox, listbox) { -moz-appearance: none !important; border: 1px solid black !important; } #editBookmarkPanel :-moz-any(textbox, listbox, treechildren, menupopup) { background-color: lightgray !important; } #editBookmarkPanel listitem, #editBookmarkPanel treechildren::-moz-tree-row { height: 1.6em !important; border: none !important; border-radius: 0 !important; outline: none !important; background-image: none !important; background-color: transparent !important; box-shadow: none !important; } #editBookmarkPanel treechildren::-moz-tree-row(hover) { background-color: #b4b4b4 !important; } #editBookmarkPanel treechildren::-moz-tree-row(hover, focus) { background-color: #91c8ff !important; } #editBookmarkPanel listbox listitem[selected=true], #editBookmarkPanel treechildren::-moz-tree-row(selected) { background-color: gray !important; } #editBookmarkPanel listbox:focus listitem[selected=true], #editBookmarkPanel treechildren::-moz-tree-row(selected, focus) { background-color: Highlight !important; } `.trim(); var dwu = QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); var str = "data:text/css," + encodeURIComponent(style), type = dwu.AGENT_SHEET; dwu.loadSheetUsingURIString(str, type); addDestructor(() => dwu.removeSheetUsingURIString(str, type)); this.locationRow = panel.querySelector("#editBMPanel_locationRow"); var tree = this.folderTree = panel.querySelector("#editBMPanel_folderTree"); tree.style.resize = "both"; tree.style.overflow = "hidden"; var treerows = tree.inputField.previousSibling; addEventListener("overflow", e => e.stopPropagation(), true, treerows); cbu.isPref(pref, "200 300"); addEventListener("popuphidden", this, false, panel); this.handleEvent = e => e.target == panel && this[e.type](); setTimeout(() => { treerows.setAttribute("hidevscroll", true); this.popupshowing(); }, 0); }, popupshowing() { gEditItemOverlay.toggleFolderTreeVisibility(); setTimeout(() => this.locationRow.collapsed = false, 0); var [width, height] = prefs.getCharPref(pref).split(" "); this.folderTree.width = this.width = width; this.folderTree.height = this.height = height; }, popuphidden() { var {width, height} = this.folderTree; if (width != this.width || height != this.height) prefs.setCharPref( pref, width + " " + height ); } }) => { addEventListener("popupshowing", listener, false, panel); addDestructor(reason => { reason == "delete" && prefs.clearUserPref(pref); var tree = listener.folderTree; if (!tree) return; for(var prop of ["resize", "overflow"]) tree.style.removeProperty(prop); tree.getAttribute("style") || tree.removeAttribute("style"); listener.locationRow.collapsed = true; tree.inputField.previousSibling.removeAttribute("hidevscroll"); for(var attr of ["width", "height"]) tree.removeAttribute(attr); }); })(StarUI, Services, "CB.editBMPanel_folderTree_WidthHeight");
Отсутствует
В смысле хочешь свой стиль в код пристроить?
Тогда, например, так
Спасибо, работает. Можно ли увеличить шрифт во всем окне или в дереве папок?
userChrome.css , жи нада.
Спасибо, конечно же, так работает. И тот же вопрос по размеру шрифта
P.S.
Как правильно разместить несколько кодов инициализаций кнопок, подобных этим, в одну кнопку. Цель понятна, убрать с панели некликабельные кнопки. Попадалась информация о разделителях, но повторно найти не смог.
Отсутствует
Можно ли увеличить шрифт во всем окне или в дереве папок?
Можно, но это уже оффтоп, наверно. со стилями надобно в стили.
/* увеличить шрифт в дереве папкок "Звездочки" */ #editBMPanel_folderTree > treechildren { background: rgba(255,240,183,.94) -moz-linear-gradient(top,rgba(255, 255, 255, 0.21),rgba(255, 255, 255, 0.13) 49%,rgba(255, 255, 255, 0.094) 51%, rgba(255, 255, 255, 0.05)) !important; font-family: "Segoe UI", Arial; font-size: medium !important; /* или large или конкретный размер: font-size: 16px !important; */ }
Как правильно разместить несколько кодов инициализаций кнопок, подобных этим, в одну кнопку.
Заключить их в скобки и оформить как функцию. Работает почти всегда, но есть и достаточно исключений(когда нельзя). Примерно так:
Отсутствует
Заключить их в скобки и оформить как функцию.
Т.е. вот так?
(function() {
....тут код №1 из инициализации ....
})();
(function() {
....тут код №2 из инициализации ....
})();
Отсутствует
xoreax
Спасибо большое! У меня пока штук пять наберется, да и все простенькие, насколько я могу сообразить.
Отсутствует