karp 18.06.2010 13:58
Скрипты — Простой виджет на GTK2-PERL
Долго думал, чем-бы бесполезным себя занять. В итоге решил разобраться как работает в Gtk Drag and Drop.
В результате получился скриптик.
Суть его в следующем:
Где-то на экране, поверх всех окон, на всех рабочих столах, висит небольшое окошко без рамки.
Чтобы выполнить какое-либо действие, нужно дропнуть файл на это окошко. На скрине видны два таких окошка.
Первое, что с крестом, удаляет дропнутый в него файл или каталог.
Второе - сжимает дропнутый в него файл. А если дропнули каталог, то сжимаются все файлы внутри каталога.
Под катом пример такого скрипта.
P.S. Можно попробовать сделать немного красивее. Например, чтобы картинка увеличивалась, когда на нее наводят.
P.P.S. Художник из меня никакой.
Листинг скрипта:
Вместо строки
system "rm -rf \"$str\""; # Удаляем файл
Можно вставить любое действие, например
system "gzip -r \"$str\""; # Cжимаем файл
-
P.S. Будьте осторожны. Не дай бог, запустите скрипт от root`а и чего-нибудь там напутаете. Это может закончится плачевно...
alvelin 18.06.2010 14:19 #
+ 0 -
Подобным же образом (drug-and-drop)сжимал/разжимал архивы Aladdin Expander в под MacOS classic. А можно на скрипт повесить "умное" поведение? - Т.е. если на значок перемещается папка, то она сжимается, а если архив - то, наоборот, распаковывается? (Т.е. на одну и ту же картинку?)
до вот этого
$str = URI->new($str)->file; # Преобразовываем в имя файла
вставить проверку на что кончается $str и исходя из результата этого пускать либо архвацию либо распаковку.
$str = URI->new($str)->file; # Преобразовываем в имя файла
вставить проверку на что кончается $str и исходя из результата этого пускать либо архвацию либо распаковку.
А что, в Perl нет аналога команды file?
Зачем это виндузятничество - полагаться на расширение, если можно уточнить более достоверно?
Да и потом, file возвращает directory если переданный путь - директория, а по расширению нельзя узнать, директория ли это.
Зачем это виндузятничество - полагаться на расширение, если можно уточнить более достоверно?
Да и потом, file возвращает directory если переданный путь - директория, а по расширению нельзя узнать, директория ли это.
Я с перлом не знаком вообще - и предложил самый простой и очевидный выход исходя из того что я увидел в предложенном коде.
А можно на скрипт повесить "умное" поведение? - Т.е. если на значок перемещается папка, то она сжимается, а если архив - то, наоборот, распаковывается? (Т.е. на одну и ту же картинку?)
с перлом не знаком, но кто мешает в скрипте посмотреть тип объекта, да в зависимости от него уже либо сжимать, либо наоборот?
я и говорю, технология хорошая. Надо быстрее патентовать! Потом Microsoft потроллим.
небольшой совет:
лучше писать
т.к. в имени файла могут быть кавычки.
лучше писать
system 'rm', '-rf', $str
т.к. в имени файла могут быть кавычки.