alzip에 대한 QT UI 입니다.

diylinux의 이미지

안녕하세요..

kldp에 가입한후 처음으로 파일을 올려보네요..

그냥 장난스레 만들어본 qt alzip에 대한 UI 입니다.

버전은 0.0000000000000001입니다.

제가 eucKR를 쓰기 때문에 모두 eucKR로 인코딩 되어 있습니다.

만약 자신이 UTF-8를 쓰시면 TextCodec를 조정하시면 됩니다.

unalz에 대한 소스를 그대로 이용했으며 (unalz 원 저자께 알려드리지 못했네요 -_- ) 껍데기만 씌웠습니다.

최대한 windows용 알집과 비슷하게 만들려고 했는데.. 몇가지

테스트가 필요합니다.

1. directory가 있을 경우
: 소스를 보시면아시겠지만 listview를 넣어서 수정하려고 했는데
귀찮아서 안했습니다 =_=
2. 암호 걸려있을 경우
:역시 암호 요구 창은 있지만 제대로 동작하는지 모르겠습니다 =_=
3. UTF-8 환경일 경우
: QTextCodec를 조정하시면 되리라 생각됩니다.
4. 여러개로 분리된 알집일 경우
: 생각하지도 않았습니다.

무척이나 무책임하네요 =_=

앞으로 0.1 이 되면 다음과 같은 내용을 추가할 까 합니다.
1. 인코딩에 환경 설정 내역
2. 새로 압축시 tar.bz2로 ^^;;;
3. 압축 풀리는 위치 지정
: 현재는 현재 디렉토리/파일명 입니다. 파일명에서 확장자는 빠집니다.
4. drag & drop 기능
: 소스 코드 보시면 아시겠지만 기본적인 인터페이스는 됩니다.
: 만약 connect 주석 처리를 제거하시면 영문자로 되어 있는
alz는 사용가능합니다
5. 디렉토리가 포함되어 있을 경우 :)

마지막으로 fedora3에서 작성하였습니다.

그리고 http://www.diylinux.org 에 종종 변경 사항이 있을 경우 올리도록 하겠습니다(이걸 이용해서 홈페이지 홍보?? ㅋㅋㅋ )

허접하지만 읽어주셔서 감사합니다.

File attachments: 
첨부파일 크기
Image icon uncompress_progress.png28.15 KB
Image icon open.png13.45 KB
Image icon mainwindow.png20.13 KB
Forums: 
diylinux의 이미지

흠.. 첨부 파일 개수에 제한이 있나요?? =_=

좀더 자세한 화면은 http://www.diylinux.org 에 있습니다 =_=

diylinux wrote:
안녕하세요..

kldp에 가입한후 처음으로 파일을 올려보네요..

그냥 장난스레 만들어본 qt alzip에 대한 UI 입니다.

버전은 0.0000000000000001입니다.

제가 eucKR를 쓰기 때문에 모두 eucKR로 인코딩 되어 있습니다.

만약 자신이 UTF-8를 쓰시면 TextCodec를 조정하시면 됩니다.

unalz에 대한 소스를 그대로 이용했으며 (unalz 원 저자께 알려드리지 못했네요 -_- ) 껍데기만 씌웠습니다.

최대한 windows용 알집과 비슷하게 만들려고 했는데.. 몇가지

테스트가 필요합니다.

1. directory가 있을 경우
: 소스를 보시면아시겠지만 listview를 넣어서 수정하려고 했는데
귀찮아서 안했습니다 =_=
2. 암호 걸려있을 경우
:역시 암호 요구 창은 있지만 제대로 동작하는지 모르겠습니다 =_=
3. UTF-8 환경일 경우
: QTextCodec를 조정하시면 되리라 생각됩니다.
4. 여러개로 분리된 알집일 경우
: 생각하지도 않았습니다.

무척이나 무책임하네요 =_=

앞으로 0.1 이 되면 다음과 같은 내용을 추가할 까 합니다.
1. 인코딩에 환경 설정 내역
2. 새로 압축시 tar.bz2로 ^^;;;
3. 압축 풀리는 위치 지정
: 현재는 현재 디렉토리/파일명 입니다. 파일명에서 확장자는 빠집니다.
4. drag & drop 기능
: 소스 코드 보시면 아시겠지만 기본적인 인터페이스는 됩니다.
: 만약 connect 주석 처리를 제거하시면 영문자로 되어 있는
alz는 사용가능합니다
5. 디렉토리가 포함되어 있을 경우 :)

마지막으로 fedora3에서 작성하였습니다.

