Не понимаю.
А я все про ту же мысль, что, на мой взгляд, навигация по результатам поиска стрелками (когда фокус на поле для поиска) удобнее – эффект от нажатия стрелок не там, где предполагалось, менее критичен. Но особо мешать не должно, да.
Кстати, еще разумно подхватывать выделенный текст при нажатии Ctrl+/.
Добавлено 15-12-2009 19:12:32
Правда, почему-то по onload в Thunderbird 3 не срабатывает.
Видимо, баг.
Как-то так:
sizeWindowToContent: function (forced) { ... window. sizeToContent (); if (forced) setTimeout(window. sizeToContent, 0); }, onLoad: function () { ... this. sizeWindowToContent (true); },
Кривовато (и дергается) , но зато работает.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
навигация по результатам поиска стрелками (когда фокус на поле для поиска) удобнее – эффект от нажатия стрелок не там, где предполагалось, менее критичен.
Вроде понял.
Как-то так:
Вроде бы когда-то так было, не помню.
Интересно это работает.
Если this. sizeWindowToContent (true); "утащить" в начало onLoad(), то в Thunderbird с размером диалога всё будет в порядке, но в Firefox диалог настроек будет заметно выше, т. к. чекбокс ещё не будет скрыт.
Если поставить два вызова this. sizeWindowToContent (true); - в начале и в конце onLoad(), в Thunderbird будет то же самое, что и с одним в конце.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Вроде понял.
И еще раз про то же, но с другого бока.
Основная мысль: хорошо, когда поиск работает так же, как и в браузере (а там можно перемещаться по результатам по Enter/Shift+Enter).
Однако окно браузера не закроется, если случайно нажать Enter не в поле для поиска.
Ну, и отсюда вывод, что можно и стрелками перемещение делать – все равно ничего дельного при нажатии вниз/вверх не происходит.
Интересно это работает.
Это еще хорошо, что XUL там не сложный. При наличии скроллбоксов бывает интереснее.
Еще можно попробовать показывать/скрывать все, что нужно, по DOMContentLoaded (или добавить вызов функции в самом конце DOM-дерева), а sizeToContent вызывать все так же по load.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Однако окно браузера не закроется, если случайно нажать Enter не в поле для поиска.
Опять двадцать пять : )
Поиск реализует редактор, а не диалог.
В редакторе с Enter'ом всё в порядке, я настаиваю : )
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
В редакторе с Enter'ом всё в порядке, я настаиваю : )
А я не спорю. Вроде бы.
В любом случае фокусы реализует уже пользователь.
Кстати, а как насчет пункта контекстного меню для создания пустой кнопки – как клонирование, только без переноса свойств?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Кстати, а как насчет пункта контекстного меню для создания пустой кнопки – как клонирование, только без переноса свойств?
Не хотелось бы добавлять в контекстное меню. Подумаю.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Не хотелось бы добавлять в контекстное меню. Подумаю.
А если изменить поведение клонирования при клике средней кнопкой мыши?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
А если изменить поведение клонирования при клике средней кнопкой мыши?
Может быть. Или Shift/Ctrl+Left click.
okkamas_knife
Это к автору кнопки.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Может быть. Или Shift/Ctrl+Left click.
Лучше «и». Кликать без участия клавиатуры удобнее. Но на случай отсутствия средней кнопки лучше предусмотреть запасной вариант.
А правую кнопку для контекстных меню лучше не использовать. Точнее, не получится даже посто так – будет срабатывать oncommand. Ну, и в том же Linux контекстное меню открывается сразу по нажатию на ПКМ (без отпускания), а в таком случае удобно отпускать кнопку уже на нужном пункте внутри меню.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Меня тут попросили реквест передать...
Так сказать, несколько доработанная идея.
Хорошо бы добавить в редактор кнопку «протестировать», которая бы пересоздавала кнопку без сохранения настроек с возможностью отмены.
По идее, с пересозданием кнопки проблем возникнуть не должно – достаточно пропустить сохранение файла (или обновить напрямую на основании данных редактора – лень смотреть, как там сейчас делается). С отменой сложнее. Наверное, считывать параметры из файла (мы же его не сохранили).
Как вариант – две кнопки: «протестировать» и «отменить», причем вторая становится активной только если если есть, что отменять. Разве что нехорошо, что уже есть стандартная кнопка отмены, закрывающая диалог. А две схожих кнопки как-то не особо смотрятся. Впрочем, undo и cancel.
И еще один неудобный момент – хорошо бы иметь возможность и отмены, и сохранения на случай вылета программы или каких других сбоев.
Или вот при сохранении во время редактирования сохраняться во временный файл. При нажатии на Ok файл удалять, а изменения записывать в основной файл, а при отмене – тоже удалять и считывать данные из основного файла. Причем даже имена для файлов есть – что-нибудь + номер кнопки.
Но тогда нужно при запуске проверять, нет ли таких временных файлов, а если есть – предлагать открыть их на редактирование.
Вот как-то так.
Добавлено 26-01-2010 01:11:04
Мне тут подсказывают, что путано излагаю.
Если кратко, то нужна возможность посмотреть, как работает код, а потом, если не понравилось, вернуть всё назад.
Остальное – детали.
Да, а для отмен можно делать один файл, аналогичный по структуре основному файлу настроек. Тогда проще проверять при запуске, не было ли падения – по наличию файла (который удалился бы при успешном закрытии редактора). Ну, и проверять при закрытии, нету ли еще открытых редакторов, и если нет – удалять временный файл. Или уже при закрытии браузера удалять, что проще, наверное – насколько я помню, можно подписаться на оповещение о соответствующем событии.
Добавлено 26-01-2010 01:16:55
правда я ещё вот ругался на то что кнопка "применить" означает "сохранить", и что лучше бы её переименовать в таковую)
Отредактировано Infocatcher (26-01-2010 01:15:34)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
okkamas_knife
Очень просто, без создателей кнопок не будет большинства. И, думается, некоммерческие вещи пишутся для самих себя, так что тут польза очевидна – все упирается в то, насколько сложно реализовать ту или иную идею.
И не все кнопки могут существовать в двух экземплярах одновременно.
А про массовое отключение и правку, скажем, невидимых кнопок уже было выше.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
а вот для удобства разработки думаю неплохо былобы добавить к этому редактору возможность висеть поверх окна ФФ чтоб при проверке кнопке окно редактирования не пряталось.
Проще не разворачивать окно на весь экран.
На правах развлекательства: http://forum.mozilla-russia.org/uploade … +tb+sb.xpi
Искать «//~added».
Суть:
toggleOnTop: function() { var ci = Components.interfaces; var xulWin = window.QueryInterface(ci.nsIInterfaceRequestor) .getInterface(ci.nsIWebNavigation) .QueryInterface(ci.nsIDocShellTreeItem) .treeOwner .QueryInterface(ci.nsIInterfaceRequestor) .getInterface(ci.nsIXULWindow); var normal = xulWin.zLevel == xulWin.normalZ; xulWin.zLevel = normal ? xulWin.highestZ : xulWin.normalZ; document.getElementById("toggleOnTop").setAttribute("checked", normal); }
Распихивать текст по локалям лениво, ибо это только концепт.
Например, у себя я пробую вот так:
var s = top.document.documentElement.style; if(normal) { s.outline = "2px groove " + (this.pu.pref("ui.onTopBorderColor") || "orange"); s.outlineOffset = "-2px"; } else { s.outline = ""; s.outlineOffset = ""; }
И, увы, это отличается от системного onTop в Windows.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
CB 0.0.4.7
+ Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2pre) Gecko/20100224 Namoroka/3.6.2pre
+ тема по умолчанию
А если добавить class="menuitem-iconic", то уже нормально (добавлено только к первому пункту):
А причина – в
menuitem[id^="custombuttons-contextpopup-"] { -moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic") !important; }
и в
menu.menu-iconic > .menu-iconic-left, menuitem.menuitem-iconic > .menu-iconic-left { -moz-appearance: menuimage; padding-top: 2px; }
из chrome://global/skin/menu.css (берется из firefox/chrome/classic.jar!/skin/classic/aero/global/menu.css)
Добавлено 25-02-2010 02:10:02
И в русской локали вылезают accesskeys (в скобках после названий/меток) на английском...
Добавлено 25-02-2010 02:11:21
Скажем,
выводится как
Имя (N):
Смотрится не особо.
Отредактировано Infocatcher (25-02-2010 02:19:26)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
А если добавить class="menuitem-iconic", то уже нормально
Хорошо, добавлю.
И в русской локали вылезают accesskeys (в скобках после названий/меток) на английском...Смотрится не особо.
Как сделать лучше ?
С одной стороны - единый и независимый от текущей локализации и раскладки интерфейс.
С другой - лишние буквы в скобках.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
С другой - лишние буквы в скобках.
С той же стороны еще есть отсутствие прямой связи accesskey с текстом, а также отсутствие подобного в других местах.
А на MDC только про японскую локаль отступление: https://developer.mozilla.org/En/XUL_Tu … sskey_text.
Меня вот больше непривычный вид смущает.
Вроде бы, для всяких там независимостей правильнее использовать «обычные» хоткеи.
Может быть, даже есть смысл реагировать на Ctrl+Вниз и Ctrl+Вверх (или что-то вроде того) как на Tab и Shift+Tab, раз уж Tab перехватывается.
Заодно неприятная мелочь: Shift+Tab не позволяет уйти из поля для ввода картинки.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
С той же стороны еще есть отсутствие прямой связи accesskey с текстом, а также отсутствие подобного в других местах.
А на MDC только про японскую локаль отступление: https://developer.mozilla.org/En/XUL_Tu … sskey_text.
Меня вот больше непривычный вид смущает.Вроде бы, для всяких там независимостей правильнее использовать «обычные» хоткеи.
Это ведь редактор кода, а код набирается в en-раскладке. Если локализовать горячие клавиши, то наверняка перед (и после) их использованием потребуется сменить раскладку. Три "распальцовки" - уже не так быстро как одна.
Может быть, даже есть смысл реагировать на Ctrl+Вниз и Ctrl+Вверх (или что-то вроде того) как на Tab и Shift+Tab, раз уж Tab перехватывается.
Кроме Tab/Ctrl+Tab работает ещё Ctrl+PgUp и Ctrl+PgDn. Но эти сочетания реализуют последовательный доступ к вкладкам, а не произвольный, и работают не из любой точки редактора.
Заодно неприятная мелочь: Shift+Tab не позволяет уйти из поля для ввода картинки.
Понятно, буду разбираться.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Это ведь редактор кода, а код набирается в en-раскладке. Если локализовать горячие клавиши, то наверняка перед (и после) их использованием потребуется сменить раскладку. Три "распальцовки" - уже не так быстро как одна.
Если accesskeys на английском работают из любой раскладки, а на русском – только на русской, то это уже баг. Там вообще странно как-то – по-моему, еще есть разница, как идет русификация – изначально или в виде языкового пакета.
Вот, скажем, Alt+Ф (Файл) у меня не работает на английской раскладке. В редакторе, видимо, будет также. Тогда надо бы поискать баг на тему, а accesskeys пока оставить как есть.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Вот, скажем, Alt+Ф (Файл) у меня не работает на английской раскладке. В редакторе, видимо, будет также.
В редакторе так и есть, о чем я и говорил.
Может быть, сделаю Ctrl+1/2/3/4, хотя это мне кажется менее удобным чем Alt+буква
Или скрою accesskeys из меток.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Может быть, сделаю Ctrl+1/2/3/4, хотя это мне кажется менее удобным чем Alt+буква
Это и правда менее удобно. И все равно останутся лишние символы в скобках.
Или скрою accesskeys из меток.
Хм, не знал, что они скрываются.
Есть только кривая идея приписать в редакторе что-нибудь вроде <label cb_accesskey="x" /> и реализовывать фокусирование на контролах самостоятельно. Плюс сделать настройку, чтобы можно было заменить cb_accesskey на accesskey. Но есть большие сомнения в целесообразности таких выкрутасов.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Хм, не знал, что они скрываются.
Это можно сделать множеством способов. Ну, хотя бы добавив <key> и удалив accesskey.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как насчет принудительного отображения контекстного меню по (редкоиспользуемые модификаторы)+правоклик?
Что-нибудь вроде вот такого:
window.addEventListener("click", function(e) { if(e.button == 2 && e.ctrlKey && e.shiftKey && e.altKey) { var tar = e.originalTarget; if( "id" in tar && tar.id.indexOf("custombuttons-button") == 0 && navigator.preference("custombuttons.mode") & 64 ) { e.preventDefault(); e.stopPropagation(); var cm = document.getElementById("custombuttons-contextpopup"); document.popupNode = tar.ownerDocument.popupNode = tar; if("openPopupAtScreen" in cm) // Firefox 3.0+ cm.openPopupAtScreen(e.screenX, e.screenY, true /*isContextMenu*/); else cm.showPopup(e.target, e.clientX, e.clientY, "context", "none", "none"); } } }, true);
Только, пожалуй, обработчик лучше все же снимать при закрытии окна.
Тестовая кнопка:
this.oncontextmenu = this.onclick = function(e) { e.preventDefault(); e.stopPropagation(); };
Правда, можно отключить инициализацию, но зато тут без переоткрытия окна получается. И хорошо бы выяснить, как там на Маках с наличием клавиш-модификаторов.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
И хорошо бы выяснить, как там на Маках с наличием клавиш-модификаторов.
http://support.apple.com/kb/HT1343?viewlocale=ru_RU&locale=ru_RU
Как будто бы все в наличии.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
а можно ли как-то твой аддон сделать совместимым с отличным editor-ом Stylish Custom? это аддон-надстройка для основного аддона (Stylish) и в нём всё сделано адски удобно. Велосипед изобретать не за чем и можно было бы конечно даже просто скопировать его функционал, но наилучшим бы вариантом было б просто сделать эти 2 аддона совместимыми.
Вообще, с чьей стороны в данном случае надо прилагать усилия? Со стороны автора Stylish Custom или же можно как-то аддон CustomButtons подправить?
Если идея покажется тебе интересной - я готов посодействовать в разговорах и налаживании связи с автором Stylish Custom.
mzfx
Отсутствует
а можно ли как-то твой аддон сделать совместимым с отличным editor-ом Stylish Custom? это аддон-надстройка для основного аддона (Stylish) и в нём всё сделано адски удобно. Велосипед изобретать не за чем и можно было бы конечно даже просто скопировать его функционал, но наилучшим бы вариантом было б просто сделать эти 2 аддона совместимыми.
Под "совместимостью" понимается возможность использования Custom Buttons для настройки панели инструментов редактора Stylish Custom ?
Пока что Custom Buttons не позволяет настраиваться на использование в произвольных окнах.
Может быть, в будущем этот функционал будет как-нибудь реализован, но не скоро.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует