Новый канал общения: чатик в JOSM

Отлично! Просто показалось, что это совсем в долгий ящик.
Тогда не придираемся. Нам нужен только geochat.fontsize и копипаста, и то не обязательно сегодня :slight_smile:

Сделал. И, кстати, ты забыл упомянуть автологин.

Спасибо! Автологин очень хорош!
Копипаста есть, но только через контекстное меню. А можно сделать как в диалоге “отношения”, где фильтр? Там еще и кнопки копипасты работают.

А вот со шрифтом что-то не то. Код глянул - улыбнуло))) -1 < 8, это да. Но всё-таки смысл - дать мне и китайцам поставить 16-й шрифт и радоваться :slight_smile: ( а по умолчанию пусть остаётся стандартный-1)

С копипастой всё непросто; я, когда делал коммандлайн, столкнулся с проблемами. Не помню только, с какими.

Чуть что - хотят горячие клавиши срабатывать, да. Особенно однобуквенные. Но, помучавшись, проблему эту в ядре тоже решили (5616, 5696, меня там не было).
И теперь, теоретически, можно просто пользоваться: http://josm.openstreetmap.de/browser/josm/trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java#L263
(своё поведение к DisableShortcutsOnFocusGainedTextField тоже можно добавить). Правда, найти это среди тысяч классов ядра не столь тривиально - я только что наткнулся…

Если отсортировать по длине названия – то найти элементарно :slight_smile:
Но это какой-то жуткий хак…

Да, там жесть какая-то :slight_smile: По 30 кнопок регистрировать и отменять при активации строчки - это что-то не то…

В общем, раз уж лицензия WTFPL, я решился на небольшую диверсию и внедрил в строчку редактирования геочата новейший механизм пропуска событий (надеюсь, он на всех ОС работает). Ну и настройку шрифта починил, не выдержал ). По умолчанию всё так же, но можно отдельно поменять шрифт строчки ввода и панели сообщений geochat.panel|input.fontsize (20 = 20px, -2 = стандартный-2px).

Надеюсь, это сэкономит время Zverik-у для более полезных нововведений. Планов дальнейшей интервенции не вынашиваю :slight_smile:

Ох, ну как так… Я даже не знаю. Всего-то нужно было раскомментировать одну строку, там даже комментарий стоял, но зачем было портить всю логику, даже не вникнув? Просто взял и отрезал возможность увеличить шрифт относительно стандартного, хотя на форуме три дня возникал, что это обязательно пригодится. Ещё и попутно сломав мозг удивительным “float size = sizeParameter”. А зачем вообще делать возможность менять шрифт в поле ввода, я вообще не секу. Разве что чтобы настроек было побольше. Исправил всё это.

Спасибо на добром слове) Ничего из работавшего я вроде бы не испортил.

Что ж, параметр меньше 8 только в роли инкремента тоже имеет свой смысл (код тоже был неочевиден). Я думал, тебе шрифт менять не хотелось именно из-за диссонанса со строкой ввода, потому и добавил для нее параметр. Окно чата у многих будет висеть отдельно от панели, так что шрифт строки ввода тоже не помешал бы. Глобальная настройка шрифта Josm тоже в разработке.

Вот к клавишам надо внимательно подойти. Я не знаю, что с ними произойдет на экзотических look&feel …

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

Да, там сохраняется регистрация пользователя до двух часов: чтобы, если редактор вылетел, можно было быстро восстановить логин. Только что сделал поддержку прокси аутентификации, можно ввести токен со знаком = перед ним (“=j18dahe34f”). Тогда сервер возьмёт имя из OSM, а пользователей, которые уже зарегистрировались под ним, принудительно разлогинит.

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

Маленький багрепорт: при установленном плагине чата кнопка “In background” работает неправильно, окно загрузки пропадает, но спустя секунду появляется снова. Отключение чата кнопкой не помогает, только удаление всего плагина.

Кнопка какого окна? Попробовал сейчас скачать треки, отправил в фон — обратно не появилось.

позже: о, появилось. Посмотрю.

И ещё: при случае стоит исправить EDT Violation-ы (обращения к GUI из не главного потока). Например, это делает функция geochat.GeoChatPanel.updateTitleAlarm(GeoChatPanel.java:205) и addLineToChatPane.

Реальных глюков это обычно не порождает (хотя теоретически может), но отладочный вывод сильно засоряет. Могу добавить GuiHelper.runInEDTandWait сам, но в авторском варианте надёжнее. Мало, чем там потоки потом занимаются :slight_smile:

Что-то не могу залогиниться в чатик. Одноразовый токен “=токен” вместо логина тоже не берёт (с http://auth.osmz.ru/)).
Помогите разобраться.

В консоль что-нибудь пишет? Плагин при любой ошибке соединения выдаёт окно с её описанием. Если его нет — значит, что-то внутри.

Однако, плагин иногда вешает все фоновые процессы JOSM…
http://forum.openstreetmap.org/viewtopic.php?pid=352210#p352210

Предложение - не выполнять queryAsync в бесконечном цикле (в функции process), обойтись в этом месте синхронным query (очередь Main.worker забивается этими задачами и тормозит). И, заодно, выполнять все обращения к Gui из EDT (GuiHelper.runInEDT[AndWait]).

Спасибо, …, большое, что залил nbproject в каталог плагина. Потратил двадцать минут на трахание с svn и разрешение древесных конфликтов.
Оба случая EDT поправил, заменил async на sync. Теперь фоновая загрузка треков не прерывается, но автологин срабатывает только после загрузки всех треков. Всплывут другие ошибки — пишите.

nbproject добавили всем изменённым плагинам для единообразия и простоты редактирования сторонними разработчиками.
Какие там могли быть проблемы? Нужен один-единственный файл project.xml (private - в ignore). Не нравится стандартный - можно заменить на свой, но в удалении никакого смысла обнаружить не могу…

проблемы появляются, если nbproject уже был локально.
спасибо за предупреждение, буду разбираться с этим, когда понадобится править другие свои плагины.
а если разработчик не может банально подключить josm-custom.jar (больше никаких настроек не требуется), чур-чур его от правки чужих плагинов.