alzip에 대한 QT UI 입니다.

0
points

안녕하세요..

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 에 종종 변경 사항이 있을 경우 올리도록 하겠습니다(이걸 이용해서 홈페이지 홍보?? ㅋㅋㅋ )

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

첨부 파일파일 크기
uncompress_progress.png28.15 KB
open.png13.45 KB
mainwindow.png20.13 KB

Re: alzip에 대한 QT UI 입니다.

0
points

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

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

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 에 종종 변경 사항이 있을 경우 올리도록 하겠습니다(이걸 이용해서 홈페이지 홍보?? ㅋㅋㅋ )

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

정태영의 이미지
14386
points

http://kalzip.sourceforge.net/이런것도 있

0
points

http://kalzip.sourceforge.net/

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

Scarecrow의 이미지
4296
points

위 사이트의 스크린샷...

0
points

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

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

익명 사용자의 이미지

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

0
points

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

dummy999의 이미지
2672
points

ㅋㅋㅋㅋ

0
points

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

고집, 물집 등은

0
points

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

kz의 이미지
10474
points

file-roller에 붙이려니 걸리는 게 있네요.

0
points

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

...
        } 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이라고 되는 게 맞는지는 모르겠습니다. 알툴즈 측에서 결정할 문제일까요?

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.