그리고 http://www.diylinux.org 에 종종 변경 사항이 있을 경우 올리도록 하겠습니다(이걸 이용해서 홈페이지 홍보?? ㅋㅋㅋ )

허접하지만 읽어주셔서 감사합니다.

정태영의 이미지

http://kalzip.sourceforge.net/

이런것도 있기는 합니다 :)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

Scarecrow의 이미지

위 사이트의 스크린샷이 재미있네요.

산넘어 산이라더니... alz를 해결하니 hwp가 나타나는군요. ^^

익명 사용자의 이미지

이름이 독특하군요. 칼집(Kalzip)이라.... ㅋㅋㅋ

dummy999의 이미지

알집, 칼집, 똥집, 빵집
대단한 집들이구만..
큰집 작은집도있었음 좋겠구만...

------------------------------------
F/OSS bless you... ^^*

mokyj의 이미지

고집, 물집 등은 어떤가요? ㅋㅋ

keizie의 이미지

간단하게 살펴봤습니다. 깔끔한 인터페이스-플러그인 구조는 아니었지만 확장자별로 잘 분류가 되어 있습니다. 형식을 구분하는 코드는 다음과 같습니다.

...
        } else if (is_mime_type (mime_type, "application/zip") ||
                   is_mime_type (mime_type, "application/x-zip")) {
                archive->command = fr_command_zip_new (archive->process,
                                                       filename);
        } else if (is_mime_type (mime_type, "application/x-zoo")) {
                archive->command = fr_command_zoo_new (archive->process,
                                                       filename);
        } else if (is_mime_type (mime_type, "application/x-rar")) {
                archive->command = fr_command_rar_new (archive->process,
                                                       filename);
...

저기서 mime_type이라고 나오는 건 get_mime_type_from_sniffer()와 get_mime_type_from_content()에서 알려주는 값입니다. sniffer는 파일 첫 부분을 읽어서 판단하고 content는 gnome-vfs의 도움을 받습니다. .alz는 널리 알려진 형식이 아니라서 file *.alz를 해봐도 gnomevfs-info *.alz를 해봐도 그냥 octet이라고만 나오죠. sniffer에 기댈 수 밖에 없습니다.

        static struct {
                const char *mime_type;
                const char *first_bytes;
                int         len;
        }            sniffer_data [] = {
                {"application/zip",                   "\x50\x4B\x03\x04", 4},
                /* FIXME
                   {"application/x-compressed-tar",      "\x1F\x8B\x08\x08", 4},
                   {"application/x-bzip-compressed-tar", "\x42\x5A\x68\x39", 4},
                 */
                { NULL, NULL, 0 }
        };

이런 식으로 준비해두네요. .zip을 저렇게 쓴다면 .alz는 어떻게 해야 할까요? 비교해보았습니다.

keizie@butler:~$ hexdump *.zip | head -n 1
0000000 4b50 0403 0014 0000 0008 5f64 3571 f845
keizie@butler:~$ hexdump *.alz | head -n 1
0000000 4c41 015a 000a 0000 4c42 015a 0016 d520

그럼 .alz는 아마도

                {"application/alzip",                   "\x41\x4C\x5A\x01", 4},

식으로 넣으면 되겠네요.

자, 근데 여기서 의문을 가져봅니다. 과연 저런 코드까지 넣어서 패치를 제출하면 file-roller 팀은 거 참 깔끔하네 하면서 잘 받아줄까요? 아닐 것 같습니다. 이쯤에서 좌절 한 번 해주죠. ..orz....

----
sangu님이 그러시더군요. shared-mime-data에 추가하도록 버그를 제출하면 어떻냐고. 좋은 생각입니다. gnome-vfs 전체에 영향을 끼칠 수 있으니까요.

그러자 ganadist님이 말씀하십니다. 저번에 .hwp 추가해달라고 했더니 그냥 어플에서 알아서 하라고 했다고. 실제로 /usr/share/mime/packages/alzip.xml 파일을 다음처럼 작성하고 update-mime-database를 수행하면 gnomevfs-info에 알집 파일로 잡히긴 합니다.

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-alz">
    <comment>Alzip File</comment>
    <comment xml:lang="ko">알집 파일</comment>
    <glob pattern="*.alz"/>
  </mime-type>
</mime-info>

unalz 패키지 정도에 포함해서 같이 배포하면 좋겠습니다.

근데 .alz의 MIME이 x-alz이라고 되는 게 맞는지는 모르겠습니다. 알툴즈 측에서 결정할 문제일까요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.