Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт дек 14, 2017 3:21 am

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




Начать новую тему  Ответить на тему  [ 19 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 2:24 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
На настоящий момент мы имеем три официально поддержанных файловых менеджера: KFAR, KFM, Eolite. Все они производят запуск по ассоциациям, у каждого собственный файл INI с ассоциациями. Ситуация не самая полезная - думаю с этим никто не будет спорить. Править один файл с ассоциациями проще и надежней, чем три файла.

Одно время даже была идея сделать библиотеку ассоциаций и один из разработчиков (не будем тыкать пальцем, но это дальний родственник пресловутого Слонёнка и если захочет сам сознается) даже брался сделать, но как обычно "обстоятельства непреодолимой силы"
Спойлер: Показать
Так, обстоятельства непреодолимой силы могут вытекать из следующих событий, перечень которых не является исчерпывающим: война, как объявленная, так и необъявленная, гражданская война, бунты и революции, пиратские действия, акты саботажа; стихийные бедствия: бури, циклоны, землетрясения, цунами, наводнения, вред, причиненный молнией; аварии, взрывы, пожары, уничтожение машин, пошел на хуй, предприятий и всякого рода оборудования, за исключением незначительных аварий у стороны, в случае если они были вызваны отсутствием запасных частей, износом оборудования и другими обстоятельствами, которые сторона должна была предвидеть при принятии на себя обязательств по договору; бойкот, забастовки и локауты, уклонение от труда работников, занятие предприятий и их территорий; акты государственных органов государств сторон и иных государств, в том числе местных органов управления и самоуправления, как законные, так и незаконные (за исключением случаев отсутствия у стороны полномочий или специальных разрешений (лицензий), права въезда или нахождения или согласия, необходимых для исполнения договора, выдаваемых государственными органами), а также собственная лень и необязательность.
Нужное подчеркните сами.

помешали реализации благого начинания.

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

З.Ы. Создавая этот псто я полностью осознаю п.1, потому что в этом мире надеяться можно только на себя.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 6:17 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Вот это правильное предложение!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 10:11 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 343
Mario_r4 писал(а):
Одно время даже была идея сделать библиотеку ассоциаций и один из разработчиков (не будем тыкать пальцем, но это дальний родственник пресловутого Слонёнка и если захочет сам сознается) даже брался сделать, но как обычно "обстоятельства непреодолимой силы"
Spoiler: Show

помешали реализации благого начинания.
Я тут. Советов не просили, но вдруг окажется полезно: в libini есть удобная для таких задач функция ini.enum_keys. Хотя, конечно, всё зависит от реализации.

Код:
;;================================================================================================;;
proc ini.enum_keys _f_name, _sec_name, _callback ;////////////////////////////////////////////////;;
;;------------------------------------------------------------------------------------------------;;
;? Enumerate keys within a section, calling callback function for each of them                    ;;
;;------------------------------------------------------------------------------------------------;;
;> _f_name = ini filename <asciiz>                                                                ;;
;> _sec_name = section name <asciiz>                                                              ;;
;> _callback = callback function address: func(f_name, sec_name, key_name, key_value), where      ;;
;>   f_name = ini filename (as passed to the function) <asciiz>                                   ;;
;>   sec_name = section name (as passed to the function) <asciiz>                                 ;;
;>   key_name = key name found <asciiz>                                                           ;;
;>   key_value = value of key found <asciiz>                                                      ;;
;;------------------------------------------------------------------------------------------------;;
;< eax = -1 (error) / 0                                                                           ;;
;;================================================================================================;;


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 11:15 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1082
Mario_r4 писал(а):
у каждого собственный файл INI с ассоциациями
Можно использовать и один для всех ini-файл.
Вообще можно настройки(ini, dat и т.п) хранить в отдельной папке(например /sys/settings). Но тут ешё возникает вопрос, настройки принадлежат всей системе или же только конкретной программе.
Может возникнуть необходимость просто узнать путь к ассоциированной программе, а не сразу пытаться запустить.
Или, например, появится какая-нибудь отдельная программа для работы с архивами(в том числе zip). Kfar сейчас заходит в архив как в папку, а другой ФМ захочет открывать в отдельной программе.


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 11:51 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
расширение = программа
но и
расширение = иконка?

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


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 11:56 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Leency писал(а):
Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
расширение = программа
но и
расширение = иконка?

Пищевод работает только в одну сторону и все попытки заставить его работать в обратную сторону заканчиваются с неожиданными результатами - это не библиотека.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:01 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
0CodErr писал(а):
Можно использовать и один для всех ini-файл.

Можно, но лишний код никуда не денешь.
0CodErr писал(а):
Вообще можно настройки(ini, dat и т.п) хранить в отдельной папке(например /sys/settings). Но тут ешё возникает вопрос, настройки принадлежат всей системе или же только конкретной программе.

Реестр пока не нужен, совсем не нужен.
0CodErr писал(а):
Может возникнуть необходимость просто узнать путь к ассоциированной программе, а не сразу пытаться запустить.

Звчем?
0CodErr писал(а):
Или, например, появится какая-нибудь отдельная программа для работы с архивами(в том числе zip). Kfar сейчас заходит в архив как в папку, а другой ФМ захочет открывать в отдельной программе.

Программе какая то религия запрещает вызывать запускальщик не для всех случаев и по собственному усмотрению?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:02 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Код:
[run]
txt = /sys/tinypad
asm = /sys/tinypad
gif = /sys/media/kiv

[icons]
txt = 1
asm = 1
gif = 3

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


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:04 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
dunkaist писал(а):
Я тут.

Очень рад, что сам сознался. :lol:
dunkaist писал(а):
Советов не просили, но вдруг окажется полезно: в libini есть удобная для таких задач функция ini.enum_keys. Хотя, конечно, всё зависит от реализации.

Можно, но опять же не универсальный выход. Это лучше в самом заспускальшике использовать.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:08 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Leency писал(а):
Код:
[run]
txt = /sys/tinypad
asm = /sys/tinypad
gif = /sys/media/kiv

[icons]
txt = 1
asm = 1
gif = 3

Запуск по ассоциации - универсальное решение, а иконки нужны не всем и они могут быть разными для разных программ.

З.Ы. Тут уже один бывший школьник (не будем тыкать пальцем, но тоже дальний родственник слоненка, а вернее крольчонка) очень сильно хотел иконки в бинарник размещать, не нужно повторять его опыт.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:15 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 343
Mario_r4 писал(а):
Это лучше в самом заспускальшике использовать.
Я это и имел в виду. В своё время думал, как просмотреть все строки из конфига, если пользователь может руками добавить какой угодно непредсказуемый ключ вроде torrent=/hd1/2/torrent_client.


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:28 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
>> З.Ы. Тут уже один бывший школьник очень сильно хотел иконки в бинарник размещать, не нужно повторять его опыт

А сейчас ты предлагаешь, чтобы каждый ФМ, open dialog и другие программы (например, браузер показывает иконку закаченного файла) имели свой набор иконок и ассоциаций? Чем это лучше идеи Максимыча?
Предлагаю одно место с ассоциациями. Набор иконок можно будет обсудить. И не обязательно ВСЕМ его юзать, но пусть бы он был в одном месте - и то, порядка было бы больше, а это то, зачем ты создал эту тему.

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


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 12:41 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Leency писал(а):
Предлагаю одно место с ассоциациями. Набор иконок можно будет обсудить. И не обязательно ВСЕМ его юзать, но пусть бы он был в одном месте - и то, порядка было бы больше, а это то, зачем ты создал эту тему.

1) Еще раз - программа работает в одну сторону, библиотека работает в обе стороны. Я предложил сделать программу.
2) У каждого собственные понятия "о порядке".
3) Тему я создал для важности (чтобы гордо надувать щеки и бить себя пяткой в грудь), ведь у нас есть п.2, и чтобы учесть мнения по существу вопроса, а не на отвлеченную тему.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 1:03 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1082
Mario_r4 писал(а):
Запуск по ассоциации - универсальное решение, а иконки нужны не всем и они могут быть разными для разных программ.
Здесь вопрос в том, кому принадлежит иконка: системе, ФМ или ассоциированной программе. В больших ОС ассоциированная программа при установке может сообщить системе о своих иконках. Мы сейчас хотим, чтобы все ФМ использовали общие настройки. Вполне логично здесь считать, что они принадлежат системе.

Если иконка не нужна(например Kfar-у она не нужна), то просто не надо читать настройки иконок. Это по аналогии с этим:
Mario_r4 писал(а):
Программе какая то религия запрещает вызывать запускальщик не для всех случаев и по собственному усмотрению?
Вот мы и не будем для всех случаев читать настройки иконок.
Mario_r4 писал(а):
Реестр пока не нужен, совсем не нужен.
Но по факту он есть: ini, dat, и т. п. Чем не реестр? Как его не называй — суть одна.


Вернуться к началу
 Заголовок сообщения: Re: Запускальщик по ассоциации
СообщениеДобавлено: Сб июн 22, 2013 1:13 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
0CodErr
1) Я не буду делать иконки и точка. Кому действительно нужно сделает сам.
2) Еще раз - это будет просто программа, без обратных связей. Передача каких либо параметров обратно, в том числе и иконок - не предусматривается.

Все, закрываем тему с иконками. Мне лично это не нужно, если вам нужно - сделаете сами.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

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


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

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


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

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