diff -Naur file-roller-2.22.2-orig/po/POTFILES.in file-roller-2.22.2/po/POTFILES.in --- file-roller-2.22.2-orig/po/POTFILES.in 2008-04-08 22:42:11.000000000 +0400 +++ file-roller-2.22.2/po/POTFILES.in 2008-06-03 19:23:51.000000000 +0400 @@ -79,5 +79,6 @@ src/main.h src/preferences.c src/preferences.h +src/sh/gnome-archive-install src/typedefs.h src/ui.h diff -Naur file-roller-2.22.2-orig/po/ru.po file-roller-2.22.2/po/ru.po --- file-roller-2.22.2-orig/po/ru.po 2008-04-08 22:42:11.000000000 +0400 +++ file-roller-2.22.2/po/ru.po 2008-06-03 19:38:41.000000000 +0400 @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: file-roller trunk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-09 01:19+0300\n" +"POT-Creation-Date: 2008-06-03 19:38+0400\n" "PO-Revision-Date: 2008-03-06 21:53+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" @@ -35,12 +35,12 @@ msgid "Create Archive" msgstr "Создать архив" -#: ../data/glade/batch-add-files.glade.h:3 ../src/fr-window.c:4030 +#: ../data/glade/batch-add-files.glade.h:3 ../src/fr-window.c:4042 msgid "Location" msgstr "Местоположение" #. current location -#: ../data/glade/batch-add-files.glade.h:4 ../src/fr-window.c:5055 +#: ../data/glade/batch-add-files.glade.h:4 ../src/fr-window.c:5067 msgid "Location:" msgstr "Местоположение:" @@ -121,8 +121,8 @@ "There are %d files that have been modified with an external application. If " "you don't update the files in the archive, all of your changes will be lost." msgstr[0] "" -"Есть %d файл, изменённый внешним приложением. Если вы не обновите файлы в архиве, " -"все ваши изменения будут потеряны." +"Есть %d файл, изменённый внешним приложением. Если вы не обновите файлы в " +"архиве, все ваши изменения будут потеряны." msgstr[1] "" "Есть %d файла, изменённых внешним приложением. Если вы не обновите файлы в " "архиве, все ваши изменения будут потеряны." @@ -135,8 +135,8 @@ msgstr "Обнов_ить" #. Create the application. -#: ../data/file-roller.desktop.in.in.h:1 ../src/fr-window.c:1891 -#: ../src/fr-window.c:4756 ../src/main.c:218 +#: ../data/file-roller.desktop.in.in.h:1 ../src/fr-window.c:1892 +#: ../src/fr-window.c:4768 ../src/main.c:218 msgid "Archive Manager" msgstr "Менеджер архивов" @@ -144,34 +144,34 @@ msgid "Create and modify an archive" msgstr "Создать или изменить архив" -#: ../nautilus/nautilus-fileroller.c:242 +#: ../nautilus/nautilus-fileroller.c:225 msgid "Extract Here" msgstr "Распаковать сюда" -#: ../nautilus/nautilus-fileroller.c:243 +#: ../nautilus/nautilus-fileroller.c:226 msgid "Extract the selected archive in the current position" msgstr "Распаковать выделенный архив в текущей папке" -#: ../nautilus/nautilus-fileroller.c:260 +#: ../nautilus/nautilus-fileroller.c:243 msgid "Extract To..." msgstr "Распаковать в..." -#: ../nautilus/nautilus-fileroller.c:261 +#: ../nautilus/nautilus-fileroller.c:244 msgid "Extract the selected archive" msgstr "Распаковать выделенный архив" -#: ../nautilus/nautilus-fileroller.c:280 +#: ../nautilus/nautilus-fileroller.c:263 msgid "Create Archive..." msgstr "Создать архив..." -#: ../nautilus/nautilus-fileroller.c:281 +#: ../nautilus/nautilus-fileroller.c:264 msgid "Create an archive with the selected objects" msgstr "Создать новый архив с выделенными объектами" #: ../src/actions.c:144 ../src/actions.c:162 ../src/actions.c:200 #: ../src/dlg-batch-add.c:128 ../src/dlg-batch-add.c:143 #: ../src/dlg-batch-add.c:172 ../src/dlg-batch-add.c:216 -#: ../src/dlg-batch-add.c:262 ../src/fr-window.c:2643 +#: ../src/dlg-batch-add.c:262 ../src/fr-window.c:2645 msgid "Could not create the archive" msgstr "Не удалось создать архив" @@ -183,8 +183,8 @@ msgid "You don't have permission to create an archive in this folder" msgstr "Отсутствуют права на создание архива в этом каталоге" -#: ../src/actions.c:201 ../src/fr-archive.c:1313 ../src/fr-window.c:5412 -#: ../src/fr-window.c:5578 +#: ../src/actions.c:201 ../src/fr-archive.c:1321 ../src/fr-archive.c:1324 +#: ../src/fr-window.c:5424 ../src/fr-window.c:5591 msgid "Archive type not supported." msgstr "Тип архива не поддерживается." @@ -205,7 +205,7 @@ msgstr "Создать" #: ../src/actions.c:353 ../src/actions.c:479 ../src/actions.c:576 -#: ../src/fr-window.c:4655 +#: ../src/fr-window.c:4667 msgid "All archives" msgstr "Все архивы" @@ -221,7 +221,7 @@ msgid "Automatic" msgstr "автоопределение" -#: ../src/actions.c:468 ../src/fr-window.c:5261 +#: ../src/actions.c:468 ../src/fr-window.c:5273 msgid "Open" msgstr "Открыть" @@ -229,7 +229,7 @@ msgid "Save" msgstr "Сохранить" -#: ../src/actions.c:907 ../src/fr-window.c:6537 +#: ../src/actions.c:907 ../src/fr-window.c:6550 msgid "Last Output" msgstr "Журнал сообщений" @@ -347,7 +347,7 @@ msgid "Enter the password for the archive '%s'." msgstr "Введите пароль для архива '%s'." -#: ../src/dlg-batch-add.c:144 ../src/fr-window.c:6833 +#: ../src/dlg-batch-add.c:144 ../src/fr-window.c:6846 #, c-format msgid "" "The name \"%s\" is not valid because it cannot contain the characters: %s\n" @@ -358,8 +358,8 @@ "\n" "%s" -#: ../src/dlg-batch-add.c:147 ../src/fr-window.c:6825 ../src/fr-window.c:6829 -#: ../src/fr-window.c:6833 ../src/fr-window.c:6869 ../src/fr-window.c:6871 +#: ../src/dlg-batch-add.c:147 ../src/fr-window.c:6838 ../src/fr-window.c:6842 +#: ../src/fr-window.c:6846 ../src/fr-window.c:6882 ../src/fr-window.c:6884 msgid "Please use a different name." msgstr "Используйте другое имя." @@ -369,7 +369,7 @@ "folder." msgstr "Недостаточно прав для создания архива в папке назначения." -#: ../src/dlg-batch-add.c:189 ../src/dlg-extract.c:113 ../src/fr-window.c:5928 +#: ../src/dlg-batch-add.c:189 ../src/dlg-extract.c:113 ../src/fr-window.c:5941 #, c-format msgid "" "Destination folder \"%s\" does not exist.\n" @@ -380,11 +380,11 @@ "\n" "Создать её?" -#: ../src/dlg-batch-add.c:198 ../src/dlg-extract.c:122 ../src/fr-window.c:5937 +#: ../src/dlg-batch-add.c:198 ../src/dlg-extract.c:122 ../src/fr-window.c:5950 msgid "Create _Folder" msgstr "Создать _папку" -#: ../src/dlg-batch-add.c:217 ../src/dlg-extract.c:139 ../src/fr-window.c:5957 +#: ../src/dlg-batch-add.c:217 ../src/dlg-extract.c:139 ../src/fr-window.c:5970 #, c-format msgid "Could not create the destination folder: %s." msgstr "Не удалость создать целевую папку: %s." @@ -402,11 +402,11 @@ msgstr "_Перезаписать" #: ../src/dlg-extract.c:144 ../src/dlg-extract.c:161 ../src/dlg-extract.c:187 -#: ../src/fr-window.c:3589 ../src/fr-window.c:5956 ../src/fr-window.c:5972 +#: ../src/fr-window.c:3601 ../src/fr-window.c:5969 ../src/fr-window.c:5985 msgid "Extraction not performed" msgstr "Распаковка не состоялась" -#: ../src/dlg-extract.c:188 ../src/fr-window.c:3742 +#: ../src/dlg-extract.c:188 ../src/fr-window.c:3754 #, c-format msgid "" "You don't have the right permissions to extract archives in the folder \"%s\"" @@ -491,11 +491,11 @@ msgid "Symbolic link" msgstr "Символическая ссылка" -#: ../src/fr-archive.c:2551 +#: ../src/fr-archive.c:2563 msgid "You don't have the right permissions." msgstr "Недостаточно прав." -#: ../src/fr-archive.c:2561 +#: ../src/fr-archive.c:2573 msgid "You can't add an archive to itself." msgstr "Невозможно поместить архив внутрь самого себя." @@ -507,7 +507,7 @@ msgid "Removing file: " msgstr "Удаляется файл: " -#: ../src/fr-command-tar.c:355 ../src/fr-window.c:2173 +#: ../src/fr-command-tar.c:355 ../src/fr-window.c:2174 msgid "Deleting files from archive" msgstr "Удаляются файлы из архива" @@ -535,7 +535,7 @@ msgid "_View File" msgstr "Просмотреть _файл" -#: ../src/fr-window.c:1445 +#: ../src/fr-window.c:1446 #, c-format msgid "%d object (%s)" msgid_plural "%d objects (%s)" @@ -543,7 +543,7 @@ msgstr[1] "%d объекта (%s)" msgstr[2] "%d объектов (%s)" -#: ../src/fr-window.c:1450 +#: ../src/fr-window.c:1451 #, c-format msgid "%d object selected (%s)" msgid_plural "%d objects selected (%s)" @@ -551,185 +551,185 @@ msgstr[1] "%d объекта выбрано (%s)" msgstr[2] "%d объектов выбрано (%s)" -#: ../src/fr-window.c:1518 +#: ../src/fr-window.c:1519 msgid "Folder" msgstr "Каталог" -#: ../src/fr-window.c:1899 +#: ../src/fr-window.c:1900 msgid "[read only]" msgstr "[только для чтения]" -#: ../src/fr-window.c:2164 ../src/fr-window.c:2194 +#: ../src/fr-window.c:2165 ../src/fr-window.c:2195 msgid "Creating archive" msgstr "Архив создаётся" -#: ../src/fr-window.c:2167 +#: ../src/fr-window.c:2168 msgid "Loading archive" msgstr "Архив загружается" -#: ../src/fr-window.c:2170 +#: ../src/fr-window.c:2171 msgid "Reading archive" msgstr "Архив читается" -#: ../src/fr-window.c:2176 +#: ../src/fr-window.c:2177 msgid "Testing archive" msgstr "Архив проверяется" -#: ../src/fr-window.c:2179 +#: ../src/fr-window.c:2180 msgid "Getting the file list" msgstr "Извлекается список файлов" -#: ../src/fr-window.c:2182 ../src/fr-window.c:2191 +#: ../src/fr-window.c:2183 ../src/fr-window.c:2192 msgid "Copying the file list" msgstr "Копируется список файлов" -#: ../src/fr-window.c:2185 +#: ../src/fr-window.c:2186 msgid "Adding files to archive" msgstr "Добавляются файлы в архив" -#: ../src/fr-window.c:2188 +#: ../src/fr-window.c:2189 msgid "Extracting files from archive" msgstr "Распаковываются файлы из архива" -#: ../src/fr-window.c:2197 +#: ../src/fr-window.c:2198 msgid "Saving archive" msgstr "Сохранение архива" -#: ../src/fr-window.c:2383 +#: ../src/fr-window.c:2384 msgid "Archive:" msgstr "Архив:" -#: ../src/fr-window.c:2475 +#: ../src/fr-window.c:2476 msgid "wait please..." msgstr "подождите, пожалуйста..." -#: ../src/fr-window.c:2543 +#: ../src/fr-window.c:2544 #, c-format msgid "Could not display the folder \"%s\"" msgstr "Невозможно показать папку \"%s\"" -#: ../src/fr-window.c:2647 +#: ../src/fr-window.c:2649 msgid "An error occurred while extracting files." msgstr "Во время распаковки файлов произошла ошибка." -#: ../src/fr-window.c:2655 +#: ../src/fr-window.c:2657 #, c-format msgid "Could not open \"%s\"" msgstr "Не удалось открыть \"%s\"" -#: ../src/fr-window.c:2660 +#: ../src/fr-window.c:2662 msgid "An error occurred while loading the archive." msgstr "Во время чтения архива произошла ошибка." -#: ../src/fr-window.c:2664 +#: ../src/fr-window.c:2666 msgid "An error occurred while deleting files from the archive." msgstr "Во время удаления файлов из архива произошла ошибка." -#: ../src/fr-window.c:2668 +#: ../src/fr-window.c:2670 msgid "An error occurred while adding files to the archive." msgstr "Во время добавления файлов в архив произошла ошибка." -#: ../src/fr-window.c:2672 +#: ../src/fr-window.c:2674 msgid "An error occurred while testing archive." msgstr "Во время проверки архива произошла ошибка." -#: ../src/fr-window.c:2681 +#: ../src/fr-window.c:2683 msgid "Command not found." msgstr "Требуемая программа не найдена." -#: ../src/fr-window.c:2684 +#: ../src/fr-window.c:2686 msgid "Command exited abnormally." msgstr "Работа программы завершилась некорректно." -#: ../src/fr-window.c:2879 +#: ../src/fr-window.c:2891 msgid "Test Result" msgstr "Результаты проверки" -#: ../src/fr-window.c:3450 ../src/fr-window.c:7446 +#: ../src/fr-window.c:3462 ../src/fr-window.c:7459 msgid "Could not perform the operation" msgstr "Не удалось выполнить операцию" -#: ../src/fr-window.c:3477 +#: ../src/fr-window.c:3489 msgid "" "Do you want to add this file to the current archive or open it as a new " "archive?" msgstr "Добавить этот файл в текущий архив или открыть его как новый?" -#: ../src/fr-window.c:3507 +#: ../src/fr-window.c:3519 msgid "Do you want to create a new archive with these files?" msgstr "Создать новый архив и добавить в него выбранные файлы?" -#: ../src/fr-window.c:3510 +#: ../src/fr-window.c:3522 msgid "Create _Archive" msgstr "Создать _архив" -#: ../src/fr-window.c:3989 ../src/fr-window.c:5152 +#: ../src/fr-window.c:4001 ../src/fr-window.c:5164 msgid "Folders" msgstr "Каталоги" -#: ../src/fr-window.c:4027 +#: ../src/fr-window.c:4039 msgid "Size" msgstr "Размер" -#: ../src/fr-window.c:4028 +#: ../src/fr-window.c:4040 msgid "Type" msgstr "Тип" -#: ../src/fr-window.c:4029 +#: ../src/fr-window.c:4041 msgid "Date Modified" msgstr "Дата изменения" -#: ../src/fr-window.c:4039 +#: ../src/fr-window.c:4051 msgid "Name" msgstr "Имя" -#: ../src/fr-window.c:5012 +#: ../src/fr-window.c:5024 msgid "Go to the previous visited location" msgstr "Перейти к посещённому ранее местоположению" -#: ../src/fr-window.c:5020 +#: ../src/fr-window.c:5032 msgid "Go to the next visited location" msgstr "Перейти к следующему посещённому местоположению" -#: ../src/fr-window.c:5028 +#: ../src/fr-window.c:5040 msgid "Go up one level" msgstr "Перейти на один уровень вверх" -#: ../src/fr-window.c:5036 +#: ../src/fr-window.c:5048 msgid "Go to the home location" msgstr "Перейти к домашнему каталогу" -#: ../src/fr-window.c:5089 +#: ../src/fr-window.c:5101 msgid "Find:" msgstr "Найти:" -#: ../src/fr-window.c:5160 +#: ../src/fr-window.c:5172 msgid "Close the folders pane" msgstr "Скрыть панель каталогов" -#: ../src/fr-window.c:5258 ../src/fr-window.c:5261 ../src/ui.h:142 +#: ../src/fr-window.c:5270 ../src/fr-window.c:5273 ../src/ui.h:142 #: ../src/ui.h:146 msgid "Open archive" msgstr "Открыть архив" -#: ../src/fr-window.c:5259 +#: ../src/fr-window.c:5271 msgid "Open a recently used archive" msgstr "Открыть недавно использовавшийся архив" -#: ../src/fr-window.c:5571 +#: ../src/fr-window.c:5584 #, c-format msgid "Could not save the archive \"%s\"" msgstr "Не удалось сохранить архив \"%s\"" -#: ../src/fr-window.c:6825 +#: ../src/fr-window.c:6838 msgid "The new name is void." msgstr "Новое имя пустое." -#: ../src/fr-window.c:6829 +#: ../src/fr-window.c:6842 msgid "The new name is equal to the old one." msgstr "Новое имя такое же, как и старое." -#: ../src/fr-window.c:6869 +#: ../src/fr-window.c:6882 #, c-format msgid "" "A folder named \"%s\" already exists.\n" @@ -740,7 +740,7 @@ "\n" "%s" -#: ../src/fr-window.c:6871 +#: ../src/fr-window.c:6884 #, c-format msgid "" "A file named \"%s\" already exists.\n" @@ -751,43 +751,43 @@ "\n" "%s" -#: ../src/fr-window.c:6938 +#: ../src/fr-window.c:6951 msgid "Rename" msgstr "Переименовать" -#: ../src/fr-window.c:6939 +#: ../src/fr-window.c:6952 msgid "New folder name" msgstr "Новое имя папки" -#: ../src/fr-window.c:6939 +#: ../src/fr-window.c:6952 msgid "New file name" msgstr "Новое имя файла" -#: ../src/fr-window.c:6943 +#: ../src/fr-window.c:6956 msgid "_Rename" msgstr "Пере_именовать" -#: ../src/fr-window.c:6960 ../src/fr-window.c:6979 +#: ../src/fr-window.c:6973 ../src/fr-window.c:6992 msgid "Could not rename the folder" msgstr "Не удалось переименовать папку" -#: ../src/fr-window.c:6960 ../src/fr-window.c:6979 +#: ../src/fr-window.c:6973 ../src/fr-window.c:6992 msgid "Could not rename the file" msgstr "Не удалось переименовать файл" -#: ../src/fr-window.c:7374 +#: ../src/fr-window.c:7387 msgid "Paste Selection" msgstr "Вставить выделенные элементы" -#: ../src/fr-window.c:7375 +#: ../src/fr-window.c:7388 msgid "Destination folder" msgstr "Целевой каталог" -#: ../src/fr-window.c:7929 +#: ../src/fr-window.c:7940 msgid "Add files to an archive" msgstr "Добавить файлы в архив" -#: ../src/fr-window.c:7972 +#: ../src/fr-window.c:7983 msgid "Extract archive" msgstr "Распаковать архив" @@ -931,6 +931,52 @@ msgid "File Roller" msgstr "File Roller" +#: ../src/sh/gnome-archive-install:67 +msgid "no suitable application" +msgstr "нет подходящего приложения" + +#: ../src/sh/gnome-archive-install:68 +msgid "" +"No application suitable for automatic installation is available for handling " +"this kind of file." +msgstr "" +"Для открытия этого типа файла не обнаружено подходящего приложения, которое " +"можно установить автоматически." + +#: ../src/sh/gnome-archive-install:71 +msgid "no application found" +msgstr "приложение не найдено" + +#: ../src/sh/gnome-archive-install:72 +msgid "No application is known for this kind of file." +msgstr "Приложение для открытия данного типа файла не известно." + +#: ../src/sh/gnome-archive-install:84 +msgid "Searching for appropriate applications" +msgstr "Поиск подходящих приложений" + +#: ../src/sh/gnome-archive-install:86 +msgid "Please wait. This might take a minute or two." +msgstr "Пожалуйста подождите. Этот процесс может занять одну-две минуты." + +#: ../src/sh/gnome-archive-install:93 +msgid "Search for suitable archiver?" +msgstr "Найти подходящий архиватор?" + +#: ../src/sh/gnome-archive-install:94 +msgid "" +"The required software to open this file is not installed. You need to " +"install suitable archiver to view compressed files. Do you want to search " +"for an archiver that supports the selected file?\n" +"\n" +"The search will also include software which is not officially supported." +msgstr "" +"Требуемое для запуска файла программное обеспечение не установлено. Для " +"открытия сжатых файлов нужны подходящие архиваторы. Поискать архиватор, " +"который поддерживает выбранный файл?\n" +"\n" +"Возможно, некоторые из архиваторов не поддерживаются официально." + #: ../src/ui.h:33 msgid "_Archive" msgstr "_Архив" diff -Naur file-roller-2.22.2-orig/src/fr-archive.c file-roller-2.22.2/src/fr-archive.c --- file-roller-2.22.2-orig/src/fr-archive.c 2008-04-08 22:42:05.000000000 +0400 +++ file-roller-2.22.2/src/fr-archive.c 2008-06-03 19:01:19.000000000 +0400 @@ -547,7 +547,8 @@ } else if (is_mime_type (mime_type, "application/x-ace")) { archive->command = fr_command_ace_new (archive->process, filename); - } else if (is_mime_type (mime_type, "application/x-7zip")) { + } else if (is_mime_type (mime_type, "application/x-7zip") || + is_mime_type (mime_type, "application/x-7z-compressed")) { archive->command = fr_command_7z_new (archive->process, filename); } else if (is_mime_type (mime_type, "application/x-cpio")) { @@ -1306,11 +1307,22 @@ mime_type = get_mime_type_from_sniffer (archive->local_filename); if (mime_type == NULL) mime_type = get_mime_type_from_content (archive->local_filename); + + archive->command = 1; if ((mime_type == NULL) || ! create_command_from_mime_type (archive, archive->local_filename, mime_type)) if (! create_command_from_filename (archive, archive->local_filename, TRUE)) { - archive->command = tmp_command; - fr_archive_load__error (archive, _("Archive type not supported.")); + if (archive->command != 1 && mime_type != NULL) { + archive->command = tmp_command; + archive->priv->xfer_handle = NULL; + fr_archive_action_completed (archive, + FR_ACTION_LOADING_ARCHIVE, + FR_PROC_ERROR_FORMAT_NOT_SUPPORTED, + _("Archive type not supported.")); + } else { + archive->command = tmp_command; + fr_archive_load__error (archive, _("Archive type not supported.")); + } return; } diff -Naur file-roller-2.22.2-orig/src/fr-window.c file-roller-2.22.2/src/fr-window.c --- file-roller-2.22.2-orig/src/fr-window.c 2008-04-08 22:42:05.000000000 +0400 +++ file-roller-2.22.2/src/fr-window.c 2008-06-02 20:53:17.000000000 +0400 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -2612,6 +2613,7 @@ FRAction action, FRProcError *error) { + static gboolean installer_launched = FALSE; if (error->type == FR_PROC_ERROR_ASK_PASSWORD) { dlg_ask_password (window); return FALSE; @@ -2686,6 +2688,16 @@ case FR_PROC_ERROR_SPAWN: details = error->gerror->message; break; + case FR_PROC_ERROR_FORMAT_NOT_SUPPORTED: + if (is_program_in_path("python") && !installer_launched) { + gchar cmd[256]; + sprintf(cmd, "python " PRIVEXECDIR "gnome-archive-install --transient-for=%d", GDK_WINDOW_XID( ((GtkWidget *) window)->window) ); + g_spawn_command_line_async(cmd, NULL); + installer_launched = TRUE; + g_hash_table_remove_all(ProgramsCache); + return FALSE; + } + error->type = FR_PROC_ERROR_GENERIC; default: if (error->gerror != NULL) details = error->gerror->message; diff -Naur file-roller-2.22.2-orig/src/sh/gnome-archive-install file-roller-2.22.2/src/sh/gnome-archive-install --- file-roller-2.22.2-orig/src/sh/gnome-archive-install 1970-01-01 03:00:00.000000000 +0300 +++ file-roller-2.22.2/src/sh/gnome-archive-install 2008-06-03 21:16:56.000000000 +0400 @@ -0,0 +1,105 @@ +#!/usr/bin/env python +import sys +import gettext +from gettext import gettext as _ +from optparse import OptionParser +from AppInstall.activation import askConfirmation + +if __name__ == "__main__": + app="file-roller" + gettext.textdomain(app) + gettext.bindtextdomain(app, "/usr/share/locale") + + parser = OptionParser() + parser.add_option("", "--transient-for", + default=None, + action="store", type="int", dest="transient_for", + help="Start as a child window of the given window (Only " + "needed by developers") + parser.add_option("", "--data-dir", + default="/usr/share/gnome-app-install", + action="store", type="string", dest="datadir", + help="Load data from the given directory (Only needed " + "by developers)") + parser.add_option("", "--desktopdir", + default="/usr/share/app-install", + action="store", type="string", dest="desktopdir", + help="Read the desktop files from the given directory " + "(Only needed by developers)") + parser.add_option("", "--cachedir", + default="/var/cache/app-install", + action="store", type="string", dest="cachedir", + help="Use the given directory for the cache (Only " + "needed by developers)") + parser.add_option("", "--addon-cd", + default=None, + action="store", type="string", dest="addon_cd", + help="Start as installer for an addon cd") + parser.add_option("", "--test-mode", action="store_true", dest="test_mode", + help="Run in a sepcial test mode" + "(Only needed by developers)") + (options, args) = parser.parse_args() + + if not askConfirmation(_("Search for suitable archiver?"), + _("The required software to open this file " + "is not installed. You need to install suitable " + "archiver to view compressed files. Do you want " + "to search for an archiver that supports the selected file?" + "\n\nThe search will also include software which is not " + "officially supported."), + options.transient_for): + sys.exit(4) + +from AppInstall import AppInstall +from AppInstall.activation import ActivationStyle + +class ArchiveActivationStyle(ActivationStyle): + def __init__(self): + self._userapproved = False + self._changessuccessful = False + self.menuFilter = None + self._wl_packages = {'rar': True, 'p7zip-full': True, 'unace': True} + self.isInstallerOnly = True + self.selectFilter = None + self.menuFilter = 0 + + def menuCacheName(self): + return "menu.p" + + def lookup(self,string): + unapproved = False + for e in value.split(): + (component,package) = e.split('/',1) + if self.isApproved(component,package): return (True,True,None,None) + unapproved = True + + if unapproved: (abbrev,msg) = ( + _("no suitable application"), + _("No application suitable for automatic installation is" + " available for handling this kind of file.")) + else: (abbrev,msg) = ( + _("no application found"), + _("No application is known for this kind of file.")) + + return (False, unapproved, abbrev, msg) + + def isApproved(self, component, package): + return self._wl_packages.has_key(package) + def isSpecific(self): return True + def userApprovedNotify(self): self._userapproved = True + def changesSuccessfulNotify(self): self._changessuccessful = True + def modifyUserInterface(self, app): + app.scrolledwindow_left.hide() + app.label_progress.set_markup("%s\n\n%s" % + (_("Searching for appropriate " + "applications"), + _("Please wait. This might take a " + "minute or two."))) + app.hbox_search_show.hide() + app.window_main.set_property("default_width", 500) + app.window_main.set_property("default_height", 400) + +if __name__ == "__main__": + app = AppInstall.AppInstall(options, ArchiveActivationStyle()) + app.run() + diff -Naur file-roller-2.22.2-orig/src/sh/Makefile.am file-roller-2.22.2/src/sh/Makefile.am --- file-roller-2.22.2-orig/src/sh/Makefile.am 2008-04-08 22:42:05.000000000 +0400 +++ file-roller-2.22.2/src/sh/Makefile.am 2008-06-02 20:14:16.000000000 +0400 @@ -1,4 +1,4 @@ shdir = $(libexecdir)/file-roller -sh_DATA = isoinfo.sh +sh_DATA = isoinfo.sh gnome-archive-install EXTRA_DIST = $(sh_DATA) \ В конце файла нет новой строки diff -Naur file-roller-2.22.2-orig/src/typedefs.h file-roller-2.22.2/src/typedefs.h --- file-roller-2.22.2-orig/src/typedefs.h 2008-04-08 22:42:06.000000000 +0400 +++ file-roller-2.22.2/src/typedefs.h 2008-05-31 13:28:40.000000000 +0400 @@ -70,7 +70,8 @@ FR_PROC_ERROR_EXITED_ABNORMALLY, FR_PROC_ERROR_SPAWN, FR_PROC_ERROR_STOPPED, - FR_PROC_ERROR_ASK_PASSWORD + FR_PROC_ERROR_ASK_PASSWORD, + FR_PROC_ERROR_FORMAT_NOT_SUPPORTED } FRProcErrorType; typedef struct {