Конечно, в первую очередь бежишь программировать то, что было бы удобно самому (но не догадался сформулировать). То, что сразу не получается сделать удобно, продумывается месяцами или просто откладывается. A cлучаи изменения сценариев использования всегда обсуждаются в Trac и весьма редки.
Никто вроде бы автора не обвиняет, даже хвалят, без шуток. Но проблема-то налицо: 1 user → зачем мне этот плагин → у всех так и будет 1 user.
Никто не заставляет решать её с наскока. Если в реальных планах IRC - радиус действительно не особо нужен. Но если нет - так и будем доставать, пока не надоест))
И ещё мне кажется, что отношение к дополнительным функциям зависит от назначения инструмента.
Если это комбайн для совершенно разных пользователей - туда сваливается всё разумное, что пользователи пожелают (JOSM, AutoCad, Corel,…). Лишь бы пользовались.
Если это микро-ядро системы / утилитка (базовый Leaflet) - тогда туда действительно добавляется только самое нужное.
Отлично! Просто показалось, что это совсем в долгий ящик.
Тогда не придираемся. Нам нужен только geochat.fontsize и копипаста, и то не обязательно сегодня
Спасибо! Автологин очень хорош!
Копипаста есть, но только через контекстное меню. А можно сделать как в диалоге “отношения”, где фильтр? Там еще и кнопки копипасты работают.
А вот со шрифтом что-то не то. Код глянул - улыбнуло))) -1 < 8, это да. Но всё-таки смысл - дать мне и китайцам поставить 16-й шрифт и радоваться ( а по умолчанию пусть остаётся стандартный-1)
Чуть что - хотят горячие клавиши срабатывать, да. Особенно однобуквенные. Но, помучавшись, проблему эту в ядре тоже решили (5616, 5696, меня там не было).
И теперь, теоретически, можно просто пользоваться: http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java#L263
(своё поведение к DisableShortcutsOnFocusGainedTextField тоже можно добавить). Правда, найти это среди тысяч классов ядра не столь тривиально - я только что наткнулся…
Да, там жесть какая-то По 30 кнопок регистрировать и отменять при активации строчки - это что-то не то…
В общем, раз уж лицензия WTFPL, я решился на небольшую диверсию и внедрил в строчку редактирования геочата новейший механизм пропуска событий (надеюсь, он на всех ОС работает). Ну и настройку шрифта починил, не выдержал ). По умолчанию всё так же, но можно отдельно поменять шрифт строчки ввода и панели сообщений geochat.panel|input.fontsize (20 = 20px, -2 = стандартный-2px).
Надеюсь, это сэкономит время Zverik-у для более полезных нововведений. Планов дальнейшей интервенции не вынашиваю
Ох, ну как так… Я даже не знаю. Всего-то нужно было раскомментировать одну строку, там даже комментарий стоял, но зачем было портить всю логику, даже не вникнув? Просто взял и отрезал возможность увеличить шрифт относительно стандартного, хотя на форуме три дня возникал, что это обязательно пригодится. Ещё и попутно сломав мозг удивительным “float size = sizeParameter”. А зачем вообще делать возможность менять шрифт в поле ввода, я вообще не секу. Разве что чтобы настроек было побольше. Исправил всё это.
Спасибо на добром слове) Ничего из работавшего я вроде бы не испортил.
Что ж, параметр меньше 8 только в роли инкремента тоже имеет свой смысл (код тоже был неочевиден). Я думал, тебе шрифт менять не хотелось именно из-за диссонанса со строкой ввода, потому и добавил для нее параметр. Окно чата у многих будет висеть отдельно от панели, так что шрифт строки ввода тоже не помешал бы. Глобальная настройка шрифта Josm тоже в разработке.
Вот к клавишам надо внимательно подойти. Я не знаю, что с ними произойдет на экзотических look&feel …
Да, там сохраняется регистрация пользователя до двух часов: чтобы, если редактор вылетел, можно было быстро восстановить логин. Только что сделал поддержку прокси аутентификации, можно ввести токен со знаком = перед ним (“=j18dahe34f”). Тогда сервер возьмёт имя из OSM, а пользователей, которые уже зарегистрировались под ним, принудительно разлогинит.
Формат не очень хорош, не в малой степени потому что токен явно отображается в поле ввода после логаута, поэтому пока лучше использовать одноразовые токены. Потом придумаю, как это сделать лучше.
Маленький багрепорт: при установленном плагине чата кнопка “In background” работает неправильно, окно загрузки пропадает, но спустя секунду появляется снова. Отключение чата кнопкой не помогает, только удаление всего плагина.
И ещё: при случае стоит исправить EDT Violation-ы (обращения к GUI из не главного потока). Например, это делает функция geochat.GeoChatPanel.updateTitleAlarm(GeoChatPanel.java:205) и addLineToChatPane.
Реальных глюков это обычно не порождает (хотя теоретически может), но отладочный вывод сильно засоряет. Могу добавить GuiHelper.runInEDTandWait сам, но в авторском варианте надёжнее. Мало, чем там потоки потом занимаются
Предложение - не выполнять queryAsync в бесконечном цикле (в функции process), обойтись в этом месте синхронным query (очередь Main.worker забивается этими задачами и тормозит). И, заодно, выполнять все обращения к Gui из EDT (GuiHelper.runInEDT[AndWait]).