Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Jul 19, 2019 12:56 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 19 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sat Jun 22, 2013 2:24 am 
Offline
Kernel Developer

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

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

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

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 6:17 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Вот это правильное предложение!


Top
   
PostPosted: Sat Jun 22, 2013 10:11 am 
Offline
Mentor
User avatar

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

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

Code:
;;================================================================================================;;
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                                                                           ;;
;;================================================================================================;;


Top
   
PostPosted: Sat Jun 22, 2013 11:15 am 
Offline

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


Top
   
PostPosted: Sat Jun 22, 2013 11:51 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5053
Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
расширение = программа
но и
расширение = иконка?

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


Top
   
PostPosted: Sat Jun 22, 2013 11:56 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Leency wrote:
Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
расширение = программа
но и
расширение = иконка?

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:01 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
0CodErr wrote:
Можно использовать и один для всех ini-файл.

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

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

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:02 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5053
Code:
[run]
txt = /sys/tinypad
asm = /sys/tinypad
gif = /sys/media/kiv

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:04 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
dunkaist wrote:
Я тут.

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:08 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Leency wrote:
Code:
[run]
txt = /sys/tinypad
asm = /sys/tinypad
gif = /sys/media/kiv

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

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:15 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 421
Mario_r4 wrote:
Это лучше в самом заспускальшике использовать.
Я это и имел в виду. В своё время думал, как просмотреть все строки из конфига, если пользователь может руками добавить какой угодно непредсказуемый ключ вроде torrent=/hd1/2/torrent_client.


Top
   
PostPosted: Sat Jun 22, 2013 12:28 pm 
Offline
Designer
User avatar

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 12:41 pm 
Offline
Kernel Developer

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

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

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


Top
   
PostPosted: Sat Jun 22, 2013 1:03 pm 
Offline

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

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


Top
   
PostPosted: Sat Jun 22, 2013 1:13 pm 
Offline
Kernel Developer

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

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 19 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited