найти иконки для файлов (откуда и как вытащить иконки для файлов)

Модератор: Модераторы разделов

Amouse
Сообщения: 59

найти иконки для файлов

Сообщение Amouse »

GUI программа, браузится по файлам на диске.
Соответственно должна для файлов/каталогов отображать соответствующие иконки
(ну как скажем Konqueror делает при просмотре собственного диска).
Т.е очевидно для *.txt файлов будет одна иконка, для *.htm другая ну и тп.

Вопрос - как в linux определить, какому файлу какая иконка соответствует и где ее искать?
Я так понимаю, такого же универсального вызова, как в виндах - SHGetFileInfo() нет?
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: найти иконки для файлов

Сообщение Uncle_Theodore »

Amouse писал(а):
30.08.2007 17:18
GUI программа, браузится по файлам на диске.
Соответственно должна для файлов/каталогов отображать соответствующие иконки
(ну как скажем Konqueror делает при просмотре собственного диска).
Т.е очевидно для *.txt файлов будет одна иконка, для *.htm другая ну и тп.

Вопрос - как в linux определить, какому файлу какая иконка соответствует и где ее искать?
Я так понимаю, такого же универсального вызова, как в виндах - SHGetFileInfo() нет?

В Линуксе файлам не соответствуют иконки по умолчанию. Какие соответствия поставишь, такие и будут.
Тип файла узнается командой file в консоли или, программно, определяется чтением магических чисел и сравнением с базой этих чисел. В man file это все написано.
Спасибо сказали:
Аватара пользователя
anonymous.ru
Сообщения: 614

Re: найти иконки для файлов

Сообщение anonymous.ru »

Amouse писал(а):
30.08.2007 17:18
GUI программа, браузится по файлам на диске.
Соответственно должна для файлов/каталогов отображать соответствующие иконки
(ну как скажем Konqueror делает при просмотре собственного диска).
Т.е очевидно для *.txt файлов будет одна иконка, для *.htm другая ну и тп.

Вопрос - как в linux определить, какому файлу какая иконка соответствует и где ее искать?
Я так понимаю, такого же универсального вызова, как в виндах - SHGetFileInfo() нет?

А вы какую графическую библиотеку будете использовать Qt или GTK+ ?
:drinks:
Спасибо сказали:
Amouse
Сообщения: 59

Re: найти иконки для файлов

Сообщение Amouse »

Uncle_Theodore писал(а):
30.08.2007 17:28
В Линуксе файлам не соответствуют иконки по умолчанию. Какие соответствия поставишь, такие и будут.
Тип файла узнается командой file в консоли или, программно, определяется чтением магических чисел и сравнением с базой этих чисел.


А тот же Konqueror откуда берет это соотвествие?

Команды из консоли в данном случае не катят, надо программно.

anonymous.ru писал(а):
30.08.2007 17:31
А вы какую графическую библиотеку будете использовать Qt или GTK+ ?


Qt
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: найти иконки для файлов

Сообщение Uncle_Theodore »

А тот же Konqueror откуда берет это соотвествие?

Из описания темы.
А иконки из /usr/share/icons
Amouse писал(а):
30.08.2007 17:32
Qt

Тут читай
http://doc.trolltech.com/4.3/model-view-programming.html
Спасибо сказали:
Аватара пользователя
anonymous.ru
Сообщения: 614

Re: найти иконки для файлов

Сообщение anonymous.ru »

Amouse писал(а):
30.08.2007 17:32
Qt


тут я не эксперт :)
будем ждать экспертов
ну а пока они не придут посмотрите класс QDirModel
http://doc.trolltech.com/4.0/qdirmodel.html
может быть там, но я точно не знаю
:drinks:
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: найти иконки для файлов

Сообщение d_n_k »

А вы какую графическую библиотеку будете использовать Qt или GTK+ ?

ни qt, ни gtk ничего не знает о том какому приложение соответствует какая иконка.
это не делается на уровне графическй библеотечки.

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


информация о mime-типе предоставляется пакетами x11-misc/shared-mime-info и app-misc/mime-types

иконку в соответствии с mime-типом в гноме можно получить через либу gnome-vfs и libgnomeui.
как это сделать в других десктопах, я не знаю
все сказанное есть имхо...
Спасибо сказали:
Amouse
Сообщения: 59

Re: найти иконки для файлов

Сообщение Amouse »

d_n_k писал(а):
31.08.2007 01:10
информация о mime-типе предоставляется пакетами x11-misc/shared-mime-info и app-misc/mime-types


а чуть по-подробней можно?

у меня на машине есть /usr/share/mime/ с кучей *.xml
есть /usr/share/doc/packages/shared-mime-info/ с news и readme

других mime-info, mime-types нет.
т.е у меня эти пакеты стоят?
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: найти иконки для файлов

Сообщение d_n_k »

я не телепат чтобы знать какие у тебя пакеты стоят...
все сказанное есть имхо...
Спасибо сказали:
(+ssvda)
Сообщения: 31
ОС: Debian GNU/Linux Etch (only)

Re: найти иконки для файлов

Сообщение (+ssvda) »

Хм... В некотором случае столкнулся с похожей проблемой. Есть демон (не привязанный к графической среде или х-серверу). Как ему определить MIME тип файла? Помогите кто знает, плз))
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: найти иконки для файлов

Сообщение sergio »

(+ssvda) писал(а):
16.09.2007 00:15
Хм... В некотором случае столкнулся с похожей проблемой. Есть демон (не привязанный к графической среде или х-серверу). Как ему определить MIME тип файла? Помогите кто знает, плз))

Во втором комме Uncle_Theodore писал - магические числа. У Апач был модуль (отключенный по-умолчанию), которой определял миме отдаваемого файла по ним (а не расширению и т.д.)...
Ну или без них - тогда default-type (text/plain, или application/octet-stream обыкновенно) плюс составляете свою карту расширение->миме...

Найти апачевскую можно в /etc/apache/mime.types -> /etc/mime.types
Отсюда уже рукой подать до

Код: Выделить всё

man mime.types

:)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: найти иконки для файлов

Сообщение eduard_pustobaev »

QFileIconProvider
Interview example
Ftp example

В assistant опять же поискать по поводу mime.

Код: Выделить всё

Хм... В некотором случае столкнулся с похожей проблемой. Есть демон (не привязанный к графической среде или х-серверу). Как ему определить MIME тип файла? Помогите кто знает, плз))

man see ?
В дисгармонии со вселенной.
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: найти иконки для файлов

Сообщение d_n_k »

man magic
man libmagic

сие чудо идет в составе пакета file
все сказанное есть имхо...
Спасибо сказали:
(+ssvda)
Сообщения: 31
ОС: Debian GNU/Linux Etch (only)

Re: найти иконки для файлов

Сообщение (+ssvda) »

d_n_k писал(а):
16.09.2007 22:47
man magic
man libmagic

сие чудо идет в составе пакета file


О! То что нужно.

ЗЫ: Ну что же делать, если я безмозглый тупой ламер?(((
Спасибо сказали: