Снегопат
https://snegopat.ru/forum/

Двойной клик скрипта в окне Снегопата [ветка default-macros]
https://snegopat.ru/forum/viewtopic.php?f=1&t=123
Страница 1 из 2

Автор:  kuntashov [ 14 фев 2012, 07:38 ]
Заголовок сообщения:  Двойной клик скрипта в окне Снегопата [ветка default-macros]

Хочу внести на рассмотрение сообщества следующее предложение.

Сейчас по двойному клику в окне Снегопата на скрипте происходит открытие исходного текста скрипта в конфигураторе.

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

Для конечного же пользователя Снегопата, который в общем случае, совсем не обязательно "скриптописатель" - такая возможность вообще бесполезна.

Вообще, на двойной клик скрипта в окне Снегопата, имхо, "напрашивается" выполнение какого-либо действия самим скриптом.
Такое действие должно быть контекстно-независимым (т.е. не требовать активного текстового окна и т.п.), и наиболее подходящим вариантом будет открытие какой-либо формы скрипта.

Для большинства скриптов это может быть открытие формы настройки этого скрипта.
Для других, например extfiles.js, - открытие основной формы скрипта.

Я эксперементально уже больше недели пользуюсь такой возможностью (см. ветки default-macros в репозитарии Снегопата и в репозитарии скриптов).

На мой взгляд такое поведение кажется удобным и интуитивно-ожидаемым от окна Снегопата.

Реализовано это при помощи следующего соглашения между Снегопатом и скриптами:

    1. Если скрипт содержит метод getDefaultMacros(), то Снегопат по двойному клику на скрипте в окне Снегопата будет вызывать макрос, имя которого должен вернуть указанный метод (в виде строки - имени макроса без префикса macros).

    2. Если метода getDefaultMacros() в скрипте нет, то будет отрабатывать стандартное поведение - скрипт будет открываться в окне Конфигуратора.

Это, конечно же, черновой вариант реализации.

В целом для обсуждения идея следующая. Дать возможность пользователю настраивать поведение при двойном клике на скрипте путем выбора из следующих вариантов (настройка общая для всех скриптов):

    (а) ничего не делать
    (б) открывать исходный код скрипта в Конфигураторе
    (в) открывать исходный код скрипта при помощи заданной команды (как в scriptdev.js)
    (г) вызывать макрос по умолчанию

При этом, если пользователем выбран пункт (г), а скрипт не содержит метода getDefaultMacros(), то ничего не делать, то отрабатывать по умолчанию вариант (а) с предупреждением в виде названия скрипта - аналог диалога "О скрипте" (чтобы пользователь понимал, что скрипт - рабочий, но просто не экспортирует методов по умолчанию).

По умолчанию в Снегопате должна использоваться настройка (г) "вызывать макрос по умолчанию".

Предлагаю обсудить описанное поведение. Если возражений ни у кого не будет, я буду готов реализовать описанное.

Автор:  sosnae [ 14 фев 2012, 10:32 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Цитата:
(б) открывать исходный код скрипта в Конфигураторе
(в) открывать исходный код скрипта при помощи заданной команды (как в scriptdev.js)

1. (б) и (в) предлагаю объединить в одно: если указана команда, выполнять команду для скрипта, если нет, тогда открывать в конфигураторе?
2. В таком случаи хотелось бы еще один момент добавить: если скрипт (дефолтное действие допустим отработало) уже запущен и на нем клацаем 2, 3 ... n раз, то выдавать какое то предупреждение, вопрос?. Как пример: extfiles запустишь 7 раз будет 7 окошек...

Автор:  kuntashov [ 14 фев 2012, 10:40 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

1. Разумно, не зачем плодить сущности.
2. Думаю, это надо отдавать на откуп разработчика скрипта - как себя скрипт должен вести в таком случае: позволяет ли он запуск нескольких форм или не позволяет.

Автор:  palytsh [ 14 фев 2012, 12:49 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Поддерживаю.
Только, может, вместо getDefaultMacros() предусмотреть возможность обработки двойного клика непосредственно в скрипте, скажем, в onDoubleClick() ? Возможно, дефолтного макроса в скрипте и вовсе не будет.

Автор:  kuntashov [ 14 фев 2012, 13:12 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Если не будет - его нужно сделать, как и onDoubleClick() и то и другое - функция без параметров.
Если дефолтного макроса не будет, то будет открываться предупреждение с информацией о скрипте (имя, версия по данным фоссила).

Автор:  artbear [ 14 фев 2012, 19:49 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Согласен по всем пунктам.
Нужен именно дефолтный макрос со спец.именем

Автор:  JohnyDeath [ 14 фев 2012, 20:48 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Хуже от этого точно никому не будет, а удобства прибавится

Автор:  orefkov [ 15 фев 2012, 07:26 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Я согласен. Как с идеей, так и с реализацией - сделано просто, доработки Снегопата не требует.
Именно потому я и старался сделать большую часть функционала в виде core-скриптов.
В-принципе, можно мержить в trunk.

Автор:  kuntashov [ 15 фев 2012, 10:29 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Ок, сделаю.

Автор:  kuntashov [ 01 мар 2012, 12:20 ]
Заголовок сообщения:  Re: Двойной клик скрипта в окне Снегопата [ветка default-mac

Реализовал описанное поведение и возможность его настройки, перенес все в транк.

Вложения:
Комментарий к файлу: Окно настроек Снегопата. Настройка поведения при двойном клике на имени скрипта в окне Снегопата.
snegopat-settings.png
snegopat-settings.png [ 17.13 КБ | Просмотров: 13649 ]

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/