Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср ноя 22, 2017 1:59 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 52 сообщения ]  На страницу 1 2 3 4 След.
Автор Сообщение
 Заголовок сообщения: @open
СообщениеДобавлено: Вт фев 10, 2015 3:56 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
В настоящий момент в колибри несколько файловых менаджеров (только 3 в ночной), каждый использует свою таблицу ассоциаций -> у каждого фм свой ini-файл с таблицей. Это не есть хорошо и Mario вот тут предложил сделать единый запускальщик файлов. И вот, я этот запускальщик и написал.

В @open передается путь к файлу/папке через параметр. Если это папка - открывается с помощью приложения, указанного в /sys/settings/assoc.ini -> [Assoc] -> "/". Если это приложение - запустить. Иначе поискать приложение для расширения в /sys/settings/assic.ini -> [Assoc]. Если оно там есть, запустить с помощью него файл, иначе открыть окно с выбором приложения. Если первый символ параметра = "~", то окно выбора приложения открывается в любом случае кроме папки.

Использовать @open желательно не только в fm, а во всех приложениях, которые могут что-то запускать, скажем, @icon может хранить только путь к файл/папке и открывать этот файл/папку с помощью @open, не заботясь о том, к чему ведет путь. Это значит, что создавать ярылки на папки и файлы станет намного легче.

Формат запуска:
Код:
@open path/to/file
@open ~open/file/as


Формат assoc.ini (таблицы ассоциаций)
Код:
[Tinypad]
exec=/sys/tinypad
icon=123
next=$TextEditor

[Assoc]
ini=$Tinypad
cmd=/sys/shell


Вложения:
Комментарий к файлу: Сорцы, куда ж без них
OPEN.7z [7.33 КБ]
49 скачиваний
Комментарий к файлу: Образ с @open, Assoc.ini а так же с Eolite, открывающим все через @open.
kolibri.img.7z [1.2 МБ]
42 скачивания
Комментарий к файлу: Скриншот
1.png
1.png [ 14.87 КБ | 1982 просмотра ]


Последний раз редактировалось e-andrew Ср ноя 11, 2015 12:11 am, всего редактировалось 1 раз.
Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Вт фев 10, 2015 4:08 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Отлично сделано. Пока только одно пожелание, доработать управление с клавиатуры.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Вт фев 10, 2015 4:13 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
punk_joker писал(а):
Отлично сделано. Пока только одно пожелание, доработать управление с клавиатуры.

Пробовал, это оказалось намного сложнее, чем я думал (из-за двухмерного списка), да и размер тогда увеличиться еще больше.

Кстати, про размер. Есть такой вариант: оставить в @open только запускающую часть, а диалог вынести в @openas. Если ассоциации не найдены, то уже из @open открывается @openas. Тогда можно не особо заботиться о размере (@open будет не больше 1кб, а @openas запускаться будет не так часто).


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 1:38 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4226
ОГОГО!!!! Выглядит круто и идея офигенная! Я попробую!

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:08 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
А "использовать всегда" еще не сделано?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:22 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
punk_joker писал(а):
А "использовать всегда" еще не сделано?

Я могу конечно и сам попробовать перевести некоторые программы (скажем @docky). Для интеграции в @icon нужно добавить отправку параметров (сложно придумать хороший синтаксис, а unix-синтаксис (если он так называется) я вряд ли смогу реализовать. Ничего не могу сказать про @menu, а в другие fm я лезть боюсь. А так же есть еще куча программ, которые запускают другие программы, например запускающие @notify, и тут я без понятия, нужно ли переписывать эти вызовы через @open или лучше оставить прямой вызов (наверное прямой лучше).


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:28 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
В диалоге открыть с помощью, ты сделал чекбокс использвать всегда, логично если при установки в нем галочки и выборе программы должна изменится программа, которая ассоциируется с разрешением, и при последующем обычном запуске файл должен открываться в последней выбранной программе. А сейчас запускается как и раньше.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:29 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
По поводу использование @open в других программах, думаю стоит подождать. Сейчас надо протестить и допилить где надо, а уж потом интегрировать. С последним обязуюсь помочь :)

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:42 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
punk_joker писал(а):
В диалоге открыть с помощью, ты сделал чекбокс использвать всегда, логично если при установки в нем галочки и выборе программы должна изменится программа, которая ассоциируется с разрешением, и при последующем обычном запуске файл должен открываться в последней выбранной программе. А сейчас запускается как и раньше.

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


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:45 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Думаю лучше для всех случаев, так можно будет менять ассоциация и не лезть в конфиг

P.S. А вообще надо бы отдельную тулзу для настройки ассоциаций написать.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
punk_joker писал(а):
Думаю лучше для всех случаев, так можно будет менять ассоциация и не лезть в конфиг

P.S. А вообще надо бы отдельную тулзу для настройки ассоциаций написать.

Хм, не понял, зачем лезть в конфиг, галочку же можно поставить просто. Логика такая: если нет записи, то это значит, что этот тип файла мы запускаем в первый раз и нужно добавить запись в таблицу. Если все же запись уже есть, то это значит, что мы просто хотим один раз запустить этот файл по другому (скажем, сжать, или открыть картинку не просмоторщиком, а редактором, или скрипт отредактировать) и менять специально запись не следует, но если юзеру нужно именно переопределить ассоциацию, то галочку он поставит сам. Логику подсмотрел у аналогичного приложения для винды и такого же у убунты.

Да, тулза нужна, согласен.


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 4:55 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Я это и имел ввиду. Но эта функция кажется не работает. Ассоциация не переопределяется.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Чт фев 12, 2015 5:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
punk_joker писал(а):
Я это и имел ввиду. Но эта функция кажется не работает. Ассоциация не переопределяется.

Да, мой последний фикс поломал все то, что раньше работало. Пойду чинить.


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Пт фев 13, 2015 11:17 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4226
Есть такой недочёт:
1. удаляем Tinypad
2. открываем файл Config.ini через @open
3. ассоциация найдена - Tinypad
4. запускается Tinypad с параметром Config.ini
Текущий результат: отсутствие файла не хэндлится
Ожидаемый результат: если запускаемый файл не найден - показать ошибку через нотифай скажем и диалог выбора приложения

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: @open
СообщениеДобавлено: Сб фев 14, 2015 1:23 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
Я знаю об этой проблеме, есть у меня еще другой вариант ожидаемого результата: не показывать приложение в списке вообще. Как такой вариант? Кстати, это позволит прописать в assoc.ini ассоциации на приложения из /kolibrios/, не все им пользуются и поэтому не все хотят видеть эти приложения в списке.
Еще одна идея - если файла нет, но есть поле next=%filename% или next=$appname, то запустить рекурсивно его, это позволит запустить сначала просмоторщик Zsea, если он есть, в другом случае KIV, а если и его нет, то уже открыть окно выбора.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 52 сообщения ]  На страницу 1 2 3 4 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB